docs/src/content/docs/features/Canvas/run-workflow.mdx
import { Steps } from '@astrojs/starlight/components';
You can run any workflow against a raster layer directly from the canvas. The selected layer is passed in as the workflow's image input, and the results land in the canvas staging area where you can review and accept them — without leaving the canvas tab.
For a workflow to be available from the canvas, it must satisfy three conditions:
Canvas Output node. This is the node that marks which images should be routed back to the canvas staging area.Workflows that do not meet all three are filtered out of the canvas workflow selector.
Canvas Output nodeCanvas Output is a dedicated workflow node that explicitly marks the images you want shown in the canvas staging area. Add it at the end of any branch whose output should appear on the canvas.
A workflow can include multiple Canvas Output nodes. Each one becomes its own entry in the staging area, with an individually selectable thumbnail. You can navigate between entries with the arrow keys and accept just one of them onto the canvas.
:::note[Why an explicit node?]
Earlier versions detected output images heuristically (by scanning for board fields). That was fragile and caused unrelated nodes — for example, save_image — to be mistaken for canvas outputs. Canvas Output makes the routing intentional.
:::
The current layer is automatically passed into the workflow's image input — you do not need to select an image manually.
Results appear in the canvas staging area strip at the bottom of the canvas:
Canvas Output, you get one thumbnail per run.Canvas Output nodes, each run produces multiple thumbnails, one per output node.Check, in order:
Canvas Output node.If any of these is missing, the workflow is hidden.
This was a known issue with workflows that combined save_image and canvas_output nodes. It is fixed — update Invoke and try again.
Workflow errors are surfaced as toasts and the staging area is cleaned up so it returns to a usable state. Open the queue panel for the full error message.