Hyper Remap Krea2 Edit (CCN)
Remapping, but the prompt is grounded on your image
- clip
- image
- image_b
- conditioning
- original_prompt
- modified_prompt
Hyper Remap Krea2 Edit fuses the four-phase remapping pipeline onto the krea2_edit image-grounded encode - the setup where your edit instruction is encoded together with a source image through a Qwen3-VL vision language model using the krea2_edit LoRA's chat template, so the conditioning literally contains what your image is, not just what your words say. Same operators as the base Hyper Remap - , string replace, -> token blend, => concept nudge, ~~ delta residual - but every phase now runs on conditioning that saw your image.
That changes the character of the tool substantially. A concept remap grounded on an image can shift how the actual subject is described, not just how the words sit. The delta remap (which is already the most experimental operator) becomes "image-grounded residual" - nudging the edit away from something the image contains. If that sounds powerful and slightly unpredictable, you've got the right read; the README's "results will vary depending on the model" disclaimer applies double here.
The inputs beyond the basics
Same core set as Hyper Remap - clip, text, remappings, blend, sharpness, threshold - plus the image-grounded extras:
- image - the source image to ground the encode on. Disconnected and it behaves like a text-only Hyper Remap (with the scheduled-encode and template-robust improvements, minus the untouched output).
- image_b - an optional second reference for multi-ref LoRAs. Vision blocks are fed in training order: scene first, subject second.
- grounding_px (default 768) - caps the longest side fed to the vision model before it downscales; 0 means native resolution. Lower it when you're memory-constrained on the VLM.
The outputs are conditioning, original_prompt, and modified_prompt. There's no untouched_conditioning here - with an image grounding, "untouched" is a weird concept, so the author just didn't provide one.
What it needs from you
This is not a standalone node. The krea2_edit path requires the Krea2Edit-style CLIP setup - a Qwen3-VL text encoder and the krea2_edit LoRA with its chat template - the same stack the ComfyUI-Krea2Edit pack uses. The appearance path (model patch, source latent as RoPE frame tokens) stays in that pack; this node only handles the grounded encode side. So the honest setup story is: you already run Krea2Edit, you already have the CLIP and LoRA loaded, and this node gives you embedding-space remapping on top of that pipeline. If you've never touched Krea2Edit, start there before this.
Install and caveats
The node ships with the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/valkymaera/ComfyCollectorNodes
restart, or Manager → ComfyCollectorNodes. The pack itself needs no model downloads, but the Krea2Edit CLIP/LoRA stack is on you. And budget for speed: grounding through a vision encoder plus multiple re-encodes per remap pair can add real seconds per run - the README flags exactly this for vision-encoding models. Empty the remappings field and it reduces to a plain grounded encode, which the author notes is usable directly as a negative branch - a handy little bonus if you already have the stack loaded.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| text | STRING | — | |
| remappings | STRING | # 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) | — |
| blend | FLOAT | 1.000-100–100 | Default 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. |
| sharpness | FLOAT | 1.00-100–100 | Default 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. |
| threshold | FLOAT | 0.000-1–1 | Default 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. |
| imageopt | IMAGE | Source image to ground the encode on (krea2_edit semantic path). Leave disconnected for a text-only encode. | |
| image_bopt | IMAGE | 2nd reference (subject) for multi-ref LoRAs; vision blocks in training order: scene first, subject second. | |
| grounding_pxopt | INT | 7680–4096 | Cap the longest side fed to Qwen3-VL; 0 = native resolution. |
| normalize_deltaopt | BOOLEAN | true | L2-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. |
| case_sensitiveopt | BOOLEAN | true | Case sensitivity for string replacement pairs. |
| debugopt | BOOLEAN | false | Print phase diagnostics to console. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |
| original_prompt | STRING | — |
| modified_prompt | STRING | — |