Nodes/ComfyUI-Recolor/⚡ Batch Colorway
ComfyUI Node

⚡ Batch Colorway

The node that renders every colorway in one queue

By benjamin-bertram·Created 6 months ago·Updated 6 months ago· 1
⚡ Batch Colorway
  • image
  • mask_0
  • mask_1
  • mask_2
  • mask_3
  • mask_4
  • mask_5
  • mask_6
  • mask_7
  • batch
  • names
colorways_json[]
method
luminance_strength0.70
texture_preserve0.15
edge_feather2

Where the colorway pipeline actually pays off

MultiZone Recolor does one garment in one colorway. This node does the part that makes the pack worth installing: give it a JSON array of colorways and it runs them all in a single pass, returning one stacked batch of recolored images plus the names that go with them. For an apparel workflow where an article ships in six colorways - red, navy, sage, black, each with its own zone colors - you write the list once and get six images out of one queue.

It's effectively MultiZone Recolor wrapped in a loop. Each entry in the JSON is a colorway: a name plus the same per-zone config MultiZone takes, so everything you learned there transfers.

[
  {
    "name": "JI8124",
    "zones": [
      {"mask_index": 0, "r": 204, "g": 18, "b": 37, "label": "Main"},
      {"mask_index": 1, "r": 4, "g": 0, "b": 0, "label": "3bar"}
    ]
  },
  {
    "name": "JX3291",
    "zones": [
      {"mask_index": 0, "r": 182, "g": 166, "b": 201, "label": "Main"},
      {"mask_index": 1, "r": 4, "g": 0, "b": 0, "label": "3bar"}
    ]
  }
]

The README's examples/colorway_configs.json has full sets like this for its Adidas article selections - copy the shape from there rather than inventing your own.

Inputs and outputs

Required inputs are image, the colorways_json string above, and method (direct_replace, statistical, percentile - same choice as MultiZone, applied to every colorway). Then the shared tuning: luminance_strength (0.7), texture_preserve (0.15), edge_feather (2). Optional mask_0…mask_7 slots are wired exactly like MultiZone, and they're shared across all colorways in the batch - each colorway just changes the target colors, not the masks.

Outputs: batch, a single IMAGE tensor with one frame per colorway (stacked along the batch dimension), and names, a comma-separated STRING of the colorway names in order. Save Image handles the batch fine; if you want individual files, split the batch first or use a node that writes each frame.

Read this before you run it - there's a bug in the first release

The version we inspected (the single Feb 2026 commit) has a genuine break in BatchColorwayProcessor: it instantiates a class called MultiZoneRecolorV2, which doesn't exist anywhere in the pack. Run it and you'll get a NameError: name 'MultiZoneRecolorV2' is not defined the moment it processes. You're not doing anything wrong.

The fix is one line in ComfyUI-Recolor/nodes/recolor_nodes.py:

mn = MultiZoneRecolor()   # was MultiZoneRecolorV2()

Change it, restart ComfyUI, and the node works. If a later commit fixes this, great - but check your version before you spend an hour blaming your JSON. It's also worth a sanity check that the pack you're using has actually been updated, since this is a young, single-author repo.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/benjamin-bertram/ComfyUI-Recolor
cd ComfyUI-Recolor
pip install -r requirements.txt

Restart, or use Manager and search "ComfyUI-Recolor". No model downloads - pure torch / opencv-python / scikit-image math. The masks still come from SAM via ComfyUI-Impact-Pack or your segmentation node of choice, and they're the same eight slots for the whole batch.

CategoryAICG/Recolor

Inputs (14)

NameTypeDefaultDescription
imageIMAGE
colorways_jsonSTRING[]
methodCOMBO3 options: direct_replace, statistical, percentile
luminance_strengthFLOAT0.700–1
texture_preserveFLOAT0.150–1
edge_featherINT20–50
mask_0optMASK
mask_1optMASK
mask_2optMASK
mask_3optMASK
mask_4optMASK
mask_5optMASK
mask_6optMASK
mask_7optMASK

Outputs (2)

NameTypeDescription
batchIMAGE
namesSTRING