2步跑通:CogVideoX本地文生视频,单卡输出5秒成片
【免费下载链接】CogVideotext and image to video generation: CogVideoX (2024) and CogVideo (ICLR 2023)项目地址: https://gitcode.com/GitHub_Trending/co/CogVideo
把「a girl riding a bike」敲进终端,单张4090卡50秒内就能生成一个81帧的mp4。81帧÷16fps≈5秒,480x720分辨率,做完直接能播放。仓库里带CogVideoX-2B/5B和CogVideoX1.5系列的完整推理与微调代码,CogVideoX文生视频全在本地完成。
子任务1:装好环境,Python锁3.10–3.12
Python版本卡在3.10–3.12之间,高了低了都装不起来。下面这条命令先把仓库拉下来,再按 requirements.txt 装全部依赖:
git clone https://gitcode.com/GitHub_Trending/co/CogVideo cd CogVideo && pip install -r requirements.txt成功的标志是终端不再报错,diffusers>=0.35.2、torch>=2.8.0这些包全部装完,随后python -c "import diffusers"不抛异常。
子任务2:一条命令出第一条文生视频
这条命令用2B模型做一次文生视频:81帧、50步去噪、分类器自由引导(classifier-free guidance)强度6.0,其余参数全走 inference/cli_demo.py(官方推理入口,管参数解析、模型加载与视频导出)里的默认值:
python inference/cli_demo.py --prompt "A girl riding a bike." --model_path THUDM/CogVideoX-2b --generate_type t2v看到当前目录多出./output.mp4,播放时长约5秒(81帧@16fps),链路就算通了。官方调度器是DPM(timestep_spacing="trailing"),2B档位也可以换成DDIM,代码注释里有说明。
官方Web演示截图,对应上面「去噪完成、导出成片」这一步的输出形态。
最后一步是3D因果VAE把潜变量解码成真实视频帧,再由export_to_video写成mp4。显存富余时可以把enable_sequential_cpu_offload()换成enable_model_cpu_offload()提速,但别把offload整行删掉。
子任务3:扩写提示词,参数一张表
这里有个坑:模型是用长描述训练的,一句话提示词约束太弱,画面容易放飞。先用 inference/convert_demo.py(提示词扩写工具,调大模型把短提示扩成细节描述)把一句话变长提示再喂进去,画面会明显更稳。
参数默认值全部在 cli_demo.py 里,速查如下:
| 参数 | 控制什么 | 推荐值/范围 | 偏高的代价 | 偏低的代价 |
|---|---|---|---|---|
num_frames | 帧数,即时长 | 49 / 81 / 161 | 视频更长,显存与耗时上升 | 视频更短,出片更快 |
num_inference_steps | 去噪步数 | 30–50 | 细节更干净,单次生成更慢 | 更快,但可能出现噪点与抖动 |
guidance_scale | 提示词贴合强度 | 4.0–6.5 | 更贴文字,过高画面过饱和 | 发挥空间变大,容易跑偏 |
fps | 导出播放帧率 | 8–16 | 同样帧数播放更短、更利索 | 播放更长但更拖沓 |
seed | 随机种子 | 任意整数,默认42 | 换值即出新视频 | 固定值可复现同一条视频 |
需要偏离默认值的场景只有一个:换模型档位。1.0档配49帧@8fps(6秒),1.5档配81或161帧@16fps(5/10秒),两套不能混搭。
子任务4:图生视频i2v,让一张静图动起来
验收标准:输出视频的分辨率和输入图一致,首帧与静图对得上。
下面这条命令把--generate_type换成 i2v,用仓库自带示例图做输入,1.5-5B-I2V 支持任意分辨率输出:
python inference/cli_demo.py --prompt "The wind blows across the street" --model_path THUDM/CogVideoX1.5-5b-I2V --generate_type i2v --image_or_video_path ./inference/gradio_composite_demo/example_images/street.png跑完看 output.mp4 的宽高与输入图一致、开头画面和静图衔接,就算通过。1.0档 i2v 固定480x720,1.5档默认768x1360,想自定义分辨率只有1.5-5B-I2V支持。
官方图生视频演示的示例输入图,输出视频的宽高就跟随这张图。
高频翻车点与对策
- 显存OOM或慢到怀疑人生→ 根因:权重加VAE同时驻留显存 → 对策:保留默认的
enable_sequential_cpu_offload()别删,还爆就换2B模型。 - 画面内容和提示词对不上→ 根因:一句话提示词,文本约束太弱 → 对策:用 convert_demo 扩写成长提示,加
--guidance_scale 6.5再跑一遍对比。 - 播放时长和帧数对不上→ 根因:fps没按模型档位配套 → 对策:保持1.0档49帧@8fps、1.5档81或161帧@16fps,必须改时按时长=帧数÷fps核算。
提示词和模型都不动,给刚才的 t2v 命令加上--seed 7再跑一次,把两条成片并排播放对比——这是最快看出种子和参数实际影响的做法。
【免费下载链接】CogVideotext and image to video generation: CogVideoX (2024) and CogVideo (ICLR 2023)项目地址: https://gitcode.com/GitHub_Trending/co/CogVideo
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考