Nodes/kontext-super-prompt/✨ Super Prompt
ComfyUI Node

✨ Super Prompt

Turn canvas annotations into Flux Kontext-ready edit instructions

By aiaiaikkk·Created about a year ago·Updated 12 months ago· 175
✨ Super Prompt
  • layer_info
  • image
  • edited_image
  • generated_prompt

KontextSuperPrompt (✨ Super Prompt) is the centerpiece of this pack - the node everything else feeds into. It takes your canvas annotations from Super Canvas and turns them into a precise, structured English editing instruction ready for an instruction-following editor like Flux Kontext. If you've ever described a regional edit in a prompt and watched the model guess where the region was, this is the fix: the region is defined by geometry, not adjectives.

The whole point of the pack is this chain: annotate the image on the canvas, generate an instruction from those annotations, and hand that instruction to an editing model. KontextSuperPrompt is where the middle step lives. For anyone doing iterative character-consistent edits - swap the shirt, change the background, keep the person - this is the node that turns "I marked these pixels" into "Transform the selected region to a red t-shirt with natural fabric shading," which is exactly the kind of instruction Flux Kontext consumes best.

How it works

The node pairs the LAYER_INFO JSON (your annotations) with the image, then composes an editing prompt from a large built-in template library - the README counts 40+ operation templates across six modes: local editing, global editing, text editing, advanced operations, remote API, and local Ollama. There's a three-layer constraint system behind the scenes: operation-specific constraints (seamless integration for adds, content-aware reconstruction for removes), cognitive-load-adjusted phrasing, and tiered semantic modifiers (technical → professional → creative). The output is forced to English regardless of the input language, which matters because the downstream editing models were trained on English instructions.

Most of the inputs are hidden and driven by the node's custom UI panel - you pick the editing mode, the operation type, and optionally flip to API or Ollama tabs inside the node itself. That's why the visible info_schema looks so bare: the real control surface is the panel, not the wires.

Inputs and outputs that matter

  • layer_info (LAYER_INFO) - required. Wire it from Super Canvas. It defines what's selected and how.
  • image (IMAGE) - required. The source image you annotated.

Outputs: edited_image (IMAGE) and generated_prompt (STRING). The generated prompt is the payload - feed it to Flux Kontext (or any instruction-following editor) as the text input. The edited image output is the pre-edit reference; don't mistake it for the result.

Installing it

Same pack install, one line: ComfyUI Manager → search "Kontext Super Prompt" → install → restart, or

cd ComfyUI/custom_nodes
git clone https://github.com/aiaiaikkk/super-prompt-canvas

No model downloads for this node itself; the dependencies (requests, numpy) are auto-installed by Manager. The editing model you drive - Flux Kontext Dev - is a separate, large download you fetch through ComfyUI's model manager as you would any checkpoint.

Where people get burned

The node only makes sense in a full pipeline - without a canvas node upstream it has nothing to work with, and without an editing model downstream the generated prompt goes nowhere. It's UI-heavy, and because most controls live in the custom panel rather than the schema, the node looks empty in workflow JSON and can confuse people trying to read it. The defaults are also in Chinese until you retype them, which is the pack's recurring theme. And a heads-up if you go the Flux Kontext route: Kontext Dev is strong at character-consistent, instruction-based edits but its license is non-commercial and it censors hard - the pack just generates the instructions; the model's limits are yours to live with.

Category🎨 Super Canvas

Inputs (2)

NameTypeDefaultDescription
layer_infoLAYER_INFO
imageIMAGE

Outputs (2)

NameTypeDescription
edited_imageIMAGE
generated_promptSTRING