[oky-generator] 그림 한 장으로 3D 모델을, 블렌더 안에서
캐릭터 그림 한 장을 넣으면 블렌더 안에 3D 메시가 들어오는 도구를 만들기 시작했습니다. 이름은 oky-generator. 지금은 PoC 단계입니다.

저장소에 들어 있는 샘플 chyla. 앞 · 옆 · 뒤가 한 장에 그려진 캐릭터 시트입니다.
구조: 가벼운 애드온 + 무거운 백엔드
| 부분 | 하는 일 | 도는 곳 |
|---|---|---|
blender_addon/ | 블렌더 4.x 사이드바 패널. 백엔드를 실행하고 결과 GLB를 불러옴 | 블렌더가 도는 어디든 (macOS 포함) |
backend/ | 이미지 → 3D 모델을 돌리는 파이썬 CLI | Windows + RTX 4070 Ti |
블렌더 파이썬에 PyTorch를 밀어 넣지 않고, 애드온은 백엔드 파이썬을 따로 실행만 합니다. 블렌더는 가볍게, 모델은 GPU 있는 환경에서.
블렌더에서 View3D > Sidebar > oky 패널을 열고, 백엔드 파이썬과 스크립트 경로를 지정하고, 앞모습 이미지를 고른 뒤 Generate 3D.
백엔드: TripoSR
generate.py는 TripoSR로 이미지 한 장에서 메시를 뽑습니다.
- 배경 제거: rembg (끌 수도 있음)
- 회색 배경에 합성: TripoSR가 학습한 중간 회색(0.5)에 맞춰
- 가운데 정렬: 전경 영역만 잘라 정사각으로 채우고 512×512로
- 추론 → 마칭 큐브: 해상도 128 / 256 / 512 중 선택
- GLB로 저장 → 블렌더로 불러오기
처음 돌리면 TripoSR 가중치(약 1.5GB)를 받습니다.
맥에서도
같은 날 PR #1로 Apple Silicon 맥에서도 돌 수 있게 했습니다.
--device옵션: auto / cuda / mps / cpu. auto면 CUDA → MPS → CPU 순서로PYTORCH_ENABLE_MPS_FALLBACK: MPS가 아직 못 하는 연산은 CPU로 넘기기 (torch를 불러오기 전에 설정해야 해서 맨 위에)- macOS에선
onnxruntime-gpu휠이 없어서 배경 제거는rembg[cpu]로
맥은 아직 실제로 돌려 보진 못했고, 4070 Ti보다 느릴 겁니다.
다음
패널엔 이미 앞 · 옆 · 뒤 이미지 칸이 있습니다. 지금은 앞모습만 씁니다. chyla처럼 옆과 뒤까지 그려 둔 시트가 있으면, 앞모습만으로는 짐작할 수밖에 없는 꼬리와 등의 무늬까지 살릴 수 있을 거예요.
- 앞모습 이미지 한 장 → GLB (TripoSR)
- 앞 · 옆 · 뒤 여러 장 (InstantMesh)
- 하이폴리 후처리 (Subdivision + Multires + 디스플레이스먼트 베이크)
- 백엔드를 계속 띄워 두기 (요청마다 모델을 다시 불러오지 않게)