Nodes/WIP Conditioning Toolkit/Save Redux Embedding
ComfyUI Node

Save Redux Embedding

Bake a Redux style embedding to disk and drop the vision model

By silveroxides·Created about a year ago·Updated 5 months ago· 5
Save Redux Embedding
  • style_model
  • clip_vision_output
    filename_prefixredux_embeddings/ComfyUI_style_embed

    The ComfyUI style-model workflow - StyleModelLoader → CLIPVisionEncode → StyleModelApply - has a hidden inefficiency: every run, the CLIP vision model and the style model sit in VRAM just to turn a reference image into a few tokens of style. SaveReduxEmb exists to make that a one-time cost. It takes the output of a StyleModelApply-style setup, computes the Redux style embedding from the style model and the vision output, and writes it to a safetensors file. Later, LoadReduxEmb replays that file and does the same job as StyleModelApply - with no style model, no CLIP vision, and no reference image in the graph.

    Mechanically it's a capture node: it calls style_model.get_cond(clip_vision_output) - the exact call StyleModelApply makes internally - flattens the resulting embedding, and stores it under a redux key. The file lands in ComfyUI/models/conds/, the model folder this pack registers, with the same auto-incrementing counter as its sibling save node. Default prefix is redux_embeddings/ComfyUI_style_embed, which becomes a redux_embeddings subfolder under conds and a file named ComfyUI_style_embed_redux_00001.safetensors.

    The inputs that matter:

    • style_model - a STYLE_MODEL from StyleModelLoader (the SDXL Redux-style files like ip-adapter_sdxl_redux_style). This is the projector that turns vision output into tokens.
    • clip_vision_output - from CLIPVisionEncode. The reference image's encoding, which the style model projects.
    • filename_prefix - default redux_embeddings/ComfyUI_style_embed. The subfolder/name for the save.

    No outputs - it's an output node; its entire job is writing the file. When you're ready to use it, LoadReduxEmb picks it up from its embedding_name dropdown and applies it to a fresh conditioning.

    Why you'd reach for it. The workflow it kills is the one where you've found a style you like and just want it on every prompt. Instead of keeping the vision model resident and re-running the encode for each variation, you save the embedding once and swap it in at load time - a few MB on disk instead of gigabytes of vision model in VRAM. It's also the shareable form: the file is the style, self-contained, and someone else can drop it into their conds folder and use it without your source image or your style model.

    Installing. One of six nodes in silveroxides/ComfyUI_CondsUtils, a WIP conditioning toolkit from the same author as the Chroma GGUF quants on HuggingFace and ComfyUI_SamplingUtils. Empty README, code-is-docs, zero extra dependencies. ComfyUI Manager → search "CondsUtils", or:

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

    then restart.

    Where people get burned. The saved embedding is the style - it does not carry the image content beyond what the style projection kept, so don't expect it to reproduce a subject's identity; that's the other half of what IP-Adapter-family tools do, and it isn't in this file. Match the strength dial on load: attn_bias at strength 1.0 is a no-op by design (log(1) = 0), so if you load a file and see no style change, the first thing to check is whether you actually turned strength up. And like all this pack's save nodes, nothing overwrites - delete old files in models/conds as you iterate or the dropdown grows stale copies.

    Categoryconditioning/style_model

    Inputs (3)

    NameTypeDefaultDescription
    style_modelSTYLE_MODEL
    clip_vision_outputCLIP_VISION_OUTPUT
    filename_prefixSTRINGredux_embeddings/ComfyUI_style_embed

    Outputs (0)

    No outputs