Nodes/ComfyUI_AIIA/VibeVoice TTS (Standard)
ComfyUI Node

VibeVoice TTS (Standard)

The most natural-sounding TTS in the pack, and it clones voices for free

By havvk·Created about a year ago·Updated 6 months ago· 13
VibeVoice TTS (Standard)
  • vibevoice_model
  • reference_audio
  • audio
textHello, this is a test of VibeVoice.
voice_presetFemale_HQ
cfg_scale1.3
ddpm_steps20
speed1.0
normalize_texttrue
do_sampleauto
temperature0.80
top_k20
top_p0.95
seed0

If you want a TTS that sounds like a person talking rather than a person reading a script, this is the node to reach for in the AIIA pack. VibeVoice TTS (Standard) runs Microsoft's VibeVoice 1.5B/7B models, and its party trick is zero-shot voice cloning: wire in a short reference clip and the output talks like that person. Leave the clip out and it falls back to a built-in high-quality seed voice, so it's also the fastest way in the pack to go from text to speech without any setup at all.

The context that matters: this is the "Standard" node for the non-streaming models (1.5B and 7B). The separate realtime 0.5B node is a different beast - no cloning, preset voices only. Don't cross them up. And if you've seen a popular "VibeVoice-ComfyUI" wrapper on GitHub, that's a different project by a different author with different model variants; treat its advice as adjacent, not transferable.

How it works

VibeVoice is an LLM-family TTS built on a Qwen2.5 base with a DDPM decoder. It generates in hybrid batches - it reads context across a whole passage rather than sentence by sentence, which is why long-form dialogue comes out with natural prosody and pacing. Your text goes in, an audio tensor comes out, and reference cloning works by conditioning on your clip.

The inputs that matter

  • vibevoice_model - from the AIIA VibeVoice Loader. No loader, no node.
  • text - what to say. Multiline.
  • voice_preset - Female_HQ / Male_HQ / Female / Male. Only used when no reference_audio is connected; HQ variants are the seed voices.
  • reference_audio (optional) - the cloning source. Resampled to 24kHz internally.
  • speed (0.5–2.0) - handled by the system sox command for pitch-preserving time-stretch. No sox, no clean speed control.
  • do_sample - auto by default: sampling off for the 1.5B (stability), on for the 7B (expressiveness). If the 1.5B starts sounding warbly or electronic, force it to auto/false.
  • cfg_scale (1.3) / ddpm_steps (20) / temperature (0.8) / top_k / top_p - the diffusion and sampling dials. The defaults are the author's tested values; leave them alone unless you're chasing a specific character.
  • seed - reproducibility; -1 = random.

Output: audio (AUDIO), which wires straight into AIIA Video Combine's audio_tensor or any audio preview/player.

The 1.5B vs 7B question

The author's testing (echoed by community experience) says: with do_sample on, the 1.5B is nearly indistinguishable from the 7B at twice the speed and a quarter of the VRAM (~3GB vs ~14GB). Unless you need the last few percent of emotional nuance for a hero production, 1.5B is the right pick. The 7B is for when quality is the whole job and time isn't a factor.

Install

Pack install, then the model and a couple of system deps:

cd ComfyUI/custom_nodes
git clone https://github.com/havvk/ComfyUI_AIIA.git
sudo apt-get install -y libsox-dev sox   # Linux; brew install sox on macOS

Models go in models/vibevoice/microsoft/VibeVoice-1.5B/ (or models/vibevoice/vibevoice/VibeVoice-7B/). Two gotchas: transformers >= 4.51 is required, and the model needs Qwen2.5 tokenizer files that HF downloads sometimes omit - the README has the wget commands to backfill tokenizer.json, tokenizer_config.json, vocab.json, merges.txt. Flash Attention 2 is strongly recommended if you're on a 7B.

Common issues

  • Electronic/garbled output. do_sample is the usual culprit on the 1.5B - force it off.
  • Speed setting does nothing (or pitch-shifts). That's missing sox; the node falls back to a resample that changes pitch and sounds robotic. Install sox.
  • Tokenizer errors on load. The Qwen2.5 files are missing from the model folder. Backfill them per the README.
  • Long text cuts off or drifts. The models have 8K/32K token context windows. Split long narration - the pack's AIIA Text Splitter → narration chain handles this for you.
CategoryAIIA/VibeVoice

Inputs (13)

NameTypeDefaultDescription
vibevoice_modelVIBEVOICE_MODEL
textSTRINGHello, this is a test of VibeVoice.
voice_presetCOMBOFemale_HQ4 options: Female_HQ, Male_HQ, Female, Male
cfg_scaleFLOAT1.31–10
ddpm_stepsINT2010–100
speedFLOAT1.00.5–2
normalize_textBOOLEANtrue
do_sampleCOMBOauto3 options: auto, true, false
temperatureFLOAT0.800.1–2
top_kINT200–100
top_pFLOAT0.950–1
seedINT0-1–2147483647Random seed for reproducible generation. -1 = random.
reference_audiooptAUDIO

Outputs (1)

NameTypeDescription
audioAUDIO