Library & composites
Reuse is first-class in Brut. A pipeline you've perfected shouldn't be rebuilt by hand on the next job — collapse it, save it, drop it in anywhere.
Groups
Select two or more nodes and press Ctrl+G (or Group in the floating selection bar, or the rail's Organize section) to wrap them in a labeled frame. A group is purely visual — it moves as a unit and keeps things tidy. ✕ on the frame ungroups.
Select a group to style its identity: six frame colors (dashed line + background wash) and a label size up to genuinely gigantic — big enough to read the group's name zoomed all the way out.
Groups also adopt: drop a node inside a group's area (or add one there from the Tab menu) and it joins the group automatically — drag it out and it leaves. No re-grouping ceremony.
A composite is a subgraph collapsed into a single node (select nodes → 📦 Collapse to composite). Cut wires become labeled ports, and a result that is wired to nothing, or only to a Preview, Compare or History inside, becomes an output port too, so the closed card shows it and you can wire it on; the nodes inside keep their past results, pins and history.
- Open / Close — ⤢ opens a composite into a live frame you can edit inside, then ⇱ packs it back up, exactly where it was, with the same ports (new outside wires you made while it was open become new ports). Only nodes that are members of the frame close into it — a node you add or drag inside joins automatically; a node that merely overlaps the frame's area stays out.
- Run — ▶ on a composite runs its whole inside plus everything upstream.
- Preview — a closed composite shows the images its output ports currently carry, one thumbnail per result captioned with the port name, read live from the nodes inside: it is there before any run, survives Open / Close, and updates as inner nodes finish. 🔍 pages through them like any node result; right-click reveals the file.
- Explode — 💥 permanently dissolves it back into loose nodes.
- Knobs — a closed card can show a few of its inner fields on its own face: a prompt variant as a select, a brief as a text box, a shot count, or the model of a generation stage (it lists the models your keys can reach). ⚙ Add knob on the card exposes one field: pick the field, name the knob, choose the control; for a menu, write one choice per line as name | text. Or, with Drive every node of the same kind ticked, the same field on every inner node of that kind at once (one Model knob over four picture stages, one text knob over three prompts); × on a knob removes it. A knob writes straight into the node inside, so it costs exactly what typing on that node would: an edit is one undo step, a changed prompt or model re-renders that stage only, everything else keeps its result. A select whose inner text was edited by hand shows (custom) rather than pretending. A knob can drive several stages at once (the Character Lab's Model and Size knobs set all three picture stages); when the stages inside were changed by hand and differ, the knob says so and the next pick realigns them. Knobs survive Open / Close and travel with the composite into the library; Marcel sets them by name. The ports survive a close the same way: opening a card and closing it again brings back exactly the inlets and outlets it had, plus a port for any wire you connected from outside while it was open; nothing else is added. A card's inlets feed the nodes inside it on the face as well as on a run: the Stills → Film card generates its keyframes and its proof sheet while closed, from the stills wired into its inlet.
- Knob controls. A select (a menu of whole values, a prompt variant per entry), a text box, a number, a model menu (the models your keys can reach) and a tick list (several toggle chips plus a free line that takes anything you type, commas between items, like the Character Lab's Accessories). On the shipped cards, a text knob left empty leaves that choice to the model. A clip stage's Duration, Resolution, Ratio and Audio knobs follow the video model picked on the card, and grey out in place when that model has no such setting (an Omni clip has no audio switch, Seedance 2.5 follows its start frame); an image stage's Size and Quality knobs do the same (Quality lights up on the OpenAI models, which take one). A Prompt style knob greys the refiners written for another video model than the one picked; a pick that no longer fits stays, with a warning line, never swapped behind your back.
- Dropped from the library — a card dropped from the library remembers where it came from. Its meta line shows the version it was dropped at, and a small chip says when the library holds a newer one; nothing is rewritten under you, drop the workflow again to get the new recipe. If a stage inside is set to a model this computer cannot reach, the card itself shows the ⚠ button that opens Settings on that provider (the node that needs it is hidden inside). And once the card has a result, a workflow that ships with a suggested follow-up offers it as a chip under the picture: one click drops the next workflow beside the card, wired to its result.
The global library
The library opens as a gallery: the book icon on the left rail, or File ▾ → Browse library…. Every workflow is a card with its picture.
- From Brut holds the workflows that ship with the app, by category then name; Yours holds the composites and templates you saved, newest first. Every shipped workflow, with its knobs, its pinned models and what it takes in, is listed on the Workflows page. Each shelf shows two rows at a time and turns pages with the arrows at its lower right, like the home screen's recent graphs. Presets sit below, grouped by what they are.
- The picture is the result the item made when it was saved. When the item also kept its input, hover the cover: it shows the before first, then the after. An item with no picture yet draws the glyphs of the nodes it contains.
- The chips say what it is (composite or template), what a run costs on your keys at list prices ($? when a stage has no model picked or no measured price, never a guess), how many knobs its card exposes, and which key it still needs on this computer.
- Add to canvas drops a composite where you were looking as one card, or a template as a group of live nodes named after it. Try with sample, on workflows that ship with one, copies the sample image into your project, drops the workflow already wired to it and shows the shipped result on the card until you run it. Nothing runs until you press Run. The From Brut shelf ends on a More to come tile: the bank grows with the releases.
- The chips at the top filter by category (the label you give an item when you save it: Characters, Cinema, Architecture…) and by kind; the search box matches names, descriptions and categories.
Esccloses.
The same cards sit on the home screen's Workflows row.
Composites, whole-graph templates and presets can be saved to a global library — deliberately cross-project, so the same shelf appears on every project.
- Save a composite — 💾 Save to library on the composite node. Same name = a new version (everything is versioned; any past version is retrievable). The save dialog asks for a category from a pick list (Architecture, Characters, Cinema, Text, plus any you already used; the library's filter chips are made of them), or a new one typed beside it, and takes the result the card shows at that moment as the item's cover; with no result yet, the item gets a glyph until a later save brings one. If an image is wired into the card when you save, it is kept as the before picture, and the gallery shows the pair.
- Save a graph as a template — File ▾ → Save graph as template…. Same here: a category, and the canvas's last result as the cover. The graph's first Image In file becomes the before picture.
- Save a preset — 💾 on the node that owns the settings: the Prompt node and Multi-Shot notes save prompt presets (reusable brief texts), the Upscale Image node saves upscaling presets (model + dials).
- Browse — the gallery above, or find saved composites right in the
Tabadd-node menu under Library. Each drop is an independent copy: changing one never changes another. Presets are listed under Yours, grouped by what they are: Prompts (texts you load on a Prompt node or in the Multi-Shot notes) and Upscale settings (model and dials you load on the Upscale Image node), with chips to show one kind at a time. They are applied from their node, and deleted in the gallery.
Some items ship with Brut: the whole bank on the Workflows page, such as the Stills → Film card (the cinema pipeline as one composite: the Director's dials, the film aspect and the three models as knobs; open it to judge the proof sheet and the keyframes) and the Character Lab composite: design a character from its rollouts (sex, age, ethnicity, style, clothes, a tick list of accessories), or wire a character image and clothing references in, and it produces the design, an expression grid and a 4-view turnaround sheet; open (⤢) it to edit the stage prompts. The three picture stages come preset to GPT Image 2, the safe pick for people since Gemini can silently refuse images resembling real persons; the Model knob changes all three at once, Size follows the model picked, and a Seedream 5.0 model is the pick when the character is headed for Seedance: wire only the design there, since Seedance accepts a face in a picture made from text and refuses the two sheets, which are edits (the measured rule). The design renders square, and the sheets follow it. Built-ins can't be deleted; saving your own item under the same name shadows the shipped one.
Templates vs composites
- A composite is a node — a reusable building block you drop into an existing graph.
- A template is a whole graph — a starting point for a job, dropped onto your canvas as a group of live nodes.