한 장의 이미지로 고품질 3D 객체 생성하는 Magic123 PyPI 공개

KAUST, Snap Inc., 옥스퍼드 대학이 공동 개발해 ICLR 2024에 채택된 오픈소스 3D 생성 도구 Magic123이 2026년 7월 6일 PyPI를 통해 공식 패키지로 출시됐다. 단 하나의 이미지만으로 고품질 3D 객체를 생성하는 이 기술은 이제 pip install magic123 한 줄로 누구나 설치해 활용할 수 있다.

 

Magic123이란? — 2D와 3D 프라이어의 결합

Magic123의 핵심 아이디어는 기존 이미지-to-3D 방식의 한계를 동시에 극복하는 것이다. 2D 디퓨전 프라이어(Stable Diffusion)만 쓰면 상상력과 디테일은 풍부하지만 3D 일관성이 떨어지고, 3D 디퓨전 프라이어(Zero-1-to-3)만 쓰면 3D 일관성은 좋지만 디테일이 부족하다. Magic123은 이 두 가지를 동시에 활용해 각각의 강점을 결합한다. 연구팀은 두 프라이어의 강도를 조절하는 단일 파라미터(--lambda_guidance)를 설계해 사용자가 직접 탐색(상상력·디테일)과 정밀도(3D 일관성) 사이의 트레이드오프를 컨트롤할 수 있게 했다.

 


▲ Magic123 학습 수렴 과정 데모 — 2D 프라이어만(SDS), 3D 프라이어만(Zero123), Magic123 결합 비교

 

2D·3D 프라이어 강도에 따른 결과 비교

아래 영상은 2D 프라이어 강도(lambda_2D)를 높일수록 결과물이 더 상상력 풍부하고 디테일해지지만 3D 일관성이 줄어드는 트레이드오프를 시각적으로 보여준다.


▲ Joint Prior 강도 조절 효과 — lambda_2D 증가 시 상상력·디테일↑, 3D 일관성↓

 

기술 아키텍처 — 코어스-투-파인 2단계 파이프라인

Magic123은 Stable-DreamFusion을 기반으로 한 2단계 파이프라인 구조다.

  • Coarse 단계 (약 40분): NeRF(Neural Radiance Field) 기반으로 3D 객체의 전반적인 형태를 잡는다. 초반 2,000 이터레이션에서 노멀 맵을 활용해 기하학적 품질을 높이며, 노이즈 시간 범위를 [0.2, 0.6]으로 설정해 이미지-to-3D 태스크에 최적화한다.
  • Fine 단계 (약 20분): DMTet(Differentiable Marching Tetrahedra) 방식으로 세밀한 텍스처와 메시를 정제한다. 세그멘테이션 경계 아티팩트를 제거하는 --rm_edge 옵션이 기본 적용된다.

선택적으로 Textual Inversion을 적용하면 입력 이미지의 고유한 질감을 AI가 더 잘 학습하지만 32G V100 기준 약 2시간이 추가 소요된다. 아이언맨처럼 잘 알려진 오브젝트나 텍스트로 충분히 설명 가능한 대상은 Textual Inversion 없이도 좋은 결과가 나온다.

 

설치 방법

Ubuntu 시스템, Python 3.10~3.12, NVIDIA GPU + CUDA 환경이 필요하다.

1단계 — 시스템 패키지 설치

apt update && apt upgrade
apt install git wget libeigen3-dev python3-dev python3-venv -y

2단계 — 가상환경 생성 및 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단계 — CUDA 확장 빌드

export CUDA_HOME=${CUDA_HOME:-/usr/local/cuda-12.9}
export PATH=$CUDA_HOME/bin:$PATH
git clone https://github.com/guochengqian/Magic123.git
cd Magic123
bash scripts/install_ext.sh
GPU CUDA 아키텍처 필요 환경
RTX 5090 (Blackwell) sm_120 CUDA 12.8+, gcc-14
RTX 4090 / 4090 Ti 8.9 CUDA 12.x

 

사전 학습 모델 다운로드

  • Zero-1-to-3 (3D 디퓨전 프라이어): 105000.ckptpretrained/zero123/
  • MiDaS (깊이 추정): dpt_beit_large_512.ptpretrained/midas/

 

실행 — 드래곤 예시

bash scripts/magic123/run_both_priors.sh 0 nerf dmtet data/realfusion15/metal_dragon_statue 1 1

출력물은 --save_mesh 옵션으로 .obj, .mtl, 텍스처 파일로 내보낼 수 있으며 Blender, MeshLab 등에서 바로 열 수 있다. 빠른 검증을 원하면 10스텝 스모크 테스트를 먼저 실행한다.

bash scripts/magic123/smoke_train_ironman_10_steps.sh 0 out/smoke-ironman-10-steps

 

의의 및 전망

Magic123의 PyPI 공개는 학술 연구 수준에 머물던 고품질 이미지-to-3D 기술이 개인 크리에이터와 개발자 손에 들어오는 실질적인 전환점이다. 패션 이커머스의 제품 3D 뷰어, 게임 에셋 자동 생성, AR/VR 콘텐츠 제작, 건축·제품 시각화 등 단일 이미지 입력만으로 3D 모델을 즉시 생성할 수 있는 워크플로우가 열린다. GitHub Star 1,600개를 넘기며 커뮤니티의 높은 관심을 받고 있으며, Threestudio, DreamCraft3D 등 주요 3D 생성 프레임워크에서도 핵심 구성 요소로 활용되고 있다. Stable Diffusion 생태계 위에 3D 생성 레이어가 올라오는 흐름에서 Magic123은 핵심 오픈소스 인프라로 자리잡을 가능성이 높다.

 

📅 원문 날짜: 2026년 7월 6일 | 출처: PyPI – magic123 · GitHub · 공식 프로젝트 페이지 · arXiv 논문