Workflows
Workflows is the view of Asset Mode that holds 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. Kitlig 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.
Every setting on an operation node is a pin you can wire into. The first few settings show in full; the rest are listed under them by name, each with its pin, so you can wire one without opening more. Operations that can keep their results out of the project (the Webscrape ones) have an In Memory box beside Temp: ticked, their results pass to the next node and are cleared when the project closes.
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 Assets, 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.
Scripts, command line tools and web requests are ordinary operations rather than utility nodes: see Automation.
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.
Get Assets
Get Assets pulls files from the project by what they are instead of wiring each one in. Every field is optional, and a blank field filters nothing.
- Name, Model and Folder take
*for any run of characters and?for any one character. Case doesn't matter. A Name with a slash in it is checked against the whole path. - Tags lists tags separated by commas, and a file has to have all of them.
- Asset type, Description contains, Origin, Minimum rating and Favorites only narrow it further.
- Order picks newest or oldest first, and Return count says how many you get. Set it to 0 for every match. It starts at 1, so a fresh node can't send your whole project to a paid operation.
The node looks again on every run, so new files get picked up. Intermediate files don't count.
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.
A node whose operation asks a question mid-run pauses with the question card on the node itself. Answer it there, or on the job's row in the Jobs panel, and the run continues; nodes downstream wait for it. See Jobs.
The Profiler drawer shows per-node timing after a run. The run-history select lets you revisit earlier runs.
Schedules
The calendar icon in the toolbar opens Schedules, where a workflow, an operation or an agent runs on a timetable while the project is open.
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
.kitligflow.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 Kitlig.
Workflows are the one thing you save
Everything else in Kitlig 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.