Save Universal Conditioning
Save prompt conditioning to disk
- conditioning
Every time you hit Queue, ComfyUI re-runs your text encoder on the same prompt you already encoded ten minutes ago. With SD1.5 that's a shrug. With LTX-2's bundled Gemma 3 12B encoder - 22 GB in fp16 and the single biggest bottleneck in that ecosystem - it's minutes of waiting, every single run, for identical bytes. SaveUniversalConditioning exists so you can encode once, park the result on disk, and never sit through that re-encode again. It's a boring one-input node, and it's the kind of boring that saves real time.
What it does
It takes the CONDITIONING it's fed, walks every tensor inside it off the GPU onto CPU, and torch.save()s the whole thing as a binary file. The "universal" in the name is that recursive move-to-CPU: it handles the nested dicts, lists, tuples, and objects that conditioning is made of, whether the embeddings came from SDXL, FLUX, or a video model. Files land in ComfyUI/models/conditionings/ with auto-incremented names like Conditioning_00001_.bin.
It's an output node with no output sockets - a "save to disk" terminal in the same spirit as Save Image. That also means it always runs, so don't be surprised when a workflow with it in a parallel branch refuses to short-circuit.
The one input that matters
- conditioning - wire the positive or negative conditioning you want to keep, usually straight out of a CLIP Text Encode node.
That's it. The catch is that whatever is upstream is exactly what gets saved, stale and all. This isn't a node to leave mid-graph while you're iterating on your prompt; it's a deliberate "freeze this value" action.
Why you'd bother
The win is when re-encoding is genuinely expensive. The community pattern, straight from r/comfyui: run a heavy "encode pass" that writes the .bin, then run your iteration workflow with no text encoder loaded at all - a workflow whose only job is generating. On video models with giant text encoders this turns "change the seed, wait for the encoder again" into "change the seed." Same trick applies to FLUX, whose T5 is no lightweight either. Bonus: if you share a workflow with someone, you can hand them a pre-computed .bin so they never need the encoder or the huge text model on their machine.
Install
No dependencies, no model downloads - this is a pure-utility pack. Either:
- 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-SaveLoadUniversalConditioningLatentand restart.
The folder models/conditionings/ is created automatically on first run. Worth knowing what you're installing: it's a one-commit fork of endman100's ComfyUI-SaveAndLoadPromptCondition under a throwaway-looking account, so treat it as a personal automation tool, not a maintained ecosystem project.
Where people get burned
The name overpromises a little. "Universal" means it serializes any conditioning structure - not that an SDXL .bin makes sense in an SD1.5 graph. The embeddings encode dimensions that don't transfer across model families. Save from one family, load only into a workflow built for the same family. Also, files go to models/conditionings/, not output/, so to reuse one you either restart or hit refresh on the matching LoadUniversalConditioning dropdown. And since the saved file is a pickle, don't email random .bin files around and expect them to be safe to open.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning | CONDITIONING | — |
Outputs (0)
No outputs