1. 나도 ElevenLabs 쓰다가 바꿨다
유튜브 쇼츠 채널 운영하면서 AI 내레이션이 필요해진 게 한 6개월 전 일이다.
처음엔 당연하다는 듯이 ElevenLabs를 결제했다.
월 $22짜리 Creator 플랜(현재는 가장 잘 팔리는 Creator 플랜만 50% 할인 행사를 하고 있다).
한 달에 30만 캐릭터 제공하는데,
쇼츠 30편 분량 스크립트를 넣다 보면 어느새 한도가 다 차버린다.
그러다 지인한테 들었다.
"Qwen3-TTS가 ElevenLabs 무너뜨린다는 거 봤어?"
처음엔 그냥 오버라 생각했다.
알리바바에서 나온 모델인데
한국어가 제대로 될 리가 없다고 — 근데 직접 써보니 틀렸다.
이 글은 그 실험 과정을 있는 그대로 적은 거다.
성공한 것, 막힌 것, 해결한 방법 전부 포함해서.
2. Qwen3-TTS가 뭔데 이렇게 난리야?
Qwen3-TTS는 알리바바 Qwen팀이 2026년 1월 22일 오픈소스로 공개한 텍스트-투-스피치 모델이다.
Apache 2.0 라이선스라 상업적 사용도 가능하다.
모델 크기는 0.6B와 1.7B 두 가지, 지원 언어는 중국어·영어·일본어·한국어 포함 10개 언어다.
특히 벤치마크 수치가 의외였다.
Seed-tts-eval 기준으로 ElevenLabs Multilingual v2와 MiniMax를 모두 제쳤다.
단순 속도 경쟁이 아니라 음성 유사도(Korean-Speaker Similarity) 지표도 0.799로 우수하다.
모델 라인업 한눈에 보기
| 모델명 | 사이즈 | 주요 용도 | 쇼츠 추천도 |
|---|---|---|---|
0.6B-Base |
0.6B | 보이스 클로닝, 파인튜닝 | ⭐⭐⭐ (빠름) |
0.6B-CustomVoice |
0.6B | 프리셋 9개 음색 사용 | ⭐⭐⭐⭐ (가장 안정적) |
1.7B-Base |
1.7B | 고품질 클로닝, 파인튜닝 | ⭐⭐⭐ (VRAM 4GB+) |
1.7B-CustomVoice |
1.7B | 프리셋 고품질 + 스타일 제어 | ⭐⭐⭐⭐⭐ (최고 품질) |
1.7B-VoiceDesign |
1.7B | 텍스트로 목소리 특성 설계 | ⭐⭐⭐ (실험적) |
이름 때문에 많이 헷갈리는데, CustomVoice 모델은 프리셋 음색을 쓰는 거고 실제 목소리를 복사하는 클로닝 기능은 Base 모델에서 가능하다. 이 차이를 모르고 삽질한 사람이 엄청 많다.
3. 왜 ComfyUI에서 쓰냐고?
Python 스크립트로 직접 돌리는 방법도 있다.
공식 GitHub에 예제도 있고.
근데 굳이 ComfyUI를 고집하는 이유가 있다.
- 노드 기반 GUI라 매번 스크립트 짤 필요가 없다
- 이미지 생성 워크플로우와 같은 파이프라인에 음성을 끼워넣을 수 있다
- 워크플로우 JSON으로 팀원과 공유하거나 버전 관리하기 편하다
- Save Audio 노드 하나면 파일 저장까지 원클릭으로 끝난다
- 나처럼 ComfyUI가 이미 깔려 있으면 추가 환경 셋업이 거의 없다
나는 이미 RTX 5070 Ti로 ComfyUI 이미지 워크플로우를 돌리고 있었기 때문에 TTS 노드 하나 추가하는 게 별도로 파이썬 환경 구성하는 것보다 훨씬 빨랐다.
4. ComfyUI에 Qwen3-TTS 설치하기
커스텀 노드 선택지가 여러 개 있는데, 내가 써본 건 두 가지다.
각각 장단점이 달라서 상황에 따라 고르면 된다.
커스텀 노드 선택
| 노드 레포 | 특징 | 추천 대상 |
|---|---|---|
DarioFT/ComfyUI-Qwen3-TTS |
파인튜닝·프롬프트 저장 지원, 기능 풍부 |
고급 사용자, 클로닝 많이 쓰는 사람 |
1038lab/ComfyUI-QwenTTS |
설치 간단, Apple Silicon MPS 지원, 안정적 |
처음 써보는 사람, Mac 사용자 |
나는 Windows + NVIDIA GPU 환경이라 DarioFT 버전을 메인으로 썼다.
Mac Mini M4 Pro에서 테스트할 때는 1038lab 버전이 MPS 지원이 잘 돼서 더 편했다.
설치 방법 (ComfyUI-Manager 사용)
가장 빠른 방법은 ComfyUI-Manager에서 검색해서 바로 설치하는 거다.
검색어: "Qwen3-TTS" 또는 "QwenTTS" → Install 클릭 → ComfyUI 재시작
Manager가 없거나 수동으로 하고 싶으면 아래처럼 직접 클론하면 된다.
# ComfyUI custom_nodes 폴더로 이동 cd ComfyUI/custom_nodes # 레포 클론 (DarioFT 버전) git clone https://github.com/DarioFT/ComfyUI-Qwen3-TTS.git # requirements 설치 cd ComfyUI-Qwen3-TTS pip install -r requirements.txt
Qwen3-TTS는 transformers 5.0 미만에서만 정상 동작한다.
5.0 이상 버전은 API가 바뀌어서 모델 로딩 자체가 실패한다.
pip install "transformers<5.0"이미 5.x가 설치된 경우엔 반드시 다운그레이드 먼저 해야 한다.
다른 노드랑 충돌날 수도 있으니까 venv 분리를 추천한다.
모델 다운로드
첫 실행 시 선택한 모델이 자동 다운로드된다.
전부 받을 필요 없고 쓸 것만 선택하면 된다.
모델별 용량 참고:
| 모델 | 용량 | VRAM 사용 |
|---|---|---|
0.6B-CustomVoice |
약 1.4GB | ≈ 2GB |
0.6B-Base |
약 1.4GB | ≈ 2GB |
1.7B-CustomVoice |
약 3.8GB | ≈ 5GB |
1.7B-Base |
약 3.8GB | ≈ 5GB |
5. 직접 써본 후기 — 솔직하게
한국어 품질은 어때?
결론부터 말하면 생각보다 훨씬 낫다.
기대치가 낮았던 탓도 있겠지만,
1.7B-CustomVoice 모델로 한국어 스크립트를 넣어봤을 때
억양이 자연스럽고 속도 조절도 나쁘지 않았다.
다만 영어 텍스트를 섞으면 영어 단어에서 중국어 억양이 살짝 묻어나온다.
순수 한국어 스크립트에서는 그 현상이 거의 없었다.
쇼츠용 내레이션이라면 한국어만 쓰는 게 품질 면에서 유리하다.
"오늘 테스트한 문장: '안녕하세요, 오늘은 AI 음성 합성에 대해 알아보겠습니다. 최근 오픈소스 TTS 기술이 빠르게 발전하면서 개인 유튜버도 전문적인 내레이션을 무료로 만들 수 있게 됐는데요.'
1.7B-CustomVoice + 프리셋 Female_1 기준으로 생성 시간은 RTX 5070 Ti에서 약 10초.
들어봤을 때 어색함 없이 바로 쓸 수 있는 수준이었다."
보이스 클로닝 3초 테스트
Base 모델에서 내 목소리 10초짜리 WAV 파일을 레퍼런스로 넣어봤다. 결과는 "비슷하게 흉내 낸다" 수준이었다. 완벽한 복사는 아닌데, 어차피 쇼츠에서 AI 목소리라는 걸 숨길 필요가 없으면 충분히 쓸 만하다.
레퍼런스 오디오는 10~15초가 최적이다. 30초 넘어가면 오히려 무한 루프 버그가 생길 수 있다. WAV 형식, 24kHz 이상, 모노 채널로 준비하고 배경 소음은 최대한 없애야 한다. 그리고 첫 단어 앞에 0.5초 무음을 붙이면 첫 발음 뭉개짐 현상이 많이 줄어든다.
무한 생성 루프 버그 — 직접 겪었다
이게 진짜 문제다. 생성을 돌려놓고 다른 일 하다 돌아왔더니 GPU가 100% 달려있고 아무것도 나오지 않은 상황을 두 번 겪었다. 모델이 종료 토큰(EOS token)을 뱉지 못하고 무한 반복에 빠진 거다.
해결책은 세 가지다:
# 1. max_new_tokens 줄이기 (기본값 2048 → 1024로) max_new_tokens: 1024 # 2. 짧은 텍스트로 나눠서 생성 # 한 번에 긴 문단보다 2~3문장씩 분할 생성 권장 # 3. seed 값 변경 # 특정 seed에서 더 안정적인 경우 있음 # seed 값 바꿔가며 테스트
ComfyUI에서 멈추지 않으면 파이썬 프로세스를 강제 종료해야 한다.
작업관리자(Windows) 또는
kill [PID](Linux/Mac)로 종료 후 재시작.
그냥 두면 VRAM이 꽉 찬 채로 다른 작업이 전부 막힌다.
6. 쇼츠 내레이션 워크플로우 실전 구성
내가 실제로 쓰는 기본 워크플로우 구성이다.
Text 입력 → TTS 생성 → 오디오 저장까지 노드 5개면 끝난다.
2) 🔊 Qwen3-TTS Loader 노드
1.7B-CustomVoice. attention은 sdpa로 설정.3) 🎙 Qwen3-TTS Generate 노드
4) 👂 Preview Audio 노드
5) 💾 Save Audio 노드
보이스 클로닝까지 쓰는 확장 버전
# Load Audio 노드 추가 → 레퍼런스 오디오 파일 로드 (10~15초 WAV) # Qwen3-TTS Prompt Maker 노드 추가 → 레퍼런스 음성 특성 추출 (QWEN3_PROMPT 출력) → 한 번 계산해두면 재사용 가능, 저장도 됨 # Qwen3-TTS Voice Clone 노드로 변경 → Generate 노드 대신 Voice Clone 노드 사용 → QWEN3_PROMPT 연결 → 텍스트 입력 → 생성
같은 목소리로 여러 영상 내레이션을 만들 때, 매번 레퍼런스 오디오를 다시 처리하면 시간 낭비다.
Qwen3-TTS Save Prompt 노드로 voice embedding을 .safetensors 파일로 저장해두면
다음번엔 Load Prompt로 바로 불러와서 쓸 수 있다.
7. 솔직한 한계점
좋은 것만 쓰면 광고글이 되니까, 실제로 불편한 점도 전부 적는다.
🐢 Mac에서 느리다
M 시리즈 Mac에서 MPS로 돌리면 1.7B 모델이 RTX GPU 대비 체감상 훨씬 느리다는 보고가 있다. (참고: Murmur TTS 비교 리뷰)
🌏 영어 억양 이슈
영한 혼용 텍스트에서 영어 단어에 중국어 억양이 묻어난다. 순수 한국어 스크립트 권장.
🔄 무한 루프 버그
긴 텍스트나 특정 seed에서 EOS 토큰을 못 뱉고 무한 생성에 빠진다. 짧게 나눠서 쓰는 게 최선.
🔧 버전 충돌
transformers 5.0 이상이면 아예 안 된다. 다른 AI 노드와 venv를 분리하지 않으면 골치 아파진다.
| 비교 항목 | Qwen3-TTS (로컬) | ElevenLabs (유료) |
|---|---|---|
| 비용 | 무료 (전기세만) | 월 $5~$22+ |
| 한국어 품질 | 양호 (순수 한국어 기준) | 우수 |
| 생성 속도 (GPU) | RTX 기준 3~5초/300자 | API 응답 1~2초 |
| 보이스 클로닝 | 가능 (Base 모델) | 가능 (유료 플랜) |
| 데이터 프라이버시 | 완전 로컬 | 서버 전송 |
| 안정성 | 버그 있음 (무한 루프) | 안정적 |
| 설정 난이도 | 중간 (초기 셋업 필요) | 쉬움 |
8. 자주 묻는 질문
GPU 없이 CPU만으로도 되나요?
된다. 다만 0.6B 모델 기준 CPU에서 300자 생성에 3~5분 걸린다. |쇼츠 한 편 내레이션 뽑는 데 20~30분 기다릴 수 있으면 CPU도 가능하다. 현실적으로는 RTX 3060 이상 GPU를 권장한다.
유료 ElevenLabs와 한국어 품질이 진짜 비슷한가요?
솔직히 ElevenLabs가 아직 한 끗 앞선다.
특히 감정 표현이나 강조 억양 면에서 차이가 있다.
단, Qwen3-TTS도 일반 정보형 내레이션 용도라면 충분히 써먹을 수 있는 수준이다.
월 $22 내고 클라우드 쓸지, 초기 셋업 시간 투자해서 로컬로 할지는 사용량에 달렸다.
ComfyUI 없이 쓰는 방법도 있나요?
공식 GitHub에 Python 스크립트 예제가 있고, Hugging Face Spaces에서 브라우저로 바로 테스트해볼 수도 있다. 다만 자동화나 배치 처리는 ComfyUI 워크플로우가 훨씬 편하다.
VoiceDesign 모델은 어떻게 쓰나요?
텍스트로 원하는 목소리를 묘사하면 그에 맞는 새 목소리를 생성한다.
예를 들어 "Warm female voice, 30s, calm and clear, Korean native speaker"
같은 프롬프트를 넣으면 해당 특성의 목소리가 만들어진다.
단, 결과가 매번 달라지고 프롬프트 민감도가 높아서 아직 실험적 용도에 가깝다.





댓글 쓰기