Magic123

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

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 数字人3D 🍴 复刻 96
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 1621
维护状态 低维护
是否开源 开源
定价模式 🏷️完全免费 开源项目,Apache-2.0许可,可免费使用和修改,无付费版本。

项目预览

Magic123 项目界面预览图
图片来源:项目官网

项目数据

分类数字人3D
开发团队guochengqian
定价模式🏷️完全免费
价格说明开源项目,Apache-2.0许可,可免费使用和修改,无付费版本。
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议Apache-2.0
主要语言Jupyter Notebook
技术栈/模型3d-generation,diffusion-models,image-to-3d
GitHub 星标★ 1621
上线时间2023-06-26 00:00:00
代码更新2026-07-06
仓库体积115.2 MB
本站数据更新2026-11-10
维护状态低维护
收录时间2026-08-09
浏览次数6

项目介绍

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

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 1621

使用教程

难度:高级 约 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

上一篇:GNM

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

同类项目推荐

ExAvatar_RELEASE 开源

单段视频训练可动全身高斯数字人

Official PyTorch implementation of "Expressive Whole-Body 3D Gaussian Avatar", ECCV ···

★ 676 2026-10-28
ldraw-nova 开源

用 AI Agent 自动拼出合法可搭的乐高数字模型

Agent tooling for generative LEGO models building, built with Astra and Opus 5.5, po···

★ 535 2026-10-18
FlowerDance 开源

用 MeanFlow 更快生成更细腻的 3D 舞蹈动作

[ECCV 2026] FlowerDance: MeanFlow for Efficient and Refined 3D Dance Generation

★ 116 2026-10-27
SGAM_NeurIPS22 开源

一张图生成连贯3D世界,生成与映射同步搞定

[NeurIPS 2022] SGAM: Building a Virtual 3D World through Simultaneous Generation and···

★ 63 2026-08-09
Meuxe 开源

让AI伴侣拥有动漫形象,实时表情语音互动

A companion that lives on your desktop. Remembers you, talks back, and stays on your···

★ 79 2026-08-09
SceneGen 开源

单张照片,一次前向,秒出完整 3D 场景

[3DV 2026] "SceneGen: Single-Image 3D Scene Generation in One Feedforward Pass"

★ 521 2026-08-09
DIMO 开源

给任意3D物体一键生成多种自然运动,动画制作快人一步

[ICCV 2025 (Highlight)] DIMO: Diverse 3D Motion Generation for Arbitrary Objects

★ 156 2026-08-09
MeshAnythingV2 开源

把任意3D模型变成艺术家级干净网格,面少质高

[ICCV 2025] From anything to mesh like human artists. Official impl. of "MeshAnythin···

★ 1037 2026-08-09