跳到主要内容

三维生成 / 新视角合成

Zero123 本地部署:一张图,一整圈新视角

原版 Zero123 的官方演示要约 22GB 显存,Zero123++ v1.2 用 fp16 只要约 5GB —— 差了四倍多,卡选错就是白烧钱。下面把这一家族每个变体的真实占用、许可证边界和完整落地路径一次讲透。

Zero123(论文名 Zero-1-to-3)出自哥伦比亚大学 CVLab 与丰田研究院,Ruoshi Liu、Rundi Wu、Basile Van Hoorick、Carl Vondrick 等人是作者,代码在 github.com/cvlab-columbia/zero123,MIT 许可。它干的事情听起来很朴素:给一张物体照片,再给一组相对相机位姿 (R, T),直接扩散出这个物体在新视角下长什么样。技术底子是 Lambda Labs 那版图像条件 Stable Diffusion,然后在 Objaverse 渲染数据(views_release.tar.gz,ODC-By 1.0)上微调 —— 官方放出四个权重 105000.ckpt、165000.ckpt、230000.ckpt、300000.ckpt,对应不同微调步数,最长的一支烧掉约 6000 个 A100 小时。

麻烦在于「Zero123」现在指四样不同的东西,而且不是同一批人做的。原版 Zero123 是哥大那支;Zero123-XL 是同一条线换到千万级的 Objaverse-XL 数据上重训;Stable Zero123 是 Stability AI 重做渲染流程和仰角条件之后的版本,权重叫 stable_zero123.ckpt,走 Stability 非商用研究许可(另有一个 Stable Zero123C 走 Community License 可商用);而 Zero123++ 完全是另一队人 —— Ruoxi Shi、Hao Su 等人的 SUDO-AI,仓库 github.com/SUDO-AI-3D/zero123plus,代码 Apache 2.0、权重 CC-BY-NC 4.0。四条线的显存需求从 5GB 到 22GB 不等,许可证从 MIT 到禁止商用都有,下载前先看清楚。

更实在的一句话:如果你今天要的是「单图进、能用的 3D 网格出」,原版 Zero123 已经是一份参考实现而不是生产方案 —— 它一次只出一张新视角,视角之间不保证一致,要拼成 3D 还得套 threestudio 的 SDS 逐物体优化,一个物体动辄几十分钟起。真正还在被大量调用的是 Zero123++ v1.2(0.9B,一次直接出 3×2 六视图网格),它是 InstantMesh、FreeSplatter 这些前馈重建管线的多视图后端。而端到端那一段,已经被 TRELLIS(微软,MIT,arXiv 2412.01506)和 Hunyuan3D 2.x(0.6B 到 3.0B,形状生成约 6GB、加贴图约 16GB)这类原生 3D 隐空间模型接管了。这不是坏消息 —— 它意味着你的显存预算可以下调,同样一张 RTX 3090 就能把 Zero123++ 主线跑得很舒服。

01 —

Zero123 家族的四条线:别下错权重,也别买错卡

同名不同队,显存差四倍多,许可证也各不相同

版本参数量显存上下文说明
Zero123 · 105000.ckpt(官方默认)SD 图像变体基座,单个 ckpt 文件 15.5GBfp32 gradio 演示 ~22GB单图 + 相对位姿 (R, T) → 单张新视角README 点名可在 RTX 3090 / 4090(Ti) 上跑。代码 MIT,是整条线的参考实现,也是复现论文数字时该用的那一支。
Zero123 · 165000 / 230000 / 300000.ckpt同架构,仅 Objaverse 微调步数不同同为 ~22GB 级别同上,wget cv.cs.columbia.edu/zero123/assets/$iteration.ckpt最长的一支约 6000 A100 小时训成。步数更多不等于你这批数据上效果一定更好,官方默认仍是 105000,务必自己对比。
Zero123-XL同架构,训练数据换成 Objaverse-XL与原版同级 ~22GB单图 + 相对位姿 → 单张新视角从十万级 Objaverse 换到千万级 Objaverse-XL 重训,对真实拍摄照片的泛化明显更稳,是原版之后第一次数据层面的大升级。
Stable Zero123 / Stable Zero123Cstable_zero123.ckpt,Stability AI 出品threestudio SDS 粗阶段 ~12GB,精修 ~10GB必须喂 RGBA 去背景图(文件名带 _rgba.png 后缀)重做渲染数据与仰角条件,官方称优于原版 Zero123 与 Zero123-XL。普通版是非商用研究许可,只有 C 版走 Community License 才能商用 —— 这一条最容易踩。
Zero123++ v1.10.9Bfp16 ~5GB单图 → 3×2 六视图网格,仰角 30° / -20°SUDO-AI 的第一版,靠 diffusers 的 custom_pipeline 加载。配套 controlnet-zp11-depth-v1 做深度控制时约 5.7GB。
Zero123++ v1.2(推荐主线)0.9B,safetensorsfp16 ~5GB;挂 ControlNet ~5.7GB六视图固定方位角 30/90/150/210/270/330°,仰角 20° / -10°,统一 30° FOV相机内参处理更规范、物体尺寸归一化,是今天真正被大量调用的一支:InstantMesh 用它的定制版 UNet 出白底多视图,FreeSplatter 等也接它。权重 CC-BY-NC 4.0,商用要另谈。

02 —

按场景挑卡:显存对得上,钱才不白花

以下均为 NexGPU 列表价,按秒计费,随时销毁

  • Zero123++ v1.2 推理,单图出六视图(fp16 约 5GB)

    RTX 3090 24GB$0.193/卡·时

    0.9B 的 UNet 在 24GB 上宽裕到可以同时挂 ControlNet 和 rembg,这是整个列表里跑 Zero123++ 性价比最高的一张。

  • 原版 Zero123 权重跑 gradio_new.py(官方标注约 22GB)

    RTX 5090 32GB$0.723/卡·时

    22GB 塞进 24GB 卡只剩 2GB 余量,稍微加个 batch 或开个可视化就 OOM;32GB 让你有空间不必反复重启。

  • threestudio + stable-zero123 逐物体 SDS 优化

    RTX 4090 24GB$0.540/卡·时

    SDS 粗阶段只要约 12GB,显存不是瓶颈 —— 这是小时级的优化任务,算力快一档直接等于账单短一截。

  • Zero123++ 微调(configs/zero123plus-finetune.yaml)或 InstantMesh 批量出网格

    RTX A6000 48GB$0.817/卡·时

    微调要同时装下权重、梯度和优化器状态,48GB 能开到有意义的 batch size;InstantMesh 官方那套「双卡省显存」的模式在这张卡上也可以直接单卡跑完。

03 —

从零到出图:四步跑通

以 Zero123++ v1.2 为主线,原版权重与 SDS 路线各留一条岔路

  1. 01

    开实例,装依赖

    在 NexGPU 控制台选一张 RTX 3090 24GB,直接用预置的 PyTorch 镜像开机,SSH 或 Jupyter 进去。Zero123++ 走 diffusers 生态,依赖很轻;rembg 用来把输入图抠成 RGBA —— 这一步不是可选的,整个 Zero123 家族喂进去的都必须是干净去背景的物体图,带背景的照片出来的新视角会糊成一团。

    pip install -U diffusers transformers accelerate rembg && python -c "import torch; print(torch.cuda.get_device_name(0))"
  2. 02

    跑 Zero123++ v1.2,一次拿到六视图

    注意两个容易漏的细节:一是必须指定 custom_pipeline="sudo-ai/zero123plus-pipeline",直接 from_pretrained 是加载不起来的;二是调度器要换成 EulerAncestralDiscreteScheduler 且 timestep_spacing="trailing",这个参数写错出图质量会明显掉。输入建议至少 320×320 且接近正方形,步数在 28 到 100 之间,复杂物体往高了给。输出是一张 3×2 的网格图,六个视角方位角固定在 30/90/150/210/270/330°。

    pipe = DiffusionPipeline.from_pretrained("sudo-ai/zero123plus-v1.2", custom_pipeline="sudo-ai/zero123plus-pipeline", torch_dtype=torch.float16).to("cuda:0")
    pipe.scheduler = EulerAncestralDiscreteScheduler.from_config(pipe.scheduler.config, timestep_spacing="trailing")
    pipe(Image.open("input_rgba.png"), num_inference_steps=75).images[0].save("six_views.png")
  3. 03

    岔路:要复现论文就上原版权重

    原版仓库锁在 Python 3.9,而且 taming-transformers 和 CLIP 都得从源码装,pip 一把梭是装不上的。权重单个文件 15.5GB,先看好盘够不够。这条路只推荐两种人走:复现论文数字的,和要在 Zero123 架构上改结构的。纯粹想要多视图,回第二步。

    conda create -n zero123 python=3.9 -y && conda activate zero123
    pip install -r requirements.txt
    git clone https://github.com/CompVis/taming-transformers.git && pip install -e taming-transformers/
    git clone https://github.com/openai/CLIP.git && pip install -e CLIP/
    wget https://cv.cs.columbia.edu/zero123/assets/105000.ckpt
    python gradio_new.py
  4. 04

    接下游:从六视图到真正的 3D

    两条路。前馈路线用 InstantMesh(Apache 2.0,需 CUDA≥12.1、PyTorch 2.1+),它内部就是一个定制过的 Zero123++ UNet 出白底多视图,再用 LRM/Instant3D 那套稀疏视图重建直出网格,秒级到分钟级,配置有 instant-mesh-large 和 instant-nerf-large 等四档,加 --export_texmap 可以导出带贴图的网格。优化路线用 threestudio 的 stable-zero123 做 SDS,质量上限更高但一个物体要跑小时级 —— 记得图必须是 _rgba.png 后缀的去背景图。

    python launch.py --config configs/stable-zero123.yaml --train --gpu 0 data.image_path=./load/images/hamburger_rgba.png

一天把三条路线全验证一遍,要花多少钱

按 NexGPU 列表价老老实实算一笔。第一条线,Zero123++ v1.2 推理,fp16 约 5GB,RTX 3090 24GB 每卡时 $0.193 —— 装环境、拉 0.9B 权重、跑几十张输入图,占用 40 分钟,$0.193 × 40 ÷ 60 = $0.13。第二条线,原版 105000.ckpt 单文件 15.5GB,下载加 gradio 调参占 2 小时,为了给官方那 22GB 留出余量走 RTX 5090 32GB,$0.723 × 2 = $1.45。第三条最贵,threestudio 的 stable-zero123 是逐物体 SDS 优化,一个物体在 RTX 4090 上跑满 1 小时,一天跑 12 个,$0.540 × 12 = $6.48。三条加起来 $8.06 —— 不到九美元,你就知道自己这批数据该走哪条路,而不是先花几万块买卡再来后悔。存储另算:把 105000.ckpt 和 Zero123++ 权重一起留在盘上约 20GB,按 $0.414/GB·月 是 $8.28 一个月,所以验证完记得删掉不要的权重。这里有个计费细节值得记牢:实例一停算力就不再计费,但盘不销毁会一直计。出网量几乎可以忽略 —— 导出 200 个网格和预览视频约 2GB,$0.0081 × 2 ≈ 不到两美分。

04 —

常见问题

Zero123 本地部署到底需要多大显存?

看你说的是哪一个 Zero123。原版哥大那版的 gradio 演示,README 明写约 22GB,只有 24GB 及以上的卡扛得住;Stable Zero123 走 threestudio 的 SDS 管线,粗阶段约 12GB、精修约 10GB;Zero123++ v1.2 最省,fp16 约 5GB,挂上深度 ControlNet 也才约 5.7GB。也就是说门槛从 5GB 到 22GB 横跨四倍多,一句「Zero123 要多少显存」是答不了的。在 NexGPU 上你可以先开一张 RTX 3090 24GB($0.193/卡·时)把四个变体挨个试过来,按秒计费,试完就销毁。

