LongCat AudioDiT TTS
Local text-to-speech that doesn't sound like a robot
- audio
What it is
Most local TTS has felt like a compromise: good clones via an API you don't control, or open weights that read like a GPS reciting the news. LongCat-AudioDiT from Meituan changed my opinion on that, and this node is its ComfyUI front door. No API, no key, everything runs on your own GPU.
LongCatTTS is the plain-vanilla member of the pack. The voice-clone and multi-speaker siblings are the headline acts, but this is the node you reach for when you just want a narrator, a VO track, or clean narration in the middle of a graph, and you want to iterate on it like any other generation. It slots into the same AUDIO workflow space as things like PreviewAudio and SaveAudioMP3, so it plays fine alongside the video and image stacks - LongCat is exactly what you'd wire in when your video generation has no native audio and you don't want to go hunting for a separate tool.
How it works
What makes it different is under the hood. LongCat skips the autoregressive and mel-spectrogram pipelines entirely: a Wav-VAE compresses audio into a latent space, a diffusion transformer denoises those latents over a set of ODE Euler steps, and the decoder writes out a 24 kHz waveform. No token-by-token drift, which is why the pacing and prosody hold together. Your text goes through a UMT5 text encoder, and there's an cfg vs apg guidance choice - apg is adaptive projection guidance, the thing the LongCat paper credits with fixing a long-standing training/inference mismatch. For plain TTS, cfg at the default is fine.
The inputs that matter
The inputs you'll actually touch:
text- what to say. Multiline.model_path- four choices, all auto-download from HuggingFace on first run intoComfyUI/models/audiodit/. The-3.5B-bf16is the recommended default;-fp8is dequantized to bf16 at load,-1Bif you're tight on VRAM.steps- default 16, range 4–64. More steps, better clarity, slower. 16 is the balanced point; go 32 when you care.guidance_strength- default 4.0. Think of it as CFG scale on an image model: too high gets artifacts, too low gets flat. Most people never move it.dtype-autopicks bf16 on CUDA, fp16 on MPS, fp32 on CPU. Plain TTS tolerates fp16 fine.attention-autois SDPA.sage_attentionis the fastest option if you install the package;flash_attentionfalls back to an SDP backend when theflash_attnpackage isn't around.keep_model_loaded- true offloads the model to CPU between runs so it isn't hogging VRAM, then swaps it back on the next run.
The single output, audio (AUDIO), wires into PreviewAudio to hear it or SaveAudioMP3 to keep it.
Installing
Install is the same for every node in this pack: ComfyUI Manager, search "LongCat AudioDiT", install, restart. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/Saganaki22/ComfyUI-LongCat-AudioDIT-TTS
cd ComfyUI-LongCat-AudioDIT-TTS
pip install -r requirements.txt
The node auto-installs its pip deps (transformers, librosa, safetensors, einops, soundfile) on startup, so the classic gotcha applies: restart ComfyUI once after installing - the installer runs before nodes register, and the node won't show up until the second launch. First run then downloads the weights, which is a few GB, so don't panic at the progress bar.
Real-world traps
Two real-world traps. The README is blunt that outputs beyond roughly 60 seconds start repeating or dropping words; 15–30 seconds is the sweet spot, so feed it short chunks and stitch. And a handful of early adopters reported straight-up gibberish from the official workflow back at release; it was fixed in later versions of the pack, so if you hit it, update the node and make sure dtype is on auto or bf16. The author, Saganaki22, is the same person behind the Zonos2 and Higgs v3 TTS wrappers - a busy guy who actually iterates on these.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| model_path | COMBO | LongCat-AudioDiT model. Models are stored in ComfyUI/models/audiodit/ | |
| text | STRING | Hello! This is your Longcat Audio node speaking, everything is set-up and running smoothly! | Text to synthesize. |
| steps | INT | 164–64 | Number of ODE Euler steps. More steps = better quality but slower. |
| guidance_strength | FLOAT | 4.00–10 | CFG/APG guidance strength. Higher = more guidance. |
| guidance_method | COMBO | cfg | Guidance method. 'apg' often gives better results for voice cloning. |
| device | COMBO | auto | Compute device. 'auto' picks CUDA > MPS > CPU. |
| dtype | COMBO | auto | Model dtype. 'auto' picks bf16 for CUDA, fp16 for MPS, fp32 for CPU. |
| attention | COMBO | auto | Attention implementation. 'auto' uses model default (SDPA). 'sage_attention' requires sageattention package. 'flash_attention' forces FlashAttention via SDPBackend. |
| seed | INT | 00–2147483647 | Random seed. 0 = random. |
| keep_model_loaded | BOOLEAN | true | Keep model loaded between runs. Model is automatically offloaded to CPU after generation to free VRAM, then resumed to GPU on the next run. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |