VisionAIDocs
GitHub
VISIONAI GUIDE

아바타 생성

짧은 인물 영상으로 새 아바타를 만들고, 생성한 인물을 실시간 재생 화면에 연결합니다.

로컬 소스와 실제 테스트 기준2026.09.17 업데이트

현재 설치에서는 영상으로 Wav2Lip 아바타를 생성할 수 있습니다. 별도 인물 학습 없이 영상 프레임, 얼굴 이미지와 좌표 파일을 준비하는 전처리 방식입니다. 생성 화면은 사진 한 장을 업로드하는 방식이 아닙니다.

영상 준비

권장 시작 조건은 얼굴이 선명한 정면 영상, 자연스럽게 다문 입, 일정한 조명입니다. 인물이 너무 작거나, 얼굴이 가려지거나, 고개를 크게 돌리는 장면은 피하세요.

  • 처음에는 5~10초의 MP4로 시험합니다. 이는 시작을 위한 권장 길이이며 생성기의 고정 제한이 아닙니다.
  • 현재 재생은 25fps이므로 입력 영상도 25fps로 정규화합니다. 생성기는 입력 프레임을 그대로 추출하며 자동으로 속도를 맞추지 않습니다.
  • 소스 영상의 음성은 아바타 목소리로 복제되지 않습니다. TTS 음성과 얼굴은 별도로 설정합니다.
  • 아바타의 대기·몸 움직임은 소스 프레임을 반복하므로, 반복해도 자연스러운 구간을 선택합니다.

생성 화면 사용

  1. Avatar Creator를 엽니다.
  2. Model에서 Wav2Lip을 선택합니다. 현재 설치에 MuseTalk 가중치는 준비되어 있지 않습니다.
  3. Avatar IDmy_avatar_001처럼 새 이름을 입력합니다. 영문·숫자·밑줄 조합을 권장합니다.
  4. 영상 파일을 선택합니다.
  5. Advanced Settings에서 아래 값을 확인합니다.
  6. Submit Task를 누르고 작업 상태가 Completed가 될 때까지 기다립니다.
옵션 현재 권장 시작값 의미
Image Size 256 현재 Wav2Lip 가중치에 사용하는 얼굴 크기
Face Detect Batch Size 1 또는 4 검출 한 번에 처리하는 프레임 수
Pads 0 10 0 0 얼굴 위·아래·왼쪽·오른쪽 여백
BBox Shift 0 MuseTalk용 옵션, Wav2Lip에서는 사용하지 않음

Mac의 얼굴 검출은 CPU에서 실행됩니다. 최초에는 S3FD 가중치 약 86MiB를 자동으로 내려받습니다. 영상 길이와 해상도에 따라 생성 시간이 달라집니다. Failed가 표시되면 오류 메시지를 확인하세요.

이미 사용한 Avatar ID를 덮어쓰면 이전 프레임과 서버 캐시가 남을 수 있습니다. 새 영상을 만들 때는 새 ID를 사용하세요.

실제 생성 예제

사용한 원본은 Person_looks_at_camera_20260917001709.mp4입니다. 8초, 1280×720, 24fps 영상으로, 중간에 고개를 깊게 숙이고 입을 여는 장면이 있었습니다.

정면을 보고 입을 다문 5.5~8초 구간을 골라 별도 25fps 무음 영상으로 변환했습니다. 원본 파일은 보존했습니다.

# LiveTalking 디렉터리에서 실행
ffmpeg -ss 5.5 \
  -i /Users/dimplejuno/Downloads/Person_looks_at_camera_20260917001709.mp4 \
  -t 2.5 -an -vf fps=25 -c:v libx264 -crf 18 -pix_fmt yuv420p \
  output/mac-test/person-camera-avatar-source-25fps.mp4

생성은 다음 명령으로 수행했습니다.

.venv/bin/python -m avatars.wav2lip.genavatar \
  --video_path output/mac-test/person-camera-avatar-source-25fps.mp4 \
  --avatar_id person_camera_20260917 \
  --img_size 256 \
  --face_det_batch_size 1

63개 프레임 모두에서 얼굴 영역을 검출했고, 256×256 얼굴 이미지와 좌표를 생성했습니다. 한국어 InJoon 음성으로 1280×720, 약 25fps WebRTC 재생을 확인했습니다. 시연 녹화 보기. 원본의 Veo 워터마크는 유지했습니다.

생성되는 파일

data/avatars/person_camera_20260917/
├── full_imgs/       # 원본 인물·배경 프레임
├── face_imgs/       # 256×256 얼굴 프레임
└── coords.pkl       # 얼굴을 원본에 붙이는 좌표

세 데이터의 프레임 수가 일치해야 합니다. 생성기의 얼굴 검출 실패 처리는 전체 화면을 얼굴 영역으로 대체할 수 있어, Completed만으로 모든 프레임의 얼굴 검출 성공이 보장되지는 않습니다. 얼굴 이미지도 확인하세요.

새 인물 연결

재생 화면에서 Disconnect → Avatar ID 입력 → Ref Audio 입력 → Connect 순서로 설정합니다. 새 ID를 추가하고 연결하는 데는 서버 재시작이 필요 없습니다.

현재 사용할 수 있는 인물 Avatar ID 권장 한국어 음성
새로 만든 정장 남성 person_camera_20260917 ko-KR-InJoonNeural
안경 남성 샘플 wav2lip_avatar_glass_man ko-KR-InJoonNeural
공식 여성 샘플 wav2lip256_avatar1 ko-KR-SunHiNeural

남성 샘플의 배포 출처는 AIAvatar Hugging Face입니다. 해당 샘플은 정적 프레임을 확인했으며 실시간 FPS를 따로 측정하지 않았습니다.

API로 생성

생성 화면 외에 POST /api/avatar/task로 로컬 영상 경로나 업로드 파일을 제출할 수 있습니다. 작업 ID로 진행률과 오류를 조회합니다. 아바타 API 예제를 참고하세요.

코드 기준: server/avatar_routes.py, server/task_manager.py, avatars/wav2lip/genavatar.py. 원본 생성 코드.

VisionAI 사용자 가이드실시간 아바타를 위한 작은 안내서.
문서 제목과 본문을 검색합니다.Enter로 첫 결과 열기