Workflows
Workflows Mode is a node graph for chaining operations: concept image into upscale into 3D model into turntable, wired once, run forever. No code. If you've used Houdini networks, Nuke trees, or Blender's geometry nodes, the grammar is familiar: nodes have inputs and outputs, wires carry data downstream.
The workspace
The toolbar holds a subgraph up-arrow (steps out of a nested graph), the editable workflow name with an unsaved-changes dot, New workflow, Open workflow, Save, Save As..., Export..., a run-history select, Profiler, Run (or Cancel while running), and Run to node when a node is selected.
The palette on the left has quick buttons for Input, Output, Preview, and Asset nodes, a "Nodes" tree of every operation (plus a "Utility" tab), and a "Saved workflows" list. Drag anything from the tree onto the canvas.
Building a graph
- Drag an operation from the palette onto the canvas, or press Shift+A anywhere for the add-node popover.
- Wire outputs to inputs by dragging between ports. Kitly only lets compatible types connect.
- Feed the graph: drop an asset from the Files panel onto the canvas to get an Asset node, or add a Workflow Input node for values you'll choose at run time.
- Drop a Preview node onto any output you want to watch during runs.
Select a node and the inspector on the right shows its title, its parameter form, per-port controls with Renumber, plus Run to this node and Delete node.
Canvas shortcuts
Ctrl+C / Ctrl+V copy and paste (works across workflows via the clipboard), Ctrl+D duplicate, Ctrl+G group and Ctrl+Shift+G ungroup, Del removes, Ctrl+Z / Ctrl+Y undo and redo, Ctrl+S saves, Shift drag box-selects. Right-click the canvas for the add-node popover (with "Paste here"); right-click a node for Duplicate, Copy, Group, Ungroup, and "Create Sub Workflow" from the selection. A minimap keeps you oriented in big graphs.
Utility nodes
The Utility tab covers the glue between operations: Combine Strings, Constant, Get Image By Index, Create Image Array, Constant String, Float, and Int Arrays, Create Asset Array, Get JSON Object, Branch, Branch Expression, Branch Values, Resolve Branch, Switch, Expression To Bool, HTTP Request, Debug, Workflow Input and Output, For Each, For Loop, Preview, and Asset.
You'll mostly reach for a handful: Combine Strings to assemble prompts from parts, For Each to run a chain over a list of assets, Switch and the Branch nodes to pick a path, Preview to see intermediate results, and Debug when a wire isn't carrying what you expected.
Graph inputs
Workflow Input nodes are what make a graph reusable. In the inspector, set the "Input type" (Asset or Value), the accepted kinds, whether it takes multiples, and for values the field type (Text, Text (multiline), Number, Toggle, Dropdown, JSON) plus a "Default value". Each input becomes a control in the run dialog, so the same graph makes a goblin today and a golem tomorrow.
Running
Click Run. The workflow saves first. If the graph has promoted inputs, the "Run workflow" dialog appears with a control per input, a "Parallel nodes" setting (1 to 8, default 2), and "Force re-run (ignore cached results)". While it runs, status rings light up on each node and Preview nodes fill in live. Run to node executes only what a selected node needs, which is how you test a branch without paying for the whole graph.
Results cache between runs: unchanged nodes reuse their previous output instead of regenerating, so iterating on the tail of a graph doesn't rerun the head. Tick the force option when you want everything fresh.
The Profiler drawer shows per-node timing after a run. The run-history select lets you revisit earlier runs.
Subgraphs
Graphs nest. Click a workflow in the "Saved workflows" list to drop it in as a subgraph node (double-click opens it instead; a workflow can't contain itself). Or select nodes, right-click, and choose "Create Sub Workflow" to collapse them into one. The toolbar's up-arrow climbs back out.
Saving and exporting
Save As... offers "This project" (into the project's workflows/ folder) or "All projects" (available machine-wide).
Export... gives three targets:
- Workflow file... writes a
.kitlyflow.jsonyou can send to anyone. Dropping one onto a canvas asks "Add as subgraph node" or "Open". - Plugin folder... packages the graph as an installable plugin that registers as a regular operation, so it appears in the Pipelines browser like any built-in. See Plugins.
- Copy operation code (TS) copies TypeScript source, for developers extending Kitly.
Workflows are the one thing you save
Everything else in Kitly persists automatically, but a workflow graph has an unsaved-changes dot and wants an explicit Ctrl+S. Running saves first, so a run never executes stale wiring.