Stable Video Infinity ComfyUI 工作流实战:从 1 张图到 8 分钟无限视频
【免费下载链接】Stable-Video-Infinity[ICLR 26 Oral] Stable Video Infinity: Infinite-Length Video Generation with Error Recycling项目地址: https://gitcode.com/GitHub_Trending/st/Stable-Video-Infinity
Stable Video Infinity(SVI)是一个拿下 ICLR 2026 Oral 的无限长度视频生成框架,核心能力是:从一张图出发(或图加音频、图加骨骼),自回归地生成任意长度的视频,画面和风格还能稳住。本文以单场景延展 SVI-Shot 为主线,讲清楚 ComfyUI 工作流怎么装、参数怎么调,适合想做出第一支长视频的你。
🚀 快速上手:从 0 到第一次出片
- 环境与硬件:官方测试环境是 A100 80G、CUDA 12.0、Python 3.10、PyTorch 2.5。实际跑通 8GB 显存的卡多数情况下也可以,16GB 以上更从容。
- 克隆仓库并安装依赖:
git clone https://gitcode.com/GitHub_Trending/st/Stable-Video-Infinity cd Stable-Video-Infinity conda create -n svi python=3.10 && conda activate svi pip install -e . pip install flash_attn==2.8.0.post2 conda install -c conda-forge ffmpeg librosa libiconv- 下载两类权重:基础模型 Wan2.1-I2V-14B-480P,加上 SVI 的 LoRA。
huggingface-cli download Wan-AI/Wan2.1-I2V-14B-480P --local-dir ./weights/Wan2.1-I2V-14B-480P huggingface-cli download vita-video-gen/svi-model --local-dir ./weights/Stable-Video-Infinity --include "version-1.0/*"- 把工作流装入 ComfyUI:仓库的
comfyui_workflow_svi_1.0/目录就是官方工作流。把它拷进 ComfyUI 的 custom_nodes 目录,重启后把目录里的 JSON 拖进画布,就能看到完整节点链:加载模型 → 输入图片 → 片段延展 → 解码输出。
有两点务必注意:SVI LoRA 不能直接套原版 Wan 2.1 工作流,padding 设置不一样,请用官方这份;每个片段用不同的 seed,否则生成的内容会重复。
🎬 第一支视频:参数怎么调
最小可运行流程就四步:
- 加载模型:在模型加载节点里加载 Wan2.1-I2V-14B-480P,再挂上 svi-shot.safetensors 这个 LoRA。
- 导入图片:用 Load Image 节点导入首帧。仓库 data/toy_test/ 目录下有现成的示例图,随手挑一张。
- 调参:对照下表给默认值,别一次改太多。
- 生成:点 Queue Prompt。建议先生成 2~3 个片段(10~15 秒)验证稳定,再拉长。
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 视频长度 | 10~30 秒起步 | 每 5 秒一个片段自动延展,单片段 81 帧 |
| 帧率 | 24~30fps | 24fps 是稳妥选择 |
| 运动强度 | 0.5~1.0 | 越大越剧烈,也越容易漂移 |
| 文本 CFG(cfg_scale_text) | 5.0 | 出现重影、跟随差时提到 7 |
| 参考帧(num_motion_frames) | Shot 用 1,Film 用 5 | 与训练配置保持一致 |
| 参考填充(ref_pad_num) | -1 | 单场景模式;0 会放宽约束,但有遗忘概率 |
如果暂时不想碰 ComfyUI,也可以直接跑 bash scripts/test/svi_shot.sh,用官方示例数据和提示词出片;gradio_demo.sh 则提供一个网页版界面。
进阶控制
文本引导:给每个片段写不同的剧本
SVI-Shot 用一条提示词就能延展开;官方工作流还支持每 5 秒片段各写一条提示词(streaming prompt),让剧情连续推进。推荐设置:
- 提示词写得长一些、细一些。训练数据是 LLM 生成的长文风格,一句短语容易运动不足。
- 在提示词里写明运镜,比如 dolly-in、tilt-down、orbit。仓库示例数据的写法可以直接抄。
姿态与动作:用骨骼视频控制
要精确控制人物动作,走 SVI-Dance 这条线:输入是"人物图 + 骨骼动画视频"。参考舞蹈视频可以用仓库自带的 dwpose 模块抽骨骼,脚本在utils/run_align_pose.py。推荐设置:cfg_scale_text 给 2.0,num_steps 给 50。文本权重越低,动作越由骨骼主导。
典型场景实战
官方放出过一支 14 分钟长视频的成片示例(SVI-2.0 与 SVI-Talk 组合生成),效果可以作参考上限:
对话视频:SVI-Talk
- 素材:1 张人物图 + 1 段音频(wav)。仓库里 obama.png 配 obama_5min.wav 就能直接跑。
- 预处理:先执行
scripts/data_preprocess/prepare_video_audio.py提取音频特征。 - 生成:跑 bash scripts/test/svi_talk.sh,示例生成 50 个片段,是一支几分钟的说话视频。
- 可预期效果:长时间口型与表情保持连贯,官方 10 分钟测试无漂移。
舞蹈视频:SVI-Dance
- 素材:人物图 + 姿态视频,示例数据在 data/toy_test/dance/ 下。
- 生成:跑 bash scripts/test/svi_dance.sh,示例 10 个片段,约 50 秒连续舞蹈。
- 顺带一提:SVI-Tom 能用单张图生成 8 分钟 Tom & Jerry 风格动画长片,与 Film 工作流通用,参考帧用 1。官方还在推 Wan 2.2 Animate SVI,舞蹈质量预期更高。
原理速览
先给直觉:普通自回归延展是拿模型自己的上一步输出去生成下一步,误差逐段累积,越生成越"跑偏"。SVI 的 Error Recycling 做法,是训练时把模型自己的误差喂回去:
- 注入:把历史生成误差混进干净输入,模拟真实的误差累积轨迹;
- 收集:用单步双向积分近似预测,残差即误差;
- 入库:误差按时间步分类存进"误差银行",训练时随机重采样。
模型由此学会主动识别并修正自己的误差,延展从盲目外推变成自我纠错。这套机制不增加推理开销,且兼容文本、音频、骨骼三类条件。因果性上它是混合体:片段间因果延展,片段内双向注意力,类似导演反复审看一个片段、再接上下一个。
⚙️ 排障与性能
- 症状:卡顿、显存不够 → 降回 480p、减少每批帧数;低显存卡可用量化加蒸馏 LoRA,采样步数适当加回来补质量;还能开启 VAE tiling(enable_vae_tiling)。
- 症状:颜色漂移 → 最有效的办法是用少量同风格视频微调;静态场景下 VAE 反复编解码也会积累误差。
- 症状:运动不足 → 检查输入图是否被缩放到训练分辨率 480×832 附近;图太宽会被限宽缩放,丢失运动,可调整 --max_width。
- 症状:重影、提示词跟随差 → 把 --cfg_scale_text 从 5.0 提到 7。
- 症状:漂移或遗忘 → 单场景用 Shot 模式(--ref_pad_num -1,官方 20 分钟测试无漂移);Film 模式在主体出画时有遗忘概率,这是该模式的特性,不算故障。
性能优化都归在上面第一条:优先 480p、控制片段数、开量化与 tiling,超长视频可分段生成再拼接。
跑通之后你会发现,SVI 不改变你 ComfyUI 的操作习惯,真正的变量只有权重和提示词。想继续深入,看这几处:docs/FAQ.md 里有参数细节和各类症状的成因;docs/DevLog.md 记录了误差回收的工程细节;想训自己的 LoRA,从 train_svi.py 和 scripts/train/ 下的脚本入手;data/toy_test/ 与 data/toy_train/ 里备好了示例数据和玩具训练集,回归验证时直接用。
【免费下载链接】Stable-Video-Infinity[ICLR 26 Oral] Stable Video Infinity: Infinite-Length Video Generation with Error Recycling项目地址: https://gitcode.com/GitHub_Trending/st/Stable-Video-Infinity
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考