ComfyUI Node

Save Mix

Turn a blend you like into something you can grab again

By Immac·Created 6 months ago·Updated 6 months ago· 0
Save Mix
  • example_image
  • mix_id
  • mix_name
blend_json
modeSave
name
id
favoritefalse

Save Mix is the write side of the Immac Style Mixer loop: it takes a blend_json from a Blend Style node and persists it as a named mix in your library. Once saved, that mix shows up in the sidebar's Mixes grid and in every Pick Mix node's dropdown - so a recipe you dialed in on the canvas becomes one dropdown away forever. It's an output node, which just means it does its work when the graph runs and you don't wire anything onward from it for the prompt itself.

If you've ever spent twenty minutes tuning a weighted combo and then lost it because you forgot to note it down, this is the node that fixes that. The whole chain - Blend Style → Save Mix → Pick Mix - turns "I liked that combination" from a memory into a named, reusable artifact.

How it works

The blend_json you feed it is a JSON array of {style_id, weight} pairs, exactly what Blend Style outputs after its dedup and normalization passes. Save Mix stores those as {style_id, weight, enabled} entries, so what you saved is what you get back - no double-processing.

The mode dropdown governs how the target record is resolved, and it's the input that matters most:

  • Create - inserts a new mix. Leave id disconnected (it errors if you don't, since ids are auto-generated). If name is empty it auto-names it Quick Mix (A, B, C) from the style names, which is handy but means repeated Create runs with no name overwrite the same Quick Mix. It fails if the name you chose already exists - switch to Save.
  • Update - modifies an existing mix, by id or by name. Errors if it can't find one, and errors if you provide both id and name. Good for patching a recipe in place.
  • Save (default) - the forgiving one: updates if found, creates if not. With an id but no match it errors and tells you to disconnect the id and use a name instead.

Optional inputs beyond that: favorite (flags it in the sidebar so it sorts to the top) and example_image, which snapshots a tensor into the pack's input/immac_style_mixer/mixes folder and shows as the mix's thumbnail on the canvas and in the grid.

Outputs

  • mix_id - the UUID of the record you just saved (or updated).
  • mix_name - its name, including any auto-derived Quick Mix (...) label. Wire these somewhere if you want to log what got saved.

The practical workflow

The way this shines is a save-the-good-one loop: build a blend, generate, and when you like the result, bump the favorite toggle and let Save Mix commit it. Your library is the persistent state - the sidebar's backup/restore (JSON or ZIP) is the insurance, because everything lives in style_mixer_data.json inside the pack's folder.

Install

One install for all six nodes in the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/Immac/ComfyUI-ImmacStyleMixer

Restart ComfyUI, done. No pip dependencies, no model downloads, and the pack leans on ComfyUI's newer comfy_entrypoint extension API, so keep ComfyUI reasonably current. Manager works if you paste the repo URL. Details in the pack README.

Gotchas

The errors here are deliberate and helpful, but they read scary: "Connect either an id or enter a name - not both", and Create-mode "id should not be connected" are guards, not crashes - read them and adjust. Two real traps: feeding the prompt string from Blend Style instead of blend_json (Save Mix needs the JSON array, so it will error on parse), and re-cloning the pack folder without exporting first, which silently wipes your entire mix library. Export before you touch anything.

CategoryImmac/Style Mixer

Inputs (6)

NameTypeDefaultDescription
blend_jsonSTRING
modeCOMBOSave3 options: Create, Update, Save
nameoptSTRING
idoptSTRING
favoriteoptBOOLEANfalse
example_imageoptIMAGE

Outputs (2)

NameTypeDescription
mix_idSTRING
mix_nameSTRING