夯爆了!0成本做出一支AI短片:WorkBuddy + Agnes + FFmpeg 全免费流水线
coffee
很多人想做 AI 视频,一查价格就劝退:文生视频按秒计费,图生视频要买算力包,串起整套流程还得消耗对话积分。其实有一条完全免费的路——用 IMA 知识库写分镜、用开源的 Agnes 模型出图出片、用本地 ffmpeg 做拼接烧录。全程不花一分钱,也不动 WorkBuddy 的积分。
下面用一支 25 秒的「城市清晨咖啡」治愈系短片做完整复盘。
一、为什么是这条流水线
痛点很直接:主流视频模型要么收费、要么限免额度少;把生成、剪辑、加字幕拆到不同平台,时间和钱都双倍消耗。
这条线的核心优势:
① 分镜脚本交给 IMA 知识库,用自然语言就能拿到结构化镜头表,不用自己硬憋提示词。
② 图像与视频都走 Agnes 自有 API(agnes-image-2.1-flash / agnes-video-v2.0),当前均免费,且是直连调用、不经过对话计费。
③ 最后的拼接、加字幕用本地 ffmpeg,开源免费,离线也能跑。
二、工具清单与成本
| 工具 | 作用 | 费用 |
|---|---|---|
| IMA 知识库 | 生成 / 扩写分镜脚本 | 免费 |
| Agnes 文生图(agnes-image-2.1-flash) | 生成人物、场景静帧 | 当前 $0/张 |
| Agnes 图生视频(agnes-video-v2.0) | 把静帧动起来成片段 | 免费额度 $0/秒 |
| FFmpeg | 拼接片段、烧录字幕 | 开源免费 |
关键点:Agnes 两个模型都是通过 HTTP API 直接调用(文档里给的是 curl 示例),不走 WorkBuddy 的对话通道,所以积分是 0。你也可以在 WorkBuddy 里直接加载包装好的 skill(agnes-image-gen、agnes-video)来调用,底层同样是这套免费 API。
三、整体流水线一览
① IMA 知识库:产出分镜脚本(镜头描述 + 主体设定 + 风格)。
② Agnes 文生图:每个镜头先出一张高质量静帧(人物 / 场景)。
③ Agnes 图生视频:把这张静帧喂进去,生成 5 秒左右的运动片段。
④ FFmpeg:把所有片段拼成一条,再烧录字幕,导出成片。
四、第一步:用 IMA 知识库写分镜

