Stability AI 生成模型实操:3 条命令从图片到 4D 视频
【免费下载链接】generative-modelsGenerative Models by Stability AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-models
generative-models 是 Stability AI 的开源生成模型项目,核心是一套 YAML 配置驱动的扩散模型代码,覆盖 SDXL-Turbo 文生图、SVD 图生视频、SV3D 单图多视角环绕视频、SV4D 与 SV4D 2.0 短视频到 4D 新视角生成。本文面向有 CUDA GPU、想直接跑推理或想微调自己模型的同学。
上图为 SV4D 2.0 以 camel.gif 为输入输出的新视角视频。
先排掉两个最常见的跑挂原因
Python 版本和权重位置
项目在 Python 3.10 下才保证稳定,其他版本容易撞依赖冲突,建虚拟环境时直接锁版本:
git clone https://gitcode.com/GitHub_Trending/ge/generative-models cd generative-models python3.10 -m venv .gm && source .gm/bin/activate接着装 PyTorch 的 cu118 轮子,再各一行执行pip install -r requirements/pt2.txt和pip install .。
模型权重一律放checkpoints/目录,例如 SV4D 2.0 一行下载:huggingface-cli download stabilityai/sv4d2.0 sv4d2.safetensors --local-dir checkpoints。文件名放错或漏下,是"跑不起来"里最高频的一种。
最短推理命令
环境就绪后,4D 生成就一条命令:
python scripts/sampling/simple_video_sample_4d2.py \ --input_path assets/sv4d_videos/camel.gif --output_folder outputs--input_path接受 gif/mp4 文件、一帧帧图片的文件夹或文件名模式;输出在outputs/sv4d2/下写一个 mp4 加一张输入 jpg。能正常生成 21 帧 mp4,说明链路通了。
显存不够时降哪三个参数
吃显存的大头是 VAE 批量编解码。SV4D 系列脚本提供--encoding_t和--decoding_t,分别控制一次编码、解码多少帧:
python scripts/sampling/simple_video_sample_4d2.py \ --input_path your.mp4 --encoding_t=1 --decoding_t=1 --img_size=512先上--encoding_t=1 --decoding_t=1,显存直接砍半;还不够再叠加--img_size=512——注意 512 是妥协项,SV4D 2.0 按 576 分辨率训练,质量会打个折,这是 README 明确给出的低显存路径。SVD 系列对应参数是--decoding_t,脚本默认 14,同样可以调小,脚本都在 sampling 目录。验证标准:进程跑完不报 OOM,或nvidia-smi观察峰值显存落在显卡容量内。
输入背景复杂,先清背景再喂
SV4D 和 SV4D 2.0 都假设输入是白底单物体。背景干净的素材,加--remove_bg=True即可,脚本会用 rembg 自动去背景并裁剪。
真实拍摄、背景杂乱的素材,rembg 单靠内置模型处理效果有限,官方建议先用 Clipdrop 或 SAM2 这类工具把前景物体切出来、导出白底帧序列,再交给脚本。验证方式很直接:看预处理后的帧是不是"白底上只有一个物体",原背景还露着,生成的新视角就会畸变和闪烁。
采样慢时用步数换质量
SV4D 2.0 的--num_steps默认 50,调低可以明显缩短采样时间,官方说明里明确允许这么做;SV4D 1.0 默认 20,觉得糊了再往 50 加。文生图任务走 SDXL-Turbo,它本身就是为快速出图设计的,一条命令起 Streamlit 页面:
streamlit run scripts/demo/turbo.py权重文件放到checkpoints/sd_xl_turbo_1.0.safetensors就能用。
上图为 SDXL-Turbo 文生图的多图拼接结果。
想自定义相机轨迹怎么传参数
只有 SV3D_p 版本接受相机参数。--elevations_deg传单值就是固定高度环绕;要逐帧指定轨迹就传 21 个值(SV3D 生成 21 帧),范围 -90 到 90 度,--azimuths_deg同样 21 个值,0 到 360 度:
python scripts/sampling/simple_video_sample.py \ --input_path your_image.png --version sv3d_p --elevations_deg 10.0上例是固定仰角环绕;动态轨迹把两个参数都换成 21 元素列表即可,各视角对应的 YAML 在 sampling configs 目录。
上图为 SV3D 由单张图生成的环绕视频。
想训练自己的模型改哪里
所有组件靠instantiate_from_config()从 YAML 装配,训练配置模板 里 MNIST 条件生成一条命令就能起:
python main.py --base configs/example_training/toy/mnist_cond.yaml--base可接多个配置,后者覆盖前者,模型、训练、数据可以拆成三份文件各自管理。改造时抓两处:条件输入统一走GeneralConditioner,每个 embedder 声明input_key和ucg_rate;采样器与 guider 是分离的,换采样策略不用动模型定义。
下一步挑上面一个任务在你机器上完整跑一遍,报错时先对一下checkpoints/里的文件名和配置里引用的路径是否一致。
【免费下载链接】generative-modelsGenerative Models by Stability AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-models
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考