Nodes/ComfyUI/InstructPixToPixConditioning
ComfyUI Node Runs on cloud

InstructPixToPixConditioning

Edit an image with a sentence

By Comfy-Org·Created 4 years ago·Updated about 24 hours ago· 129,495
InstructPixToPixConditioning
  • 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.

Categorymodel/conditioning/instructpix2pix

Inputs (4)

NameTypeDefaultDescription
positiveCONDITIONING
negativeCONDITIONING
vaeVAE
pixelsIMAGE

Outputs (3)

NameTypeDescription
positiveCONDITIONING
negativeCONDITIONING
latentLATENT