ComfyUI Node

Conditioning Freeze

Conditioning Freeze is a save button for conditioning, and that is genuinely useful

By nova452·Created 3 months ago·Updated a day ago· 524
Conditioning Freeze
  • conditioning
    ◄filenameconditioning.pt►

    Conditioning Freeze does one thing: it takes a CONDITIONING and writes it to disk. No outputs, no preview, no cleverness. If you have ever waited through a text encoder chugging on four reference images every single queue, you already know why that's worth a node.

    Why you'd want to write conditioning to disk

    Encoding is the invisible cost in the modern stack. On an LLM-encoded edit model like Krea 2, your prompt and reference images go through a vision-language encoder, often with multilayer feature aggregation - Krea 2's encoder is Qwen3-VL tapped at twelve separate layers, which is why the pack's own code carries a 30720-wide feature dimension around. That work is identical every run if your references haven't changed. Freeze lets you pay for it once.

    The workflow shape is: encode → Freeze → the sampler runs. Then mute (Ctrl+M) the encoder branch, wire Conditioning Unfreeze where the encoder used to sit, and every subsequent run skips encoding entirely. When you're sweeping sampler settings or a steering value against one fixed set of references, that's the difference between a fast iteration loop and a slow one.

    It's also a reproducibility tool. A frozen file is the exact conditioning bytes that produced an image, which makes "was it the encoder or the sampler?" answerable.

    How it actually behaves

    • The file. torch.save of the conditioning structure, into ComfyUI/input/conditioning/, created if it doesn't exist. The directory is resolved through folder_paths.get_input_directory(), so it follows your install if you run with a custom --input-directory.
    • The name. filename defaults to conditioning.pt. .pt gets appended if you forget it, and a blank field falls back to the default. Same name overwrites silently - no timestamping, no versioning.
    • No outputs. This is a terminal output node. That's not a limitation you need to work around; it means the node runs as soon as the queue reaches it, so it can sit on a side branch rather than in the path to your sampler.
    • Confirmation lives in the log. The only feedback is a UI text message - "Saved conditioning to <full path>" - which the pack's frontend extension draws on the node. If you're not sure where the file landed, that message tells you.

    One honest caution: .pt is a pickle. Load only files this node wrote.

    Inputs worth knowing

    Two, and neither is subtle. conditioning is the thing you're saving. filename is the thing you'll type into Conditioning Unfreeze later - just the name, not a path, because both nodes resolve against the same input directory.

    Install

    ComfyUI Manager: search Rebalance Pack. Or by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/nova452/Rebalance-Pack.git
    # restart ComfyUI
    

    The pack has no requirements.txt and downloads no models - it's pure Python over the torch, PIL and numpy your ComfyUI already ships. The repo also carries a web/js folder, so do one hard refresh (Ctrl+Shift+R) after the restart or the node's display extension won't load.

    Two naming traps worth knowing before you go hunting for support threads. The pack folder is Rebalance-Pack, its Manager display name is "Rebalance Pack", but the underlying project is called ComfyUI-Conditioning-Rebalance - and some node index entries still list the pre-merge module name ComfyUI-ConditioningKrea2Rebalance, which is what this pack was called back when it was the release-day Krea 2 filter-removal node. If you have an older folder with that name sitting in custom_nodes, remove it rather than stacking two copies of the same nodes.

    Common issues

    "Conditioning file not found" from the Freeze's partner node means the name doesn't match a file in input/conditioning. Check the exact string in the save message - capitalisation and extension included.

    Freezing doesn't help your speed. If your graph still re-encodes, you left the encoder live. Freeze writes a copy; it doesn't reroute anything. The shortcut is to bypass the encoder branch, not to trust the cache.

    A .pt that used to load now produces garbage or an error. Conditioning is encoder-specific - a file frozen from a Krea 2 (Qwen3-VL) encode only means something to that encoder. Change encoder, image sizes, or the model family, and you freeze again. This is a cache, not an archive.

    CategoryRebalance-Pack/conditioning

    Inputs (2)

    NameTypeDefaultDescription
    conditioningCONDITIONING—
    filenameSTRINGconditioning.pt—

    Outputs (0)

    No outputs