Nodes/comfyui-higgs-audio-v3-tts/Higgs Audio V3 Local TTS
ComfyUI Node

Higgs Audio V3 Local TTS

Turn text into a 100-language voice (or someone else's) with a ComfyUI audio node

By endman100·Created 3 months ago·Updated 21 days ago· 1
Higgs Audio V3 Local TTS
  • model
  • reference_audio
  • audio
  • request_json
textHello, how are you?
temperature0.80
top_k50
max_new_tokens1024
timeout_seconds300
reference_audio_path
reference_text

This is the node that actually talks. Where most TTS in ComfyUI arrives as a wrapper around an HTTP service, this one takes a model already loaded by Higgs Audio V3 Model Loader and synthesizes speech through it - zero network round-trips, no separate server, and it hands you back a native ComfyUI AUDIO that plugs straight into SaveAudio or any audio consumer in your graph.

Higgs Audio v3 is the multilingual heavyweight of local TTS: a 4B Boson AI model that does zero-shot voice cloning and reads inline control tokens for emotion, style, and sound effects. That puts it in a genuinely different class from the lightweight Kokoro/Piper corner - it's a bigger, slower, nicer-sounding tool, the one you reach for when the voice is the point and not just a placeholder.

How it works

The node packs your text and sampling settings into a JSON request, hands it to the loaded pipeline (which is sitting in memory from the loader, waiting), and gets back WAV bytes that it converts into ComfyUI's AUDIO format. Two details make it friendlier than most:

  • It also outputs request_json - the exact payload that went to the model. When something sounds wrong, that's your debug view.
  • Voice cloning doesn't need a file path at all. Connect any ComfyUI AUDIO - the output of another TTS node, an audio loader, whatever you have - to reference_audio, add the transcript, and the model clones that voice on the spot.

The inputs that matter

  • text (multiline) - the script. This is where the fun is: inline control tokens like <|emotion:amusement|>, <|style:whispering|>, <|prosody:pause|>, and <|sfx:laughter|> are passed straight through, so you can direct the performance inside the sentence rather than around it.
  • temperature (0.8) and top_k (50) - standard sampling dials. Lower temperature for steadier reads; this is not the knob you want to be cranking on first runs.
  • max_new_tokens (1024) - how long the generation can get. Bump it for long paragraphs.
  • timeout_seconds (300) - per-request timeout. The model takes a while on a 4B pipeline, so don't set this aggressively on a cold start.

Optional inputs: reference_audio (the cloning source), reference_audio_path (a local file path - only for when the runtime can actually read that filesystem, and ignored if reference_audio is connected), and reference_text (the transcript of your reference clip; cloning works much better with it).

Outputs: audio, which you wire to SaveAudio or onward into a video lip-sync chain, and request_json.

Installing it

Same pack as the loader - ComfyUI Manager, search "Higgs Audio V3", or:

cd ComfyUI/custom_nodes
git clone https://github.com/endman100/ComfyUI-HiggsAudioV3TTS
pip install -r ComfyUI/custom_nodes/ComfyUI-HiggsAudioV3TTS/requirements.txt

Restart ComfyUI after. The important part is that the loader's requirements are thin - soundfile and numpy - while the actual inference engine, SGLang-Omni, must already be in your Python environment (or pointed at via HIGGS_AUDIO_V3_PYTHON_EXECUTABLE). First run also means loading a 4B model, so budget for a slow start and a real download if you don't have a local copy in ComfyUI/models/higgs_audio/bosonai/higgs-audio-v3-tts-4b.

Common issues

  • "Text cannot be empty" - the node raises if you feed it blank text. Obvious, but it's the most common first error because a TTS node with no visible output looks like a silent failure.
  • Timeout errors on long or cloned generations - raise timeout_seconds. Default 300 is fine for short reads, tight for long ones.
  • Reference audio problems - the README's advice is blunt and correct: connect reference_audio directly rather than fighting with reference_audio_path. The path only works if the Higgs runtime and ComfyUI share a filesystem, and in a worker subprocess that's not guaranteed.

And the one thing to remember before you build a product on this: Higgs v3 ships under Boson's Research and Non-Commercial license - a real step down from v2's Apache terms. Great for personal pipelines and experiments; read the license before anything commercial.

Categoryaudio/Higgs Audio V3

Inputs (9)

NameTypeDefaultDescription
modelHIGGS_AUDIO_V3_MODEL
textSTRINGHello, how are you?Text sent to the local Higgs Audio V3 pipeline. Inline Higgs control tokens are supported.
temperatureFLOAT0.800–2
top_kINT500–500
max_new_tokensINT10241–8192
timeout_secondsINT3005–3600
reference_audiooptAUDIOOptional ComfyUI audio used for zero-shot voice cloning.
reference_audio_pathoptSTRINGOptional path visible to the local Higgs pipeline. Ignored when reference_audio is connected.
reference_textoptSTRINGTranscript for the reference audio.

Outputs (2)

NameTypeDescription
audioAUDIO
request_jsonSTRING