InfiniteTalk: 초상화에 목소리를 부여했습니다. Audio File 하나와 Cloud Services 없이 구현했습니다.

발행: (2026년 2월 21일 오후 12:35 GMT+9)
9 분 소요
원문: Dev.to

Source: Dev.to

Cover

지난 달, 한 고객이 실제 사람 발표자를 사용한 제품 데모 영상을 만들어 달라고 요청했습니다.

외주 견적: $1,100.
실제로 내가 사용한 시간: 3일과 전기.

모든 “AI Avatar” 툴을 사용해 본 문제점

저는 주요 서비스들을 대부분 테스트해 보았습니다: HeyGen, D‑ID, Synthesia, Runway.

작동은 하지만 다음과 같은 문제점이 있습니다:

  • 비용이 많이 듭니다. 몇 분 정도의 생성 시간만 얻고 다시 비용을 지불해야 합니다. 일회성은 괜찮지만 대량으로는 끔찍합니다.
  • 모든 것을 기록합니다. 업로드한 모든 초상화와 입력한 모든 스크립트가 그들의 서버에 저장됩니다. 제가 작업하던 롤플레잉 시나리오가 콘텐츠 검열에 걸렸을 때 불편하게 이 사실을 알게 되었습니다. 불법은 아니었지만 “허용 가능한 사용 범위에 벗어났습니다”라는 이유였습니다.
  • 출력이 생동감이 없습니다. 입은 움직이지만 다른 부분은 움직이지 않습니다. 머리의 미세 움직임도, 눈 깜빡임도, 자연스러운 어깨 움직임도 없습니다. 마치 사람이라기보다 말하는 사진처럼 보입니다.

저는 로컬에서 사용할 수 있는 무언가가 필요했습니다.

GitHub에서 새벽 1시에 발견

GitHub 트렌딩을 스크롤하던 중, MeiGen‑AI가 만든 InfiniteTalk을 발견했습니다. README에 적힌 세 줄이 눈길을 끌었습니다:

  • “무제한 길이의 대화형 비디오 생성”
  • “립싱크 + 머리 움직임 + 몸 자세 + 얼굴 표정”
  • “소비자 하드웨어에서 로컬로 실행”

첫 번째 결과가 나를 차갑게 만들었다

한 장의 초상화, 한 개의 오디오 클립, 30초의 생성 시간.

입술은 예상대로 움직였다. 내가 예상하지 못한 것은: 머리가 살짝 기울고, 눈이 깜박이며, 어깨가 실제로 말할 때 몸이 보이는 미묘한 상승‑하강을 보였다. 기계적인 흔들림도, 미리 만든 애니메이션 루프도 아니라—말에 반응하는 사람의 몸에서 일어나는 실제 미세 움직임이다.

다른 오디오로 다시 생성했다. 동일한 자연스러운 품질.

왜 다른 방법은 안 되고 이것은 작동하는가

전통적인 립‑싱크 도구—SadTalker, MuseTalk, 대부분의 GitHub 프로젝트—는 근본적인 접근 방식을 공유합니다: 입술만 다룬다.
동영상을 가져와서 입 부분만 분리하고, 오디오에 따라 움직이는 입 움직임으로 교체하고, 나머지는 그대로 둡니다.

문제는 명확합니다: 실제 사람이 말할 때는 아무 것도 고정되어 있지 않기 때문입니다. 머리는 끄덕이고, 눈썹은 움직이며, 어깨는 호흡에 맞춰 움직입니다. 입만 고정하면 설명하기 어려운 언캐니 밸리 효과가 즉시 드러납니다.

InfiniteTalk는 다른 접근 방식을 취합니다. 동영상을 보정하는 것이 아니라 새로운 동영상을 생성합니다.

  • 입력: 인물 사진 + 오디오.
  • 출력: 처음부터 합성된 동영상으로, 오디오가 입술뿐만 아니라 전체 몸의 움직임 패턴을 구동합니다.

