InstructPixToPixConditioning
Edit an image with a sentence
- positive
- negative
- vae
- pixels
- positive
- negative
- latent
InstructPixToPixConditioning is the node behind "turn this photo into a watercolor" - instruction-based image editing, the 2023 idea that a sentence should be enough to edit an image. You feed it the image, the positive conditioning (your instruction like "make it a watercolor painting"), and the negative, and it packages the whole edit into conditioning plus a latent for the KSampler.
IP2P was genuinely ahead of its time. It's the ancestor of every modern edit model - Qwen-Image-Edit, Kontext, Klein - that does the same trick with much better results. The honest framing for 2026: the node still works and still ships in core, but the reason you'd use it has narrowed, because the newer models changed the game. Where IP2P still earns its keep: it does targeted edits without a mask and it's cheap to run on old hardware. The modern models' weakness is that they regenerate the whole image and drift the unedited parts; IP2P is no better at that, but it's the tool you have when you don't have the VRAM for a 2026 editor.
How it works
The mechanism is simple and revealing: it VAE-encodes your input image and attaches that encoded latent as concat_latent_image to both the positive and negative conditioning. The model then cross-attends to the image while following your instruction - the instruction says what to change, the concat latent says what the starting image was. It also returns a latent of all zeros at the input's resolution: the img2img start point.
Inputs:
- positive - your instruction, from CLIPTextEncode ("turn it into a watercolor").
- negative - the usual "what to avoid" encode.
- vae - the model's VAE.
- pixels - the image to edit.
Outputs: positive, negative, and latent (all-zero, ready for the KSampler). The node even crops your image to a multiple of 8 internally so the VAE doesn't choke on odd dimensions.
Where people get burned
- Denoising strength is the real dial. The node gives you a zero latent; the KSampler's denoise decides how much of the original survives. Low denoise = subtle edit, high = heavy rewrite. People forget the instruction and the image are in tension, and denoise is the balance.
- It's a full-image editor, not an inpainter. IP2P changes the whole image per its training. If you want "leave everything except the sofa alone," that's mask-based inpainting territory, not this node.
- Instruction clarity. IP2P was trained on simple, imperative instructions. "Make it night time" works; a paragraph of stylistic qualifiers gets muddy. Modern edit models reward long natural language; this one doesn't.
- Pair with the right model. It needs an InstructPix2Pix checkpoint - an IP2P fine-tune of SD 1.5 - not a vanilla SD model. The node doesn't enforce it; the results will tell you.
Ships with ComfyUI core (comfy_extras/nodes_ip2p.py). For its age it's remarkably well-behaved, and if you're following an old "edit with a sentence" workflow, this is the node in the middle making the magic work.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| vae | VAE | — | |
| pixels | IMAGE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |