얼굴과 목소리를 동시에, 스트리밍으로 바꿔치기하는 영상 합성 AI
얼굴과 목소리를 동시에, 스트리밍으로 바꿔치기하는 영상 합성 AI
UniSwap은 말하는 영상 속 인물의 얼굴과 목소리를 한 모델 안에서 동시에 바꾸면서 원본의 움직임, 배경, 발화 내용, 입 모양-음성 타이밍을 그대로 유지하는 프레임워크다. 기존에는 얼굴 교체와 음성 변환을 따로 처리해 두 모달리티가 어긋나는 문제가 있었는데, 하나의 오디오-비디오 디퓨전 트랜스포머로 통합해 실시간에 가까운 블록 단위 생성을 가능하게 했다. 짧은 영상과 1분짜리 긴 영상 실험에서 기존 조합 방식보다 입-음성 동기화가 우수하고, 정체성 보존과 긴 영상에서의 안정성도 경쟁력 있는 수준을 보였다.
METAL MEDIA 해설 도표
UniSwap 3단계 학습 및 추론 구조
증거 상태측정 결과가 보고됨
- 데이터 생성실제 영상에서 얼굴을 포즈 실루엣으로, 목소리를 다른 화자로 바꿔 '가짜 소스'를 만들고 원본을 복원 목표로 삼는 swap-and-reconstruct 파이프라인
- 1단계 문맥 내 사전학습소스·참조·목표 영상·음성 latent를 하나의 시퀀스로 묶어 전체를 한 번에 보며 얼굴·목소리 동시 교체를 학습
- 2단계 스트리밍 적응Decoupled Streaming Conditioning Mask로 블록 단위 인과적 주의 구조를 적용해 KV 캐시 기반 자동회귀 생성이 가능하게 전환
- 3단계 효율적 self-forcing DMD학생 모델이 자기 출력을 이어받아 학습하고, 교사-생성기-판별기를 LoRA 어댑터로 전환하며 디노이징을 30단계에서 3단계로 압축
- 추론 시 Feature-RoPE Decomposition캐시된 위치 좌표를 학습 범위 안으로 재매핑하고 첫 블록을 고정 앵커로 유지해 1분 분량 생성에서도 정체성 흐름을 안정화
무엇을 했나
- 말하는 영상에서 인물의 얼굴 생김새와 목소리 음색을 동시에 참조 이미지·참조 음성으로 바꾸되, 원본의 움직임, 배경, 말하는 내용, 입-소리 타이밍은 그대로 유지하는 과제를 다뤘다.
- 교차 정체성 학습 데이터가 부족한 문제를 풀기 위해 실제 영상에서 얼굴과 목소리 정체성을 지운 뒤 원본 영상을 복원 목표로 삼는 swap-and-reconstruct 데이터 생성 파이프라인을 만들었다.
- 양방향(전체 영상을 한 번에 보는) 백본을 시작으로, 문맥 내 사전학습 → 블록 단위 실시간 생성 적응 → 효율적 self-forcing DMD 증류의 3단계를 거쳐 디노이징 스텝을 30단계에서 3단계로 줄였다.
- Efficient Multi-LoRA Switching으로 교사·생성기·판별기 역할을 하나의 고정된 백본 위에서 어댑터만 바꿔가며 처리해 GPU 메모리를 80GB 초과(메모리 부족)에서 65.34GB로 줄였다.
- Feature-RoPE Decomposition으로 캐시된 위치 정보를 학습 범위 안에 묶어두어, 1분 분량의 긴 영상 생성에서도 정체성이 흐트러지지 않도록 안정화했다.

