Stability AI generative-models 上手指南:5分钟跑通图生视频、3D环绕与4D生成
【免费下载链接】generative-modelsGenerative Models by Stability AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-models
这是 Stability AI 官方开源的 generative-models 代码库(包名sgm),一个仓库装下四条生成路线:SDXL 文生图、SVD 图生视频、SV3D 单图 3D 环绕、SV4D 2.0 视频转 4D。核心设计是配置驱动:模型、网络、loss、采样器全部由 YAML 声明,instantiate_from_config负责拼装,你可以原样用官方推理脚本,也可以只改配置去训练自己的模型。下面带你 5 分钟跑通第一条视频。
🧩 一个仓库解决什么问题
很多开源扩散模型仓库是"训练代码 + 权重"的散装组合,想换个采样器或注意力类型,得翻好几个文件。这个仓库的做法是:每个组件在 YAML 里只写target(类路径)和params(参数),运行时按需实例化。
比如 configs/inference/sv3d_u.yaml 里,网络声明为sgm.modules.diffusionmodules.video_model.VideoUNet,条件注入声明为GeneralConditioner,采样器独立于模型。你想做消融实验,改的是配置文件,不是代码。
三步装好环境并完成首次采样
先 clone 仓库,再依次建环境、装依赖、拉权重、跑推理,一条命令序列走完:
# 1. 克隆仓库并进入目录 git clone https://gitcode.com/GitHub_Trending/ge/generative-models cd generative-models # 2. 建虚拟环境,安装 CUDA 11.8 版 PyTorch 和项目依赖,最后把 sgm 装成包 python3.10 -m venv .generativemodels source .generativemodels/bin/activate pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 pip3 install -r requirements/pt2.txt pip3 install . # 3. 下载 SV3D_u 权重,必须放到 checkpoints/ 目录 huggingface-cli download stabilityai/sv3d sv3d_u.safetensors --local-dir checkpoints # 4. 用仓库自带示例图生成 21 帧 576x576 环绕视频 python scripts/sampling/simple_video_sample.py --input_path assets/test_image.png --version sv3d_u输入就是这张白底单物体图,符合模型训练时的分布偏好:
跑完后视频落在outputs/simple_video_sample/sv3d_u/下,--version换成svd、sv3d_p等即可切换路线,对应权重需提前放进checkpoints/。
四条推理路线怎么选
| 路线 | 输入 | 输出 | 推理入口 | 模型配置 |
|---|---|---|---|---|
| SVD / SVD-XT | 单张图片 | 14 / 25 帧平移视频 | simple_video_sample.py | svd.yaml |
| SV3D_u / SV3D_p | 单张图片 | 21 帧 360° 环绕视频 | 同上 | sv3d_u.yaml / sv3d_p.yaml |
| SV4D 2.0 | 21 帧短视频 | 48 帧多视角 4D 视频(自回归生成) | simple_video_sample_4d2.py | sv4d2.yaml |
| SDXL base / refiner | 文本 | 1024×1024 图片 | sampling.py(Streamlit) | sd_xl_base.yaml |
四条路线共用同一套sgm模块,区别只在 YAML。SV3D_p 比 SV3D_u 多一个相机控制权:elevations_deg传单个数值即固定仰角环绕,传 21 个元素的列表则逐帧指定仰角,配合azimuths_deg可任意设计运镜路径。4D 路线的输入可以是 gif、mp4,或一帧帧图片文件夹:
# 用仓库自带的骆驼走动 gif 跑 SV4D 2.0,权重同样放 checkpoints/ python scripts/sampling/simple_video_sample_4d2.py --input_path assets/sv4d_videos/camel.gif --output_folder outputs兼顾质量与速度的三个旋钮
num_steps:采样步数。SV3D 与 SV4D 2.0 默认 50 步,降到 20 左右速度接近翻倍,细节略损,适合先预览构图。decoding_t/encoding_t:一次解码/编码的帧数。视频模型显存的大头在解码阶段,显存吃紧时各设为 1 即可,这是官方给出的低显存方案。img_size:输出分辨率。默认 576,降到 512 能进一步省显存。
另外seed固定后可复现同一结果,跨实验对比时记得统一它。
生成效果一览
下面是各路线的代表性输出,直接来自仓库 assets:
SVD 的图生视频:一张静图延伸为带位移和景深的短视频。
SV3D 环绕输出:同一张图生成 360° 连续视角。
SV4D 2.0:输入一段走动视频,输出多相机视角下保持时序一致的新视角画面。
SDXL Turbo:一步生成的文生图,速度快到可以批量出图挑种子。
容易卡住的三个问题
提示找不到权重文件?推理脚本只负责按配置组装模型,不会自动下载。确认对应.safetensors已位于checkpoints/,路径错了直接报缺文件。
显存不够 OOM?按顺序降:--decoding_t=1(4D 路线加--encoding_t=1)→--img_size=512→--num_steps 20。视频模型的解码阶段占显存最多,先动decoding_t。
安装就报依赖冲突?仓库是在 python3.10 + PyTorch 2.0(cu118)下验证的。其他 Python 版本装requirements/pt2.txt时容易撞版本,建议直接用 3.10 建环境。
这份代码适合谁来用
- 内容制作:商品图批量出环绕展示视频,电商详情页直接可用。
- 研究者:guiders(guiders.py)、采样器(sampling.py)、denoiser 彼此解耦,做对照实验只需换配置。
- 想自己训练的人:configs/example_training/toy/ 里的 MNIST、CIFAR-10 配置开箱即跑,先小数据集验证流程再上真实数据。
- 工程集成方:sgm/inference/api.py 暴露了
SamplingParams数据类和采样接口,方便包进自己的服务里。
接下来可以做的三件事
- 起一个可交互的界面,边调参数边看效果:
# 图生视频/3D 的 Streamlit 演示 streamlit run scripts/demo/video_sampling.py- 用玩具配置完整跑一次训练,熟悉
main.py的多配置合并机制(后面的配置会覆盖前面的同名参数):
python main.py --base configs/example_training/toy/mnist_cond.yaml- 读源码补原理:从 sgm/modules/diffusionmodules/video_model.py 的
VideoUNet入手,再看 sgm/modules/spacetime_attention.py 里时空注意力如何拆分。
训练产物统一落在logs/<日期_配置名>/下的checkpoints/、configs/、images/;推理产物在outputs/对应子目录,直接拷走就能用。
【免费下载链接】generative-modelsGenerative Models by Stability AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-models
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考