上个月翻记账表格的时候,我盯着那一串 AI 订阅和点数充值记录沉默了很久——ChatGPT Plus 的月费在这里,Midjourney 的包月在这里,Runway 的积分在这里,ElevenLabs 的字符包也在这里,再算上零散买的加时包、加速包和“临时救急”的小额充值,一个短剧/广告制作相关的账号矩阵,一个月轻轻松松烧掉两千多。最气人的不是花了钱,而是花出去的钱并没有全部变成成品:出图抽卡失败要扣点,视频生成排队到半夜失败不退款,配音字符数超了自动续费,最后一个 30 秒短剧做完,素材一半没用上,账单却一分没少。

后来我实在扛不住这种“点卡制”玩法,花了一周时间把短剧和广告制作的整个链路重新梳理了一遍,能本地化的全部迁到本地软件,必须用云端大模型的地方留出窄接口,最后用 Claude Code 把整条流水线串了起来。现在跑一条 60 秒短剧,算上脚本、分镜、出图、配音、字幕、剪辑和多尺寸导出,工具成本从原来的每月两千多降到每月一百出头,而且出图质量和角色一致性反而比之前更稳定。这篇就把我的整套做法、选型思路和踩过的坑从头到尾讲一遍,适合被订阅制 AI 工具按量计费反复收割的短剧创作者、广告剪辑师,以及所有想把 AI 工作流掌握在自己手里的人。

1. “点卡”账单把我劝退的真实账本:短剧制作到底被AI工具收了多少额外费用

1.1 订阅加点数双轨制,实际花销远高于表面月费

很多 AI 工具的定价表面上很友好,一个 Plus 会员 20 美元,一个图像工具会员 30 美元,加起来好像也就几百块。但真正开始做短剧和广告素材之后才会发现,这些工具早就把核心功能拆成了“基础订阅 + 按量点数”的双轨结构。基础会员只给你可怜的一点额度,真正想持续产出,必须不停购买点数包。我做了一条 60 秒短剧的完整消耗记录,列出来供参考:

环节 使用的云端工具 计费方式 一条60秒短剧实际消耗
分镜脚本 对话式大模型 月费+次数限制 单条短剧约需要 8-12 轮对话
角色设定图 图像生成工具 包月+按张扣点 角色定妆至少 4-6 张
分镜画面 图像生成工具 包月+按张扣点 30-40 个分镜,每个 2-3 次抽卡
视频片段 视频生成工具 按秒计费 60秒成片约需要生成 2-3 倍素材
角色配音 语音合成工具 按字符计费 脚本约 400 字,需试听多版本
字幕/修音 在线工具 月费 低频使用但月费照付

算下来,一条 60 秒短剧在图像生成上要烧掉 60-100 张图的点数,在视频生成上要烧掉 120-180 秒的生成时长,配音还得预留 1500-3000 字符的量。一个月认真做 8-10 条短剧素材,工具账单冲到两千以上真的一点都不夸张。

1.2 真正让我决定迁移的三个瞬间

第一个瞬间是积分过期。某工具当月剩了 2000 多点没用完,第二个月一号直接清空。我当时心里就是一句:我花钱买的是产能,不是买你游戏里的月卡。

第二个瞬间是批量失败。做广告素材时一次性提交了 20 张分镜图的任务,结果网络波动加服务器排队,一次失败重试居然翻倍扣点。最后图没出来,点数先没了。那一刻我意识到,将关键生产步骤放在一个每天都在变化的黑盒环境里,风险完全不可控。

第三个瞬间是账号风控。有段时间我的主力账号被判定为“频繁调用”,直接在用量高峰期限制生成速度,而我的项目就卡在那里等它解封。一个负责任的生产流程,不应该被某个网站的账号状态牵着走。

这三个瞬间之后,我开始认真思考一个问题:在整个短剧和广告制作链条里,到底哪些环节真的需要云端大模型,哪些环节其实本地软件早就够用了?

2. 把短剧广告的生产链路拆成七个环节,再决定哪些能落地本地

2.1 一条短剧从选题到发布要经过的七个环节

我做短剧和广告素材的标准化流程大致是:选题定位、脚本创作、分镜拆解、角色与画面生成、配音与音效、字幕与剪辑、封面与多尺寸导出。这七个环节环环相扣,任何一个环节拖后腿,整条流水线都会卡住。以前这些环节分散在三四个在线工具里,每个工具都需要独立的订阅或点数,而且环节之间靠手动搬运文件,效率极低。

