얼굴 이미지 → DECA 복원 → 3종 바디 GLB 자동 병합 → 정면 PNG 프리뷰까지 한 번에 처리하는 AI 파트입니다.
- DECA 복원 (GPU): 얼굴 이미지 → 3D 얼굴 메시/시각화 산출
- Blender 일괄 병합:
body.glb / flower.glb / V_pose.glb를 한 번의 Blender 세션에서 순차 병합 - 헤어 옵션(선택): 업로드한
.glb헤어 합성 - 정면 프리뷰 렌더: 1536×1536 투명 PNG(RGBA), 전신 자동 프레이밍
- Linux(Ubuntu 권장), NVIDIA GPU(CUDA)
- Blender (glTF Export 포함) — 기본 경로는
/usr/bin/blender
↳ 다르면main.py의BLENDER_EXEC값을 수정 DECA/디렉터리(원본 DECA 코드 +deca_model.tar등 리소스)human/폴더에 바디 모델 3종:
human/
├─ body.glb
├─ flower.glb
└─ V_pose.glb
# Conda 환경 생성
conda env create -f deca_venv.yml
# 환경 활성화
conda activate deca_venvuvicorn main:app --host 0.0.0.0 --port 8000Form-Data
file(required): 얼굴 이미지.jpg/.pnghair_model(optional): 헤어.glb
성공 응답 예
{
"message": "DECA 처리 및 Blender 배치 머지+렌더 완료",
"merged_filename": "merged_xxx.glb",
"preview_filename": "merged_xxx.png",
"extra_filenames": {
"flower": "merged_xxx_flower.glb",
"v_pose": "merged_xxx_vpose.glb"
}
}예시
curl -X POST http://localhost:8000/process-deca \
-F "file=@face.jpg" \
-F "hair_model=@hair_black.glb"results/에 생성된 .glb 또는 .png를 다운로드합니다.
AI/
├─ main.py # FastAPI 엔드포인트 (/process-deca, /download)
├─ deca_runner.py # DECA 실행 래퍼
├─ plus.py # 얼굴-바디(+헤어) 병합 (Blender)
├─ plus_batch.py # Blender 1회 기동 일괄 병합
├─ render_preview.py # 정면 프리뷰 렌더 (투명 PNG)
├─ human/ # body.glb / flower.glb / V_pose.glb
├─ uploads/ # 업로드(자동 생성)
└─ results/ # 산출물(자동 생성)
- 본 모듈은 DECA (Detailed Expression Capture and Animation) 의 구현을 활용합니다. DECA는 Yao Feng 외 연구진이 개발한 3D Face Reconstruction 프레임워크로, 원 저작권 및 라이선스(저장소 내 LICENSE 파일)를 반드시 준수해야 합니다.
- human/*.glb는 외부 바디 모델이며, 각 자산의 저작권과 라이선스 조건을 따릅니다.
- 헤어 모델, 학사복, 학사모 3D 에셋은 ShinChapter 팀이 직접 제작한 창작물이며, 모든 저작권은 제작자인 ShinChapter에 있습니다. 무단 사용, 복제, 배포를 금합니다.
