Save Redux Embedding
Bake a Redux style embedding to disk and drop the vision model
- style_model
- clip_vision_output
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 likeip-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- defaultredux_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.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| style_model | STYLE_MODEL | — | |
| clip_vision_output | CLIP_VISION_OUTPUT | — | |
| filename_prefix | STRING | redux_embeddings/ComfyUI_style_embed | — |
Outputs (0)
No outputs