Zero123 和 Zero123++ 是同一个项目的两个版本吗?

不是,这是这个领域最常见的误会。Zero123 出自哥伦比亚大学 CVLab 与丰田研究院,仓库 cvlab-columbia/zero123,MIT 许可;Zero123++ 是 SUDO-AI 团队(Ruoxi Shi、Hao Su 等)另起炉灶做的,仓库 SUDO-AI-3D/zero123plus,代码 Apache 2.0、权重 CC-BY-NC 4.0。连输出形态都不一样:原版一次给一张新视角,Zero123++ 一次直接给 3×2 的六视图网格且视角之间保持一致。名字像,权重不通用,别互相替换着下。想两个都实测的话,NexGPU 单张 3090 就够,五分钟开机。

都 2026 年了,Zero123 还值得部署吗?被什么取代了?

分开看。原版 Zero123 现在主要是参考实现和教学价值 —— 单视角输出、需要 SDS 才能拼成 3D,端到端这一段已经被 TRELLIS(微软,MIT)和 Hunyuan3D 2.x(0.6B 到 3.0B,形状约 6GB、加贴图约 16GB)这类原生 3D 隐空间模型接手了。但 Zero123++ v1.2 完全没有过时:它是 InstantMesh、FreeSplatter 等前馈重建管线的多视图后端,月下载量还在万级。合理的做法是把 Zero123++ 当组件用,端到端拿新一代模型做基线,两边对比着挑。这两类模型 NexGPU 都有现成镜像,同一台机器上就能横评。

Zero123 系列能用于商业项目吗?

许可证是这个家族最大的坑,四条线四种答案。原版 Zero123 代码是 MIT,训练用的 Objaverse 渲染数据是 ODC-By 1.0;Stable Zero123 普通版是 Stability AI 非商用研究许可,只有 Stable Zero123C 才走 Community License 允许商用;Zero123++ 代码 Apache 2.0 但权重是 CC-BY-NC 4.0,明确禁止商用;InstantMesh 本体 Apache 2.0,可它内部调的仍是 Zero123++ 权重,商用前这一层必须捋清楚。技术验证阶段这些都不影响你跑 —— 在 NexGPU 上租卡评估不需要提配额申请,也没有起租门槛,先把效果验证完再去谈授权。

24GB 的 RTX 4090 能跑原版 Zero123 吗?

能,README 就是点名 RTX 3090 / 4090(Ti) 的。但要有心理准备:22GB 占用塞进 24GB,余量只剩 2GB,多开一个可视化窗口、稍微加一点 batch,或者同时跑个背景分割就会 OOM。如果只是跑通看效果,NexGPU 的 RTX 3090 24GB 每卡时才 $0.193,是最便宜的验证路径;如果你要连续调参不想被重启打断,RTX 5090 32GB($0.723/卡·时)或 RTX A6000 48GB($0.817/卡·时)会省下大量重跑时间。两种卡在我们这儿都是随开随用。

从一张图到能导入引擎的 3D 网格,完整要几步?

最短路径三步:rembg 抠成 RGBA 去背景图 → Zero123++ v1.2 出 3×2 六视图 → InstantMesh 的稀疏视图重建直出网格,加 --export_texmap 就带贴图,全程分钟级。想要更高质量就换 threestudio + stable-zero123 的 SDS 优化路线,代价是每个物体小时级的 GPU 时间。这两条路线的显存分布很不一样 —— 前者一张 RTX 3090 24GB($0.193/卡·时)就够,后者建议 RTX 4090 24GB($0.540/卡·时)用算力换时间。NexGPU 覆盖 51 个国家和地区、1,175 个已验证可租节点、2,498 张 GPU,预置镜像超过 2,000 个(含 PyTorch、ComfyUI),Telegram 中英双语支持不排队,开机就能跑第一张图。

开始使用 NexGPU

无论你是企业研发团队还是独立开发者,都可以在几分钟内跑起第一个任务。

注册即可浏览全网实时价格,无需绑定支付方式。