项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 1621
使用教程
环境要求
- Ubuntu 系统(README 说明仅在 Ubuntu 上测试)
- 已安装 git、wget 和 Eigen(libeigen3-dev)
- Python3 及 python3-venv(或 conda)
- NVIDIA GPU,官方示例在 32G V100 上运行
安装与启动步骤
-
1安装系统依赖
更新系统并安装 git、wget、Eigen 及 Python 开发包,为后续编译 CUDA 扩展做准备。
apt update && apt upgrade apt install git wget libeigen3-dev python3-dev python3-venv -y -
2创建虚拟环境
用 python venv 建独立环境并激活,随后升级 pip/setuptools/wheel 并安装 magic123 包。
python -m venv venv_magic123 source venv_magic123/bin/activate python -m pip install --upgrade pip setuptools wheel python -m pip install magic123 -
3一键安装环境脚本
在项目根目录执行 install.sh 完成其余环境配置;默认使用 venv,改用 conda 需先编辑该文件。
source install.sh -
4编译 CUDA 扩展
安装完 PyTorch 后编译 CUDA 扩展,仓库中的脚本会自动检测 GPU 计算能力。
bash scripts/install_ext.sh -
5运行单图 3D 生成
两阶段同时开启,GPU 0 上跑 dragon 示例,第一阶段任务名 nerf,第二阶段 dmtet。
bash scripts/magic123/run_both_priors.sh 0 nerf dmtet data/realfusion15/metal_dragon_statue 1 1 -
6追加运行参数
更多参数可直接附加在命令末尾,例如调整 2D 与 3D 引导权重 lambda_guidance。
bash scripts/magic123/run_both_priors.sh 0 nerf dmtet data/realfusion15/metal_dragon_statue 1 1 --lambda_guidance 1 40 -
7免文本反演预处理
跳过耗时约 2.5 小时的 textual inversion,先做前景与深度估计,速度快但效果可能下降。
python preprocess_image.py --path data/demo/a-full-body-ironman/main.png -
8免文本反演粗阶段
用 main.py 跑粗阶段,约 40 分钟;--workspace 指定输出目录,最后加 --save_mesh 导出网格。
export RUN_ID='default-a-full-body-ironman' export DATA_DIR='data/demo/a-full-body-ironman' export IMAGE_NAME='rgba.png' export FILENAME=$(basename $DATA_DIR) export dataset=$(basename $(dirname $DATA_DIR)) CUDA_VISIBLE_DEVICES=0 python main.py -O \ --text "A high-resolution DSLR image of a full body ironman" \ --sd_version 1.5 \ --image ${DATA_DIR}/${IMAGE_NAME} \ --workspace out/magic123-${RUN_ID}-coarse/$dataset/magic123_${FILENAME}_${RUN_ID}_coarse \ --optim adam \ --iters 5000 \ --guidance SD zero123 \ --lambda_guidance 1.0 40 \ --guidance_scale 100 5 \ --latent_iter_ratio 0 \ --normal_iter_ratio 0.2 \ --t_range 0.2 0.6 \ --bg_radius -1 \ --save_mesh
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
GPU_NO | 是 | 指定运行所用的 GPU 编号 | 0 |
JOBNAME_First_Stage | 是 | 第一阶段(粗)任务名称,决定输出子目录 | nerf |
JOBNAME_Second_Stage | 是 | 第二阶段(细,DMTet)任务名称 | dmtet |
--lambda_guidance | 否 | 2D 与 3D 先验的引导权重,两个值 | 1 40 |
--guidance_scale | 否 | SD 与 zero123 的引导强度缩放值 | 100 5 |
--sd_version | 否 | 使用的 Stable Diffusion 版本 | 1.5 |
如何确认成功
运行结束后检查 --workspace 指定目录,确认生成 checkpoints 及网格文件(--save_mesh 已开启)。
常见问题
Q:Windows 或 macOS 可以安装吗?
A:README 明确说明只在 Ubuntu 系统上测试过,其他系统未经验证,建议使用 Ubuntu 环境。
Q:不想做 textual inversion 怎么办?
A:可先用 preprocess_image.py 做前景与深度估计,再用 main.py 跑粗、细两阶段,但作者提示性能可能下降。
Q:一批图片怎么批量生成?
A:参考 scripts/magic123/run_folder_both_priors.sh 处理文件夹内所有示例,或用 run_list_both_priors.sh 处理给定列表。
Q:单张图生成要多久?
A:在 32G V100 上,粗阶段约 40 分钟,第二阶段约 20 分钟;textual inversion 额外需要约 2.5 小时。
Q:只想要 2D 或 3D 先验的消融结果?
A:可运行 scripts/magic123/run_2dprior.sh、run_2dprior_notextinv_ironman.sh 或 run_3dprior.sh 复现消融实验。
注意事项
- install.sh 默认使用 python venv;若偏好 conda,需在文件中取消 conda 注释并注释掉 venv 后再执行。
- 换用自己的示例时,需修改脚本内部的图片路径与文本提示(text prompt)。
- 免文本反演的 quick 模式效果可能下降,仅适合快速验证。
- PyPI 安装后仍需在装好 PyTorch 的基础上编译 CUDA 扩展才能运行。
核心亮点
- 结合 2D 和 3D 扩散先验,几何与纹理质量显著优于纯 2D 方法
- 提供官方实现和预训练模型,开箱即用,复现门槛低
- 支持多种输入(图像/文本),并集成 NeRF 与网格优化,灵活性强
不足之处
- 训练和推理资源消耗高,需要多 GPU 环境
- 对输入图像视角敏感,极端角度生成效果不稳定
适用场景
- 游戏资产快速建模,从概念图生成 3D 模型
- 电商产品展示,将 2D 商品图转为可交互 3D 视图
- 影视特效预可视化,快速生成场景道具原型
替代项目
Zero-1-to-3、DreamFusion、One-2-3-45
上一篇:GNM
同类项目推荐
单段视频训练可动全身高斯数字人
Official PyTorch implementation of "Expressive Whole-Body 3D Gaussian Avatar", ECCV ···
ldraw-nova
开源
用 AI Agent 自动拼出合法可搭的乐高数字模型
Agent tooling for generative LEGO models building, built with Astra and Opus 5.5, po···
FlowerDance
开源
用 MeanFlow 更快生成更细腻的 3D 舞蹈动作
[ECCV 2026] FlowerDance: MeanFlow for Efficient and Refined 3D Dance Generation
SGAM_NeurIPS22
开源
一张图生成连贯3D世界,生成与映射同步搞定
[NeurIPS 2022] SGAM: Building a Virtual 3D World through Simultaneous Generation and···
Meuxe
开源
让AI伴侣拥有动漫形象,实时表情语音互动
A companion that lives on your desktop. Remembers you, talks back, and stays on your···
SceneGen
开源
单张照片,一次前向,秒出完整 3D 场景
[3DV 2026] "SceneGen: Single-Image 3D Scene Generation in One Feedforward Pass"
desktop-waifu
开源
在桌面上养一个会聊天的 AI 老婆
Desktop Waifu!
DIMO
开源
给任意3D物体一键生成多种自然运动,动画制作快人一步
[ICCV 2025 (Highlight)] DIMO: Diverse 3D Motion Generation for Arbitrary Objects
MeshAnythingV2
开源
把任意3D模型变成艺术家级干净网格,面少质高
[ICCV 2025] From anything to mesh like human artists. Official impl. of "MeshAnythin···
