Nodes/ComfyUI-InpaintCanvas/Inpaint Canvas Text Out
ComfyUI Node

Inpaint Canvas Text Out

The node that mails a string back into your canvas editor

By DenRakEiw·Created 3 days ago·Updated about 20 hours ago· 10
Inpaint Canvas Text Out
      text
      canvas_node
      purposeupsample

      Every node in this pack ends with data going out to the graph. Inpaint Canvas Text Out is the odd one that sends text back in - into the Inpaint Canvas editor, not out to another node. It has zero outputs. You feed it a STRING, and that string appears in the editor, usually dropped into the prompt field.

      Its real job is the tail end of prompt upsampling. Type a short, sloppy request into the editor ("roten Badeanzug machen"), hit Ctrl+U, and a helper chain runs ahead of your generation: the canvas image and the selection go to a vision-language model - Qwen3-VL locally, or Gemini through ComfyUI's API node - which writes a proper English prompt for the chosen use case (fill, add, remove, edit, outpaint, or auto). That rewritten prompt is a plain string on a wire, which means it needs a way to cross back into the editor that asked for it. Text Out is that way: same delivery trick as its sibling Mask Out, but for text.

      The inputs

      • text - the STRING to hand back. It's marked as a forced input, so it has to be wired, not typed - you'll feed it from a text-generation node.
      • canvas_node - the id of the Inpaint Canvas node that asked for the text. The editor's generated helper graphs fill this in; it's the address that routes the string to the right canvas when more than one is in the workflow.
      • purpose - what the editor does with it, upsample by default (fill the prompt field). The mechanism is generic, so other purposes ride on the same node.

      There's a small but telling detail in the source: before the string is sent, the node strips wrapping quotes and a leading "Prompt:" prefix. Small vision-language models love to answer "here's your prompt: …", and this cleanup is what keeps the editor's field clean without you editing by hand.

      Installing it

      It ships with the pack, free with Inpaint Canvas:

      cd ComfyUI/custom_nodes
      git clone https://github.com/DenRakEiw/ComfyUI-InpaintCanvas
      

      Restart ComfyUI. The node itself has no dependencies. The actual upsampling only works once you install one of the language-model backends the editor recognises - a Qwen3-VL pack like ComfyUI-QwenVL (the 2B model downloads on first use; the 4B is an extra ~8 GB and handles translation better), or ComfyUI's Gemini API node.

      Common issues

      • The prompt never arrives. Same story as the other Out helpers: if canvas_node is empty or mismatched, there's no editor to deliver to. Leave it as the helper graph set it.
      • Empty text comes back. Small models occasionally return nothing or just the quote cleanup leaves an empty string. Re-run the upsample; if it's chronic, the Qwen3-VL 2B model is more reliable on short English requests - German ones occasionally lose a word, so read what came back.
      • The graph doesn't run your chain. By design. Helper prompts queue at the front with only the model nodes they need, so your sampler never fires just to write a prompt. That's a feature, not a bug - if the editor feels like it's "doing nothing", that's the helper running, and the result is waiting in the prompt field.

      You'll probably never add a Text Out node by hand. But if you ever build your own helper chain - a custom LLM step that feeds the editor - this is the return valve, and it's embarrassingly easy to use.

      Categoryimage/inpaint

      Inputs (3)

      NameTypeDefaultDescription
      textSTRING
      canvas_nodeSTRINGId of the Inpaint Canvas node that asked for the text.
      purposeSTRINGupsample

      Outputs (0)

      No outputs