本地AI短剧制作全攻略:ComfyUI+大模型主机搭配与工作流搭建
不少朋友最近都在问:想在本地跑 ComfyUI 生成图片和视频,再用本地大模型写剧本、拆镜头,做一部“AI 短剧”出来,到底该怎么配主机、怎么装环境、怎么把流程串起来?
网上的资料往往只讲某一个环节,比如只教 ComfyUI 安装,或者只讲显卡参数,很少有人把“硬件搭配 + 软件部署 + 工作流串联 + 后期合成”整个路线讲完整。这篇文章就围绕“ComfyUI + 本地大模型主机搭配方案 + AI 短剧免费生成”这条主线,从硬件选型开始,一步步带你搭出一套能实际产出短剧片段的本地 AI 工作台。
文中涉及的方案都以开源工具和免费模型为主,全程不需要订阅付费服务,但要注意:免费指的是软件和模型的使用成本,硬件投入和电费仍然存在。下面我们正式开始。
1. 背景与核心概念
1.1 AI 短剧是怎么生成的
AI 短剧并不是某个工具一键生成一部电视剧,而是一条“多环节流水线”。以目前最常见的做法为例,大致链路如下:
- 用大语言模型生成剧本、角色设定、分镜描述。
- 根据分镜描述使用 Stable Diffusion 系模型生成图像。
- 使用图生视频模型或视频生成模型,把静态图像变成动态镜头。
- 用剪辑工具或 FFmpeg 把多个片段拼接起来,配上字幕和音乐。
这条链路里,第 2 步和第 3 步最吃硬件,也是最核心的部分。ComfyUI 在这里负责“图生图”和“图生视频”的节点化调度;本地大模型则负责剧本创意和提示词生成。
1.2 ComfyUI 是什么
ComfyUI 是一个基于 Stable Diffusion 的开源图形化工作流工具。它把文生图、图生图、图像放大、视频生成等能力拆成一个个“节点”,开发者通过连线把节点组织起来,得到一个可复用的工作流。
相比常见的 WebUI,ComfyUI 的优势主要体现在:
- 节点化操作让流程透明,适合复杂组合和自动化。
- 工作流可以导出为 JSON 文件,方便保存、分享和二次开发。
- 可以调用 API 接口,适合批量出图和程序化控制。
- 对显存管理更灵活,部分场景下相比 WebUI 占用更低。
对于 AI 短剧这种“批量生成、流程固定、需要反复调整”的场景,ComfyUI 非常合适。
1.3 本地大模型在这里承担什么角色
本地大模型指的是部署在自己电脑或服务器上的大语言模型,比如千问、Llama 3 等开源模型。它们负责短剧流水线里“内容创意”的部分:
- 根据一句话主题扩写完整剧本。
- 把剧本拆成一幕幕分镜。
- 把分镜内容转换成适合图像生成的英文提示词。
- 生成角色对白,便于后期配音和字幕。
这里推荐使用 Ollama 这类工具来管理本地大模型,部署简单,命令少,还提供了兼容 OpenAI 格式的本地 API,方便 Python 脚本调用。
1.4 为什么需要本地主机方案
有人会问:直接用在线工具不是更方便吗?但从实际项目角度看,本地方案有这几个核心价值:
- 无按张计费,出图成本主要在电费。
- 隐私可控,剧本素材不出本机。
- 断网也能继续生成部分内容。
- 可以用 API 批量控制,适合做长系列短剧。
当然,本地方案也有门槛,最明显的就是硬件成本和技术门槛。这篇文章就是来降低这两个门槛的。
2. 主机搭配方案
2.1 核心选型思路:先定 GPU,再定整机
AI 图像和视频生成主要依赖 GPU,尤其是显存大小直接决定你能用什么模型、生成多大分辨率、一次能跑多长的视频。选主机的时候,我建议先确定 GPU 型号和显存,再围绕它选择其他配件。
当前主流开源图像模型对显存的需求大致是这样:
| 生成任务 | 建议显存 | 说明 |
|---|---|---|
| SD 1.5 文生图 | 4GB - 6GB | 入门体验,出图速度快 |
| SDXL 文生图 | 8GB - 12GB | 画质更好,是目前短剧画面主力 |
| 图生视频(AnimateDiff 等) | 12GB - 16GB | 可生成较短动画片段 |
| 高质量视频生成模型 | 16GB - 24GB | 分辨率更高、镜头更自然 |
注意:这里的数值是“建议显存”,不同模型、步数、分辨率、视频帧数都会影响实际占用,实际使用时应留出富余。
2.2 三档主机配置参考
下面给出三档配置思路,价位和具体品牌请结合当前市场价格调整。重点是理解每一档的取舍逻辑。
入门档(以能跑 SDXL 出图为目标):
- GPU:NVIDIA RTX 4060 Ti 16GB 或同级 16GB 显存显卡。
- CPU:Intel i5 或 AMD R5 级别的 6 核以上处理器。
- 内存:32GB DDR4 或 DDR5。
- 硬盘:1TB NVMe SSD,推荐 2TB。
- 电源:650W 以上金牌电源。
进阶档(目标:跑图生成视频流畅):
- GPU:NVIDIA RTX 4070 Ti Super 16GB 或 RTX 4080 系列。
- CPU:Intel i7 或 AMD R7 级别。
- 内存:64GB。
- 硬盘:2TB NVMe SSD + 4TB 机械仓库盘。
- 电源:850W 以上。
生产力档(目标:多模型并行、长视频、批量渲染):
- GPU:NVIDIA RTX 4090 24GB 或多卡方案。
- CPU:Intel i9 或 AMD R9 级别。
- 内存:128GB。
- 硬盘:4TB NVMe SSD + 多块机械盘组 RAID。
- 电源:1000W 以上,注意散热。
NVIDIA 显卡目前对 PyTorch、CUDA 生态支持最好,建议优先选择。AMD 和 Intel 显卡的兼容性在逐步改善,但遇到算子兼容问题时排查成本较高,新手不建议作为首选。
2.3 操作系统与驱动
操作系统方面,Windows 11 和 Ubuntu Linux 都可以。Windows 对新手更友好,大部分教程都是以 Windows 为基础写的;Linux 在长任务稳定性和资源调度上有优势,适合已经有 Linux 使用经验的人。
驱动环境需要安装:
- NVIDIA 显卡驱动。
- CUDA 工具包(也可以安装 PyTorch 官方预编译版时自动带上对应的 CUDA 运行库)。
- 推荐使用 Anaconda 或 Miniconda 管理 Python 环境。
3. 软件环境搭建
3.1 安装 Python、Git 和基础环境
ComfyUI 依赖 Python 和 Git。建议先安装 Miniconda,再创建独立的 Python 虚拟环境。
以 Python 3.10 环境为例:
conda create -n comfyui python=3.10
conda activate comfyui
pip install --upgrade pip
如果你不确定使用哪个 Python 版本,请以 ComfyUI 官方 README 推荐的版本为准。版本不匹配时,最常见的现象是 pip 安装依赖时报二进制包冲突。
3.2 安装并启动 ComfyUI
ComfyUI 支持直接通过 Git 克隆官方仓库运行:
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
pip install -r requirements.txt
国内网络环境下,GitHub 拉取慢时可以改用国内镜像域名,或者使用代理加速类工具,这一点在 3.4 节详细讲。
安装完成后启动:
python main.py
正常情况下终端会输出本机地址:
To see the GUI go to: http://127.0.0.1:8188
浏览器打开这个地址,看到节点编辑界面就说明 ComfyUI 装好了。
3.3 部署本地大模型 Ollama + 千问
Ollama 是一个开源的大模型管理工具,支持一条命令下载并运行多种开源模型。千问是适合中文剧本生成的模型,推荐从
qwen2.5:7b
开始体验。
安装 Ollama(以 Linux / macOS 为例):
curl -fsSL https://ollama.com/install.sh | sh
Windows 用户直接下载安装包即可。安装完成后拉取模型:
ollama pull qwen2.5:7b
启动服务:
ollama serve
验证接口是否可用:
curl http://localhost:11434/api/generate -d '{"model": "qwen2.5:7b", "prompt": "你好"}'
看到模型返回文本内容说明部署成功。默认端口是 11434,本地脚本调用时使用这个端口即可。
3.4 模型下载与国内加速配置
ComfyUI 和 Ollama 都需要下载模型文件,体积少则几个 GB,多则几十 GB。国内用户直接访问 Hugging Face 和 GitHub 时经常遇到速度慢、连接不稳定的情况。
这里提供几种合规的加速思路:
- 使用国内的模型托管平台,比如魔搭社区 ModelScope,搜索所需模型后直接下载。
- 设置 Hugging Face 镜像环境变量:
export HF_ENDPOINT=https://hf-mirror.com
-
使用 GitHub 加速镜像拉取仓库,比如将
https://github.com/xxx/yyy.git替换为https://ghproxy.com/https://github.com/xxx/yyy.git。
注意:镜像地址和可用性可能随时间和网络环境变化,如果失效,请查看对应项目的最新说明,不要盲目使用网上过时的命令。
ComfyUI 的模型目录结构如下:
ComfyUI/
├── models/
│ ├── checkpoints/ # 大模型文件,如 SDXL、SD 1.5
│ ├── loras/ # LoRA 小模型
│ ├── vae/ # VAE 文件
│ ├── controlnet/ # ControlNet 模型
│ └── diffusers/ # diffusers 格式模型
把下载好的模型文件放进对应目录,回到 ComfyUI 页面点击“刷新”即可看到新模型。
4. 核心工作流拆解
4.1 用大模型生成剧本和分镜提示词
AI 短剧的第一步是让本地大模型产出剧本。与其手动复制粘贴,不如写一个 Python 脚本调用 Ollama API,批量生成分镜提示词。
示例脚本(文件路径:
tools/generate_script.py
):
import json
import urllib.request
OLLAMA_URL = "http://localhost:11434/api/generate"
def generate(prompt: str, model: str = "qwen2.5:7b") -> str:
data = {
"model": model,
"prompt": prompt,
"stream": False
}
req = urllib.request.Request(
OLLAMA_URL,
data=json.dumps(data).encode("utf-8"),
headers={"Content-Type": "application/json"}
)
with urllib.request.urlopen(req) as resp:
result = json.loads(resp.read().decode("utf-8"))
return result.get("response", "")
if __name__ == "__main__":
topic = "一个机器人穿越到古代开面馆的短剧"
prompt = f"""请为主题《{topic}》写一个短视频剧本,要求:
1. 共6个分镜;
2. 每个分镜包含画面描述、镜头提示词、对白;
3. 输出 JSON 格式。"""
print(generate(prompt))
运行:
python tools/generate_script.py
脚本的思路是通过 Ollama 的
/api/generate
接口,让大模型直接输出结构化 JSON。有了 JSON 分镜数据之后,下一步就可以把每个分镜的“画面描述”转换为英文章图提示词,再喂给 ComfyUI。
4.2 ComfyUI 文生图基础工作流
ComfyUI 的界面由节点和连线组成,一个最基础的文生图流程包含这几类节点:
- 模型加载器(Load Checkpoint):选择底模,比如 SDXL。
- 正向提示词(CLIP Text Encode):输入画面描述。
- 空潜空间(Empty Latent Image):设置宽、高、批量数量。
- KSampler:采样器,控制步数、采样器类型、CFG。
- VAE 解码(VAE Decode):将潜空间数据转换为图像。
- 保存图像(Save Image):输出最终图片。
节点连接顺序是:
Load Checkpoint -> KSampler -> VAE Decode -> Save Image
CLIP Text Encode -> KSampler
Empty Latent Image -> KSampler
把分镜的提示词填入正向提示词节点,点击“运行”即可出图。这里需要理解几个关键参数:
- steps:采样步数,一般 20~30 步画质和速度平衡较好。
- CFG:提示词引导强度,SDXL 一般在 4~8 之间。
- sampler_name:采样器,推荐 Euler、Euler a、DPM++ 2M Karras。
- seed:随机种子,固定 seed 可以复现相同构图。
4.3 图生视频节点
当静态分镜生成后,需要让画面“动起来”。ComfyUI 生态里常用的免费图生视频方案包括:
- AnimateDiff:在 SD 1.5 或 SDXL 底模上生成短动画序列。
- Stable Video Diffusion(SVD):通过单张图像生成短视频。
- Wan 2.1 视频生成模型:支持文生视频和图生视频。
- CogVideoX 等开源视频模型。
这些模型对应不同的自定义节点包。以 AnimateDiff 为例,需要安装 ComfyUI 的自定义节点管理器,然后搜索 AnimateDiff 相关节点进行安装。
大致的节点扩展流程:
- 在 ComfyUI-Manager 中安装对应自定义节点。
-
下载视频模型文件,放入
ComfyUI/models/animation_models或对应目录。 - 在工作流中加入 AnimateDiff Loader 节点。
- 设置帧数(frame count),比如 16 帧或 32 帧。
- 运行后输出一组连续图片,代表一个动态镜头。
图生视频比文生图更吃显存,如果显存不足,建议降低分辨率、减少帧数,或者开启 VAE tiled 解码。
4.4 短剧素材与后期合成
ComfyUI 批量生成的是一组组图片或视频片段,真正变成“短剧”还需要后期合成。这里最有用的工具是 FFmpeg,免费开源、命令行效率高。
假设你已经在一个分镜目录下生成了
frame_00001.png
、
frame_00002.png
等序列帧,可以用下面的命令合成视频片段:
ffmpeg -framerate 24 -i frame_%05d.png -c:v libx264 -pix_fmt yuv420p clip_01.mp4
也可以把多个片段直接连接:
ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp4
list.txt
的格式:
file 'clip_01.mp4'
file 'clip_02.mp4'
5. 完整实战:从一句话剧本到短剧片段
下面我们把上面介绍的流程串起来,完成一个最简短的实战项目:输入一句话主题,自动生成剧本分镜,再用脚本调用 ComfyUI API 批量出图,最后用 FFmpeg 合成一段短视频。
5.1 创建项目结构
mkdir ai-short-drama
cd ai-short-drama
mkdir -p scripts prompts images output/clip_01
结构说明:
-
scripts:存放生成剧本和调用 ComfyUI 的 Python 脚本。 -
prompts:存放大模型生成的提示词文件。 -
images:存放批量生成的图片。 -
output:存放最终视频。
5.2 生成剧本分镜 JSON
沿用 4.1 节的脚本,改造输出到一个 JSON 文件:
python scripts/generate_script.py > prompts/script.json
打开
script.json
,你应该能看到一个包含 6 个分镜的 JSON,每个分镜字段包含
scene
、
description
、
prompt
、
dialogue
等信息。这一步用到了刚才部署的千问本地大模型。
5.3 批量生成图片提示词文件
由于 ComfyUI 的 API 调用需要完整 workflow JSON,这里介绍一种更稳健的思路:不使用 API,而是把提示词写到文件,人工在 ComfyUI 节点中批量替换。
先写一个脚本把每个分镜的提示词分别输出为 txt:
# 文件路径:scripts/export_prompts.py
import json
with open("prompts/script.json", "r", encoding="utf-8") as f:
script = json.load(f)
for i, scene in enumerate(script["scenes"], start=1):
with open(f"prompts/scene_{i:02d}.txt", "w", encoding="utf-8") as f:
f.write(scene["prompt"])
这样得到
prompts/scene_01.txt
到
prompts/scene_06.txt
,每个文件内容就是一个分镜的画面描述。
5.4 使用 ComfyUI API 批量出图(进阶)
ComfyUI 支持通过 HTTP API 提交工作流,接口为:
POST http://127.0.0.1:8188/prompt
调用前需要先在 ComfyUI 界面中设计好工作流,然后通过界面菜单导出为 JSON。导出后的 JSON 结构类似:
{
"prompt": {
"3": {
"class_type": "KSampler",
"inputs": {
"steps": 25,
"cfg": 7,
"seed": 12345
}
}
}
}
这里不展开完整 JSON,因为不同版本节点编号不同。核心思路是:解析导出的 workflow JSON,把
CLIPTextEncode
节点的
text
字段替换成
scene_XX.txt
里的内容,再把 seed 换成随机值,然后 POST 到
/prompt
。
Python 脚本伪代码:
import json
import urllib.request
def send_prompt(workflow: dict) -> None:
payload = json.dumps({"prompt": workflow}).encode("utf-8")
req = urllib.request.Request(
"http://127.0.0.1:8188/prompt",
data=payload,
headers={"Content-Type": "application/json"}
)
with urllib.request.urlopen(req) as resp:
print(resp.status)
# 替换文本并提交
workflow = json.load(open("workflow.json"))
workflow["6"]["inputs"]["text"] = open("prompts/scene_01.txt").read()
send_prompt(workflow)
这种方式适合已经熟悉 ComfyUI JSON 结构的朋友。第一次尝试时,建议先在界面上把一张图跑通,再考虑 API 自动化。
5.5 用 FFmpeg 合成最终视频
图片生成后,进入
images
目录执行合成命令:
cd images
ffmpeg -framerate 24 -i scene_%02d.png -c:v libx264 -pix_fmt yuv420p ../output/short_drama_clip.mp4
cd ..
这样你就得到了一个由 6 张分镜图合成的 MP4 片段。如果分镜图是一组视频帧,命令类似,只是输入文件名模式会变成帧序号。
加上音频的示例:
ffmpeg -i output/short_drama_clip.mp4 -i bgm.mp3 -c:v copy -shortest output/short_drama_audio.mp4
6. 常见问题与排查思路
本地部署 AI 工具链,报错是常态。下面整理一些高频问题,按“现象 - 原因 - 解决”的方式给出建议。
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| ComfyUI 启动后无法打开页面 | 端口被占用 / 启动过程报错 |
查看终端日志,换端口启动:
python main.py --port 8189
|
| 报错 CUDA not available | PyTorch 版本与显卡驱动不匹配 |
检查
nvidia-smi
驱动版本,重新安装对应 CUDA 版本的 PyTorch
|
| 生成图片全黑或花屏 | 缺少 VAE / 模型与 VAE 不匹配 | 下载对应 VAE 文件放到 models/vae,并在工作流中加载 |
| 显存不足 OOM | 分辨率、batch、帧数设置过高 | 降低分辨率,batch size 设为 1,开启 tiled VAE |
| 模型下载慢或中断 | 网络环境导致国际站点访问不稳定 | 使用 ModelScope 或国内镜像下载 |
| Ollama 接口连接失败 | 服务未启动 / 端口错误 |
运行
ollama serve
,确认 11434 端口未被占用
|
| AnimateDiff 节点报错 | 未安装对应依赖或模型文件缺失 | 检查自定义节点文档,补齐模型和 Python 依赖 |
| FFmpeg 找不到文件 | 文件名序号不连续或通配符不匹配 |
用
ls
查看实际文件名,调整
%05d
的位数
|
这里挑两个典型问题展开说明。
第一个是“CUDA not available”。大部分情况不是显卡驱动没装,而是 PyTorch 下载到了 CPU 版本。安装 PyTorch 时,务必根据你的驱动 CUDA 版本选择对应的安装命令,不要直接用默认的
pip install torch
。
第二个是“显存不足”。短剧工作流中,文生图和图生视频对显存需求量很大。遇到 OOM 时,优先按这个顺序排查:降低出图分辨率,把 batch size 调成 1,关闭不需要的后台程序,使用 ComfyUI 的
--lowvram
启动参数。
7. 最佳实践与工程建议
7.1 工作流要版本化管理
ComfyUI 的工作流 JSON 是纯文本,强烈建议纳入 Git 管理。每次调整节点、参数、模型后及时提交,方便回滚到可用的版本。短剧规模越大,工作流版本越重要,否则遇到一次误操作可能损失整套流程配置。
7.2 显存与批处理策略
优先追求稳定,再追求速度。批量生成时,建议先单张验证提示词效果,再扩大到多 batch。需要反复生成的短剧镜头,固定 seed 可以提高一致性,方便后期挑选。
7.3 素材与模型目录规范
为短剧项目单独建立素材目录,按集数、场次、镜头命名。模型文件按类型放入 ComfyUI 对应目录,不要混放。项目做到一半时最怕找不到哪个模型对应哪一组图片,规范命名能节省大量时间。
ai-short-drama/
├── episodes/
│ └── ep01/
│ ├── scenes/
│ ├── images/
│ ├── audio/
│ └── output/
7.4 合规使用模型与内容
免费使用开源模型不等于可以随意使用生成内容。需要留意:
- 部分开源模型采用特定的许可证,商用和二次分发有条件限制。
- 不要使用真实人物肖像生成不当内容,不要生成违法违规、侵犯他人权益的素材。
- 配乐、字体、图片素材也需要确认授权范围。
AI 工具只负责生成,内容责任在创作者本人。
7.5 定期备份
模型文件动辄几十 GB,重装系统或误删除后重新下载非常痛苦。建议把重要模型文件备份到机械硬盘或 NAS,生成好的关键帧素材也定期导出。生产环境长期跑批处理时,可以编写一个简单的备份脚本,把关键目录同步到备份盘。
8. 总结与接下来可以学什么
本篇文章从硬件选型开始,讲清楚了 AI 短剧生成的完整链路:本地大模型负责剧本和分镜提示词,ComfyUI 负责图像和视频生成,FFmpeg 负责后期合成。同时给出了三档主机搭配方案、软件安装步骤、核心工作流拆解,以及一个从一句话剧本到短视频片段的实操案例。
接下来如果你想继续深入,可以从这几个方向入手:
- 学习 ComfyUI 自定义节点开发,把短剧流程做成一键运行的工作流。
- 研究 ControlNet,让分镜构图更可控,比如用姿态、深度图约束角色动作。
- 学习 LoRA 训练,让同一角色在不同镜头中保持脸部一致。
- 尝试接入更多开源视频生成模型,探索属于自己的短剧风格。
AI 短剧的本地生成流程仍在快速发展,模型和工具更新很快,但底层的硬件思路、工作流思想和工程化方法不会过时。只要把基础环境搭稳,后续新增模型和工作流都只是“下载文件 + 添加节点”的事。
如果这篇文章对你有帮助,可以收藏备用。下次你准备配新主机,或者想跑通一条完整的本地 AI 短剧流水线时,再翻出来对照着一步步做,能少走不少弯路。
火山引擎视频云技术社区,是面向 AI 音视频开发者的技术交流平台。这里汇聚源自抖音、豆包等亿级 DAU 产品的 RTC、直播、点播、AI 媒体处理、音视频互动技术,提供接入指南、最佳实践、性能调优、场景案例、Demo 代码、开源项目、白皮书和 API 文档。社区汇聚官方工程师与一线开发者,为 AI 视频通话、数字人、AI 视频处理等应用的开发与落地提供技术支持。
更多推荐

所有评论(0)