打开 IMA 知识库,直接给一句话就能让它帮你从零设计:
需要帮我写一个 AI 视频分镜脚本,人物、主体、风格、内容全由你来设定。
如果你已经有方向,把思路一起抛给它,让它扩写、补全细节会更贴需求。例如:
我想做一支 25 秒的治愈系咖啡品牌短片,节奏舒缓、暖色调,你帮我扩写成 5 个镜头,每个镜头给出画面描述和运镜说明。
IMA 会返回一张结构化的镜头表,典型字段包括:镜头序号、画面描述、主体/人物、运镜、时长。下面这支短片就是基于这样的输出整理而来(示例项目:城市清晨咖啡):
镜头 1(5s):清晨城市天台俯瞰全景,薄雾暖光,镜头缓慢横移。
镜头 2(5s):咖啡师在木质吧台后整理器具,蒸汽升起。
镜头 3(5s):手冲壶细水流落入分享壶,微距特写。
镜头 4(5s):顾客临窗接过咖啡,微笑,窗外光斑。
镜头 5(5s):店铺 logo 浮现于木墙,镜头缓推,叠加标语「早安,一杯就好」。
把分镜沉淀进知识库,打通到 WorkBuddy
在 IMA 的对话里生成分镜后,记得把整理好的分镜大纲(镜头序号、画面描述、主体、运镜、时长)「添加到知识库」。这一步是整个链路从"写脚本"过渡到"做视频"的衔接点,建议不要省略:
① 在 IMA 对话中,把最终版分镜大纲保存进对应的知识库笔记本,而不只是停留在对话流里。
② 切换到 WorkBuddy,连接 IMA 知识库连接器,选中该笔记本,即可直接读取里面的分镜文案。
③ WorkBuddy 拿到这些镜头描述后,就能自动驱动后续的 Agnes 出图、出片流程,不必再手动搬运文字。
这样分镜被沉淀为可复用的结构化素材,"写脚本"和"做视频"可以拆成两段独立工作流;日后想重做或微调版本,也直接读库即可。
五、第二步:用 Agnes 文生图出静帧
每个镜头先出一张「关键帧」图片。Agnes 文生图三必填:model + prompt + size,建议用档位 + 宽高比拿可预期尺寸(横版用 2K + 16:9)。
提示词结构:主体 + 场景 + 风格 + 光照 + 构图 + 质量要求。
以镜头 2 为例,prompt 可写成:
一位年轻咖啡师站在木质中岛吧台后方,手持量豆勺,暖光环境,浅景深,背景虚化的咖啡器具,温馨治愈氛围,电影级写实
直接用 skill(agnes-image-gen)或 curl 调用:
curl -s -X POST "https://apihub.agnes-ai.com/v1/images/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AGNES_API_KEY" \
-d '{
"model": "agnes-image-2.1-flash",
"prompt": "一位年轻咖啡师站在木质中岛吧台后方,手持量豆勺,暖光环境,浅景深,背景虚化的咖啡器具,温馨治愈氛围,电影级写实",
"size": "2K",
"ratio": "16:9",
"extra_body": { "response_format": "url" }
}'
返回里取 data[0].url 就是图片地址。图片 URL 来自对象存储、有时效,拿到后尽快下载或立刻用于下一步。国内网络若主端点(.com)不通,Agnes 图像接口会自动切到国内容灾端点 apihub.agnes-ai.cn,无需手动改。
六、第三步:用 Agnes 图生视频把静帧动起来
把上一步的图片 URL 直接喂给视频接口做图生视频(img2vid)。参数要点:
① num_frames 必须满足 8n+1 且 ≤ 441,常用 121(≈5 秒 @24fps)。
② image 传图片 URL(用刚生成的、未过期的那张)。
③ 描述「画面里什么在动」,静态元素保持稳定。
curl https://apihub.agnes-ai.com/v1/videos \
-H "Authorization: Bearer $AGNES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "agnes-video-v2.0",
"prompt": "咖啡师轻微整理吧台器具,蒸汽缓缓升起,身体自然微动,暖光,浅景深,电影感",
"image": "https://上一步拿到的图片URL",
"height": 720,
"width": 1280,
"num_frames": 121,
"frame_rate": 24
}'
建任务后轮询 GET /v1/videos/{task_id},status 变 completed 即可取视频地址。
两个实测坑,必须记牢:
① 视频 URL 真实字段是 metadata.url(查询返回 JSON 顶层)。旧文档和个别脚本仍写 remixed_from_video_id,那个字段已失效,取不到就去找 metadata.url。
② 视频队列经常满,建任务会返回 503 video_queue_full。别慌,退避 8 秒重试即可,多试几次就能排上。按实测,单条 5 秒片段从建任务到出片约 4 分钟(含排队),成片约 1.2MB。
想省事就用包装好的 agnes-video skill,它封装了建任务、轮询、下载;但建议确认其脚本取的是 metadata.url 而不是旧字段,否则拿不到链接。
七、第四步:用 FFmpeg 拼接 + 烧录字幕
所有分镜用相同分辨率(如 1280x720)、相同帧率、相同编码生成,就能用 concat 快速拼接,几乎不耗时:
# 1) 准备片段清单 list.txt
# file 'shots/shot1.mp4'
# file 'shots/shot2.mp4'
# ...
# 2) 拼接(同参可直接 -c copy)
ffmpeg -f concat -safe 0 -i list.txt -c copy merged.mp4
若各片段参数不一致(分辨率/编码不同),改为重新编码以保证兼容:
ffmpeg -f concat -safe 0 -i list.txt -c:v libx264 -c:a aac final.mp4
加字幕(先准备 subs.srt),用 subtitles 滤镜烧录:
ffmpeg -i merged.mp4 -vf "subtitles=subs.srt" -c:a copy final.mp4
中文显示注意两点:系统要有中文字体,否则用 force_style='FontName=Microsoft YaHei,FontSize=24' 指定;若片段本身没有音轨,把 -c:a copy 换成 -an,否则会因无音频流报错。
八、案例复盘:25 秒「城市清晨咖啡」
5 个镜头、每个 121 帧 @24fps(≈5 秒),合计约 25 秒。每段用「同一张 Agnes 静帧 + 图生视频」产出,最后 ffmpeg 拼接并烧录一句标语。
| 镜头 | 画面 | 图生视频 prompt 要点 | 时长 |
|---|---|---|---|
| 1 | 天台日出全景 | 镜头缓慢横移,云层流动,城市苏醒 | 5s |
| 2 | 咖啡师理器 | 蒸汽升起,身体微动,暖光浅景深 | 5s |
| 3 | 手冲水流 | 水流持续,涟漪,热气上升,微距 | 5s |
| 4 | 顾客接咖啡 | 抬杯微笑,窗外光斑移动 | 5s |
| 5 | logo 浮现 | 镜头缓推,微光,叠标语 | 5s |
资源消耗:图像 5 张 + 视频 5 段,全部走免费额度;WorkBuddy 积分 0;ffmpeg 本地运行 0 成本。整条链路从脚本到成片,可一键交给 WorkBuddy 串起来跑,人在旁边等结果即可。
九、最大短板:慢,用时间换钱
这套方案唯一的硬伤就是速度。免费不等于快,这是必须 upfront 说清楚的前提。
实测节奏:单个 5 秒片段从建任务到出片约 4 分钟(已含排队);遇到视频队列满、需要多次 503 重试时,单条可能拉到 5–8 分钟。
换算到成片时长:1 分钟视频约需 12 个 5 秒片段,串行生成就是 45–60 分钟;1 分多钟的视频跑半个多小时是常态。图像生成本身只花几秒到十几秒,瓶颈完全卡在视频队列。
为什么会慢:Agnes 视频是异步队列式,免费额度下算力排队,创建任务后要在 queued / in_progress 之间轮询等待,不是即点即得。
缓解办法(只能减不能免):
① 控制总时长:30 秒内的短片最舒服,超过 1 分钟建议分批次挂后台跑。
② 片段并行生成:把多个镜头的视频任务同时提交,能压缩墙钟时间;但并发别太高,否则容易触发限流或 503,反而更慢。
③ 静帧可复用:同一张图只生成一次视频,别反复重跑。
④ 当后台任务:提交后不用盯着,定时回来看结果即可,把等待时间用来写文案、准备字幕。
结论很直接:这条线的性价比公式是「0 成本 + 慢」,适合不赶时间的日常内容;真要急出片,要么接受排队,要么另找付费即时通道。
十、常见坑位速查
① 视频链接取 metadata.url,别用已过时的 remixed_from_video_id。
② 建任务 503 / video_queue_full:退避重试,不是失败。
③ num_frames 必须 8n+1(81/121/161/241/281/321/361/401/441),超 441 报错。
④ 图生视频的 image 要公网可访问的 URL;Agnes 图片 URL 有时效,生成后立刻用。
⑤ ffmpeg 拼接要求各片段参数一致;不一致就重新编码(libx264 + aac)。
⑥ 片段无音轨时烧录字幕用 -an,避免无音频流报错。
⑦ 国际端点(.com)不通时,图像接口可切 .cn;视频接口同平台,也可把 base 换成 .cn 重试。
十一、把整套流程自动化
上面每一步都能用脚本串起来:循环每个镜头 → 调 Agnes 文生图拿 URL → 立刻用该 URL 调图生视频 → 轮询下载 mp4 → 最后 ffmpeg 拼接。我已把这条流水线写成一个零依赖的 Python 脚本(agnes_pipeline.py,纯标准库 + 本地 ffmpeg),分镜表直接写在 SHOTS 里,改 prompt 就能复用。设置 AGNES_API_KEY 后跑一条命令,即可坐等成片。当然如果你不想配置 AGNES_API_KEY,可以直接使用 agnes-image-gen 的 skill 来直接实现。
免费做 AI 视频,门槛从来不在钱,在于把对的工具按顺序接起来。 这套组合最舒服的地方是:创作决策交给 IMA,出图出片交给免费的开源模型,剪辑交给本地的 ffmpeg——每一环都不绑架你的预算。
更多推荐



所有评论(0)