| Method | A–V Sync | Video Quality | Voice Quality | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Sync-C ↑ | Sync-D ↓ | ASE ↑ | IQA ↑ | DINO-S ↑ | SIG ↑ | BAK ↑ | OVRL ↑ | SECS ↑ | SSIM ↑ | ||
| Video | VACE 18 | 0.832±0.320 | 12.800±0.933 | 2.059±0.355 | 3.269±0.547 | 0.400±0.110 | – | – | – | – | – |
| Wan-Animate 4 | 2.874±1.653 | 11.338±1.713 | 2.098±0.340 | 3.514±0.520 | 0.580±0.140 | – | – | – | – | – | |
| SCAIL-2 39 | 3.289±1.592 | 11.269±1.623 | 2.409±0.352 | 4.067±0.399 | 0.630±0.150 | – | – | – | – | – | |
| MoCha 38 | 3.031±1.678 | 11.198±1.881 | 2.534±0.340 | 4.249±0.304 | 0.577±0.147 | – | – | – | – | – | |
| HunyuanCustom 14 | 0.894±0.401 | 12.991±0.864 | 2.319±0.414 | 3.816±0.489 | 0.624±0.142 | – | – | – | – | – | |
| Voice | OpenVoice 24 | – | – | – | – | – | 3.458±0.415 | 3.438±0.663 | 2.910±0.486 | 0.755±0.066 | 0.363±0.162 |
| Seed-VC 22 | – | – | – | – | – | 3.489±0.335 | 3.750±0.571 | 3.074±0.445 | 0.829±0.047 | 0.212±0.115 | |
| CosyVoice 7 | – | – | – | – | – | 3.461±0.249 | 3.738±0.456 | 3.041±0.366 | 0.802±0.051 | 0.137±0.106 | |
| Joint | UniSwap | 3.633±1.236 | 10.304±0.849 | 2.097±0.238 | 3.758±0.318 | 0.629±0.136 | 3.486±0.327 | 3.563±0.543 | 2.988±0.366 | 0.730±0.064 | 0.269±0.161 |

| Method | 0–20 s | 20–40 s | 40–60 s | ||||||
|---|---|---|---|---|---|---|---|---|---|
| ASE ↑ | IQA ↑ | DINO-S ↑ | ASE ↑ | IQA ↑ | DINO-S ↑ | ASE ↑ | IQA ↑ | DINO-S ↑ | |
| SCAIL-2 39 | 2.628±0.203 | 4.426±0.265 | 0.566±0.175 | 2.765±0.197 | 4.568±0.294 | 0.538±0.154 | 2.656±0.326 | 4.254±0.401 | 0.517±0.135 |
| Wan-Animate 4 | 2.241±0.397 | 3.766±0.635 | 0.554±0.119 | 2.271±0.413 | 3.741±0.701 | 0.533±0.115 | 2.238±0.364 | 3.628±0.714 | 0.528±0.114 |
| UniSwap | 2.224±0.226 | 3.966±0.331 | 0.596±0.122 | 2.236±0.189 | 4.001±0.276 | 0.590±0.126 | 2.259±0.191 | 4.032±0.254 | 0.596±0.118 |

| Method | Steps | Infer. Time (s) | Time/Step (s) | FPS ↑ |
|---|---|---|---|---|
| VACE 18 | 50 | 482.56 | 9.65 | 0.499 |
| Wan-Animate 4 | 20 | 176.34 | 8.82 | 1.367 |
| HunyuanCustom 14 | 50 | 703.34 | 14.07 | 0.343 |
| SCAIL-2 39 | 8 | 190.98 | 23.87 | 1.262 |
| MoCha 38 | 30 | 1800.94 | 60.03 | 0.134 |
| UniSwap | 3† | 1.76† | 0.59† | 13.6 |

| Setting | A–V Sync | Video Quality | Voice Quality | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Sync-C ↑ | Sync-D ↓ | ASE ↑ | IQA ↑ | DINO-S ↑ | SIG ↑ | BAK ↑ | OVRL ↑ | SECS ↑ | SSIM ↑ | |
| Stage 1 (In-context) | 5.272±1.510 | 9.107±0.941 | 2.253±0.289 | 3.922±0.325 | 0.635±0.132 | 3.476±0.422 | 3.619±0.665 | 3.029±0.498 | 0.782±0.059 | 0.213±0.151 |
| Stage 2 (Teacher forcing) | 4.620±1.187 | 9.581±0.752 | 2.233±0.304 | 3.893±0.332 | 0.623±0.134 | 3.349±0.578 | 3.059±0.736 | 2.687±0.549 | 0.681±0.071 | 0.480±0.156 |
| Stage 3 (Self-forcing DMD) | 3.633±1.236 | 10.304±0.849 | 2.097±0.238 | 3.758±0.318 | 0.629±0.136 | 3.486±0.327 | 3.563±0.543 | 2.988±0.366 | 0.730±0.064 | 0.269±0.161 |
| Stage 2 w/o condition PE offset | 1.738±1.737 | 11.843±1.606 | 2.152±0.352 | 3.472±0.600 | 0.463±0.166 | 3.238±0.728 | 3.280±0.924 | 2.767±0.702 | 0.624±0.086 | 0.103±0.142 |