벤치마크

ModelLip error
InfiniteTalk1.8 mm
MuseTalk2.7 mm
SadTalker3.2 mm

InfiniteTalk와 MuseTalk 사이의 0.9 mm 차이는 “설득력 있는”과 “거의 설득력 있는” 사이의 차이입니다.

“무제한 길이”가 실제 의미하는 바

기본 생성은 81프레임—25 fps에서 약 3 초에 해당합니다. 하지만 3 초가 한계가 아니라 단위일 뿐입니다.

InfiniteTalk는 sparse‑frame context window를 사용합니다: 각 청크가 생성된 후, 마지막 프레임을 다음 청크의 참고 자료로 전달합니다. 그 결과는 매끄러운 연속성—동일한 정체성, 동일한 배경 안정성, 동일한 오디오‑립 정렬—을 임의의 길이의 비디오에서도 유지합니다.

3분 클립을 테스트했습니다. 정체성 변동 없음, 배경 깜빡임 없음, 립싱크가 전체에 걸쳐 유지되었습니다.

하드웨어 요구 사항

최고 사양 GPU가 필요하지 않습니다.

  • 480p: 최소 6 GB VRAM
  • 720p: 권장 16 GB 이상

저는 RTX 3090을 사용하고 있습니다. 3초 길이의 480p 클립을 생성하는 데 30–60 초가 걸리는데—즉시가 아니지만 얻는 품질을 고려하면 충분히 실용적입니다.

필요 모델

Wan2.1_I2V_14B_FusionX-Q4_0.gguf   # quantized main model, VRAM‑friendly
wan2.1_infiniteTalk_single_fp16.safetensors   # InfiniteTalk patch
wav2vec2-chinese-base_fp16.safetensors   # audio encoder
# Supporting VAE, CLIP, LoRA weights

모두 Hugging Face 또는 지역 미러에서 이용할 수 있습니다.

One‑Click Setup, No Code Required

우리는 Gradio 웹 인터페이스에 ComfyUI 워크플로를 감싸서 사용을 더 쉽게 만들었습니다.

Launch: 01-run.bat 파일을 더블 클릭합니다. 브라우저가 자동으로 http://localhost:7860 로 열립니다.

Left Panel Inputs

  • 초상화 이미지 (모든 형식 가능)
  • 오디오 파일 (WAV 또는 MP3)
  • 텍스트 프롬프트 (동작 스타일에 영향을 주며, 내용에는 영향 없음)

Right Panel

생성된 MP4 파일이 표시되며, 바로 재생하고 다운로드할 수 있습니다.

고급 설정을 통해 해상도(256–1024 px), 프레임 수, 샘플링 스텝을 조정할 수 있습니다. 기본값은 대부분의 사용 사례에 잘 맞습니다.

아마도 생각하고 있는 부분

이것은 전적으로 로컬 하드웨어에서 실행됩니다. 클라우드 처리도 없고, 사용 로그도 없으며, 생성한 내용을 감시하는 콘텐츠 검열 시스템도 없습니다.

어떤 초상화를 사용하고, 어떤 오디오를 제공하며, 그것으로 무엇을 만들든— 당신의 하드웨어, 당신의 선택. 그 의미는 여러분의 상상에 맡기겠습니다.

마무리

클라이언트가 영상을 받았습니다. 그들은 제가 어떤 제작사를 사용했는지 물었습니다. 저는 집에서, 제 개인 컴퓨터로 직접 만들었다고 답했습니다.

2초간 침묵.

“두 번째 에피소드도 해줄 수 있나요?”

네.

원클릭 다운로드: https://www.patreon.com/posts/151286461

0 조회
Back to Blog

관련 글

더 보기 »

서브넷팅 설명

Subnetting이란 무엇인가? 큰 아파트 건물을 여러 층으로 나누는 것과 같다. 각 층 서브넷은 자체 번호가 매겨진 유닛(hosts)을 가지고, 그리고 건물…