Building workflows

Create reusable workflows on the platform — four doors, Compose Copilot, Nodes canvas, and deferred Save.

Last updated August 12, 2026

Platform path (2026-08-08): The legacy Hub /workflows builder and /workflows/new page were removed with F6. Create workflows from the platform shell (Discover → New workflow, empty chat Build my own, or ?create=1). Catalog browse is Discover; the AI path is Compose Copilot (workflow copilot).

New workflow opens four starting points:

  • Start from a template — browse Discover and remix a working workflow. Recommended for your first build.
  • Describe it — chat with Compose Copilot; it drafts a graph you Apply or Discard. Nothing is saved until you click Save as workflow.
  • Blank canvas — open Nodes and build the graph yourself (same deferred Save).
  • Import from ComfyUI — paste or drop ComfyUI JSON (see below).

Authoring is free. You only spend credits when you run. Publishing still requires a verified run.

Importing from ComfyUI

Open Import from ComfyUI from the Create sheet, Nodes empty canvas, /import, or ?import=1. Paste or drop a ComfyUI .json export. The importer converts known nodes against the live object_info catalog and creates a private platform workflow from the API-format graph.

Unsupported class types appear in an import report (residue). After import, the session composer is prefilled with that residue for Compose Copilot follow-up — nothing is sent until you press Send.

Export (Spec panel → Export to ComfyUI) downloads API-format JSON for the media-graph subset plus the same style of honesty report. It is creative-intent round-trip only — placeholder model filenames, not pixel parity.

Blocks and typed ports

A workflow is a graph of blocks — each one a production step with typed inputs, outputs, and parameters. The palette groups them by stage:

CategoryExamples
Acquisitionscrape a URL, research a site or topic, ingest an upload, analyze a reference
Planningstrategize, write script, storyboard, plan dialogue / music
Subjectdevelop subject references for consistent characters and products
Imagegenerate / edit images, enrich prompts, text-to-image
Videogenerate / extend / edit clips, image-to-video, upscale
Audiovoiceover, music, voice design, speech alignment, mixing
Qualityreview image / video, consistency check, quality evaluation
Assemblycompose scenes, captions, render the final MP4
UtilityLLM transform, text templates, list filtering, select-best

Ports are typed (script, storyboard, image, video clip, composition, audio track…), and the canvas only lets you connect compatible types — an invalid graph is unbuildable, not just flagged. Most workflows end in Render Video, which produces the final MP4.

Each node’s inspector (click the node) holds its parameters — quality tiers, scene counts, review thresholds, style hints. Sensible defaults everywhere; you only touch what you want to control.

Any parameter can be promoted to a workflow input. Promotion does two things at once:

  • it becomes a form field on your workflow’s run panel and app page, and
  • it becomes an API parameter when the workflow is called programmatically.

Promote the things a runner should choose (the concept, the product URL, the duration); keep everything else fixed so results stay consistent. A workflow whose only input is a single prompt-like string gets the best composer integration — sending a pinned message launches it directly.

Combinators: fan-out, retries, best-of, approvals

Four container nodes wrap other blocks with control flow:

  • Map — run the wrapped blocks once per item of a list input (e.g., per storyboard scene). This is how one script becomes eight generated clips.
  • Best of N — run the wrapped blocks N times and keep the winner according to a selector (typically a review score). Costs N× the wrapped blocks; buys consistency.
  • Retry until — re-run until a condition passes (e.g., image review ≥ threshold) up to a bounded attempt count. Attempts are priced into your quote.
  • Approval gate — pause the run and wait for a human decision before continuing. The run holds its place; you approve from the run panel.

Bindings: your models and voices

Two places hold model-asset pins — they work together:

  1. Default bindings (workflow-level) — with no node selected, the Spec panel lists Default bindings (model assets): every LoRA / pair / voice pinned at the workflow level. Detach from here, or apply a saved cast / style pack (Apply pack). Discover / Studio Use character (or bind from the library) lands pins here (see Discover).
  2. Per-node Bindings — generation blocks also expose binding slots. Attach from the node’s inspector (“Attach from your library…”); the picker filters by base-model compatibility, and LoRA weights are adjustable per attachment. Node pins override defaults for that capability when both are set.

Published workflows pin exact asset versions, so runs stay reproducible even as you keep training.

The run rail

The right-hand rail is mission control for the graph you’re editing:

  • Preflight — dual-meter quote (GPU + partner) before you run.
  • Run overlay — live per-node status on Nodes while a run executes.
  • Artifacts — stills, clips, and assemble outputs land in Files; inspect per node on the graph.
  • Pin / download — keep what you need in the library (quota applies).

Failed nodes surface their actual error. Successful upstream leaves are kept — Resume does not blindly re-mint everything.

Saving, versions, and the JSON tab

Save as workflow creates a private workflow (or a new version). Nothing is public until you publish with a verified run. The JSON / Spec panel is the same graph with identical validation.