Nodes/ComfyUI_JoyAI_Echo/JoyAI_Echo_SM_Clip
ComfyUI Node

JoyAI_Echo_SM_Clip

The 12B brain behind JoyAI-Echo's long stories

By smthemex·Created 3 months ago·Updated 2 months ago· 56
JoyAI_Echo_SM_Clip
    • clip
    clip
    gguf
    connector
    infer_device

    JoyAI-Echo doesn't use a dinky CLIP or T5 for its text conditioning. It uses Gemma 3 12B - a text encoder bigger than most image checkpoints people run - wrapped up with a multimodal "connector." This node is what loads that pair. It's the least glamorous node in the pack and also the one where the GGUF habit saves your GPU, because 12B of Gemma at fp16 is not free.

    If you've read the LTX-2 lore, this should look familiar: LTX-2 moved to Gemma 3 12B as its text encoder, and JoyAI-Echo inherits that stack wholesale since it's an LTX-2.3 finetune. The difference is that JoyAI-Echo's wrapper is deliberately pure text to embedding - no built-in prompt enhancer rewriting your words. What you type is what gets encoded, which for a multi-shot story model is exactly what you want: the pack's own Encoder node is where your shot list gets structured, and this node is just the thing that makes the encoder able to run.

    How it works

    load_joyai_te builds a GemmaTextEncoderWrapper: the Gemma weights plus an embeddings_processor (that's your connector) that turns raw text into the paired video-context / audio-context embeddings the distilled generator expects. The wrapper is what the Encoder node later uses to encode every shot, one at a time. The Gemma config files live inside the pack at JoyAI_Echo/configs/gemma/, so you don't manage a tokenizer separately.

    Inputs that matter

    • clip - the safetensors Gemma (gemma-3-12b-it-qat.safetensors) from ComfyUI/models/clip. Optional, in the sense that you can instead use the next field.
    • gguf - gemma-3-12b-it-qat-Q4_0.gguf from ComfyUI/models/gguf. Pick this or clip, not both. Q4 on a 12B encoder is the low-VRAM move, and honestly for a text encoder it's a fine trade - you lose almost nothing you'd notice on a storyboard.
    • connector - the multimodal connector, also in ComfyUI/models/clip. The README lists connector.safetensors and mentions an "11 version" - if your Gemma and connector are from different revisions, swap the connector to match your checkpoint's era. This one is not optional; no connector, no embeddings.
    • infer_device - cuda or cpu. CPU works and is how people on tiny cards keep the 12B encoder from nuking VRAM, it just takes a while to encode a full shot list.

    Output is a single clip (CLIP) that feeds straight into JoyAI_Echo_SM_Encoder.

    Install and models

    Same pack install as everything else in ComfyUI_JoyAI_Echo - git clone into custom_nodes, or search "JoyAI Echo" in ComfyUI Manager - then drop the Gemma files where the combo boxes expect them:

    ComfyUI/models/clip/    gemma-3-12b-it-qat.safetensors   # optional
    ComfyUI/models/gguf/    gemma-3-12b-it-qat-Q4_0.gguf     # optional
    ComfyUI/models/clip/    connector.safetensors            # required
    

    The files come from smthem/LTX-2.3-test-gguf, alongside the two VAEs the Model node needs. Install requirements.txt from the pack, but skip the torch/torchvision/torchaudio lines if you're on an existing ComfyUI env - reinstalling those is the fastest way to brick a working setup.

    Common issues

    • OOM on the encoder. The 12B Gemma is a serious lump of VRAM. This is the node where the GGUF path pays off: Q4_0 + infer_device: cpu is a workable combo on 8 GB cards and under. Slow, but it doesn't OOM.
    • Nothing shows up in the gguf dropdown. The pack registers its own gguf model folder when it loads (it does this in code, independent of city96's ComfyUI-GGUF), so if the dropdown is empty, check that the pack actually loaded and that your .gguf is under ComfyUI/models/gguf/.
    • Garbage or empty conditioning later. Nine times out of ten that's a Gemma/connector revision mismatch, not a prompt problem. Both come from the same HF repo, so re-download the connector from the same folder as your Gemma and try again.
    • Your other workflows' models suddenly unload. Every node in this pack calls clear_comfyui_cache() on execute, which flushes ComfyUI's loaded models. Expected behavior, not a leak.
    CategoryJoyAI_Echo_SM

    Inputs (4)

    NameTypeDefaultDescription
    clipCOMBO1 options: none
    ggufCOMBO1 options: none
    connectorCOMBO1 options: none
    infer_deviceCOMBO2 options: cuda, cpu

    Outputs (1)

    NameTypeDescription
    clipCLIP