Qwen3-TTS 1.7B Base
Clone a voice from a 3-second clip — Qwen3-TTS as a ComfyUI node
- speech
- audioSettings
- audio
Qwen3-TTS 1.7B Base is Alibaba's voice-cloning model, and this node is its ComfyUI front-end. You hand it a short reference clip of a voice and the text to speak, and it reads the text back in that voice. Alibaba's own marketing claims 3-second cloning across ten languages, and the community reaction at launch was genuinely warm - with the running complaint that, like most of Alibaba's newer models, it's API-only (the "can't count to 3 in open weights" joke gets a workout here). So this node isn't an alternative to a local TTS setup; it's the way you get at a model you can't download.
Two things set it apart from naive voice-clone tools. First, the input audio is a STRING - a Runware-hosted UUID or URL - not a ComfyUI AUDIO socket, because the audio never has to come through your graph to reach the API. Second, it gives you a real choice about how the clone works, via settings.xVectorOnly.
What you set
speech (the text to say, via a RUNWARE_SPEECH input) and audio (reference clip) are both required. The knobs:
settings.xVectorOnly- the big one.trueuses only a speaker embedding from the reference clip: simple, no transcript needed, lower similarity.false(default) uses ICL mode - the model learns from the reference audio's actual speech patterns, which needs asettings.transcriptof that reference audio and gives noticeably better fidelity. If your reference clip is clean speech, write the transcript and use ICL.settings.maxNewTokens- audio output token cap (default 2048). Higher = longer output but the tooltip warns it "risks hangs." Don't crank it to infinity.settings.transcript- required for ICL mode, optional otherwise.numberResults- variations, each a billed run.
Output is audio as an AUDIO dict (waveform + sample rate) → Save Audio. outputFormat MP3/WAV/FLAC/OGG.
Installing
Part of the Runware/ComfyUI-Runware pack.
ComfyUI Manager: search Runware, install, restart.
Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Deps are runware-sdk, pillow, soundfile; no model files. Runware API key from runware.ai/api-keys (Settings panel or RUNWARE_API_KEY).
Where people get burned
The xVectorOnly trap is the classic one: people skip the transcript, leave ICL mode on, and the clone sounds off - then blame the model. If you won't write the transcript, flip xVectorOnly on instead; it's the correct setting for a lazy-but-decent clone. Also, because the reference audio is a URL/UUID, a local file on your disk won't work - host it or upload via Runware first. And remember this is a voice clone: it's great for narration and characters, and you should be sensible about whose voice you're cloning and what you do with it.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| speech | RUNWARE_SPEECH | — | |
| audio | STRING | Audio input (UUID or URL). | |
| audioSettingsopt | RUNWARE_AUDIOSETTINGS | — | |
| numberResultsopt | INT | 11–4 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| settings.maxNewTokensopt | INT | 2048 | Audio output token cap. Higher values allow longer audio but risk hangs. |
| settings.transcriptopt | STRING | Transcript of the reference audio. Required for ICL mode, optional for x-vector-only mode. | |
| settings.xVectorOnlyopt | BOOLEAN | false | If true, uses speaker embedding only (no transcript needed, lower similarity). If false, uses ICL mode (requires transcript, higher quality). |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | MP3 | File format for the generated audio. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |