ComfyUI Node

ControlNet Preprocess Shuffle

Steal an Image's Ingredients, Not Its Composition

By Runware·Created 2 years ago·Updated about a month ago· 140
ControlNet Preprocess Shuffle
  • image
  • image
ttlfalse
ttl_value60
outputFormatJPG

Every other ControlNet preprocessor preserves structure - edges, depth, pose. Shuffle is the odd one out, and the odd one out is the fun one. ContentShuffle scrambles an image into tiles and uses the tile statistics as the conditioning signal, which means the model absorbs the image's content and color distribution while staying free to re-arrange it. The result: style and material transfer without copying the layout. You hand it a moody reference and get back a generation that feels like that moody reference but isn't a copy of it. Runware_controlnet_preprocess_shuffle runs that shuffle on Runware's cloud - image in, shuffled condition out as an IMAGE.

How it works

The source image is broken into patches, the patches are shuffled (hence the name), and the statistical pattern of that shuffled grid becomes the ControlNet condition. Because the local structure is destroyed but the global statistics survive, the generator learns what the image looks like - its palette, its textures, its general visual character - without being able to reproduce where things were. It's the closest thing this family has to "condition on vibe."

The inputs

  • image (required) - the source whose content character you want.
  • outputFormat (JPG/PNG/WEBP) and ttl (toggle + value) - delivery details. That's the whole node.

Output is image - the shuffled condition map. Yes, it looks like static. That's correct, and judging it by eye is a trap - the pattern in the "noise" is the signal.

Wiring it up

The standard chain: this node → RunwareBuild_controlNet (guideImage) → an image model's controlNet socket. Shuffle is where weight gets opinionated: too high and the output does start copying the source's layout, defeating the whole point; too low and the vibe evaporates. Start moderate and walk it in - this is the preprocessor where the knob earns its keep. Pair it with a strong prompt that supplies the composition, since shuffle deliberately refuses to.

Install and setup

Same as every node here: ComfyUI Manager → "Runware" → install → restart, or clone and pip install -r ComfyUI-Runware/requirements.txt (runware-sdk, pillow, soundfile). API key via Settings → Runware API key, RUNWARE_API_KEY, or runware auth login, funded credits (the ~$20 minimum top-up with a card on file is the standard complaint).

Troubleshooting

  • Output is copying the source image - weight too high. Shuffle is supposed to not preserve layout; if it's preserving it, back the weight off.
  • Nothing transfers at all - weight too low, or the source's palette/texture is too generic to read as a signal. Pick a reference with strong visual character.
  • The shuffled map looks useless - it's supposed to. Trust the chain, not your eyes, on this one.

Shuffle is the preprocessor for "I want it to feel like this, not look like it." For style exploration, mood matching, and texture experiments, it's the one that keeps surprising - in a good way, as long as you remember it's not supposed to preserve composition.

CategoryRunware/Image/runware

Inputs (4)

NameTypeDefaultDescription
imageIMAGE
ttloptBOOLEANfalseEnable to set ttl. Off uses the model's default.
ttl_valueoptINT60Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.
outputFormatoptCOMBOJPGFile format for the generated image.

Outputs (1)

NameTypeDescription
imageIMAGE