Zero123++ 实战指南:如何用一张照片生成 6 个视角的 3D 模型

📅 发布时间:2026/8/19 17:49:49
Zero123++ 实战指南:如何用一张照片生成 6 个视角的 3D 模型 Zero123 实战指南如何用一张照片生成 6 个视角的 3D 模型【免费下载链接】zero123plusCode repository for Zero123: a Single Image to Consistent Multi-view Diffusion Base Model.项目地址: https://gitcode.com/gh_mirrors/ze/zero123plus设想一个再常见不过的场景你的店铺里只有一张产品正面照顾客却总想知道背面和侧面长什么样或者你给角色画了一张设定图想快速看看它转到背后是什么效果。过去这些需求意味着打开专业建模软件、花上几个小时甚至几天而现在一个开源项目让这件事变成了上传一张图、等几十秒、得到 6 个视角——它就是Zero123一个从单张图像生成一致多视角图像的扩散基础模型。在这篇文章里我会从它到底能做什么讲起逐步带你用 3 分钟跑起来再聊聊新手最容易踩的坑和几个进阶玩法。不堆术语尽量说人话。一张照片真的能变出 6 个视角吗先看效果零基础也能看懂的一句话总结Zero123 的输入是一张正方形图片输出是同一物体在 6 个不同角度下的视图而且 6 张图在风格、细节上高度一致就像同一件事物被一台很稳的相机绕着拍了一圈。下面这张图是项目主页的展示效果从玩具、灯具到植物每个物体都被转出了多个角度更具体一点输出的 6 个视角方位角固定为 30°、90°、150°、210°、270°、330°相当于把物体放在转盘上每转 60° 拍一张。最新的 v1.2 版本还把输出视场角统一为 30°更贴近现实中近距离观察的透视感生成结果也更适合直接喂给下游的 3D 重建流程。它凭什么能做到把机位写进扩散模型你可以把 Zero123 想象成一位经验老到的摄影师你只给它一张参考照片它就自动判断该站在哪些位置、用什么焦段、以什么俯仰角度拍摄为你交出 6 张看起来像同一件事物的照片。这里的底层技术是扩散模型diffusion model一种从随机噪声开始、一步步雕出图像的生成模型但 Zero123 和普通的新视角合成思路很不一样它从一开始就是按3D 生成设计的——假定物体尺寸是归一化的输出固定的一组相机位姿而不是随输入图片变化。这让它特别适合作为 3D 重建管线的前置模块。值得一提的 v1.2 改进有两处一是相机内参处理更精细对输入图像视场角的各种裁剪更鲁棒不再那么容易翻车二是仰角从原来的 30°/-20° 调整为 20°/-10°配合 30° 统一视场角还原了现实中近距离观看的真实观感。3 分钟上手不写代码也能跑起来的两种方式先克隆项目并安装依赖终端里执行git clone https://gitcode.com/gh_mirrors/ze/zero123plus cd zero123plus pip install -r requirements.txt然后二选一挑顺手的用方式一Gradio 网页界面强烈推荐新手python gradio_app.py浏览器会自动打开一个图形界面上传图片、勾选预处理选项、点击 Generate6 个视角就会逐个显示出来。界面里还内置了示例图片点一下就能立刻体验连素材都不用自己准备。方式二Streamlit 界面streamlit run app.py两种界面的体验大同小异选哪种都行。硬件方面只要你的电脑有 NVIDIA 显卡、显存约 5GB 以上基本就能流畅运行。三行代码调用 Zero123开发者最快上手路径如果你想把它集成进自己的项目更省事的做法是直接用 Python 调用。项目提供了基于 Diffusers 的自定义管道源码在 diffusers-support/pipeline.py加载模型、传入图片、得到结果三步完成import torch from PIL import Image from diffusers import DiffusionPipeline, EulerAncestralDiscreteScheduler # 1. 加载模型首次运行会自动下载权重 pipeline DiffusionPipeline.from_pretrained( sudo-ai/zero123plus-v1.1, custom_pipelinesudo-ai/zero123plus-pipeline, torch_dtypetorch.float16, ) pipeline.scheduler EulerAncestralDiscreteScheduler.from_config( pipeline.scheduler.config, timestep_spacingtrailing ) pipeline.to(cuda) # 2. 准备一张正方形照片建议分辨率不低于 320x320 cond Image.open(my_object.png) # 3. 生成 6 个视角保存为一张拼接图 result pipeline(cond, num_inference_steps75).images[0] result.save(multiview.png)几句大白话解释torch.float16是半精度模式能显著降低显存占用第 3 步的num_inference_steps是采样步数普通物体 28 步左右就够人脸这类细节多的图建议 75~100 步返回的是一张多格拼接的大图里面装着 6 个视角。想拆成 6 张独立图片、或做背景移除可以参考 gradio_app.py 里的处理逻辑。完整的可运行示例在 examples/img_to_mv.py直接python examples/img_to_mv.py就能跑通整个流程。五个真实场景Zero123 到底能帮你做什么场景一电商产品多角度展示上传一张汉堡照片立刻得到 6 个角度的视图顾客不用再靠想象脑补侧面长什么样。下面这张图左侧就是生成的多视角结果右侧是配套的法线图法线图用来描述表面朝向是 3D 领域常用的辅助信息场景二创意插画与艺术创作给插画师一个会转的草稿。下面这张幽灵吃汉堡就是典型玩法——先画一张概念图再让 Zero123 生成不同视角构图灵感立刻丰富起来场景三二次元角色多视角预览画师或模型师可以用它快速预览角色的各个角度再决定要不要进入精细建模环节省下大量返工时间场景四3D 打印前的预览检查打印前把实物照片转成多视角视图提前发现结构缺陷避免打印失败造成的材料浪费。场景五游戏与影视资产的快速原型上传设定图或道具草图立即获得多角度渲染预览加速原型评审不用干等完整模型做出来。新手最容易踩的 5 个坑输入不是正方形。模型要求正方形输入推荐分辨率 ≥320x320。宽图或竖图要先居中补边成正方形再上传gradio_app.py 里的expand2square就是干这个的。以为灰色背景是 bug。默认输出带灰色背景这是 Stable Diffusion VAE 的零值颜色属于正常现象不是生成失败。用rembg一行就能抠掉import rembg result rembg.remove(result)步数盲目拉满。步数高不等于效果好普通物体 28 步足够人脸等精细细节才需要 75~100 步。步数越高耗时越长别做无用功。显存不够就直接放弃。基础版约需 5GB 显存加了深度 ControlNet 约 5.7GB。显存紧张时优先用半精度float16能省下不少空间。忽略版本与许可。项目推荐diffusers0.20.2旧版本可能掉性能另外代码采用 Apache 2.0 许可但模型权重是 CC-BY-NC 4.0——模型本身不能用于商用产品线不过模型生成的输出图片可以自由使用。打算商用前务必先确认这一点。进阶玩法深度图、法线图与一键抠图如果觉得6 个视角还不够Zero123 还有两条进阶链路深度 ControlNet给每个视角加上深度信息参考 examples/depth_controlnet.py加载深度控制网络后可以生成带深度信息的图像为后续重建提供空间线索from diffusers import ControlNetModel pipeline.add_controlnet(ControlNetModel.from_pretrained( sudo-ai/controlnet-zp11-depth-v1, torch_dtypetorch.float16 ), conditioning_scale0.75)法线生成器 抠图后处理拿到更精准的遮罩v1.2 新增了法线生成 ControlNet能输出视图空间的法线图。相比常规抠图用法线图估计 alpha 遮罩更准确官方在验证集上的 alpha IoU 达到 98.81%。一条龙流程可以参考 examples/normal_gen.py 和 examples/matting_postprocess.py。文生图 → 图生多视角从一句话到 6 个视角如果你连参考图都没有还可以先让 SDXL 按文字生成主体并抠图见 examples/text_to_img.py再交给 Zero123 转成多视角——等于把文字 → 3D 预览的路径也一并打通了。结语现在轮到你了Zero123 的价值不在于替代建模师而在于把多视角预览这件事的成本压到近乎为零一张照片、几十秒、一次生成。无论你是想给商品补几张展示图还是想给角色草图找找新角度它都能立刻派上用场。最好的上手方式就是现在打开终端从一张随手拍的日常物品照片开始。遇到问题也别慌仓库的 Issues 区沉淀了大量同类问题的讨论项目自带的 README 和 examples 目录几乎覆盖了所有官方用法——照着跑一遍你就入门了。祝你玩得开心期待你生成的第一张多视角图【免费下载链接】zero123plusCode repository for Zero123: a Single Image to Consistent Multi-view Diffusion Base Model.项目地址: https://gitcode.com/gh_mirrors/ze/zero123plus创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考