Nodes/WIP Conditioning Toolkit/Load Pre-computed TE Conds
ComfyUI Node

Load Pre-computed TE Conds

Load precomputed TE conds

By silveroxides·Created about a year ago·Updated 5 months ago· 5
Load Pre-computed TE Conds
    • CONDITIONING
    embedding_name
    text_encoder

    Some workflows should not need a text encoder in the graph at all. If you've already paid the cost of encoding a prompt once - and you're about to run that same prompt across fifty seeds, or you're iterating on samplers and LoRAs where the words never change - LoadTEConds is the node that lets you load a precomputed T5/UMT5 encoding straight off disk and feed it to the sampler with no CLIP or text-encoder node in sight.

    That's the whole pitch, and it's a real one. On Flux and the SD3.5 family, the heavy encoder is T5-XXL - billions of parameters whose whole job is parsing your sentence into tokens. On the Wan video family it's UMT5-XXL, same shape of problem, bigger stakes because video already hogs your VRAM. ComfyUI caches encoder output within a session, but the moment you restart, or queue a fresh batch, the encoder re-chews the prompt. This node makes the cache permanent: the tokens live in a file in ComfyUI/models/conds/, and loading them costs nothing but a disk read.

    The inputs that matter:

    • embedding_name - the dropdown of saved files in the pack's conds model folder.
    • text_encoder - t5xxl or umt5xxl. This must match the key the file was saved under (SaveCondsEmb stamps it from the same dropdown), or the load fails with a missing-key error.

    That's it. Two inputs, one output: a CONDITIONING built from the saved token tensor, with pooled_output set to None. It wires directly into the KSampler next to your model.

    Where this fits (and where it doesn't). The clean use case is a model whose text conditioning is one encoder - the Wan T2V flow, where the prompt becomes a single UMT5 embedding, is the natural home and almost certainly what the author built it for. It's less clean on the multi-encoder families: Flux wants T5 and CLIP-L, SD3.5-L wants three encoders, and this file holds just the one you named. Load it into a bare Flux graph and you're handing the sampler a partial conditioning - you'd want it spliced into a live encoding (that's the pack's InsertTEConds) rather than used as the whole prompt. Also note pooled_output is None; models that need a pooled vector for guidance will complain.

    Installing. One of six nodes in silveroxides/ComfyUI_CondsUtils - a WIP conditioning toolkit with an empty README and zero extra dependencies (just torch and comfy.utils; no requirements.txt, no model downloads). ComfyUI Manager → search "CondsUtils", or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/silveroxides/ComfyUI_CondsUtils
    

    then restart ComfyUI. The author, silveroxides, is the same handle behind the Chroma GGUF quants on HuggingFace and the ComfyUI_SamplingUtils pack.

    Where people get burned. The file has to exist - this node won't encode anything for you, and an empty dropdown means nothing's been saved yet (run the workflow once with SaveCondsEmb). The encoder-key match is the second trap: t5xxl files won't load as umt5xxl. And because this is a pure-load node, it trusts the saved file blindly: if you regenerate the same prompt after changing your text encoder version, re-save - a stale embedding will silently give you the old reading of the words. Treat the conds folder like a build cache: delete and rebuild when the prompt or the encoder changes.

    Categoryconditioning/advanced

    Inputs (2)

    NameTypeDefaultDescription
    embedding_nameCOMBO0 options:
    text_encoderCOMBO2 options: t5xxl, umt5xxl

    Outputs (1)

    NameTypeDescription
    CONDITIONINGCONDITIONING