# APNG Lip Sync Tool 개발기 - v16: 문서화 및 배포 ## 개요 프로젝트 문서화를 완성하고 배포 가이드를 작성합니다. ## 프로젝트 구조 (최종) ``` 20251208-make-apng-tool/ ├── .env # API 키 설정 ├── .gitignore ├── pyproject.toml # Python 의존성 ├── .venv/ # 가상환경 │ ├── src/ # Python 백엔드 │ ├── __init__.py │ ├── config.py # 설정 및 상수 │ ├── gemini_client.py # Gemini API 클라이언트 │ ├── face_detector.py # 얼굴/입 영역 감지 │ ├── apng_generator.py # APNG 생성 │ ├── text_to_viseme.py # 텍스트→입모양 변환 │ ├── tts_engine.py # TTS 엔진 │ ├── lipsync_player.py # 립싱크 재생 관리 │ └── api.py # Flask API │ ├── public/ # 프론트엔드 │ └── index.php # 메인 웹 인터페이스 │ ├── uploads/ # 업로드된 이미지 ├── characters/ # 생성된 캐릭터 ├── output/ # 생성된 파일 │ ├── docs/ # 블로그 문서 │ ├── make-apng-tool-v1.md ~ v16.md │ ├── generate_visemes.py # CLI 도구 ├── test_api.py # API 테스트 ├── test_image_analysis.py # 이미지 분석 테스트 └── test_viseme_generation.py # Viseme 생성 테스트 ``` ## 설치 방법 ```bash # 1. 저장소 클론 cd /var/www/your-domain/blog/ git clone ... 20251208-make-apng-tool cd 20251208-make-apng-tool # 2. 환경 설정 cp .env.example .env # .env 파일에 GOOGLE_API_KEY 설정 # 3. Python 환경 설정 uv venv uv pip install google-genai python-dotenv pillow apng flask gtts pydub # 4. 테스트 source .venv/bin/activate python test_api.py ``` ## 사용 방법 1. **캐릭터 생성** - 웹 인터페이스에서 인물 이미지 업로드 - "Generate Visemes" 클릭 - 약 30초 후 캐릭터 생성 완료 2. **립싱크 재생** - 캐릭터 선택 - 텍스트 입력 - "Play Lip Sync" 클릭 ## 향후 개선 사항 - [ ] Next.js 프론트엔드 마이그레이션 - [ ] 실시간 웹소켓 스트리밍 - [ ] 고급 TTS (감정 표현) - [ ] 다국어 지원 확대 - [ ] 캐릭터 편집 기능 ## 라이선스 MIT License ## 시리즈 완료 이것으로 APNG Lip Sync Tool 개발기 시리즈를 마칩니다. 총 16개의 포스트를 통해 Gemini AI를 활용한 립싱크 애니메이션 시스템을 구현했습니다. 핵심 기술: - **Gemini 2.5 Flash Image**: 입모양 이미지 생성 - **APNG**: 브라우저 호환 애니메이션 - **gTTS**: 텍스트 음성 변환 - **PHP + Python**: 풀스택 구현 감사합니다!