TripoSR 单图3D重建指南:一张照片 0.5 秒免费生成 3D 模型
【免费下载链接】TripoSRTripoSR: Fast 3D Object Reconstruction from a Single Image项目地址: https://gitcode.com/GitHub_Trending/tr/TripoSR
给 TripoSR 一张照片,直接产出可拖进任意 3D 软件打开的模型文件——这就是单图 3D 重建:程序自动去背景,重建不到 0.5 秒完成,网格文件存进输出目录。代价是约 6GB 显存,全程只敲两条命令,开源代码与权重按 MIT 许可发布,免费使用。
🔍 效果速览:单图变 3D 模型长什么样
上面动图是 TripoSR 对输入图片重建出的模型,旋转一周可以看清整体几何。输入图不用精修,普通照片即可,但主体清晰、背景简单时细节更完整。
✅ 环境要求自查:动手前先过 5 项
| 检查项 | 要求 | 说明 |
|---|---|---|
| Python | >= 3.8 | 用python --version确认 |
| PyTorch | CUDA 主版本与本地 CUDA 一致 | 本地 CUDA 11.x 就装 CUDA 11.x 编译的 PyTorch |
| setuptools | >= 49.6.0 | torchmcubes 编译依赖 |
| 显存 | 约 6GB | 单张图片、默认参数 |
| 无 CUDA 时 | 自动回退 CPU | 能跑,但速度慢很多 |
有一项不满足就先补齐再往下走,能避开一半的报错。
🎯 最短出模路径:两条命令从零到网格
先克隆仓库、装依赖(含 gradio,后面的 Web 界面不用再装):
git clone https://gitcode.com/GitHub_Trending/tr/TripoSR cd TripoSR pip install --upgrade setuptools pip install -r requirements.txt再跑一条命令出模型:
python run.py examples/chair.png --output-dir output/执行完output/里就有网格文件(默认 obj、顶点色),可直接导入常见 3D 软件;同目录还存了一份去背景后的输入图,方便核对主体识别是否准确。
⚙️ 按目标使用:三种需求 + 参数速查
如果你只要一个模型文件,上一节命令就够了;输出格式想换 glb,就加--model-save-format glb。
如果你要带真实贴图的模型,默认输出是顶点色。命令加--bake-texture触发纹理烘焙,可再配--texture-resolution 2048指定贴图分辨率,产物变成带 UV 坐标的网格加 texture.png 两个文件,后续在 3D 软件里换材质、打光都更方便。
如果你不想敲命令、想用浏览器,运行python gradio_app.py,Gradio 页面会自动打开,上传图片点按钮就出模型,适合换图连续试效果。
| 参数 | 默认值 | 什么时候用 |
|---|---|---|
--model-save-format | obj | 需要 glb 格式输出时改为 glb |
--bake-texture | 关闭 | 要带 UV 的真实贴图而非顶点色 |
--texture-resolution | 2048 | 配合--bake-texture指定贴图分辨率 |
| 多图路径 | 单张 | 多个路径空格分隔,一次批量重建 |
其余参数用python run.py --help查看。
❓ 高频故障 FAQ
1. torchmcubes 报错:无 CUDA 支持
现象:第一次提取网格时报AttributeError: module 'torchmcubes_module' has no attribute 'mcubes_cuda',或提示 "not compiled with CUDA support"。 原因:torchmcubes 编译时没带上 CUDA 支持。 处置:先核对本地 CUDA 主版本与 PyTorch 的 CUDA 版本一致,再执行pip install --upgrade setuptools,最后卸载重装 torchmcubes,完整命令见 README 的 Troubleshooting 段。
2. 显存不够或跑得太慢
现象:小显存显卡直接 OOM,或落到 CPU 上半天没结果。 原因:默认参数单图占约 6GB 显存;检测不到 CUDA 时程序自动回退 CPU。 处置:显存不够就把--chunk-size调小(显存占用更低但更慢);有 GPU 的机器优先用 GPU。
3. 去背景不准,模型和输入对不上
现象:主体被切掉一块,或背景残留在模型上。 原因:默认用 rembg 自动去背景,并把主体缩放到图幅 0.85(--foreground-ratio可调)。 处置:如果手头已经是灰底、主体居中的图,加--no-remove-bg跳过抠图直接输入。
🧭 源码地图:图片变模型的三个关键文件
- tsr/system.py:主系统入口,TSR 类负责整体推理流程
- tsr/models/nerf_renderer.py:三平面 NeRF 渲染器,负责把场景码渲染成图像
- tsr/bake_texture.py:纹理烘焙,生成 UV 贴图与颜色图
建议按这个顺序读:system.py 看全流程,nerf_renderer.py 看渲染,bake_texture.py 看贴图怎么做出来。读完把命令里的示例图换成你自己的照片再跑一遍,就完成了一次完整的单图 3D 重建。
【免费下载链接】TripoSRTripoSR: Fast 3D Object Reconstruction from a Single Image项目地址: https://gitcode.com/GitHub_Trending/tr/TripoSR
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考