我对这些环节做了个整理:

环节 核心任务 云端工具依赖度 本地化可行性
选题定位 热点挖掘、竞品拆解 中 本地大模型可辅助
脚本创作 大纲、台词、情绪节奏 较高 本地大模型可平替
分镜拆解 景别、运镜、时长分配 中 规则化+提示词
角色与画面 角色一致性、场景生成 高 ComfyUI完全可替代
配音与音效 TTS配音、BGM 中 本地TTS已够短剧
字幕与剪辑 识别、压制、拼接 中 Whisper+FFmpeg完美替代
封面与导出 多尺寸封面、参数调整 低 本地脚本批量完成

2.2 拆完之后,我发现真正离不开云端的只有少数几个点

把七个环节摊开之后,结论比我预想的要乐观得多:图像生成这一步,本地部署的 ComfyUI 配合合适的模型和 LoRA,出图质量完全可以追平主流付费工具,而且没有点数限制;配音环节,优秀开源 TTS 的声音自然度已经能满足短剧叙事需求,不像以前那样必须依赖在线语音合成;字幕和剪辑更不用说,Whisper 加 FFmpeg 的组合,本地跑起来又快又稳。

真正还需要保留云端入口的只剩两块:一是需要大模型理解能力的脚本创作和分镜拆解,二是需要顶级生成效果的部分视频合成。但这两块也可以通过精确控制调用频率把成本压缩到原来的十分之一。

我的思路变成了:本地软件负责高频、批量、确定性的生产动作;Claude Code 负责调度、组织、文本生成和需要灵活判断的中间环节;云端能力只在视频合成和少数复杂场景下按次调用,不再续任何包月套餐。这个结构调整完之后,我的工具开销直接断崖式下降。

3. Claude Code 的真正用武之地:当本地生产线的调度中枢,而不是聊天框

3.1 为什么我选 Claude Code 而不是网页版对话

一开始我也习惯打开网页版聊天窗口写脚本、生成提示词,然后复制粘贴到本地工具里执行。但很快发现这个模式有两个致命问题:一是上下文太短,写分镜的时候聊着聊着前面的人设细节就忘了;二是中间环节全靠手动搬运,图片生成完手动改名,配音生成完手动拖进剪辑软件,整天就在不同软件之间来回切换,效率极低。

Claude Code 完全不同。它是一个运行在终端里的编程代理,能直接读取项目目录的文件,能执行命令,能调用脚本,能在一次会话里完成“读取需求、生成脚本、调用本地服务、检查输出、迭代修正”的完整闭环。对我来说,它更像是流水线里的调度员,而不是打字员。

(关于环境准备:Claude Code 官方推荐通过 npm 全局安装,安装完之后在终端里执行 claude 命令进入交互界面。至于接入凭证,官方支持订阅账号和 API Key 两种方式,具体根据自己的实际情况选择。日常使用我主要用 VSCode 集成终端,这样左边写代码,右边跑指令,效率很高。)

3.2 我实际让它干的六类活

第一类是写分镜脚本。我只需要把短剧大纲和我对人设的要求告诉它,它会按景别、台词、时长、运镜方式输出一份结构化分镜表,直接存成 JSON 文件。

第二类是批量生成提示词。分镜表确定之后,我让它逐条输出 ComfyUI 的正面负面提示词,按场景分组写进文本文件,方便后续批量调用。

第三类是调用本地 ComfyUI 的 API。ComfyUI 是支持 API 调用的,我会让 Claude Code 直接读取提示词文件,然后帮我拼装请求,批量触发图像生成任务,再定期检查输出目录有没有新文件。

第四类是管理素材清单。生成完的图可能有上百张,命名混乱是常态。Claude Code 可以按场景、镜头号、角色类别批量整理文件结构,把素材自动归位到对应的项目目录。

第五类是拼 FFmpeg 命令。对我来说,FFmpeg 最常用的十几个参数还好,但一旦涉及多段拼接、加字幕、调音量、统一编码,命令行就变得很长。Claude Code 很擅长根据需求描述拼出正确的命令,我只需要审查后执行。

第六类是生成发布文案和封面标题。成片导出之后,不同平台需要的标题、摘要、话题标签都不一样。我给它一个统一的模板,它能基于成片内容批量产出多平台版本,我再微调一下就能发布。

