AI로 사진을 말하게 하는 방법: 음성 먼저, 그다음 립싱크
사진은 두 단계로 말하게 할 수 있습니다. 텍스트를 음성으로 바꾼 뒤, 그 오디오에 맞춰 사진을 립싱크하세요. Sume에서는 TTS 1.0 다음 VEED Fabric 1.0을 씁니다.

사진을 말하게 하려면 먼저 할 말을 음성으로 바꾼 다음, 사진 속 얼굴을 그 오디오에 맞춰 움직이는 립싱크 모델을 실행하세요. Sume에서는 API Job 두 개로 처리합니다. TTS 1.0이 준비된 음성으로 텍스트를 읽고, VEED Fabric 1.0이 사진과 그 음성으로 최대 300초 길이의 말하는 클립을 만듭니다.
이 글의 내용은 2026-09-27에 확인한 Sume의 Models 개요 (영문)와 Sume API 레퍼런스의 TTS·Fabric 요청 스키마에서 가져왔습니다. 현재 동작이라고 설명한 내용은 Sume의 코드에서, 가격은 API 요금 페이지를 만드는 코드에서 확인했습니다. 오디오가 이미 Sume에 있다면 립싱크 API 가이드가 그 절반인 립싱크 단계만 따로 다룹니다.
텍스트만으로 AI가 사진을 말하게 할 수 있나요?
네. 다만 Sume에서는 Job이 하나가 아니라 두 개 필요합니다. Sume의 모델 가이드는 화면에 나와 말하는 샷을 모두 스틸과 TTS로 Fabric에서 만들며, 영상 모델은 생성된 TTS나 나중에 입힌 보이스오버에 립싱크하지 않는다고 설명합니다. 이미지로 만든 영상 클립 아래에 내레이션을 깔아도 입술은 말에 맞춰 움직이지 않습니다. 그 일은 립싱크 Job이 합니다.
음성은 어디서 가져오나요?
TTS 1.0은 워크스페이스에 이미 있는 음성으로 말하며, 그 음성은 다음 두 곳 중 한 곳에서 가져옵니다.
- 준비된 아바타의 음성입니다. 아바타의
avatar_id나avatar_handle을 보내세요.GET /v1/avatar-1.0/avatars에서 그 아바타의voice.status가ready가 되면 쓸 수 있습니다. 아바타 만들기 비용은 아바타당 $0.95입니다. - Sume 앱에서 만든 음성입니다. 현재는 에셋 → 보이스(Assets → Voices)에서 오디오를 업로드하거나 녹음해 목소리를 클론할 수 있고, 사람을 묘사하면 Sume가 음성을 생성해 줍니다. ID 복사하기(Copy ID)로 그 음성의 ID를 얻을 수 있으며,
voi_뒤에 hex 문자 32개가 붙은 이 ID를voice.id로 보냅니다. 음성 자체는 앱에서 만들고, API는 그 ID를 받습니다. 목소리 클론은 내 목소리로 AI 보이스오버 만들기에서 다룹니다.
텍스트는 어떻게 음성으로 바꾸나요?
할 말을 최대 20,000자의 transcript로 담아 POST /v1/tts-1.0/generate에 보내고, 영어가 아닌 텍스트에는 language를 지정하세요. 생략하면 영어가 기본값이며, 보조 수단으로 한글로만 된 대본은 한국어로, 가나로만 된 대본은 일본어로 추론합니다.
단어별 타임스탬프도 함께 요청하세요. 그러면 현재 코드에서는 결과에 Sume 미디어 호스트에 있는 파일인 audio_url과 나란히 오디오의 duration_seconds가 담기며, 립싱크 단계에는 이 두 값이 모두 필요합니다. 기본 출력은 44,100 Hz, 128 kbps의 MP3입니다.
curl -X POST https://api.sume.com/v1/tts-1.0/generate \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: talking-photo-tts-001" \
-d '{
"transcript": "Hello and welcome to the spring open house. Doors open at ten.",
"avatar_handle": "product_host",
"language": "en",
"timestamps": { "words": true }
}'사진은 음성에 맞춰 어떻게 립싱크하나요?
사진은 image_url(공개 HTTPS 스틸)에, TTS 파일은 audio_url에, 측정한 오디오 길이는 duration_seconds에 담아 POST /v1/veed/fabric-1.0을 보내세요. duration_seconds는 제출 시점에 비용을 예약하는 데도 쓰입니다. 사진 대신 아바타의 얼굴을 쓰려면 image_url 대신 그 아바타의 avatar_handle을 보내세요.
재시도할 때 두 번째 Job을 시작하지 않고 원래 Job을 돌려받도록 Idempotency-Key를 넣은 다음, Job을 폴링하고 결과에 담긴 Sume 호스팅 아티팩트에서 말하는 클립을 읽으세요. resolution 같은 나머지 필드는 립싱크 API 가이드에서 다룹니다.
curl -X POST https://api.sume.com/v1/veed/fabric-1.0 \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: talking-photo-001" \
-d '{
"image_url": "https://example.com/portrait.jpg",
"audio_url": "https://media.sume.com/artifacts/example/open-house.mp3",
"duration_seconds": 4.6,
"resolution": "720p"
}'클립은 얼마나 길 수 있고, 비용은 얼마인가요?
각 단계는 따로 과금되며, 기본적으로 5.5% 에이전트 수수료가 더해집니다. Fabric은 오디오 길이를 초 단위로 올림해 세므로, 30초짜리 말하는 클립은 720p 기준 수수료 전 $5.625입니다. TTS는 공백과 문장 부호를 포함해 모든 글자를 셉니다.
| 단계 | 한도 | 가격 |
|---|---|---|
| 음성: TTS 1.0 | 최대 20,000자. 1,200초를 넘는 오디오는 tts_duration_exceeded로 실패 | 1,000자당 $0.0475 |
| 말하는 클립: VEED Fabric 1.0 | 최대 10 MB 파일에 담긴 1–300초 오디오 | 오디오 초당(720p) $0.1875. 480p 요율은 API 요금에 있음 |
어떤 경우에 사진이 말하지 못하나요?
다음 요청은 거부됩니다.
- 다른 곳에 호스팅된 오디오. 현재 코드에서는 Sume 미디어 호스트 밖에 있는
audio_url을400 unsupported_audio_source로 거부합니다. TTS 결과는 조건을 충족하지만 직접 운영하는 서버에 있는 녹음은 그렇지 않으며, 서명된 업로드 URL은 공개 API에 포함되지 않습니다. - 10 MB를 넘는 파일. 현재 코드는 이 파일을
400 audio_too_large로 거부하며, 다음 조치로 구간을 줄이거나 MP3를 쓰라고 제안합니다. - 300초를 넘는 음성. 음성을 나누고 각 부분을 별도의 클립으로 립싱크하세요.
- 사진과 아바타를 둘 다 보내거나 둘 다 보내지 않은 요청. Fabric은 시각 소스를 정확히 하나만 받습니다.
출처
관련 글
Sume Avatar 1.0 카테고리의 다른 글
- 부동산 중개사 AI 영상: 모든 매물에 아바타 하나로
부동산 중개사는 촬영 없이 AI 영상을 만들 수 있습니다. 사진으로 아바타를 한 번 만든 뒤, 매물 사진을 장면으로 삼아 영상마다 스크립트를 쓰세요.
- AI 아바타 스크립트: 60초에 몇 단어가 들어가나요?
AI 아바타 스크립트는 아바타가 말하는 대사입니다. 현재 Sume의 추정기는 초당 2.8단어로 세므로, 60초에는 약 165단어가 들어갑니다.
- 토킹 헤드 영상 배경 음악: 목소리 아래에 까는 BGM
배경 음악은 목소리보다 충분히 작게 까세요. Sume 아바타 영상 프리뷰에는 볼륨 0.05~0.4의 사운드트랙을 넣을 수 있고, Timeline은 페이드와 더킹을 더합니다.
- 토킹 헤드 영상 포맷: 화면 비율, 크기, 파일 형식
토킹 헤드 영상의 포맷은 재생되는 곳에 따라 세로, 16:9, 정사각형, 4:5로 정해집니다. Sume 아바타 영상은 다섯 가지 비율의 720p MP4로 나옵니다.
작성자 Sume