最近在试做短剧样片时,我被两个老问题折磨得够呛:一个是角色一换镜头就“崩脸”,另一个是短视频生成模型撑不起长时长叙事。MiniMax H3 的出现,把这两条路同时打通了不少,而且除封面图之外,整套制作链路基本可以靠开源工具完成。这篇文章我会把从环境部署、ComfyUI 接入、Ref2VA 人脸一致性,到提示词模板、分镜表管理、多镜头拼接成片的完整工作流拆开讲一遍,适合正在尝试用 AI 工具做短剧、动态漫画或剧情向短视频的开发者。
1. MiniMax H3 在短剧制作中的定位
1.1 从“单镜头炫技”到“短剧叙事”的跨越
早期我们用 AI 视频模型做内容,多数是单个镜头、3 到 5 秒的片段:一个人转身、风吹动发丝、镜头推进。这类片段单独看效果不错,但放在短剧里撑不起叙事,原因集中在三点:
- 角色一致性差。同一个角色在不同镜头里,脸型、五官、服装会漂移,观众一眼就出戏。
- 镜头之间没有连续性。人物位置、光线方向、情绪状态无法跨镜头稳定。
- 时长有限。单个视频很难覆盖一场完整对话或动作戏。
MiniMax H3 这类新模型,配合“参考图模式”之后,可以在生成视频时固定角色外观,让多个镜头围绕同一个“角色锚点”展开。这就让 AI 视频工作流从“单镜头工具”变成了“短剧生产管线”。
1.2 本文工作流的三个关键词
整套流程围绕三个关键词展开:
- 开源:除封面图精修之外,涉及模型调用、视频拼接、字幕处理等环节尽量用开源实现,方便复现和改造。
- 工作流:把短剧拆成“剧本→分镜→单镜头生成→拼接→后处理”的标准流程,用 ComfyUI 这类节点工具串起来。
- 提示词模板:针对短剧常见场景,准备一套可复用的中文提示词模板,尤其是战斗、对白、情绪特写等高频场景。
1.3 这套流程能做到什么程度
基于目前社区实践,用 MiniMax H3 做短剧样片,比较现实的预期是:
- 角色在“半身景、中景、近景”之间切换时,五官一致性可控。
- 场景通过参考图和提示词双重约束,可以保持环境风格统一。
- 多镜头片段通过 FFmpeg 拼接后,配合音乐和字幕,可以形成一条 30 秒到 2 分钟的样片。
- 长时长通过“逐镜生成 + 后期转场”实现,而不是靠模型一次性生成很长视频。
需要注意,工具和模型迭代很快,本文示例以常见部署环境为例,重点演示配置思路,具体版本的参数以你使用的版本为准。
2. 环境准备与开源部署方案
2.1 硬件配置参考
MiniMax H3 的本地部署对显存有一定要求。不同规模的模型对应不同级别显卡,这里给出一份通用参考:
| 显存档位 | 适用场景 | 说明 |
|---|---|---|
| 8GB | 小尺寸模型、低分辨率测试 | 体验为主,生成速度较慢 |
| 12GB(如 RTX 3060/4070) | 中等分辨率视频生成 | 社区中使用较多的配置 |
| 24GB(如 RTX 3090/4090) | 高分辨率、批量生成 | 适合批量做分镜 |
如果你的显卡显存不够,可以考虑用云端 API 或租用 GPU 实例。网上有人在问“MiniMax H3 能在 AMD CPU 上本地部署吗”,目前主流视频生成推理还是依赖 NVIDIA GPU 的 CUDA 环境,AMD CPU 只能做数据管理和流程调度,不建议把生成负载放在 CPU 上。
另外注意驱动和 Python 的匹配问题。建议先确认你的显卡驱动支持 CUDA,再安装 PyTorch,避免装完版本不匹配导致无法识别 GPU。
2.2 ComfyUI 环境搭建
ComfyUI 是目前把 MiniMax H3 接进工作流的常用方案,它用节点化方式管理“加载模型 → 写提示词 → 生成视频 → 保存结果”的流程,对批量处理分镜非常方便。
安装步骤大致如下:
# 1. 克隆官方仓库 git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI # 2. 创建虚拟环境(推荐) python -m venv venv source venv/bin/activate # 3. 安装 PyTorch(根据自己的 CUDA 版本选择命令) # 这里以 CUDA 12.x 为例 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 # 4. 安装 ComfyUI 依赖 pip install -r requirements.txt安装完成后,启动 ComfyUI:
python main.py --listen 0.0.0.0 --port 8188如果你是 Windows 用户,也可以直接下载社区整合包,通常已经装好了 Python、PyTorch 和常用节点,省去不少环境折腾。搜索“MiniMax H3 ComfyUI 整合包”可以看到社区维护的版本,可以按自己显卡选用。
2.3 MiniMax H3 模型接入方式
MiniMax H3 的接入方式大致有三种:
- ComfyUI 自定义节点接入:在 ComfyUI 中安装社区开发的 MiniMax 节点,通过节点选择 H3 模型并配置参数。
- Python 脚本直接调用:适合需要深度定制逻辑的场景,比如批量生成不同分镜。
- 云端 API 调用:显存不够时使用,流程简单,但每帧或每次生成会收费。
针对 ComfyUI 自定义节点,你可以在ComfyUI-Manager中搜索 MiniMax 相关节点,或者手动安装社区节点到custom_nodes目录。
# 示例:把节点项目安装到 custom_nodes 目录 cd custom_nodes git clone https://github.com/example/minimax-h3-comfyui.git cd minimax-h3-comfyui pip install -r requirements.txt这里注意,不同节点项目的安装方式可能不同,以项目 README 为准。安装后重启 ComfyUI,节点列表里就会多出 MiniMax H3 相关的节点。
2.4 辅助工具安装
除了 ComfyUI,还需要准备两个辅助工具:
- FFmpeg:用来拼接分镜片段、处理音视频流。Windows 用户可以从 FFmpeg 官网下载二进制包,Linux 用户可以直接用包管理器。
# Ubuntu/Debian sudo apt install ffmpeg- Python 环境:建议 Python 3.10 或 3.11 版本,太老的版本可能不支持新版 PyTorch。
3. 人脸一致性:Ref2VA 参考模式原理与配置
3.1 为什么短剧最缺“人脸一致性”
短剧与其他视频内容最大的区别在于:观众记住的是角色,角色是一个个具体的脸。如果第一集里女主是瓜子脸,第二集变成圆脸,整个叙事就崩塌了。
传统视频生成模型通常只依赖文本提示词,而文本对“脸型”“五官比例”的描述能力很弱。你说“一位清秀的东方女性”,模型每次生成的“清秀”都不一样。因此,AI 短剧工作流必须引入“参考图机制”。
H3 中常用的参考模式被称为 Ref2VA,核心思路是:在生成视频时额外提供一张或多张参考图,模型通过参考图提取角色外观特征,再把这些特征应用到视频生成过程。这样,不同镜头之间共享同一个角色外观锚点,人脸一致性显著提升。
3.2 参考图的准备工作
参考图的质量直接决定生成结果的质量。建议按以下标准准备:
- 正脸清晰:第一张参考图必须是清晰的正面照,五官完整,光线均匀。
- 表情中性:参考表情不要太夸张,给后续镜头留出表情变化空间。
- 服装统一:如果短剧中角色只有一套服装,参考图中最好就是这套服装;如果有多套服装,可以准备多张参考图分场景使用。
- 背景干净:背景尽量简单,能把人物从背景中分离出来,减少干扰。
可以参考这个流程:先用 Stable Diffusion 或其他开源图像模型生成角色概念图,选出一张最满意的作为“角色锚点图”,后续所有镜头的参考图都从这张锚点图衍生。
如果角色在不同场景需要换装,可以基于锚点图做局部重绘,再用重绘后的图作为该场景的参考图,保证脸不变、服装变。
3.3 Ref2VA 节点参数配置
在 ComfyUI 中使用 MiniMax H3 Ref2VA 节点时,常见参数包括:
| 参数 | 作用 | 建议值 |
|---|---|---|
| reference_image | 参考图输入 | 选角色锚点图 |
| prompt | 正向提示词 | 按场景写,见后文模板 |
| negative_prompt | 负向提示词 | 防崩脸、防变形 |
| guidance_scale | 提示词引导强度 | 3~7,越高越贴合提示词 |
| video_length | 生成视频长度 | 按需设置 |
| reference_strength | 参考图影响程度 | 0.6~0.9,过大会表情僵硬 |
其中reference_strength是一个关键参数。值太高,生成的角色会“锁定”在参考图的姿态和表情上;值太低,角色会跑偏。建议先保持 0.7 跑几个测试片段,观察效果后再微调。
3.4 测试“人脸一致性”的最小实验
在正式做短剧之前,建议先做一个最小实验:
- 准备一张角色锚点图。
- 写两个不同场景的提示词,比如“角色在教室看书”和“角色在街道奔跑”。
- 用同一张参考图、同一组参数,分别生成视频。
- 观察两张结果中角色的五官、发型、服装是否一致。
如果两个片段的角色能明显看出是同一个人,说明参考模式配置基本可用;如果出现“换脸”现象,优先检查参考图质量和reference_strength设置。
4. 短剧提示词模板体系搭建
4.1 提示词的结构化写法
短剧提示词不能像写散文一样写一大段,最好拆成结构化字段,让模型更容易理解。推荐格式如下:
主体描述 + 动作/表情 + 场景环境 + 镜头语言 + 光影氛围 + 画质要求以“战斗场景”为例:
一位身穿黑色劲装的青年武者,眼神坚毅,嘴角带伤,右手握剑蓄力, 在破败的古城街道上向前冲锋,扬起尘土, 镜头跟随运动,低角度仰拍,光影对比强烈,电影级质感,细节丰富这里有几个关键点:
- 主体描述:角色是谁、穿什么、状态如何。如果用了参考图,主体描述要与参考图一致。
- 动作:角色在做什么,动作幅度多大。
- 场景:背景在哪里,环境有什么特征。
- 镜头语言:镜头角度、运动方式、景别。
- 质量词:电影级、8K、细节丰富,这类词有助于提升画质。
4.2 战斗/打斗提示词中文模板
社区中有很多短剧向的提示词模板,其中“超燃战斗打斗”是最受欢迎的方向之一。下面给出一套可直接套用的中文模板:
[角色外观描述],[情绪状态],[动作描述], 在[场景环境]中[具体动作细节],[镜头语言],[光影与氛围], 电影级质感,动作流畅,细节丰富,高速动态模糊,真实物理反馈实际使用时,把它代入具体内容:
一位身着白色战袍的女剑客,眼神凌厉,嘴角微扬, 在半空中旋转翻身,手中长剑划出一道银色弧光, 周围尘土与碎石被气流卷起,镜头以低角度快速跟随, 逆光剪影配合冷色调环境光,电影级动作场面,动态流畅,细节逼真注意,战斗场景的提示词里,“动作动词”要尽量具体。不要只写“打斗”,要写“挥剑”“侧踢”“格挡”“翻滚”等具体动作,模型才能生成更有张力的画面。
4.3 不同景别与镜头语言的提示词
短剧需要在不同景别之间切换,提示词也要对应调整:
| 景别 | 说明 | 提示词示例 |
|---|---|---|
| 远景 | 交代环境 | “从山坡远眺整座城市,人物在画面中较小,环境辽阔” |
| 中景 | 展示动作和关系 | “两人面对面站立,中景构图,画面能看清上半身动作” |
| 近景 | 强调情绪 | “近景镜头,脸颊轻微抽搐,眼眶泛红,泪水滑落” |
| 特写 | 放大细节 | “眼睛特写,瞳孔收缩,眼神从迷茫变为坚定” |
在实际分镜中,同一场戏可以先用远景交代环境,再用中景展示动作,最后用近景表现情绪,形成节奏感。
4.4 负面提示词
负面提示词在短剧生成中同样重要,尤其是生成人物镜头时。常见负面提示词如下:
低质量,模糊,变形,五官扭曲,手脚畸形,多余手指,重复纹理, 水印,文字,噪点,色彩失真,风格不一致如果你发现生成的人物“每个人都长得像网红脸”,可以尝试在负面提示词里加入“千篇一律的网红脸,整容脸”等描述,降低同质化概率。
5. 短剧分镜工作流实战
前面讲的是单点能力,这一节把它们组合成真正的短剧分镜工作流。目标是:给定一段剧本,能快速产出一组分镜视频片段,并拼接成一条能看的样片。
5.1 剧本拆分
假设我们有这样一个剧本片段:
男主林川在废墟城市中营救女主苏晴,两人遭遇追兵围攻。林川掩护苏晴撤退,自己断后,与敌人展开激战。苏晴在远处回头,眼中含泪,林川大喊:“走!”
这段剧本大概可以拆成 4 个分镜:
| 镜头号 | 景别 | 内容 | 时长 |
|---|---|---|---|
| 01 | 远景 | 废墟城市全景,浓烟滚滚,林川拉着苏晴跑过废墟 | 4s |
| 02 | 中景 | 追兵从侧面涌来,林川挡在苏晴身前 | 4s |
| 03 | 近景 | 林川回头向苏晴大喊“走!” | 3s |
| 04 | 特写 | 苏晴含泪回头,转身奔跑 | 3s |
拆分的核心原则是:每一个镜头只承载一个信息点,避免在单镜头里塞太多动作。
5.2 把分镜表转化成提示词
根据分镜表,为每个镜头写提示词。以“镜头 03”为例:
镜头03:近景,男主人公林川,身着破旧的深色外套,脸上有灰尘和细小伤口, 回头对身后的女主角大喊,表情焦急坚定,嘴巴张开,声音仿佛撕破空气, 背景是废墟街道与火光,逆光轮廓,烟雾飘动,电影级近景构图,面部细节清晰同时为每个镜头绑定参考图:
- 镜头 01、02、03 使用“林川”锚点图。
- 镜头 04 使用“苏晴”锚点图。
5.3 在 ComfyUI 中批量生成分镜
在 ComfyUI 中,可以为每个镜头准备一个独立的“生成工作流”实例,也可以写 Python 脚本批量调用。伪代码如下:
import json import subprocess shots = [ { "name": "shot_01", "prompt": "远景,废墟城市全景...", "reference": "characters/linchuan.png", "length": 4, }, { "name": "shot_03", "prompt": "近景,男主人公林川...", "reference": "characters/linchuan.png", "length": 3, }, ] for shot in shots: # 组装 ComfyUI API 请求 payload = build_payload(shot) # 调用 ComfyUI API 提交任务 submit_workflow(payload)这里的关键是:每次调用都要把reference字段指向同一个角色锚点图,才能保证跨镜头人脸一致。
5.4 用 FFmpeg 拼接分镜
生成所有分镜后,用 FFmpeg 拼接视频片段。最简单的拼接命令如下:
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4filelist.txt内容格式:
file 'shot_01.mp4' file 'shot_02.mp4' file 'shot_03.mp4' file 'shot_04.mp4'如果每个片段的编码参数不一致,-c copy可能会报错,这时建议用重新编码的方式:
ffmpeg -f concat -safe 0 -i filelist.txt -vf "scale=1920:1080,fps=30" -c:v libx264 -pix_fmt yuv420p output.mp4这条命令会把所有片段统一缩放到 1920x1080、统一帧率为 30fps,避免画面尺寸不一致导致的拼接黑边。
5.5 加字幕
短剧通常需要字幕。可以用 FFmpeg 的 subtitles 滤镜直接烧录字幕:
ffmpeg -i output.mp4 -vf "subtitles=subtitle.srt" -c:v libx264 -c:a copy final.mp4srt字幕文件需要提前准备好,内容格式如下:
1 00:00:00,000 --> 00:00:03,500 “走!” 2 00:00:03,500 --> 00:00:07,000 苏晴含泪转身,消失在硝烟中6. 长时长视频的全方位把控
短剧时长比单镜头长得多,这里分享几个从实践中整理的方法,帮助你把控长时长视频的质量。
6.1 场景一致性的锚定策略
如果短剧中角色会换场景,建议不要只依赖参考图,还要为每个场景建立一个“环境参考图”。
具体做法:
- 先用图像模型生成一个“场景图”,例如“废弃城市街道”。
- 在生成该场景下的所有分镜时,把场景图作为背景参考输入。
- 参考图中角色的占比要控制好,避免过度挤压场景信息。
这样可以做到:角色从头到尾是同一张脸,场景从头到尾是同一个地方。
6.2 分镜生成顺序与缓存管理
批量生成分镜时,建议按照“先场景后角色”的顺序:
- 先跑环境模板,确认场景风格统一。
- 再绑角色参考图,生成具体镜头。
- 每个镜头生成后,先看关键帧,确认画面没有崩坏,再继续下一个。
这里一个重要建议是:不要一口气把 20 个镜头全部塞进队列。先跑前 2 个镜头,检查效果,确认参数没问题后再批量跑。
6.3 转场与剪辑节奏
多镜头拼接时,不要用硬切硬接,适当加入转场可以让短片看起来更流畅。FFmpeg 内置了多种转场效果:
# 淡入淡出示例 ffmpeg -i input.mp4 -vf "fade=t=in:st=0:d=0.5,fade=t=out:st=3:d=0.5" output.mp4另外,短剧节奏非常重要。建议:
- 远景停留 3~4 秒。
- 中景 2~3 秒。
- 近景 1~2 秒。
- 特写 1 秒左右。
在剪辑时,把镜头按“远→中→近→特”的顺序排列,能给观众更强的代入感。
6.4 音频与配乐
视频片段拼接完成不等于样片完成,还需要配乐和音效。短剧常用的音频处理方式:
- 用开源音频工具(例如 Audacity)剪辑背景音乐。
- 在动作戏中加入拟音鼓点,在情绪戏中加入环境白噪音。
- 最后用 FFmpeg 把音频和视频合流:
ffmpeg -i video.mp4 -i music.mp3 -filter_complex "[1:a]afade=t=in:st=0:d=1,afade=t=out:st=29:d=2[music]" -map 0:v -map "[music]" -c:v copy -c:a aac final.mp47. 常见问题与排查思路
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 生成时提示缺少依赖包 | 节点仓库的 requirements 没有安装 | 在 Python 环境中运行pip install -r requirements.txt |
| GPU 显存不足 | 模型或分辨率设置过高 | 降低生成分辨率,缩短视频长度,或换更大显存显卡 |
| 角色“崩脸” | 参考图不清晰或 reference_strength 过低 | 换清晰正脸参考图,适当调高 reference_strength |
| 角色表情僵硬 | reference_strength 过高 | 降低参考强度,给表情留出变化空间 |
| 多个场景之间风格不统一 | 没有场景参考图 | 为每个场景准备独立环境参考图 |
| FFmpeg 拼接失败 | 视频编码参数不一致 | 统一分辨率、帧率、编码格式后再拼接 |
| 提示词写得很好但生成结果乱 | 提示词信息密度太高 | 拆成短句,一个镜头只写一个核心动作 |
| 在 AMD CPU 上运行速度极慢 | CPU 推理不是主流方案 | 使用 NVIDIA GPU 或云 API |
如果遇到“请安装缺失的包以使用此工作流”之类的提示,先看报错里缺的是哪个 Python 包,然后手动安装即可。这通常是因为工作流里使用了某个自定义节点,而节点依赖没有自动安装。
8. 最佳实践与工程建议
8.1 建立角色资产库
短期做一个样片可以临时生成角色,但如果你想持续做系列短剧,建议建立一套角色资产库:
- 每个角色一个文件夹,包含锚点图、换装图、表情图。
- 命名格式统一,例如
character_linchuan_001.png。 - 每个角色附带一份提示词描述文档,记录“角色外观描述词”,保证后续每次写提示词时主体描述一致。
8.2 提示词模板做成 JSON 配置
不要每次从零写提示词,可以把模板结构化保存成 JSON 文件,方便程序读取和批量替换:
{ "character": { "linchuan": "身着破旧深色外套的年轻男子,黑色短发,眼神坚毅,脸上有细小伤疤", "suqing": "身着浅色长裙的年轻女子,长发,温柔面容,眼神中带有坚强" }, "scene": { "ruin_city": "废弃城市街道,断壁残垣,浓烟与火光,尘土飞扬" }, "camera": { "close_up": "近景镜头,面部细节清晰,浅景深", "wide": "远景镜头,环境开阔,人物较小" }, "quality": "电影级质感,细节丰富,光影自然" }生成提示词时,通过组合这些字段即可:
prompt = f"{character['linchuan']},{scene['ruin_city']},{camera['close_up']},{quality}"这样不仅提升了效率,还保证了镜头之间的描述一致性。
8.3 关键参数做版本记录
视频生成的随机性很强,即使提示词一样,结果也可能不同。建议每次生成都记录一组关键参数:
- 随机种子(seed)。
- reference_strength。
- guidance_scale。
- 模型版本。
- 参考图文件名。
记录格式可以用 CSV 或 Markdown 表格。这样如果某个镜头效果特别好,你可以用同样的参数回放。
8.4 关于版权与合规
使用开源模型和开源工具时,请注意模型的开源协议。MiniMax H3 的开源版本可能有特定的使用条款,尤其注意是否限制商业化用途、是否要求保留版权声明。企业项目请在合规前提下使用。
另外,生成内容涉及真人肖像时,请确保已获得授权,避免肖像权纠纷。短剧涉及发布传播时,也要遵守平台的内容规范。
8.5 性能优化建议
批量生成分镜时,性能是绕不开的问题。以下几点建议:
- 生成分辨率不必一味追求高,1080p 足够预览样片。
- 先跑低分辨率验证动作和构图,满意后再放大。
- ComfyUI 支持队列模式,可以一次提交多个任务。
- 用 SSD 存储生成结果,避免磁盘 IO 成为瓶颈。
- 定期清理 ComfyUI 的临时文件,避免占用磁盘空间。
9. 总结与下一步
这篇内容从短剧制作的实际需求出发,完整梳理了一条基于 MiniMax H3 的开源短剧工作流:环境部署、Ref2VA 人脸一致性、提示词模板体系、分镜表管理、批量生成、FFmpeg 拼接,以及长时长视频的质量控制方法。
如果你是第一次接触这个方向,建议不要急着做完整短剧,先花一个晚上把环境搭好,用一张参考图、两个镜头完成一次最小实验。确认人脸一致性达标后,再逐步扩展镜头数量。
接下来可以继续深入的方向包括:
- 更复杂的角色表情控制与情绪连贯性。
- 在开源图像模型中加入更多角色风格化设计。
- 用 ComfyUI 把提示词模板组件化,做成一键工作流。
- 研究自动镜头脚本生成,用大模型驱动分镜表生成。
短剧向 AI 制作仍处于快速迭代阶段,每天都有新技巧和新插件出现。保持动手实践的习惯,多记录自己的一组有效参数,慢慢就能沉淀出属于自己的一套短剧生产流水线。