3.3 关键配置:CLAUDE.md、权限模式、子任务隔离

用 Claude Code 做调度,最重要的不是让它“能干活”,而是让它“稳定地按我的方式干活”。我在每个项目根目录下放了一份 CLAUDE.md,把项目里所有目录的用途、常用脚本入口、素材命名规则、输出规范都写进去。这样每次会话开始,它先读取这个文件,相当于上岗前先看操作手册,不需要我反复唠叨项目背景。

权限模式我一般开到“自动允许只读命令,写操作需要确认”的档位。因为调度中枢会频繁读取素材目录、查看文件状态,但涉及删除、覆盖、移动文件时,我会保留确认环节。别嫌这一步麻烦,真出过一次把整个素材库按错规则批量改名的事故之后,你就知道这个确认有多重要了。

还有一个很重要的习惯:子任务隔离。同一个项目里,分镜生成、提示词输出、素材整理、FFmpeg 合成这些任务,我不会在同一个会话里一口气全部做完,而是拆成多个会话,或者用任务描述文本把每次任务边界划清楚。因为上下文越长,token 消耗越大,也越容易在长对话里出现记忆混乱。它每干完一类活,我就清理一次上下文,让每个子任务在干净的上下文中重新开始。这个习惯直接让我的 token 开销降下来不少。

4. 本地软件底盘选型:ComfyUI、Whisper、FFmpeg 各管哪一段

4.1 图像:ComfyUI + LoRA 的角色一致性方案

图像生成是本地化收益最明显的环节。付费工具的抽卡机制本质上是在一个黑盒里反复试,而 ComfyUI 把整个生成流程拆成了可视化工作流,我能精确控制每一个节点。

短剧和广告最头疼的是角色一致性:同一个角色,第一集长这样,第二集换了个发型,观众一眼就能看出来。我的解决方案是给每个核心角色单独训练一个轻量 LoRA。具体操作是先用参考图生成 15-20 张该角色的多角度定妆图,然后用这些图做 LoRA 训练,训练完成后在生成分镜时把 LoRA 固定加载到工作流里。这样无论什么场景、什么景别,角色脸部和服装都能保持一致。

批量出图的时候,我会把分镜描述整理成一个批次文件,通过 ComfyUI 的 API 接口触发队列。60 秒短剧的 30 多个分镜,本地跑完也就是一顿饭的功夫,没有积分上限,也没有排队限制。唯一要注意的是显存规划,我自己的配置是 12G 显存,批量出图时开 512x768 分辨率,再用放大模型走一遍高清修复,速度和质量的平衡点刚好。

4.2 语音:本地 TTS 与 Whisper 字幕组合

配音环节以前依赖在线语音合成,一条 60 秒短剧的台词字数不多,但往往要试好几个音色和语速版本才能定稿,每个试听版本都要计费。迁到本地之后,我用开源 TTS 方案加现成音色模型,一次性生成 3-5 个候选版本,本地试听,选满意的那版直接进入合成流程。

字幕环节我用的是 Whisper 的本地版本。成片剪好之后,把音频轨道直接丢给它识别,输出带时间轴的字幕文件。识别准确率对中文短剧来说,配合适当的提示词和温控参数,基本能用。生成出来的 SRT 文件我会让 Claude Code 做一次时间轴微调,把每句字幕的显示时长控制在 1.5 到 4 秒之间,避免字幕跳出太快或停留太久。

4.3 视频合成:FFmpeg 批量处理命令集

剪辑软件处理单条素材没问题,但短剧制作往往是批量的,同类镜头要统一加转场、统一调色、统一导出多尺寸版本。这时候 FFmpeg 就是最可靠的帮手。我最常跑的一套命令是把所有分镜片段按顺序拼接,同时压制字幕和统一编码格式:

ffmpeg -f concat -safe 0 -i list.txt -vf "subtitles=subtitle.srt:force_style='FontName=SimHei,FontSize=16,PrimaryColour=&HFFFFFF&'" -c:v libx264 -crf 18 -preset medium -c:a aac -b:a 192k -pix_fmt yuv420p output.mp4

多尺寸导出也很简单,一条命令同时输出横版 16:9 和竖版 9:16 两个版本。这样不管是发视频平台还是广告投放后台,我都可以直接上传,不需要每个平台单独剪辑一次。

4.4 非必须环节的省心方案

