不少朋友最近都在问:想在本地跑 ComfyUI 生成图片和视频,再用本地大模型写剧本、拆镜头,做一部“AI 短剧”出来,到底该怎么配主机、怎么装环境、怎么把流程串起来?

网上的资料往往只讲某一个环节,比如只教 ComfyUI 安装,或者只讲显卡参数,很少有人把“硬件搭配 + 软件部署 + 工作流串联 + 后期合成”整个路线讲完整。这篇文章就围绕“ComfyUI + 本地大模型主机搭配方案 + AI 短剧免费生成”这条主线,从硬件选型开始,一步步带你搭出一套能实际产出短剧片段的本地 AI 工作台。

文中涉及的方案都以开源工具和免费模型为主,全程不需要订阅付费服务,但要注意:免费指的是软件和模型的使用成本,硬件投入和电费仍然存在。下面我们正式开始。

1. 背景与核心概念

1.1 AI 短剧是怎么生成的

AI 短剧并不是某个工具一键生成一部电视剧,而是一条“多环节流水线”。以目前最常见的做法为例,大致链路如下:

  1. 用大语言模型生成剧本、角色设定、分镜描述。
  2. 根据分镜描述使用 Stable Diffusion 系模型生成图像。
  3. 使用图生视频模型或视频生成模型,把静态图像变成动态镜头。
  4. 用剪辑工具或 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 时经常遇到速度慢、连接不稳定的情况。

这里提供几种合规的加速思路:

  1. 使用国内的模型托管平台,比如魔搭社区 ModelScope,搜索所需模型后直接下载。
  2. 设置 Hugging Face 镜像环境变量:
export HF_ENDPOINT=https://hf-mirror.com
  1. 使用 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 相关节点进行安装。

大致的节点扩展流程:

  1. 在 ComfyUI-Manager 中安装对应自定义节点。
  2. 下载视频模型文件,放入 ComfyUI/models/animation_models 或对应目录。
  3. 在工作流中加入 AnimateDiff Loader 节点。
  4. 设置帧数(frame count),比如 16 帧或 32 帧。
  5. 运行后输出一组连续图片,代表一个动态镜头。

图生视频比文生图更吃显存,如果显存不足,建议降低分辨率、减少帧数,或者开启 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 短剧流水线时,再翻出来对照着一步步做,能少走不少弯路。

Logo

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

更多推荐