Nodes/MOSS-TTS 1.5/MOSS-TTS Load Model
ComfyUI Node

MOSS-TTS Load Model

The 12 GB gatekeeper of the pack

By eehrich·Created 2 months ago·Updated 12 days ago· 1
MOSS-TTS Load Model
    • moss_model
    model_idOpenMOSS-Team/MOSS-TTS-Local-Transformer-v1.5 (1.7B)
    devicecuda
    attentionauto

    Every node in the MOSS-TTS 1.5 pack is useless until this one runs, because MOSS isn't a tiny ONNX model - it's a real transformer that wants to live in your VRAM. MOSSLoadModel is the gatekeeper: it pulls the weights from Hugging Face on first run, loads the processor + model into memory, and hands the whole bundle out as moss_model. Fan that output into the Speak, Voice Clone, and Voice Continue nodes and you're in business. The pack is a thin, MIT wrapper around OpenMOSS's Apache-2.0 model - no API, no key, no account. It's the rare local TTS that does multilingual cloning without any cloud call, which is why it also shows up bundled inside Blender filmmaking addons.

    Two models, one dropdown

    model_id defaults to MOSS-TTS-Local-Transformer-v1.5 (1.7B), a MossTTSLocal architecture that outputs 48 kHz stereo and needs ~12 GB VRAM in bfloat16. The other choice is the full MOSS-TTS-v1.5 (8B), a deeper MossTTSDelay model at 24 kHz that wants ~22 GB and can sound a bit more expressive. Same API, same 31 languages, same duration semantics, so you can swap without rewiring. On an RTX 3090 or 5090 both fit - but start with the 1.7B. It's faster, it leaves room for the video half of your pipeline, and the quality gap is subtle. The "(1.7B)" / "(8B)" suffix is just a UI label; it gets stripped before the Hugging Face call.

    The other knobs

    • device - cuda by default, falls back to cpu automatically if CUDA's missing. CPU works but is roughly 50x slower, so treat it as an emergency.
    • attention - the one that used to bite people. MOSS's own model code defaults to flash_attention_2, which hard-crashes if the flash_attn package isn't installed. The auto default (recommended) checks whether flash-attn is present and falls back to PyTorch's built-in sdpa if not - so a plain install just works. Force flash_attention_2 only if you've actually installed flash-attn; on brand-new CUDA toolkits without a prebuilt Windows wheel, stay on sdpa. Quality is identical, only long-context speed differs.

    dtype is picked for you: bfloat16 on CUDA (MOSS's training precision), float32 on CPU. The bundle caches by (model_id, device, attention), so re-queued workflows reuse the loaded model instead of paying the load cost every time. Output is a single moss_model that feeds any of the three generators.

    Install and the first-run tax

    Pack install is standard - Manager, search "MOSS-TTS 1.5", or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/eehrich/ComfyUI-MOSS-TTS-1.5.git MOSS-TTS-ComfyUI
    

    Restart ComfyUI. There are deliberately no pip dependencies - it rides on ComfyUI's own transformers (>= 4.50.3), and the current model build runs on both transformers 4.x and 5.x. The real cost is the first execution: ~9.1 GB for the 1.7B, ~17 GB for the 8B, streamed into your Hugging Face cache. Start the download and go make coffee.

    The gotchas that actually get people

    • Python 3.11+ dataclass crash. MOSS's audio-tokenizer config files declare fields without defaults after the parent added defaulted ones, so the first load dies with TypeError: non-default argument 'sampling_rate' follows default argument 'problem_type'. Fix once in the cached file under ~/.cache/huggingface/modules/transformers_modules/.../configuration_moss_audio_tokenizer.py by giving the fields = None defaults. Nothing behavioural changes - the real defaults still come from __init__.
    • MODALITY_TO_BASE_CLASS_MAPPING AttributeError on transformers 4.x - that's a stale cached MOSS build from before the 4.x/5.x compatibility guard. Delete ~/.cache/huggingface/hub/models--OpenMOSS-Team--MOSS-TTS-* and let it re-download, or upgrade transformers to >= 5.0 (needs Python 3.10+).
    • Can't load the model … pytorch_model.bin - the safetensors download stalled, usually low disk space in the HF cache. Rerun the download explicitly and free space.
    • std::bad_alloc on import torchcodec - version mismatch between torchcodec and torch. MOSS itself doesn't need torchcodec, so uninstall it or match versions.

    One VRAM note before you build a big scene: reference and prefix audio add roughly 1 GB per 20 s of history on top of the 12 GB baseline, so a very long reference clip can OOM you before generation even starts. Keep reference clips in the 5–15 s sweet spot and watch nvidia-smi during long continuation chains.

    CategoryMOSS TTS 1.5

    Inputs (3)

    NameTypeDefaultDescription
    model_idCOMBOOpenMOSS-Team/MOSS-TTS-Local-Transformer-v1.5 (1.7B)Which MOSS model to load. Both are v1.5, same API, 31 languages, 48 kHz stereo, same 'tokens' / duration semantics. Local-Transformer (~1.7B) is smaller/faster (~12 GB VRAM), MOSS-TTS-v1.5 (~8B) is the deeper MossTTSDelay model (~22 GB VRAM), potentially better prosody/expressiveness. Fits on RTX 5090 and 3090 both.
    deviceCOMBOcudaWhere the model runs. CPU works but is very slow (~50x slower than CUDA). Falls back to CPU automatically when CUDA is unavailable.
    attentionoptCOMBOautoAttention backend. MOSS's model code defaults to flash_attention_2, which CRASHES if the flash_attn package isn't installed. 'auto' (recommended) uses flash_attention_2 only when flash_attn is actually available, otherwise 'sdpa' (built into PyTorch, no extra install, fast). Force 'sdpa'/'eager' for maximum compatibility, or 'flash_attention_2' only if you installed flash-attn.

    Outputs (1)

    NameTypeDescription
    moss_modelMOSS_MODELModel bundle. Feed into any MOSS-TTS Speak / Voice Clone / Voice Continue node.