BGM 和封面这两个环节我没有完全本地化,因为版权问题比技术问题更敏感。BGM 我主要用免版权素材库,或者使用支持商用授权的一次性购买音效包;封面图用 ComfyUI 批量生成底图,再让 Claude Code 输出标题排版建议,我用在线设计工具微调套版。这两个环节每个月基本不产生持续成本,很多素材买一次可以反复用。

5. 从选题到成片,一条短剧在本地加 Claude Code 里的完整走带流程

5.1 从选题到分镜:一份给 Claude Code 的任务书

跳过“想选题”这种没什么统一路径的步骤,直接看实操环节。我需要把一段灵感变成分镜脚本时,会在项目目录下新建一个 prompt 文件,把需求写清楚,然后让 Claude Code 基于这份任务书开始工作。示例任务书长这样:

你是一名短剧分镜师。请基于以下故事梗概,生成一份分镜表:
故事:女主在雨夜捡到一只会说话的猫,猫告诉她三天后会发生一场车祸。
要求:
1. 全片总时长控制在 60 秒,约 15-20 个镜头
2. 每个镜头输出:镜头号、景别(近景/中景/特写/全景)、画面描述、台词、字幕文本、参考情绪
3. 角色信息:女主(28岁,长发,红色风衣)、猫(黑色,金瞳)
4. 输出格式:按镜头顺序输出为 JSON,保存到 storyboard.json

Claude Code 读完这份任务书之后,会生成一份结构化的分镜表。我检查一遍,把不合适的镜头用对话方式让它修改,确认后它直接把 JSON 写入项目目录。从这段开始,后面的所有环节都可以基于这个 JSON 自动推进。

5.2 批量出图到配音:本地排队执行

分镜表确认之后,我让 Claude Code 从 JSON 里读取出每个镜头描述,逐条转成 ComfyUI 的提示词,然后按批次写入提示词文件。每写一批,它就调用一次 ComfyUI 的 API 触发生成任务。我会让它每 10 秒检查一次输出目录,收集成功生成的图片,把失败的镜头单独列出来,重试或者调整提示词后再跑一轮。

配音的逻辑也一样。我从 JSON 中提取所有台词文本,按角色分组,让 Claude Code 生成配音脚本,再调用本地 TTS 批量合成。每段配音生成后,我会抽查听一两个镜头,确认语速和情绪没问题,再统一改名放到素材目录。整个过程里,我更像是一个质检员,Claude Code 是执行者。

5.3 剪辑合成与多尺寸导出:脚本化一次性完成

所有素材齐了之后,最后一步是合成。这一步我已经完全脚本化了:Claude Code 读取分镜 JSON,按照镜头顺序生成 concat 列表文件,调用本地 Whisper 从配音轨生成字幕,再用 FFmpeg 完成拼接、压制字幕、统一编码、多尺寸导出的全套动作。我只需要在终端里启动任务,然后去忙别的事,回来检查成片。

第一次跑通这套全自动流程的时候,看到终端里“output_vertical.mp4 已生成”的字样,我确实有点恍惚。以前这条流程需要三个人分别盯三个工具,现在一条命令全干完了。

5.4 时间账和成本账

走完整条流程之后,我对比了一下传统方式和现在方式的差距:

对比项 传统在线工具方式 本地+Claude Code方式
一条60秒短剧工具成本 约 200-300 元 约 5-20 元(仅视频合成按次调用)
出图等待时间 受排队影响,不稳定 本地排队,稳定可控
角色一致性 靠运气和提示词 LoRA 固定加载,稳定
批量生产能力 受点数限制 几乎无限(取决于硬件)
流程自动化程度 手动搬运文件 Claude Code 自动调度

6. 省token和排坑:六个月的实战里最有用的十条经验

6.1 让 Claude Code 少烧token的七个习惯

第一条习惯是写 CLAUDE.md。把项目结构、命名规范、常用命令都写清楚,让 Claude Code 每次会话开始就有完整上下文,这样可以大幅减少对话中反复解释项目背景的次数。

第二条习惯是拆会话。一类任务一个会话,干完就退出重开。不要让它连续干五六个小时不出新会话,长时间不重置上下文,token 消耗会呈现非线性上涨。

第三条习惯是大文件不直接贴进提示词。让它用读取命令去查看文件,而不是把整个文件内容复制到对话里。比如让它读 JSON,只需要说“读取 storyboard.json 并提取所有镜头描述”,它自己会用工具去读,只把关键内容带回上下文。

第四条习惯是用 /compact 压缩历史。Claude Code 有历史压缩命令,当对话变长,可以用它把之前的对话压缩成摘要,然后再继续,效果立竿见影。

第五条习惯是把重复性任务封装成脚本。同一类操作,让 Claude Code 写一次脚本,之后直接执行脚本,不要再让它每次重新教你一遍怎么拼命令。脚本化之后,调度成本大幅下降。

第六条习惯是设置权限边界。在配置里调整权限模式,让它在允许范围内直接执行,减少无意义的确认弹窗。确认弹窗本身不消耗太多 token,但过多的权限等待会拉长整条任务的执行时间,时间一长,你更容易忘记清理上下文。

第七条习惯是能用 Ollama 跑的任务先交给本地模型。像标题改写、敏感词替换、素材归类这类简单任务,我用 Ollama 拉一个本地的小模型先跑,跑不定了再交给 Claude Code。这样能把真正的复杂推理留给大模型,省下来的量很可观。

6.2 我踩过的四个坑和对应解法

第一个坑是上下文膨胀导致乱改文件。有一次我在一个很长的会话里让它批量整理素材,结果它因为上下文太长,把之前已经确认过的命名规则给忘了,把一批成片的文件名按错误规则重新整理了一遍。从此以后,凡是涉及改名和移动这类不可逆操作,我都在会话开头重新声明一遍规则,并让它先输出改名的清单让我确认,确认后再执行。

第二个坑是 ComfyUI 插件冲突导致出图异常。某个放大模型插件在一次更新后跟另外两个插件冲突,直接导致工作流报错,我排查了半天才发现是版本问题。现在我只保留必要的插件,并且把工作流锁定在稳定版本,不随便追新。本地软件的优势是可控,前提是你要自己管好版本。

第三个坑是 Whisper 字幕时间轴偏移。识别长音频时,如果模型在某个片段的置信度过低,会导致后面所有字幕的时间轴整体偏移。我的解决方法是拆分音频分段识别,每段控制在 30 秒以内,识别完之后再让 Claude Code 基于时间轴数据做一次校准。

第四个坑是 FFmpeg 编码参数不对导致上传后被平台二次压缩。之前我导出视频时没有指定 yuv420p 颜色空间,平台上播放时颜色发灰;后来又在编码级别和码率上走了弯路。现在我的默认参数固定为 H.264 编码、AAC 音频、yuv420p、CRF 18、音频 192k,这个组合在不同平台的兼容性最稳。

还有一个小提醒:如果你在团队账号下使用 Claude Code,系统提示“组织已禁用 Claude Code 的订阅访问”这类报错,基本是管理员把权限关了。处理方式就两条,要么找管理员开启权限,要么把接入方式切换成独立的 API Key 模式。别在配置上耗太久,多数情况下换成 API Key 模式就能继续干活。

6.3 断网能跑的部分和必须联网的部分

经过这半年折腾,我现在的工作流里,图像生成、配音合成、字幕识别、FFmpeg 剪辑这些高频动作全部可以在断网状态下完成。需要联网的只剩两处:一是 Claude Code 本身接入大模型要联网,二是最后视频合成阶段如果追求较高效果,会按次调用云端视频生成服务。这个结构让我的产出不完全依赖任何单一平台的服务器状态,对我来说才是真正把生产能力握在了自己手里。

最后再分享一个我个人的体会:AI 工具的价值不在于功能列表有多长,而在于你能不能把它们编排成一条稳定、可控、成本可预测的生产流程。Claude Code 这样的 agent 最大的意义,不是替你做某一个具体的活儿,而是把散落在不同软件里的能力拉通成一个整体。顺着这个方向继续走下去,我下一步准备把素材标签体系和历史项目复盘也交给它自动维护,让整条流水线在成本不涨的前提下慢慢长出“记忆”来。

Logo

火山引擎视频云技术社区,是面向 AI 音视频开发者的技术交流平台。这里汇聚源自抖音、豆包等亿级 DAU 产品的 RTC、直播、点播、AI 媒体处理、音视频互动技术,提供接入指南、最佳实践、性能调优、场景案例、Demo 代码、开源项目、白皮书和 API 文档。社区汇聚官方工程师与一线开发者,为 AI 视频通话、数字人、AI 视频处理等应用的开发与落地提供技术支持。

更多推荐