| Setting | 0–20 s | 20–40 s | 40–60 s | ||||||
|---|---|---|---|---|---|---|---|---|---|
| ASE ↑ | IQA ↑ | DINO-S ↑ | ASE ↑ | IQA ↑ | DINO-S ↑ | ASE ↑ | IQA ↑ | DINO-S ↑ | |
| UniSwap (full) | 2.224±0.226 | 3.966±0.331 | 0.596±0.122 | 2.236±0.189 | 4.001±0.276 | 0.590±0.126 | 2.259±0.191 | 4.032±0.254 | 0.596±0.118 |
| w/o Window-Bounded RoPE | 2.115±0.226 | 3.763±0.228 | 0.599±0.120 | 2.083±0.227 | 3.500±0.153 | 0.546±0.093 | 2.083±0.213 | 3.390±0.141 | 0.517±0.071 |
| w/o Reference Re-anchoring | 2.106±0.197 | 3.741±0.314 | 0.595±0.114 | 2.111±0.225 | 3.399±0.207 | 0.522±0.094 | 2.140±0.227 | 3.208±0.246 | 0.491±0.084 |
| w/o Adaptive Sink Block | 2.083±0.173 | 3.734±0.313 | 0.589±0.115 | 2.007±0.143 | 3.336±0.164 | 0.530±0.087 | 2.099±0.203 | 3.174±0.182 | 0.499±0.070 |

| Method | Appearance ID ↑ | Voice ID ↑ | Lip Sync ↑ | Naturalness ↑ |
|---|---|---|---|---|
| Wan-Animate + Seed-VC | 3.85 | 4.04 | 3.42 | 3.77 |
| SCAIL-2 + Seed-VC | 4.03 | 4.05 | 3.67 | 3.85 |
| MoCha + Seed-VC | 3.91 | 4.08 | 3.54 | 3.89 |
| HunyuanCustom + Seed-VC | 3.64 | 3.98 | 3.28 | 3.61 |
| UniSwap | 4.16 | 3.87 | 4.11 | 3.96 |

실제로 확인된 결과
- 짧은 영상 벤치마크(100개 클립)에서 UniSwap은 평가된 교체 파이프라인 중 가장 높은 Sync-C(3.633)와 가장 낮은 Sync-D(10.304)를 기록해 입-음성 동기화가 가장 우수했다.
- 얼굴 정체성 유사도(DINO-S)는 최고 성능 기준선과 0.001 차이(0.629 대 0.630)로 근접했지만, 화질·미적 점수는 MoCha와 SCAIL-2보다 낮았고, 음성 품질 일부 지표(BAK, OVRL, SECS, SSIM)는 최고 음성변환 기준선보다 낮았다.
- 1분 길이 긴 영상 벤치마크에서 3개 구간 모두 UniSwap이 가장 높은 정체성 유사도(DINO-S)를 유지했으나, 미적·화질 점수는 SCAIL-2가 더 높았다.
- 효율성 비교에서 24프레임 블록을 1.76초에 생성해 초당 13.6프레임을 냈고, 이는 가장 빠른 기준선(Wan-Animate, 1.367FPS)보다 약 10배, MoCha보다 약 100배 빠른 수치였다.
- 30명이 참여한 사용자 평가에서 UniSwap이 외형 정체성, 입-음성 동기화, 자연스러움 항목에서 가장 높은 평점을 받았다.

