ComfyUI-Open-Sora 插件完全教程
1. 插件简介
插件地址: https://github.com/chaojie/ComfyUI-Open-Sora
ComfyUI-Open-Sora 是一个超级厉害的视频生成插件!它就像一个神奇的魔法师,你只要告诉它你想要什么样的视频(比如"一只可爱的小猫在花园里玩耍"),它就能帮你生成出真实的视频来。
这个插件能给我们带来什么效果?
- 🎬 文字变视频:就像写作文一样,你写一段描述,它就能变成真实的视频
- 🎨 高质量画面:生成的视频画质很清晰,就像用专业摄像机拍的一样
- ⏱️ 可控时长:你可以决定视频是16帧还是64帧(帧就像是翻页动画的每一页)
- 📐 多种尺寸:可以生成不同大小的视频,从256x256到512x512
2. 如何安装
前置条件
- 只支持Linux系统(就像某些游戏只能在特定平台玩一样)
- 需要有CUDA显卡(就是英伟达的显卡,用来加速计算的)
安装步骤
- 安装基础工具
pip install packaging ninja
pip install flash-attn --no-build-isolation
- 安装APEX加速库
git clone https://www.github.com/nvidia/apex
cd apex
sudo python setup.py install --cuda_ext --cpp_ext
- 安装xformers
pip3 install -U xformers --index-url https://download.pytorch.org/whl/cu121
- 下载插件
cd ComfyUI/custom_nodes
git clone https://github.com/chaojie/ComfyUI-Open-Sora
cd ComfyUI-Open-Sora
pip install -v .
- 下载模型文件
需要下载以下模型并放到对应位置:
- OpenSora-v1-HQ-16x512x512.pth → 放到
ComfyUI/models/checkpoints - T5文本编码器:
huggingface-cli download --resume-download DeepFloyd/t5-v1_1-xxl - VAE模型:
huggingface-cli download --resume-download stabilityai/sd-vae-ft-ema
3. 节点详细解析
3.1 OpenSoraLoader 节点 - 模型加载器
这个节点是干嘛的?
OpenSoraLoader就像一个"工具箱管理员",它负责把生成视频需要的所有工具都准备好。就像你要做饭前,需要先把锅碗瓢盆、调料、食材都准备齐全一样。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| ckpt_path | ckpt_path | 下拉选择 | OpenSora-v1-HQ-16x512x512.pth | 选择哪个"大脑"来生成视频,就像选择用哪个画家来画画 | 选择预训练的模型权重文件 | 选择高质量的512x512模型可以生成更清晰的视频 |
| config | config | 下拉选择 | 16x512x512.py | 告诉系统用什么"配方"来生成视频,就像烹饪时选择菜谱 | 选择模型配置文件,定义模型架构和参数 | 16x512x512.py适合生成16帧512x512分辨率的视频 |
| num_frames | num_frames | 整数 | 16 | 决定视频有多少"页",就像翻页动画的页数 | 设置生成视频的帧数 | 16帧大约1-2秒,64帧大约4-5秒 |
| width | width | 整数 | 512 | 视频的宽度,就像电视屏幕的宽度 | 设置生成视频的宽度像素 | 512表示宽度512像素,数字越大画面越宽 |
| height | height | 整数 | 512 | 视频的高度,就像电视屏幕的高度 | 设置生成视频的高度像素 | 512表示高度512像素,数字越大画面越高 |
| dtype | dtype | 字符串 | fp16 | 选择计算精度,就像选择用粗笔还是细笔画画 | 设置模型计算的数据类型精度 | fp16节省显存但精度稍低,fp32精度高但占用更多显存 |
| num_sampling_steps | num_sampling_steps | 整数 | 100 | 生成视频时"思考"多少次,次数越多质量越好但越慢 | 设置扩散模型的采样步数 | 100步是质量和速度的平衡点,可以调到50-200 |
3.2 OpenSoraSampler 节点 - 视频生成器
这个节点是干嘛的?
OpenSoraSampler就像一个"魔法师",它接收你的文字描述,然后在"想象空间"里创造出视频的"草图"。就像你告诉画家"我想要一幅海边日落的画",画家就开始在脑海里构思一样。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL类型 | 来自OpenSoraLoader | 接收"大脑",就像接收画家的技能 | 接收预加载的扩散模型 | 必须连接OpenSoraLoader的model输出 |
| text_encoder | text_encoder | CLIP类型 | 来自OpenSoraLoader | 接收"翻译官",把文字翻译成机器能懂的语言 | 接收文本编码器,将文本转换为向量 | 必须连接OpenSoraLoader的text_encoder输出 |
| vae | vae | VAE类型 | 来自OpenSoraLoader | 接收"压缩工具",用来处理图像数据 | 接收变分自编码器,处理图像编解码 | 必须连接OpenSoraLoader的vae输出 |
| scheduler | scheduler | SCHEDULER类型 | 来自OpenSoraLoader | 接收"时间管理器",控制生成过程的节奏 | 接收调度器,控制扩散过程 | 必须连接OpenSoraLoader的scheduler输出 |
| prompt | prompt | 字符串 | 空字符串 | 你想要的视频描述,就像给画家下订单 | 输入文本提示词,描述要生成的视频内容 | "一只小猫在花园里玩耍"、"海边的日落景色" |
| dtype | dtype | 字符串 | fp16 | 选择计算精度,就像选择用粗笔还是细笔画画 | 设置计算时的数据类型精度 | fp16节省显存,fp32精度更高 |
| seed | seed | 整数 | 42 | 随机数种子,就像掷骰子的起始点 | 控制随机性的种子值,相同种子产生相同结果 | 42是经典值,改变数字会得到不同的视频 |
| num_frames | num_frames | 整数 | 16 | 决定视频有多少"页",就像翻页动画的页数 | 设置生成视频的帧数 | 16帧约1-2秒,数字越大视频越长 |
| width | width | 整数 | 512 | 视频的宽度,就像电视屏幕的宽度 | 设置生成视频的宽度像素 | 需要与模型配置匹配,512是常用值 |
| height | height | 整数 | 512 | 视频的高度,就像电视屏幕的高度 | 设置生成视频的高度像素 | 需要与模型配置匹配,512是常用值 |
3.3 OpenSoraRun 节点 - 视频解码器
这个节点是干嘛的?
OpenSoraRun就像一个"显影师",它把前面生成的"草图"变成真正能看的视频。就像胶卷拍照后需要冲洗才能看到照片一样,这个节点把抽象的数据变成我们能看懂的视频画面。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| vae | vae | VAE类型 | 来自OpenSoraLoader | 接收"显影工具",用来把草图变成真实画面 | 接收变分自编码器,用于解码潜在空间数据 | 必须连接OpenSoraLoader的vae输出 |
| samples | samples | LATENT类型 | 来自OpenSoraSampler | 接收"草图数据",就像接收还没显影的胶卷 | 接收潜在空间的采样数据 | 必须连接OpenSoraSampler的samples输出 |
| dtype | dtype | 字符串 | fp16 | 选择处理精度,就像选择冲洗照片的质量 | 设置解码时的数据类型精度 | fp16速度快省显存,fp32质量更好 |
4. 使用技巧和建议
4.1 提示词编写技巧
- 详细描述:像写作文一样详细描述场景,比如"阳光明媚的海滩上,一只金毛犬在追逐飞盘"
- 包含动作:描述具体的动作,如"飞翔"、"奔跑"、"摇摆"
- 环境描述:加上环境细节,如"在森林中"、"在城市街道上"
- 时间和光线:提及时间和光线,如"日落时分"、"明亮的阳光下"
4.2 参数调优建议
- 初学者设置:使用默认参数(16帧,512x512,100步)
- 高质量设置:增加采样步数到150-200,但会更慢
- 快速预览:减少采样步数到50-80,速度更快但质量稍低
- 长视频:使用64帧配置,但需要更多显存
4.3 显存优化
- 使用fp16而不是fp32可以节省一半显存
- 生成完一个视频后,系统会自动清理显存
- 如果显存不够,可以尝试更小的分辨率(256x256)
5. 常见问题解答
Q1: 为什么只支持Linux?
A: 因为这个插件依赖的一些底层库(如APEX)在Linux上支持最好,Windows和Mac的兼容性还不完善。
Q2: 生成视频很慢怎么办?
A: 可以减少采样步数(从100降到50),或者使用更小的分辨率,或者升级显卡。
Q3: 生成的视频质量不好怎么办?
A: 尝试增加采样步数,使用更详细的提示词,或者使用高质量的模型文件。
Q4: 显存不够用怎么办?
A: 使用fp16精度,选择较小的分辨率(256x256),或者减少帧数。
Q5: 提示词应该用英文还是中文?
A: 建议使用英文,因为模型主要是用英文数据训练的,效果会更好。
6. 工作流程示例
一个完整的视频生成流程是这样的:
- OpenSoraLoader → 准备所有工具(模型、编码器、解码器、调度器)
- OpenSoraSampler → 根据文字描述生成视频"草图"
- OpenSoraRun → 把"草图"变成真实的视频画面
- VHS_VideoCombine → 把画面组合成最终的视频文件
就像一个工厂的流水线:原料进入 → 加工处理 → 质量检验 → 包装出厂
7. 模型文件说明
插件支持三种不同质量的模型:
| 模型名称 | 分辨率 | 帧数 | 质量 | 适用场景 |
|---|---|---|---|---|
| OpenSora-v1-16x256x256.pth | 256x256 | 16 | 标准 | 快速预览、测试 |
| OpenSora-v1-HQ-16x256x256.pth | 256x256 | 16 | 高质量 | 小尺寸高质量视频 |
| OpenSora-v1-HQ-16x512x512.pth | 512x512 | 16 | 超高质量 | 最终成品、展示用 |
8. 总结
ComfyUI-Open-Sora是一个功能强大的文字转视频插件,虽然只有3个节点,但每个节点都有其独特的作用。通过合理搭配这些节点,你就能创造出令人惊艳的视频作品。记住,好的提示词是成功的一半,多练习、多尝试,你也能成为视频生成大师!