🖼️ Super Canvas
The Super Canvas that feeds the rest of this pack
- image
- image
- layer_info
LRPGCanvas (🖼️ Super Canvas) is the front door to this whole pack: an actual drawing canvas inside your ComfyUI graph. You load an image, paint over the region you want changed, and it hands downstream nodes a structured description of what you drew. For anything where "edit this exact spot" matters more than "edit in a vague direction", this is the node that makes it reproducible instead of re-prompted from scratch.
The pitch: most editing in ComfyUI is done blind - you describe a region in the prompt and hope the sampler agrees about where it is. This node lets you mark the region with a brush, a shape, text, or a crop, and turns that mark into LAYER_INFO, a JSON description of every layer you drew. That's the input the other nodes in this pack chew on. No canvas node, no Kontext pipeline.
How it works
The canvas is browser-side JavaScript - the pack ships a web/ folder with a fabric.js editor (KontextCanvasNode.js) that ComfyUI loads as a custom UI. You draw layers over the image; each has properties like color, shape, and opacity, with a 1–20 pixel feather radius on the brush for soft edges. When you change something, the node sends the new canvas state to the backend, caches it, and only re-executes when the state actually changes - so hitting Run doesn't waste a pass if you haven't touched anything. That's a detail most interactive nodes get wrong; this one gets it right.
The output is a pair: the image (your original, with annotations) and layer_info, the structured JSON of what you drew. Wire layer_info into KontextSuperPrompt (✨ Super Prompt) or the Ollama/Custom Model generators and they'll build editing instructions from your annotations rather than from a sentence you typed.
Inputs and outputs that matter
The only input is an optional image (IMAGE). Drop in the picture you want to edit; if you leave it empty the node still works but you'll be drawing on a blank canvas.
image(optional) - the target image. Wire it from Load Image or any image output.imageoutput - the annotated image, mostly for preview.layer_infooutput - the important one.LAYER_INFOJSON describing every layer. Feed this into the prompt generators downstream.
Installing it
This node ships in the super-prompt-canvas pack, so install once for all eight nodes:
- ComfyUI Manager → search "Kontext Super Prompt" → Install, then restart ComfyUI. Manager pulls the
requirements.txtdeps (requests, numpy) automatically. - Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/aiaiaikkk/super-prompt-canvas
Then restart ComfyUI.
Where people get burned
The node is interactive by design: nothing happens until you actually draw on the canvas in the browser, so in a headless or API-only setup it's useless. If you load a saved workflow and the layers don't show up, you're probably missing the web/ directory (that's the "JS missing" failure you'll see in the ComfyUI console). One honest gripe: the UI defaults lean Chinese (the pack's author is Chinese-language, README is bilingual), so some tooltips and labels read in Chinese until you find the built-in translation helper. And remember layer_info is only as good as your annotation - a sloppy brush stroke becomes a sloppy edit instruction downstream.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| imageopt | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| layer_info | LAYER_INFO | — |