어디에 쓸 수 있나
- 영화·영상 후반작업에서 배우의 얼굴과 목소리를 동시에 다른 정체성으로 교체하는 작업
- 다국어 더빙이나 콘텐츠 현지화 시 원본 입 모양과 어울리는 목소리를 함께 생성하는 작업
- 저지연 인터랙티브 방송이나 실시간에 가까운 스트리밍 콘텐츠 제작 파이프라인 실험
- 접근성 지원을 위한 영상 재더빙 및 인물 표현 변경 실험
한계와 남은 검증
- 실시간 재생 기준인 초당 25프레임에는 아직 못 미치는 13.6FPS 수준이라 완전한 실시간 재생은 아니며 추가 시스템 최적화가 필요하다고 밝혔다.
- 짧은 영상에서 화질·미적 점수, 음성 품질 일부 지표가 단일 모달리티 전문 기준선보다 낮아, 통합 처리와 개별 최적화 모델 사이 트레이드오프가 남아 있다.
- 현재는 단일 화자가 등장하는 말하는 영상에 초점이 맞춰져 있고, 다중 화자 장면, 가림, 복잡한 상호작용은 아직 다루지 못한다고 명시했다.
- 표정은 오디오 조건에 따라 자동으로 생성될 뿐 사용자가 별도로 표정을 편집하거나 지정하는 기능은 지원하지 않는다.
- 안정성 개선 요소(윈도우 경계 RoPE, 참조 재정렬, 고정 앵커 블록)를 제거했을 때 시간이 지날수록 화질과 정체성이 저하되는 것이 확인되어, 각 요소가 긴 영상 안정성에 필수적임을 시사한다.
왜 중요한가
지금까지 얼굴 교체와 목소리 변환은 따로 만든 모델을 이어붙여 쓰다 보니 입 모양과 목소리가 어긋나는 문제가 흔했는데, 이를 한 모델에서 동시에 처리하고 스트리밍까지 가능하게 한 첫 사례라는 점에서 영화 후반작업, 다국어 더빙, 실시간 인터랙티브 콘텐츠 제작에 실질적인 방향을 제시한다. 다만 짧은 영상 벤치마크에서 화질·음질 일부 지표는 여전히 단일 모달리티 전문 모델에 못 미쳐, 통합과 전문화 사이의 트레이드오프가 남아 있다.
이 논문의 용어
- 디퓨전 트랜스포머 · 노이즈를 점진적으로 제거해 영상·음성을 생성하는 트랜스포머 구조의 생성모델
- KV 캐시 · 이전에 계산한 키·값을 저장해두고 재사용함으로써 매 단계 전체를 다시 계산하지 않게 하는 기법
- RoPE(회전 위치 인코딩) · 토큰의 순서·시간 위치 정보를 회전 변환으로 표현하는 위치 인코딩 방식
- DMD(분포 매칭 증류) · 여러 단계를 거치는 교사 모델의 출력 분포를 적은 단계의 학생 모델이 흉내 내도록 학습시키는 압축 기법
- LoRA · 원본 모델은 고정한 채 작은 어댑터 파라미터만 학습해 적은 자원으로 미세조정하는 방법
최신 논문
- AI 코딩 에이전트에게 과학 소프트웨어 수리를 시켜보니, 절반도 제대로 못 고쳤다AI 코딩 에이전트에게 과학 소프트웨어 수리를 시켜보니, 절반도 제대로 못 고쳤다
- 논문 속 시연이 아니라 실제 서비스에 넣을 수 있는 희소 어텐션 만들기논문 속 시연이 아니라 실제 서비스에 넣을 수 있는 희소 어텐션 만들기
- 고객상담 AI 상담원이 규정을 '한 번의 행동'이 아니라 '전체 절차'로 지키게 만드는 방법고객상담 AI 상담원이 규정을 '한 번의 행동'이 아니라 '전체 절차'로 지키게 만드는 방법
- 로봇 팔에게 사람의 시연 없이 새 일 시키기, 말 잘하는 AI가 대신 가르친다로봇 팔에게 사람의 시연 없이 새 일 시키기, 말 잘하는 AI가 대신 가르친다
- 에이전트 학습용 환경을 새로 만드는 대신, 기존 환경에 '패치 부품'을 씌워 그 에이전트의 약점에 맞게 바꾸는 방법에이전트 학습용 환경을 새로 만드는 대신, 기존 환경에 '패치 부품'을 씌워 그 에이전트의 약점에 맞게 바꾸는 방법
- AI 모델을 '소유'하지 못한 조직은 안전 통제도 절반밖에 못 한다AI 모델을 '소유'하지 못한 조직은 안전 통제도 절반밖에 못 한다
- AI가 선생님 모델을 따라 배우다가, 정답에 다가가는 '좋은 생각'까지 억누르는 문제를 잡아낸다AI가 선생님 모델을 따라 배우다가, 정답에 다가가는 '좋은 생각'까지 억누르는 문제를 잡아낸다
- AI가 특정 사람 말투를 흉내내도록 시켜봤더니, 결국 AI 자신의 말투에서 못 벗어난다AI가 특정 사람 말투를 흉내내도록 시켜봤더니, 결국 AI 자신의 말투에서 못 벗어난다
METAL MEDIA 최신 기사
그림 출처: Yuxuan Zhang et al., arXiv:2608.11752, arxiv-nonexclusive