Magic123

一张图,几秒钟生成高质量 3D 模型,几何纹理双保障。

Magic123 是一个由 ICLR'24 收录的官方 PyTorch 实现,专注于从单张图像生成高质量 3D 物体。它解决了传统单图 3D 重建中几何细节缺失和纹理模糊的问题,通过同时利用 2D 和 3D 扩散先验来引导生成过程,从而在保持几何准确性的同时丰富表面细节。其核心能力包括:基于文本或图像输入的 3D 生成、粗到细的优化策略、以及结合 NeRF 和网格表示的混合渲染。项目提供了完整的训练和推理代码,支持自定义数据集,并附有预训练模型,便于研究者复现和扩展。

开源 free 数字人3D
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1623
维护状态 维护中
是否开源 是
定价模式 free

项目数据

分类数字人3D
开发团队guochengqian
所属国家
定价模式free
价格说明开源项目,Apache-2.0许可,可免费使用和修改,无付费版本。
访问状态
是否开源是
开源协议Apache-2.0
主要语言Jupyter Notebook
技术栈/模型3d-generation,diffusion-models,image-to-3d
GitHub 星标★ 1623
30天Star增速
HF 下载量
上线时间2023-06-26 00:00:00
最近更新2026-09-18 00:00:00
维护状态维护中
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数5

使用教程

难度:高级 约 60 分钟 部署方式:本地安装 8 步

环境要求

  • Ubuntu 系统(README 说明仅在 Ubuntu 上测试)
  • 已安装 git、wget 和 Eigen(libeigen3-dev)
  • Python3 及 python3-venv(或 conda)
  • NVIDIA GPU,官方示例在 32G V100 上运行

安装与启动步骤

  1. 1安装系统依赖

    更新系统并安装 git、wget、Eigen 及 Python 开发包,为后续编译 CUDA 扩展做准备。

    apt update && apt upgrade
    apt install git wget libeigen3-dev python3-dev python3-venv -y
  2. 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. 3一键安装环境脚本

    在项目根目录执行 install.sh 完成其余环境配置;默认使用 venv,改用 conda 需先编辑该文件。

    source install.sh
  4. 4编译 CUDA 扩展

    安装完 PyTorch 后编译 CUDA 扩展,仓库中的脚本会自动检测 GPU 计算能力。

    bash scripts/install_ext.sh
  5. 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. 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. 7免文本反演预处理

    跳过耗时约 2.5 小时的 textual inversion,先做前景与深度估计,速度快但效果可能下降。

    python preprocess_image.py --path data/demo/a-full-body-ironman/main.png
  8. 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

项目介绍

Magic123 是数字人3D领域的开源项目,由 guochengqian 开发,2023 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(1,623)位列前 30%,在数字人3D分类的 272 个项目里位列前 14%。

项目仍在小幅维护中,最近一次代码更新于 2026-09-18。Apache-2.0许可,可免费使用和修改,无付费版本。

它主要面向的使用场景是:游戏资产快速建模,从概念图生成3D模型。同类可对比的替代方案包括 Zero-1-to-3、DreamFusion、One-2-3-45。

上一篇:GNM

下一篇:awesome-3d-4d-world-models

同类项目推荐

A3D 开源

在 three.js 里直接调用 AI 生成纹理和素材,边建模边生成

3D x AI hybrid editor, built with three.js

★ 129 2026-08-09
cube 开源

用一句话生成 3D 模型,在 Roblox 里快速落地 AI 创作

Roblox Foundation Model for 3D Intelligence

★ 1254 2026-08-09
AG3D 开源

用2D图片直接生成3D虚拟人,告别昂贵扫描

Official code release for ICCV2023 paper AG3D: Learning to Generate 3D Avatars from ···

★ 272 2026-08-09
GameFactory-3A 开源

一条命令生成 3A 游戏资产,从模型到视频全自动

A comprehensive open-source 3A game-generation skill and asset framework.

★ 798 2026-08-21