Nodes/ComfyUI-Pixaroma/Sketch Pixaroma
ComfyUI Node

Sketch Pixaroma

Sketch Pixaroma

By pixaroma·Created 7 months ago·Updated about 5 hours ago· 440
Sketch Pixaroma
  • image
  • image
  • prompt
  • mask

Instruction editing ate most of what people used to reach for inpainting to do. Kontext, Qwen-Image-Edit and Flux 2 Klein will change the jacket, swap the background or delete the bottle from one sentence. What they're bad at is the sentence itself: "make the hat red" is fine until there are two hats, and "fix the thing on the left" isn't an instruction, it's a guess.

Sketch Pixaroma closes that gap by letting you point: draw on the picture, type a short note beside each mark, and the node hands you the annotated image plus the prompt it wrote from your notes.

What it actually does

Wire a picture in, pick a tool and drag on the node's own preview. Box is the default and starts red; every new mark takes the next colour (red, blue, green, purple), which matters more than it sounds, because the colour name is how the model is told which mark you mean. A numbered row appears per mark and the cursor jumps into its note box - drag, type, Enter, drag again.

The prompt is mechanical and predictable: one sentence per mark that has a note, in the shape Inside the red box: make the hat a red baseball cap. A closed freehand loop gives Inside the red outline, an open one The red sketch; an arrow becomes Where the red arrow points; a typed word becomes Where the red text says "crown". Draw two red boxes and the node adds position words - the left red box, the right red box - because an edit model genuinely can't tell them apart otherwise.

Two details before you blame the model. Marks are stored as fractions of the picture and line width as a fraction of its long side, so a mark drawn on a small preview still lands correctly on the full-size render. And the prompt output is empty when no mark has a note - ten boxes and no notes sends the model marks and no instructions.

The in and the outs

The only input is image - the picture to mark. Everything else on the node is UI: the five tools, colour swatches, four line widths (S, M, L, XL), undo/redo/clear, a per-mark delete button, and an expand button for a big view (Ctrl+Z / Ctrl+Y work in there).

Three outputs:

  • image - the picture with your marks composited in at full resolution. Unmarked pixels come out exactly as they went in.
  • prompt - your notes joined into one instruction, plus a closing Remove all the colored marks and keep everything else the same. That line has its own switch, and you want it on: edit models are happy to faithfully reproduce your red box in the output.
  • mask - white inside every box, circle and closed loop, and a wide band along an open freehand stroke. Arrows and words are deliberately left out, because they point at things rather than enclose them.

That mask output is the interesting one. Masked inpainting still owns exactly one thing instruction editing doesn't: unmasked pixels that come back bit-identical. Edit models drift - "the details after editing are looking similar but not the same," in the LanPaint developer's own words. So the modern setup is: mark the picture, wire image and prompt into the edit model, and if drift elsewhere in the frame bothers you, send mask into an inpaint crop workflow instead.

Installing it

Search Pixaroma in ComfyUI Manager, install, restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/pixaroma/ComfyUI-Pixaroma

The README's own snippet clones a GitLab URL for the same pack; either works.

No model needed for this one, and the pack's only pip dependency is imageio-ffmpeg (for the video nodes); rembg is optional. On ComfyUI Easy Install for Windows, Pixaroma is already bundled - just update.

Where it bites

No picture on the node before the first run. It finds one by walking the wire backwards to something that holds pixels - a Load Image works, and so does a Pixaroma switch, but a node that crops or rotates in between doesn't. Run once first; the node warns you when the picture changed shape under existing marks.

You draw, and nothing changes. Almost always a missing note. A mark with no note produces no sentence, and the prompt output stays empty.

Line too thin for the model to notice. On a large photo or a small detail, go L or XL. Pick a colour that's visible against the region too - a white circle on a white wall is a circle your model can't see.

Browser JS extensions don't reach these boxes. The pack builds its own text inputs rather than using ComfyUI's core STRING widget, so things like Autocomplete-Plus hook every other text box in ComfyUI and not this one. That's by design, not an oversight.

A blank or broken-looking node right after an update is browser cache. Ctrl+Shift+R (Cmd+Shift+R on Mac) before you file anything.

Category👑 Pixaroma/🎨 Editors

Inputs (1)

NameTypeDefaultDescription
imageIMAGEThe picture to mark. Wire a Load Image (or any node that makes a picture). From a Load Image it shows on the node right away, also through a Switch; after a run the node shows exactly the picture that came in. If a node in between crops or turns the picture, run once before marking.

Outputs (3)

NameTypeDescription
imageIMAGEThe picture with your marks drawn in, at its full size. Wire it in as the image the edit model looks at. Every pixel you did not mark is exactly the input.
promptSTRINGYour notes as one instruction, one sentence per mark with a note, plus a closing sentence asking the model to remove the marks (switch that off on the node). Wire it into the text encode. Empty when no mark has a note.
maskMASKWhite inside every box, circle and closed loop, and along an open sketch; black everywhere else. For inpaint workflows, when a model does not read drawn marks. Arrows and words point at things, so they are not part of it.