Scenema Models Loader ⚡
Four files, one node, ~35GB of TTS model — loaded as plain comfy objects
- model
- clip
- vae
Scenema Audio is one of the better "diffusion TTS" models to run locally - expressive, cloneable, and it sounds like it was produced, not synthesized. This loader is how you get its stack into ComfyUI: an audio DiT, a Gemma-3 12B text encoder, and an audio VAE, all from your own models folders and all coming out as plain comfy MODEL / CLIP / VAE. No HuggingFace runtime downloads, no bundled weights - you point at files, it builds objects.
The four dropdowns
transformer_name- the audio DiT, frommodels/diffusion_models(the unet folder). The reference file isscenema-audio-transformer-int8.safetensors; bf16 and GGUF quants work too. INT8 and GGUF weights stay quantized and dequantize one layer at a time, which is what makes this thing loadable at all - it's a big DiT.text_encoder_name- a Gemma-3 12B text encoder, frommodels/text_encoders..gguf(stays quantized through this pack's ops, with the tokenizer rebuilt from the GGUF metadata) or a single-file safetensors. This is the biggest piece: ~24GB, so the GGUF option is not a luxury.pipeline_name-scenema-audio-pipeline.safetensors(or-pipeline-audio), frommodels/vae. It carries the text projection, embeddings connectors, and the audio VAE decoder plus vocoder.vae_encoder_name-scenema-audio-vae-encoder.safetensors, frommodels/vae. Optional: it's only needed to encode voice references when the pipeline file ships without an encoder - the full pipeline checkpoint already includes one. Defaults tonone.
The file names come from the ScenemaAI sidecar on HuggingFace; the README has the full table of which file goes in which folder.
keep_loaded - the input that saves you minutes
The last input is a quiet hero: keep_loaded (on by default) caches the built model/clip/vae keyed on the four filename dropdowns. Re-queuing with the same selections skips rebuilding from disk. That matters because the DiT alone is 7–10GB and the text encoder ~24GB - rebuilding every run would make iteration painful. Turn it off when you want a genuine reload, e.g. after replacing a file on disk without renaming it.
The outputs
model, clip, vae - plain comfy objects. The audio DiT loads as a comfy LTX-AV model with the video paths gated off (the comfy-native equivalent of the original nodes' audio-only hack), the Gemma encoder runs as comfy's LTXAVTEModel, and the VAE is comfy's AudioVAE - encoder + decoder + BigVGAN vocoder with the 16kHz→48kHz bandwidth extension, so output is 48kHz stereo. Wire the three into Scenema Audio Generate.
Installing it
Part of the ComfyUI-GGUF-Loader pack under 🤖 CCTech/Scenema. ComfyUI Manager → search "ComfyUI-GGUF-Loader" → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/ChrisColeTech/ComfyUI-GGUF-Loader
cd ComfyUI-GGUF-Loader
pip install -r requirements.txt
Common issues
Empty dropdowns mean the file isn't in the folder the tooltip names - the README's file table is your checklist. The text encoder is the one to get right first: it's the biggest download and the most common OOM source, so use a GGUF quant of Gemma-3 12B if your VRAM is tight. And if you replaced a file on disk and the loader "doesn't see it," that's keep_loaded doing its job - toggle it off once, reload, toggle it back. The pack ships tools/smoke_scenema.py, a CPU smoke test for all the load paths, worth running once before you blame the sampler.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| transformer_name | COMBO | scenema-audio-transformer-int8.safetensors (or the bf16 checkpoint, or a GGUF quant of either) from models/diffusion_models (unet). INT8 and GGUF weights remain quantized and dequantize one layer at a time. | |
| text_encoder_name | COMBO | Gemma-3 12B text encoder, .gguf (stays quantized) or safetensors, from models/text_encoders (clip). | |
| pipeline_name | COMBO | scenema-audio-pipeline.safetensors (or -pipeline-audio) from models/vae. Carries the text projection, embeddings connectors, audio VAE decoder and vocoder. | |
| vae_encoder_name | COMBO | scenema-audio-vae-encoder.safetensors from models/vae. Optional: needed to encode voice references only when the pipeline file above ships without its encoder (the full pipeline checkpoint already includes one). | |
| keep_loaded | BOOLEAN | true | Reuse the last-built model/clip/vae when these four filenames are unchanged, instead of rebuilding from disk every run (the DiT alone is 7-10 GB, the text encoder ~24 GB). Turn off to always force a fresh rebuild, e.g. after replacing a file on disk without renaming it. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| vae | VAE | — |