一张图变成3D环绕视频:Stability AI SV3D 新手速通指南
【免费下载链接】generative-modelsGenerative Models by Stability AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-models
本文带你上手 Stability AI 官方生成模型仓库(generative-models)中的 SV3D:一款能把单张图片生成 3D 环绕视频的图生视频模型。环境搭建只需几条命令,跑通后任何一张物体照片都能变成 21 帧的旋转展示视频,适合电商从业者、内容创作者和想体验图生视频的新手。
先睹为快:一张照片能变成什么
先看两张实际效果:第一张是多个物体(手套、沙发、木马、仙人掌、宇航员……)各自生成的环绕帧序列,第二张是一个机甲角色原地旋转的动图。共同点是——输入都只有一张静态图,模型自己"脑补"出了背后看不见的角度。
从0到1:装好环境,跑出第一条环绕视频
整个过程分三步:拿代码、建环境、下权重。下面每段命令前都说明了它的作用。
第一步,克隆代码仓库:
git clone https://gitcode.com/GitHub_Trending/ge/generative-models cd generative-models第二步,创建虚拟环境并安装依赖(建议 Python 3.10 + CUDA 11.8,PyTorch 安装时请按自己的 CUDA 版本替换索引地址):
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 .第三步,下载 SV3D_u 权重到checkpoints/目录(需要先安装huggingface_hub工具):
huggingface-cli download stabilityai/sv3d sv3d_u.safetensors --local-dir checkpoints第四步,用仓库自带的示例图跑第一次推理,命令如下:
python scripts/sampling/simple_video_sample.py --input_path assets/test_image.png --version sv3d_u跑完后,视频(mp4)会默认保存在outputs/simple_video_sample/sv3d_u/目录里,同时附一张输入图副本。这就是你的第一条 3D 环绕视频。
SV3D_u 还是 SV3D_p:两种相机控制怎么选
SV3D 提供两个变体,区别只在"相机怎么动":
| 对比项 | SV3D_u | SV3D_p |
|---|---|---|
| 相机轨迹 | 固定环绕轨迹,开箱即用 | 自定义仰角/方位角路径,精确控视角 |
| 需要额外参数 | 无,只给图片即可 | 可传--elevations_deg、--azimuths_deg |
| 典型用法 | 快速出片、社媒展示 | 产品展示、专业镜头设计 |
| 推理配置 | scripts/sampling/configs/sv3d_u.yaml | scripts/sampling/configs/sv3d_p.yaml |
简单判断:只想快速看效果,选_u;需要指定从哪个角度看、怎么转,选_p。
以 SV3D_p 为例,固定仰角 10° 生成环绕视频只需在命令后加一个参数:
python scripts/sampling/simple_video_sample.py --input_path 你的图片.png --version sv3d_p --elevations_deg 10.0
如果你想要更自由的运镜,也可以给仰角和方位角各传 21 个数值(对应 21 帧),逐帧定义相机角度。所有参数都支持在 scripts/sampling/simple_video_sample.py 中直接查看默认值。
调出更好效果:步数、显存、种子三个参数
日常调优基本只需要盯住下面三个参数:
--num_steps(采样步数):SV3D 默认 50 步,质量与耗时的平衡点。赶时间可以降到 25 左右先看个预览,正式出片再拉回 50。--decoding_t(一次解码的帧数):默认 14,是显存消耗的大头。显存紧张时把它调小(最低可到 1),几乎不影响画质,只影响速度。--seed(随机种子):默认 23。固定种子可以让同样的输入得到可复现的结果,方便你对比不同参数的差异。
显存有限时的一个稳妥组合:
python scripts/sampling/simple_video_sample.py --input_path 你的图片.png --version sv3d_u --decoding_t 1输入图片准备也有讲究:模型训练时用的是 576×576、白底、单一物体的图片,所以主体居中、背景干净的照片效果最好。好消息是推理脚本会先用 rembg 自动抠图、居中并填充白底,普通照片也能直接喂进去,但背景越简单,抠图越准。
落地场景:不止电商展示
- 电商商品图:一件首饰、一双鞋,一张主图变 360° 展示视频,详情页直接嵌 mp4,替代成本更高的实拍转台。
- 3D 资产素材:游戏、AR/VR 项目需要多角度资产时,可以先用 SV3D 快速产出环绕帧,作为占位或参考素材。
- 教学与科普:文物、标本、机械结构这类"需要看背面"的物体,拍一张正视图就能生成多角度演示。
- 社媒内容:产品上新、设计作品发布,一条旋转小视频比九宫格更容易抓住停留时长。
背后是怎么实现的(一句话版)
SV3D 构建在 Stable Video Diffusion 的视频扩散框架之上:输入图片作为唯一的条件帧,一个带时空注意力的 VideoUNet 在"时间轴 × 空间轴"上联合去噪,一次预测出 21 帧连贯画面;SV3D_p 则把仰角、方位角序列编码进条件输入,让相机走位可控。核心时空注意力实现可以参考 sgm/modules/video_attention.py。
常见问题与快速排查
Q1:生成的视频偏糊、细节不够?把--num_steps拉满到 50,并换一张主体清晰、光照均匀、背景干净的输入图。输入质量对输出影响很大。
Q2:显存爆掉、跑到一半 OOM?降低--decoding_t(如设为 1)。这是脚本作者明确给出的显存优化手段,优先于降画质。
Q3:物体转起来变形、漂移?先确认图里只有一个主体且大致居中;背景复杂的图建议人工先抠好、保存为透明 PNG 再输入,脚本对 RGBA 图会直接跳过自动抠图环节。
接下来可以试试
- 换三张完全不同的图(人、动物、机械各一),对比同一参数下的生成效果,建立直觉;
- 用 SV3D_p 试一组自定义
--elevations_deg序列,感受手动运镜和默认环绕的差异; - 想继续深入的,仓库里还有 SV4D / SV4D 2.0(视频转 4D)的推理脚本(见 scripts/sampling/ 目录)和训练配置示例(见 configs/example_training/),可以顺着 SV3D 的思路往下读。
第一张图到第一条 3D 环绕视频,中间只隔着四行命令。挑一张手边的照片,现在就可以开始。
【免费下载链接】generative-modelsGenerative Models by Stability AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-models
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考