ComfyUI Node

Load Universal Conditioning

Load your prompt encodings from disk in milliseconds

By XxcomfyTestxX·Created 3 months ago·Updated 3 months ago· 2
Load Universal Conditioning
    • CONDITIONING
    conditioning_file

    If you have a .bin file sitting in models/conditionings/ - written by its sibling SaveUniversalConditioning, or handed to you by someone who pre-computed their prompt - this node loads it back into a live CONDITIONING socket in the blink of an eye. No text encoder loads, no model shuffles, no GPU work. That's the entire point: re-encoding a prompt through a big text encoder is the expensive part, and this node skips it entirely.

    How it works

    It reads the file with torch.load(map_location="cpu") and returns the conditioning exactly as it was saved. The dropdown lists every .bin it finds in ComfyUI/models/conditionings/ (a folder this pack creates automatically). It also does two small things under the hood that keep it honest:

    • IS_CHANGED hashes the file (SHA-256), so if you re-save over the same filename, the node re-runs instead of ComfyUI's cache silently feeding you the stale copy. This is the always-rerun machinery from comfyui-node-plumbing.md done properly - a hash, not the True == True footgun.
    • It validates the file exists before execution and gives you a clear error instead of a cryptic traceback.

    The input and output

    • conditioning_file - the one enum widget. Pick the saved .bin from the list; if you just dropped a file in, hit the refresh button on the widget.
    • Output: CONDITIONING - wire it into a KSampler's positive or negative, or anywhere else conditioning flows. The saved value carries everything the original CLIP Text Encode produced, so it plugs in exactly where the text-encode node's output would.

    When this pays off

    Pair it with the save node for the two-workflow split: one "encode pass" that runs your big text encoder and writes the .bin, and a second generation workflow that loads it in a fraction of a second. This is the community's answer to video models with enormous text encoders - LTX-2's Gemma 3 encoder is the classic offender, but it works the same for FLUX's T5. People also use it to keep one canonical prompt encoding across a dozen workflows, so tweaking the wording happens in exactly one place.

    Install

    Same as any custom node, and there are no pip dependencies or models to fetch - the pack imports only ComfyUI's own torch, folder_paths, and comfy.cli_args.

    • ComfyUI Manager → install from Git URL → https://github.com/XxcomfyTestxX/ComfyUI-SaveLoadUniversalConditioningLatent, then restart; or
    • cd ComfyUI/custom_nodes && git clone https://github.com/XxcomfyTestxX/ComfyUI-SaveLoadUniversalConditioningLatent and restart.

    Where people get burned

    Two things. First, loaded conditioning comes back on CPU - that's deliberate and safe; ComfyUI moves tensors to the right device when you feed the sampler, so don't go "fixing" it. Second, and this is the one that actually bites: a saved SD1.5 conditioning will not make sense in an SDXL graph. "Universal" means the loader accepts any conditioning structure, not that embeddings transfer between model families. Save and load within the same family, and if the dropdown is empty, your .bin is in the wrong folder - it belongs in models/conditionings/, not output/.

    CategoryUniversalIO

    Inputs (1)

    NameTypeDefaultDescription
    conditioning_fileCOMBO0 options:

    Outputs (1)

    NameTypeDescription
    CONDITIONINGCONDITIONING