Nodes/ComfyCollectorNodes/Hyper Remap Krea2 Edit Slim (CCN)
ComfyUI Node

Hyper Remap Krea2 Edit Slim (CCN)

Image-grounded remapping, stripped to one input

By valkymaera·Created 4 months ago·Updated 10 days ago· 1
Hyper Remap Krea2 Edit Slim (CCN)
  • clip
  • image
  • image_b
  • conditioning
text
remappings# string replace: find, replace # token remap: source -> target # token remap: source -> target (0.8) # concept remap: source => target # concept remap: source => target (b:0.8, s:2.0, t:0.1) # delta remap: base ~~ subtracted # delta remap: base ~~ subtracted (b:0.5, s:1.0, sx:2.0)
blend1.000
sharpness1.00
threshold0.000
grounding_px768
normalize_deltatrue

This is the Slim treatment applied to the image-grounded remapper: the full four-phase remapping pipeline running on a krea2_edit encode, with the text input stripped down to a wire and a single conditioning output. If you read the Hyper Remap Krea2 Edit article and thought "that's exactly what I need, but I don't want five extra sockets," this is the node for you.

The pipeline is identical in spirit: comma , for string replacement, -> for token embedding blend, => for concept direction nudges, ~~ for additive residual deltas, with per-pair (b:X, s:X, t:X, sx:X, tx:X) overrides beating the global blend / sharpness / threshold defaults. What changes when the encode is image-grounded is how the embedding phases behave, and it's worth knowing before you rely on them:

  • Concept remap runs in cosine mode - since the grounded sequence carries the vision tokens and chat template, a text-only re-encode can't match its length, so differential weighting is skipped and the nudge is placed by cosine similarity instead.
  • Delta remap runs in pooled mode - aux prompts encode text-only (shorter), so each delta is collapsed to a direction vector and broadcast across the grounded sequence.

None of that needs your input; it's the node adapting the math to the vision-bearer's longer sequence. It just means results skew toward "broad directional push" rather than surgical placement.

Inputs, reduced

Wire in a clip, a text string, and the image grounding:

  • image - source image for the grounded encode. Disconnected, the node still runs the pipeline on a text-only encode.
  • image_b - optional second reference for multi-ref LoRAs (scene first, subject second in training order).
  • grounding_px (default 768) - longest-side cap for the vision model; 0 = native resolution.

That's it. No case_sensitive, no debug, no untouched output - normalize_delta is the only extra toggle, default on, and you should leave it there.

Where it fits

This is the version you wire into a workflow that already manages its text upstream - a prompt store, a string builder, a chained neutral-prompt setup - and where the graph needs to stay clean. The cost of the leanness is the same as the other Slim: no A/B reference output to check "did the remap actually move anything," and no debug line when a nudge silently does nothing. If you're actively iterating on remappings, the full Krea2 Edit node's original_prompt/modified_prompt outputs are worth the clutter. Once your remappings are tuned, swap in Slim and forget it.

Setup reality check

The node ships with the pack -

cd ComfyUI/custom_nodes
git clone https://github.com/valkymaera/ComfyCollectorNodes

restart, or ComfyUI Manager → ComfyCollectorNodes - but it's not a self-contained tool. The krea2_edit grounded encode needs the Qwen3-VL text encoder plus the krea2_edit LoRA and its chat template, the same stack ComfyUI-Krea2Edit uses. If that's not already in your workflow, this node has nothing to ground on. And expect the vision-encoder tax: re-encoding through a VLM per remap pair adds seconds to a run. It's a specialist tool for people already living in the Krea2Edit ecosystem - which is exactly who it's for.

CategoryCCN/conditioning

Inputs (10)

NameTypeDefaultDescription
clipCLIP
textSTRING
remappingsSTRING# string replace: find, replace # token remap: source -> target # token remap: source -> target (0.8) # concept remap: source => target # concept remap: source => target (b:0.8, s:2.0, t:0.1) # delta remap: base ~~ subtracted # delta remap: base ~~ subtracted (b:0.5, s:1.0, sx:2.0)
blendFLOAT1.000-100–100Default blend for all operators. For ->: lerp between original and remapped embeddings. For => and ~~: magnitude of the nudge vector. >1 overshoots, negative inverts direction. Per-pair (b:X) overrides take precedence.
sharpnessFLOAT1.00-100–100Default incoming-conditioning sharpness for => and ~~. Controls how sharply positions are weighted by their cosine similarity to the source/base concept. 0 = uniform across all positions. Higher = concentrated on most-similar positions. Negative = favour least-similar positions. Ignored by ->. Per-pair (s:X) overrides take precedence.
thresholdFLOAT0.000-1–1Default incoming-conditioning threshold for => and ~~. Masks out positions whose similarity weight falls below this value after sharpness is applied. 0 = all positions eligible. Ignored by ->. Per-pair (t:X) overrides take precedence.
imageoptIMAGESource image to ground the encode on (krea2_edit semantic path). Leave disconnected for a text-only encode.
image_boptIMAGE2nd reference (subject) for multi-ref LoRAs; vision blocks in training order: scene first, subject second.
grounding_pxoptINT7680–4096Cap the longest side fed to Qwen3-VL; 0 = native resolution.
normalize_deltaoptBOOLEANtrueL2-normalise the delta tensor before blending for ~~ entries. When on, blend has a consistent magnitude regardless of how different the two prompts are. When off, larger semantic differences produce stronger effects at the same blend value.

Outputs (1)

NameTypeDescription
conditioningCONDITIONING