在这个AI时代,制作一条爆款短视频,最核心的障碍是什么?
是没钱买设备?是没时间学剪辑?还是没有好的创意?
都不是。
真正阻碍你的是——你还在“做”视频,而别人已经在“生成”视频了。
当你还在为“关键帧”和“转场”抓狂时,我只靠一个N8N工作流,已经一键“复刻”了100个爆款短视频。
自动生成短视频、一键成片,告别剪辑烦恼!今天,我就把这条爆款短视频工作流分享给你!
喜欢搭建 N8N 工作流的你,可千万不要错过~
一、工作流概览
在设计工作流时,我考虑从免费、收费两个维度,支持对图片和视频片段进行剪辑剪辑。

因此,N8N 的工作流搭建框架如下图所示:
- 根据用户输入的视频信息,由大模型生成短视频文案,拆解脚本。
- 支持生成免费短视频(本地生成)。
- 支持调用大模型生成AI 图片、AI 视频。
- 支持本地自动剪辑、配音、字幕。

这条工作流框架的灵活性很高,可塑性、可扩展性很好。接下来,一起来看看各个部分的搭建。
二、准备工作
我的 N8N 本地部署在 MACBook Pro 上,对于将 N8N 部署在云服务器的场景也是使用的。
主要需要准备两样工具:
- MoneyPrinterTurbo(https://github.com/totothink/MoneyPrinterTurbo) 部署在本地,只需要提供一个视频的主题或关键词,就可以全自动生成视频文案、视频素材、视频字幕、背景音乐、配音,然后合成一个高清的短视频。
- Replicate(https://replicate.com/) 这是一个大模型 API 聚合平台(国内可直接访问和调用 API)。它包含的大模型版本很全,价格与官网持平,可以方便地对比效果。但更主要的是它的 API 调用非常简单,完美解决了自己适配各个大模型 API 的痛楚。
用过可灵、即梦 API 的朋友们可还记得,光是 API 中的签名生成,就能让鬓角多出几根白发~
同时,有了这个聚合站,我还可以随意快速地调整大模型,直到找到自己喜欢的效果,非常方便。


(一)MoneyPrinterTurbo
MoneyPrinterTurbo是一款开源的短视频生成工具,部署在本地。部署的过程不复杂,我以 MAC 为例(Windows上的步骤差不多)演示。
在本地部署 N8N 时,会安装 docker desktop 软件。本节MoneyPrinterTurbo也是以 docker 方式运行,电脑上需要安装好docker desktop,安装过程不赘述了。
Step 1:下载项目文件
1、在电脑上新建一个文件夹,用于存放项目文件,名字自定义,比如叫做Money;
2、打开电脑终端,进入 Money 文件夹,执行下列命令,等待下载完成。
git clone https://github.com/harry0703/MoneyPrinterTurbo.git
如果 git clone 的方式下载较慢,也可以进入网站:https://github.com/harry0703/MoneyPrinterTurbo,下载项目文件,见下图。

Step 2:修改配置文件
1、将项目文件中的config.example.toml复制一份,并且重命名为config.toml。

2、使用文本工具打开docker-compose.yml文件,进行编辑。
下面左图是默认内容,右图是修改后的内容。


MoneyPrinterTurbo以 docker 方式运行,我们无法直接访问 docker 中的文件,因此这段配置文件的作用是将本地目录与 MoneyPrinterTurbo 目录映射起来。
下面这行配置,将 N8N 的数据目录(n8ndata)与MoneyPrinterTurbo生成视频的目录映射,从而让MoneyPrinterTurbo 能够顺利在 N8N 的 data 目录读取或者写入视频文件。
x-common-volumes: &common-volumes
# 核心应用代码
- ./app:/MoneyPrinterTurbo/app
- ./webui:/MoneyPrinterTurbo/webui
- ./main.py:/MoneyPrinterTurbo/main.py
# 配置文件
- ./config.toml:/MoneyPrinterTurbo/config.toml
# 资源文件(字体、音乐)
- ./resource:/MoneyPrinterTurbo/resource
# 测试和文档(可选,如果不需要可以删除)
- ./test:/MoneyPrinterTurbo/test
- ./docs:/MoneyPrinterTurbo/docs
# 关键:将n8n数据目录映射到视频存储目录
- /Users/deanyang/Desktop/n8nAI/n8ndata:/MoneyPrinterTurbo/storage/local_videos
Step 3:安装 MoneyPrinterTurbo。
1、打开终端,进入MoneyPrintTurbo项目所在的目录。以我电脑为例:
cd /Users/deanyang/Desktop/study/MoneyPrinterTurbo
2、执行命令,自动安装
docker compose up -d
这个过程会加载必需文件,下载的时间会长一些,静待它自己安装完成即可。
在安装时,我遇到了一个错误:
“ERROR [webui internal] load metadata for docker.io/library/python:3.11-slim-bullseye”
在询问了 claude 后找到了解决方案:
docker pull docker.m.daocloud.io/library/python:3.11-slim-bullseye docker tag docker.m.daocloud.io/library/python:3.11-slim-bullseye python:3.11-slim-bullseye
docker compose up -d
3、安装完成后,打开 docker desktop — Containers,可以看到MoneyPrinterTurbo的容器,运行正常。

Step 4:Web 端配置。
1、进入 Web 管理界面:http://127.0.0.1:8501/
2、选择大模型
我选择 DeepSeek 或者 Gemini。大家可以按需选择,填写好大模型对应的 API Key 以及模型名称。

3、配置视频源
只需要填写 Pexels API Key 即可。点击“点击获取”,注册 Pexels,即可获取API Key。
这里不赘述注册过程,如遇疑问,可以在评论区留言:)

4、音频设置(配音)
TTS 服务器选择硅基流动(SiliconFlow TTS),免费,音频效果较好。按照提示词,注册/登录硅基流动,创建 API Key,填写好。如下图所示:

视频设置和字幕设置,大家按需调整就好。
Step 5: 了解 API 接口
打开 API doc(http://localhost:8080/docs),主要用到“生成短视频”、“获取任务运行状态”这两个接口。

点开其中一个接口,可以看到具体的参数例子,如下图所示。如果想了解具体字段的取值情况,可以点击「Schema」。


Step6:重启MoneyPrinterTurbo的服务
修改好配置后,打开终端,进入MoneyPrinterTurbo所在目录,执行:
docker compose up -ddocker compose restart
这样,在 Web 端修改的配置,在API调用时可以同步生效。
(二)Replicate
Replicate 是国外一个 AI 大模型API 聚合站,是我最近发现的一个小宝藏。模型很全,实时更新,还能看到每个模型的调用次数(我猜测用的多效果就好~)。价格上,与各个官网基本持平。我们可以随意切换各种模型,非常方便。
Step 1:注册并登录 Replicate
1、进入网站(https://replicate.com/),注册和登录。
可以通过 github/谷歌账号登录网站

Step 2:基础配置
1、创建 API Token 进入网址:https://replicate.com/account/api-tokens,创建一个 token,记录好留用。

2、添加支付方式。
进入网址:https://replicate.com/account/billing,点击 Manage billing, 添加信用卡。信用卡可以直接使用国内银联信用卡,添加和支付非常容易。

添加好信用卡,点击「Add credit」,购买额度即可。

Step 3:选择大模型
在网站的右上角,找到「Explore」,可以找到图片模型、视频模型、语言模型。

我们以视频模型为例,找到“Google veo-3”,点击进入详情页,可以看到调用的次数、价格,以及设置的参数。
在 JSON 页卡,可以得到请求体,即,接口请求的具体参数;在 HTTP 页卡,可以找到 API 的请求地址。


我们也可以在 Examples 查看案例效果。其他模型也是一样的,都是这样找到参数和请求地址,将用在N8N 的 HTTP 节点调用中。
三、搭建工作流
(一)用户输入部分
Step 1:设置启动节点
选择「On form submission」节点,它会生成一个用户输入的交互页面,适合输入视频的信息。

Step 2:设置表单内容
如下图所示:
- Field Name:选项名称
- Element Type:选项类型,可以是文本、下拉列表、checkbox、password 等,很全面
- Placeholder:文本框的提示文字
- Option:下拉列表的选项
- ……

设置好之后,运行这个节点,会弹出页面,如下图所示。

我预设的选项如下所示。大家可以根据自己对视频的理解,增减选项。
素材来源:
- 免费素材
- AI生成
AI 生成素材类型:
- 图片
- 视频
视频时长:
- 10 秒
- 20 秒
- 30 秒
- 60 秒
情绪目标:
- 共鸣/感动(适合鸡汤、故事类)
- 惊讶/震撼(适合冷知识、反常识)
- 好奇/神秘(特殊视角、未知场景)
- 向往/憧憬(美好画面、理想场景)
- 治愈/放松(适合风景、慢生活)
- 开心/爽朗
- 忧郁/孤单
- 由大模型最佳匹配
价值定位:
- 有共鸣(金句+氛围画面)
- 有趣(猎奇画面、视觉冲击)
- 有用(知识+图示化画面)
- 由大模型最佳匹配
画面类型:
- 自然风景系(雨、雪、海、山、森林、日落)
- 都市场景系(街道、咖啡馆、窗景、夜景)
- 静物特写系(书、咖啡、花、手写字)
- 抽象意境系(光影、粒子、色彩、水墨)
- 混合拼接(多种画面快速切换)
视觉风格:
- 电影感(高对比、暗调)
- 小清新(明亮、柔和、暖色调)
- 赛博朋克(霓虹、未来感、冷色调)
- 水墨国风(黑白、写意、留白)
- 自然纪实(真实、不过度调色)
- 由大模型最佳匹配
开头钩子:
- 金句开场,比如:"在这个..."
- 提问式,比如:"你有没有..."
- 悬念式,比如:"很少有人知道..."
- 由大模型匹配最佳
结尾引导:
- 引导评论,比如:"你呢?"、"你遇到过吗?"
- 引导点赞,比如:"说得对点个赞"
- 制造悬念,比如:"下期讲..."
- 金句收尾
- 无明确引导(自然结束)
- 由大模型匹配最佳
在选择“免费”制作视频时,只需要填写视频主题、视频时长即可。选择“AI生成”制作视频,就可以把上面这些选项都选上。
(二)生成短视频文案
在这一步,我根据上一步得到的视频要求,调用大模型生成短视频文案。
Step 1:添加节点。
添加 Basic LLM Chain 节点。

Step 2:添加大语言模型
添加 Model,我使用的是 Gemini 2.5 Flash。大家用 DeepSeek 完全可以。
如果对鉴权方法有疑问的话,可以在评论区留言,我可以专门出一期“常用的 N8N 工具鉴权集合”。

Step 3:设置提示词。
1、用户提示词
将视频要求全部输入。
- 本次视频的主题为:
{{ $('On form submission').item.json['视频主题'] }}
- 视频时长:{{ $json['视频时长'] }}
- 目标受众:{{ $json['目标受众'] }}
- 情绪目标:{{ $json['情绪目标'] }}
- 价值定位:{{ $json['价值定位'] }}
- 画面类型:{{ $json['画面类型'] }}
- 视觉风格:{{ $json['视觉风格'] }}
- 开头钩子类型:{{ $json['开头钩子类型'] }}
- 结尾设计:{{ $json['结尾设计'] }}
2、系统提示词
在这一步,生成两份内容,一份是短视频文案,一份是关键词(用于提高素材与主题相关性)
# Role
你是爆款短视频文案创作专家,擅长创作高完播率、强互动的短视频旁白文案。直接输出最终文案,无需解释。 ## 任务 1. 认真理解用户输入的视频要求(参数); 2. 根据用户提供的视频要求,直接生成: - 高完播率的短视频旁白文案。 - 用于素材搜索和AI视频生成的精准关键词。 ## 文案创作规则 1. **字数控制**:根据时长计算文案字数 - 每秒约4-5个汉字(正常语速) - 例如:20秒视频 = 80-100字 2. **开头必须抓人**(前3秒原则) - 金句开场:直接抛出有冲击力的观点或感受 - 提问式:用疑问句引发好奇或共鸣 - 悬念式:制造信息缺口,让人想看答案 3. **情绪有起伏**(中间段) - 避免平铺直叙,要有对比、递进或反转 - 根据「情绪目标」选择语言节奏: * 治愈 → 舒缓、温暖、留白 * 震撼 → 有力、短句、递进 * 好奇 → 悬念、揭秘、层层推进 * 向往 → 画面感、想象、美好 4. **结尾要有行动** - 引导评论:抛出问题,例如"你呢?""你遇到过吗?" - 引导点赞:认同式,例如"说得对就点个赞" - 金句收尾:升华主题的短句 - 制造悬念:留钩子,例如"答案下期揭晓" 5. **语言要求** - 口语化,像对朋友说话,不要书面语 - 短句为主,节奏感强,适合朗读 - 根据「目标受众」调整用词: * 职场人群 → 有共鸣的职场痛点 * 年轻人 → 网络用语、潮流表达 * 中年人群 → 人生感悟、生活智慧 - 根据「价值定位」确定内容: * 有共鸣 → 说出心声,引发认同 * 有趣 → 新奇视角,有意思 * 有用 → 给方法、讲道理、传知识 ## 关键词生成规则 ### 结构(严格8-10个词) 1. **核心主体(2个)** - 视频的主角物体/人物 - 例:秋雨场景 → 雨滴、窗户 2. **动作场景(3个)** - 正在发生的可拍摄动作 - 例:秋雨 → 雨滴滑落、水珠溅起、雨打芭蕉 - ✗ 禁用:感悟、力量、挑战(抽象词) 3. **环境氛围(2个)** - 具体的时间/地点/天气 - 例:傍晚街道、灰色天空、咖啡厅窗前 4. **视觉特征(1-2个)** - 镜头语言或画面特点 - 例:特写镜头、慢动作、暖色调 5. **情绪词(仅1个)** - 用于AI理解情绪,不用于搜索 - 例:静谧、热血、温暖 ### 反例警告 - ✗ 自由、挑战、梦想、力量、肾上腺素 - ✗ 任何无法对应到具体画面的词 ## 输出要求 直接输出一段完整的文案以及对应的关键词,文案流畅连贯,可以直接用作视频旁白。不要分段,不要加标注。 ## 示例 **输入:** 主题:秋雨,我爱的静谧季节 | 时长:20秒 | 受众:都市白领 | 情绪:治愈 | 价值:有共鸣 | 开头:金句 | 结尾:引导评论 **输出:** 文案:在这个焦虑的时代,我只想听一场秋雨。没有社交,没有消息提示,只有雨声,和慢下来的心跳。秋雨是这个季节给我们的温柔提醒,告诉我们,慢一点,也没关系。你也喜欢下雨天吗? 关键词:秋雨, 静谧, 治愈, 情感, 共鸣, 都市, 压力, 放松 --- **输入:** 主题:坚持的力量 | 时长:15秒 | 受众:职场新人 | 情绪:震撼 | 价值:有用 | 开头:悬念式 | 结尾:金句收尾 **输出:** 文案:你知道什么能力最值钱吗?不是聪明,不是学历,是坚持。别人放弃的时候,你再多走一步,就赢了。记住,所有的牛逼,都是用笨功夫堆出来的。 关键词:运动员训练, 山峰攀登, 晨跑流汗, 攀爬前行, 伏案学习, 清晨操场, 陡峭山路, 逆光剪影, 坚韧

3、输出格式
在 Output Parser 中填入下面的 JSON:
{
"text": "文案内容",
"keywords": "keyword1,keyword2,keyword3"
}
(三)免费生成短视频
上一步生成短视频文案和关键词后,经过 IF 节点判断,进入「免费生成短视频」的流程。

在这一步,通过 HTTP 节点调用本地moneyprinterturbo 的生成视频接口,传入短视频文案和关键词,moneyprinterturbo会做如下事情:
- 通过关键词,在 Pexels 上寻找相关视频片段,下载留用;
- 裁剪视频片段,满足每段视频长度、视频尺寸的要求;
- 通过短视频文案,生成字幕、配音,匹配视频片段
- 合成短视频。
从 docker desktop 的日志中,也可以清楚看到每个步骤。

所以,关键词的准确性,直接影响视频片段的相关性。关键词在上一步生成,可以关注我写的提示词。
Step 1:本地生成视频节点

添加 HTTP 节点,配置如下:
- 请求类型:POST 请求
- url: http://host.docker.internal:8080/api/v1/videos
- 开启“Send Body”,JSON 如下:
{
"video_subject": "{{ $('On form submission').item.json['视频主题'] }}",
"video_script": "{{ $json.output.text }}",
"video_terms": "{{ $json.output.keywords }}",
"video_aspect": "9:16",
"video_concat_mode": "sequential",
"video_transition_mode": "Shuffle",
"video_clip_duration": 3,
"video_count": 1,
"video_source": "pexels",
"video_materials": null,
"video_language": "",
"voice_name": "siliconflow:FunAudioLLM/CosyVoice2-0.5B:alex-Male",
"voice_volume": 1.0,
"voice_rate": 0.9,
"bgm_type": "random",
"bgm_file": "",
"bgm_volume": 0.2,
"subtitle_enabled": true,
"subtitle_position": "bottom",
"custom_position": 70.0,
"font_name": "MicrosoftYaHeiBold.ttc",
"text_fore_color": "#FFFFFF",
"text_background_color": true,
"font_size": 50,
"stroke_color": "#000000",
"stroke_width": 1.0,
"n_threads": 2,
"paragraph_number": 1
}
其中:
video_subject:视频主题。确定视频主基调。
video_script:短视频文案。moneyprinterturbo 将文案拆解为一段一段,匹配视频片段的时长。
video_terms:关键词。moneyprinterturbo将关键词通过 Pexels 接口,召回相关性较强的视频片段。
video_concat_mode:视频片段拼接方式。sequential表示顺序拼接,random 表示随机拼接。
video_transition_mode:视频片段的转场方式。Shuffle表示随机选择。
voice_name:配音名称。
这些字段与moneyprinterturbo的 Web 页面配置意义相同。

Step 2:查询视频生成的进度。
通过调用本地moneyprinterturbo 的查询任务进度接口,确定短视频是否生成完成。
1、添加 wait 节点
我设置停顿 30 秒。
2、添加 HTTP 节点。
url:http://host.docker.internal:8080/api/v1/tasks/{{ $json.data.task_id }}
其中,{{ $json.data.task_id }}是上一节点(Step 1 生成视频)返回的任务 id。
3、添加 IF 节点。
判断视频生成的进度,如果进度未达到 100%,继续等待直至视频生成成功。

Step 3:下载视频
添加一个 HTTP 节点,url 设置为上一个节点输出的 video字段,即:{{ $json.data.videos[0] }}。

Step 4:将视频写入磁盘。
添加「Read/Write File From Disk」节点,设置如下图,就可以把视频保存在本地了。
其中,./n8ndata/ 是我部署 N8N 时设置的数据存储文件夹,大家修改为自己的路径即可。

这样,免费生成短视频的流程就做好了,合成好的视频已经保存在n8ndata 目录中。
(四)拆解短视频脚本
接下来,我们开始介绍通过 AI 生成视频片段,合成短视频的工作流。
这一过程,拆解短视频脚本很关键,它决定了视频质量和贴合度。

Step 1:新建文件夹。
新建一个文件夹,用于存放视频素材。文件夹的位置要放在 N8N 和 moneyprinterturbo 都能够读取到的位置。根据上面「准备工作」小节的设置,我将文件夹设置在“n8ndata”目录中。
添加「Execute Command」节点,填写创建文件夹的命令,如下图所示。其中,文件夹的名字会频繁用到,因此前后要保持一致。我这里为了演示直接取了视频主题的名称,更好的做法,是在工作流开始时利用「Edit Field」节点设置全局变量。

Step 2:生成短视频脚本。
添加一个 AI Agent 节点,添加好大模型。
设置 AI Agent:
1、用户提示词,包含生成 AI 视频片段所需的信息。
- 短视频文本: {{ $('Basic LLM Chain').item.json.output.text }}
- 关键词:{{ $('Basic LLM Chain').item.json.output.keywords }}
- 本次视频的主题为:
{{ $('On form submission').item.json['视频主题'] }}
- 视频时长:{{ $('On form submission').item.json['视频时长'] }}左右
- 目标受众:{{ $('On form submission').item.json['目标受众'] }}
- 情绪目标:{{ $('On form submission').item.json['情绪目标'] }}
- 价值定位:{{ $('On form submission').item.json['价值定位'] }}
- 画面类型:{{ $('On form submission').item.json['画面类型'] }}
- 视觉风格:{{ $('On form submission').item.json['视觉风格'] }}
- 开头钩子类型:{{ $('On form submission').item.json['开头钩子类型'] }}
- 结尾设计:{{ $('On form submission').item.json['结尾设计'] }}
2、系统提示词,拆解出短视频脚本
# Role
你是爆款短视频脚本专家,擅长将文案拆解成高完播率的视频脚本。直接输出可执行的脚本,无需解释。 ## 任务 根据以上规则,将文案拆解为多个场景,每个场景包含时长、旁白、画面描述。 ## 核心规则 **1. 场景规划** - 快速分析用户提供的视频核心信息 - 根据视频总时长自动计算场景数量: - 5-8秒视频:2-3个场景 - 9-15秒视频:3-4个场景 - 16-30秒视频:4-6个场景 - 30秒以上:每5-7秒一个场景 - 将文案拆分为对应数量的关键点 **2. 文案拆分** 将完整文案按场景数量均匀拆分,每个场景分配相应时长的文案内容。保持语义完整,关键信息点与画面对应。 **3. 差异化处理** - 第一个场景:必须体现「开头钩子」的设计,画面要有冲击力 - 中间场景:画面要有节奏变化(对比、递进、视角切换),呼应「情绪目标」 - 最后场景:画面要呼应「结尾动作」,留下记忆点 **4. 画面描述规则** **当素材类型为「图片」时:** 用静态构图思维,描述一帧画面: - 必须包含:[视觉风格] + [画面类型的具体场景] + [主体与细节] + [构图方式] + [光线与色调] + [氛围感] - 示例:电影感风格,秋天雨后的街道,特写镜头聚焦地面水洼中倒映的金色树叶,浅景深虚化背景,暖色调夕阳光线,宁静治愈的氛围 **当素材类型为「视频」时:** 用动态镜头思维,描述运动过程: - 必须包含:[视觉风格] + [画面类型的具体场景] + [镜头运动方式(对应「镜头语言」)] + [画面中的动态元素] + [光线与色调] + [氛围感] - 示例:电影感风格,秋天雨中的森林,镜头缓慢推进穿过树木,雨滴在光线中闪烁飘落,金黄色树叶随风摇曳,暖色调柔和光线,宁静治愈的氛围 **5. 情绪与画面的匹配** 根据「情绪目标」选择画面元素: - 治愈:柔和光线、温暖色调、舒缓动作、留白构图 - 震撼:大场景、强对比、快速动作、广角镜头 - 好奇:特殊视角、未知场景、层次递进、悬念感 - 向往:美好画面、理想场景、明亮色调、舒展构图 **6. 禁止描述** - 不要出现真人、人脸、表情、对话等需要演员的内容 - 不要描述文字展示、品牌logo等视频大模型难以精确生成的内容 - 避免过于复杂的多主体互动场景 **7. 风格统一** 所有场景的画面描述必须保持「视觉风格」一致,即使「画面类型=混合拼接」也要在风格层面统一。 **8. 语言** 画面描述的提示词,请使用英文表述。
3、Output Parser,设置输出格式。video_script是列表,方便遍历调用AI 大模型生成一条条视频片段。
{
"video_script": [
{
"voiceover": "文案/旁白",
"visual_description": "画面描述/生成图片/视频的提示词"
},
{
"voiceover": "文案/旁白",
"visual_description": "画面描述/生成图片/视频的提示词"
}
]
}
Step 3:分割视频脚本,为独立生成视频片段做准备。
添加Split Out 节点,对上一节点的输出进行分割:output.video_script。
Step 4:判断使用 AI 生成图片还是视频。
在这一步来判断,是调用图片大模型,还是视频大模型来生成素材。判断的依据来源于工作流的第一个节点:用户的输入。

如果素材类型为“图片”,则进入“AI 生成图片素材”的分支;如果素材类型为“视频”,则进入“AI 生成视频片段”的分支。
(五)AI 生成视频片段
这部分就是重头戏了!
原理不难,调用视频大模型接口,一个个生成短视频片段。

Step 1:循环遍历短视频脚本。
添加 Loop Over Items 节点。
Step 2:调用视频大模型接口。
在准备工作的小节中,我们介绍了 Replicate 平台,里面有很多主流视频大模型。我在试用了很多大模型之后,选择了 Google veo-3。
1、获取veo-3 的API 信息。
在视频大模型列表中,找到 veo-3,点击进入详情页(https://replicate.com/google/veo-3?input=http)。
如下图所示,点击“HTTP”,可以看到请求 url 以及参数。

在工作流中新建 HTTP 节点,按照示例填写好请求头部、请求 body 以及请求 url。



请求 body 信息如下:
{
"input": {
"prompt": "{{ $json.visual_description }}",
"duration": 6,
"resolution": "720p",
"aspect_ratio": "9:16",
"generate_audio": false
}
}
- duration:视频片段的长度
- resolution:分辨率
- aspect_ratio:视频长宽比
- generate_audio:是否配置音频
有朋友问,我如何知道各个字段应该填写什么值呢?不难的,我们可以故意填写一个错误的值,根据 Web 页面的报错信息,就能知道每个字段允许填写哪些值。
以duration为例,当我填写duration为 5 时,页面有错误提示,告诉我允许值的范围为 4,6,8。

Step 3:循环等待 AI 视频生成的进度。
这一部分不做太多赘述,核心是调用视频生成进度的查询接口。
查询的接口是 Replicate 提供的通用接口,只需要传入任务 id 就可以。
HTTP 节点的设置如下:

GET 请求的 url 为:
https://api.replicate.com/v1/predictions/{{ $json.id }}
Step 4:下载视频
通过 HTTP 节点,将上一节点生成的视频片段下载下来,配置如下:

Step 5:将下载的视频保存在指定目录中。
添加「Read/Write File From Disk」 节点,保存到指定文件夹内,按顺序以序号 1、2、3、4 命名。

这样,批量生成 AI 视频片段的部分就完成了。接下来,将这些视频片段交给 moneyprinterturbo 进行合成,输出最终的短视频。
(六)合成短视频
上一步,生成了多个 AI 视频片段。现在,我们通过 moneyprinterturbo 对这些片段进行合成。

首先,添加 Code 节点,生成 moneyprinterturbo 拼接本地视频所需要的接口信息。
// 获取所有输入数据
const items = $input.all(); // 遍历输入数据并转换格式 const images = items.map(item => { // 获取fileName字段 const fileName = item.json.fileName; // 替换路径: ./n8ndata/ -> ./storage/local_videos/ const url = fileName.replace('./n8ndata/', './storage/local_videos/'); // 返回视频信息对象 return { provider: "local", url: url, duration: 0 }; }); // 返回符合n8n规范的格式,将所有视频放在images字段下 return [{ json: { images: images } }];
代码输出的内容,直接作为下一步 HTTP 请求中的video_materials参数。
新建 HTTP 节点,这一步的配置与「免费生成短视频」小节中,调用的接口配置相同。请求 body 部分如下:
{
"video_subject": "{{ $('On form submission').first().json["视频主题"] }}",
"video_script": "{{ $('Basic LLM Chain').first().json.output.text }}",
"video_terms": "{{ $('Basic LLM Chain').first().json.output.keywords }}",
"video_aspect": "9:16",
"video_concat_mode": "sequential",
"video_transition_mode": "Shuffle",
"video_clip_duration": 5,
"video_count": 1,
"video_source": "local",
"video_materials": {{ $json.images.toJsonString() }},
"video_language": "",
"voice_name": "siliconflow:FunAudioLLM/CosyVoice2-0.5B:david-Male",
"voice_volume": 1.0,
"voice_rate": 1.0,
"bgm_type": "random",
"bgm_file": "",
"bgm_volume": 0.2,
"subtitle_enabled": true,
"subtitle_position": "bottom",
"custom_position": 70.0,
"font_name": "MicrosoftYaHeiBold.ttc",
"text_fore_color": "#FFFFFF",
"text_background_color": true,
"font_size": 50,
"stroke_color": "#000000",
"stroke_width": 1.0,
"n_threads": 2,
"paragraph_number": 1
}
随后是查询视频生成进度、下载并保存视频的过程,与(三)免费生成短视频 的过程相同,不赘述了。
这样,AI 生成视频的工作流部分就搭建完成了。
(七)AI 生成图片,合成短视频
与 AI 生成视频片段类似,这一条分支只是把视频模型更换为图片模型,我选择了字节的seedream-4模型,效果还不错。

生成图片之后,复用“moneyprinterturbo 合成短视频”的工作流,生成最终的短视频。
全部工作流介绍完了。
做好一篇视频,“道、法、器、术”缺一不可。我们可以选择更好的AI 视频模型,但也需要精致的主题文案、视频脚本以及剪辑技巧来支撑。
这条工作流我测试和使用了上百次,它还有很大提升空间,而且这个框架的可塑性、扩展性非常强。比如可以通过飞书多维表格触发,或者自动发布到多个短视频平台,只要想得到,都可以尝试去做。
好了,今天就分享到这里啦。