Stable Video Diffusion(简称SVD)是Stability AI推出的图像到视频生成模型,能够在本地显卡上把一张静态图扩展成几秒短的连贯视频。相比调用线上API,本地部署既保护隐私又省去按帧计费的成本。ComfyUI作为节点式界面,把模型加载、采样、解码拆成可视模块,特别适合SVD这种多阶段推理任务。本文将系统讲解如何从零在本地把SVD跑起来,并正确安装和配置ComfyUI相关节点。

准备基础环境与获取ComfyUI
在动手之前,先确认机器具备NVIDIA显卡且驱动支持CUDA 11.8或以上。AMD或纯CPU环境虽能勉强运行,但SVD的迭代计算量很大,没有CUDA加速几乎不可用。Python建议用3.10版本,避免部分依赖包对高版本解释器的兼容问题。系统层面请预留至少12GB显存,若只有8GB显存,后续需要开启分块加载,否则模型初始化就会报显存溢出。
ComfyUI本身是一个开源的节点编辑工具,不需要复杂安装。直接从官方仓库克隆源码到本地目录即可,例如使用命令拉取主分支。克隆完成后,进入目录执行依赖安装脚本,它会自动拉取torch、torchvision等重量级库。注意如果系统已有其他AI绘图环境,最好新建虚拟环境隔离,防止numpy或torch版本冲突导致启动闪退。
启动测试时运行主程序文件,终端会打印监听地址。打开浏览器进入该地址,若看到空白画布和左侧节点列表,说明ComfyUI基础环境正常。此时还没有SVD能力,因为默认只带了文生图基础节点。下一步要拿到模型文件并补齐视频专用节点,否则在工作流里搜不到图像转视频相关模块。
git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI python -m venv venv source venv/bin/activate pip install -r requirements.txt python main.py --listen 127.0.0.1 --port 8188
下载SVD模型与放置路径配置
SVD发布过多个检查点,常用的有svd.safetensors和svd_xt.safetensors,后者支持更长帧数。模型文件体积约在5到8GB,需从HuggingFace或官方镜像手动下载,因为ComfyUI不会自动拉取视频模型。下载后不能随便丢,必须放进ComfyUI的指定子目录,否则加载节点会提示找不到权重。
正确做法是放到ComfyUI/models/checkpoints目录下,和Stable Diffusion的文生图模型同级。若你使用ComfyUI管理工具如ComfyUI-Manager,也可通过它的模型下载入口搜索SVD,但底层仍是写入checkpoints文件夹。放置完毕后重启后端,在节点Load Checkpoint里就能看到svd相关条目。需要区分的是,SVD不是普通图片模型,它内部包含时序编码器,因此用错加载器会导致张量维度不匹配。
很多新手把模型塞进models/stable-diffusion却始终不显示,就是路径误解。另外如果磁盘格式为FAT32,单文件超过4GB会写入失败,应转用exFAT或NTFS。模型放置后可用如下Python片段校验文件完整性,避免下载中断产生坏档,加载到一半才崩溃反而更难排查。
import hashlib
def sha256_sum(path):
h = hashlib.sha256()
with open(path, 'rb') as f:
# 分块读取避免占满内存
for chunk in iter(lambda: f.read(8192), b''):
h.update(chunk)
return h.hexdigest()
print(sha256_sum('ComfyUI/models/checkpoints/svd.safetensors'))
安装ComfyUI视频节点与连接工作流
原生ComfyUI不含SVD采样节点,需要额外安装社区维护的扩展,例如ComfyUI-VideoHelperSuite和ComfyUI_SVD节点包。以Manager方式为例,在界面右侧点击安装缺失节点,搜索视频辅助套件并应用,后端会自动拉取仓库和依赖。若离线部署,可手动git clone到ComfyUI/custom_nodes目录,然后重开服务。
节点就位后,新建工作流:先拖入Load Checkpoint加载svd模型,再接入Load Image读取首帧画面,之后连到SVD_img2vid_Conditioning节点设定帧数(如14或25)和帧率(一般6到8)。后续接KSampler做去噪,最后经VAE Decode和Video Combine输出mp4。这里有个易错点,SVD的VAE必须来自模型自带解码器,不能套用SD1.5的vae,否则视频发绿或全黑。
配置参数时,采样步数建议20到30,太少了运动不连贯,太多了耗时翻倍且易糊。cond_perc参数控制首帧约束强度,设0.9可保住原图结构。若显存紧张,在KSampler启用tiled VAE并调小batch。下面示例展示最小可运行节点连接逻辑,实际界面操作就是按此数据线把端口一一对应。
{
"nodes": [
{"type": "LoadCheckpoint", "name": "svd_load", "ckpt": "svd.safetensors"},
{"type": "LoadImage", "name": "first_frame", "path": "input/001.png"},
{"type": "SVD_img2vid_Conditioning", "frame": 14, "fps": 7, "name": "cond"},
{"type": "KSampler", "steps": 25, "cfg": 2.5, "name": "sampler"},
{"type": "VAEDecode", "name": "decode"},
{"type": "VideoCombine", "name": "out", "format": "mp4"}
],
"links": [
["svd_load:MODEL", "cond:MODEL"],
["first_frame:IMAGE", "cond:IMAGE"],
["cond:COND", "sampler:COND"],
["sampler:LATENT", "decode:LATENT"],
["decode:IMAGE", "out:IMAGE"]
]
}
显存优化与常见故障排查
8GB显存用户最常遇到CUDA out of memory。除了开启分块VAE,还可以在启动ComfyUI时加--lowvram参数,让模型权重常驻内存并动态卸载中间激活。另一种思路是改用svd精简版,帧数压到8帧以内,分辨率限制在576x320,这样峰值占用能降到6GB左右。切忌同时开多个工作流标签,后台会缓存计算图导致叠加占用。
黑屏或绿屏多数源于VAE错配和CUDA版本错位。先确认torch.version.cuda与显卡驱动一致,用nvidia-smi和python -c "import torch;print(torch.cuda.is_available())"交叉验证。若输出False说明PyTorch装成了CPU版,需重装cu118索引的wheel。节点层面,检查VAEDecode上游是否真的来自SVD模型输出,而不是手动接了其他vae节点。
还有一类问题是生成视频抖动严重,这往往是fps与运动尺度不匹配。SVD在低帧率下默认大位移,可把fps提到8并减少采样噪声,或在conditioning里调小motion bucket。如果声音不同步那是因为SVD本身不生音频,Video Combine仅封装静轨,需要后期用ffmpeg混音。掌握这些配置项,本地SVD就能稳定产出可用素材。
# 低显存启动示例 python main.py --listen 127.0.0.1 --port 8188 --lowvram # 验证torch cuda python -c "import torch;print(torch.cuda.is_available())"
整体来看,Stable Video Diffusion的本地化并不复杂,核心在于环境隔离、模型归位和节点正确连线。ComfyUI的模块化让调试直观,哪里断链一目了然。完成上述步骤后,你便能离线将任意图片转为短视频,为后续剪辑或AI工作流提供原材料。
Stable_Video_DiffusionComfyUI本地部署修改时间:2026-08-16 16:12:42