BRUT DOCS getbrut.app ↗

Sketchpad

Compose before you generate. The Sketchpad is a simple painter on a fixed canvas: brush strokes, wired images placed as movable layers, generation layers that render your marks in place, one stack. It flattens locally, for free, into the raster the generators consume. In the node browser it wears a free · $ chip: drawing, placing and flattening cost nothing, the generation layers are the paid part, and only when you ask for one.

Typical use: block massing or a silhouette over a site photo, place an object where it should go, scribble the shape of a change, then wire the result into Image→Image, Compose or Inpaint and let the model render what you drew.

One quick stroke on the lawn of the site photo, the spark, 'a group of people playing and listening to music': a generation layer renders them in place; the layer's mask painted white shows the whole group
## Ports

The canvas

The first wired image sets the canvas size. With nothing wired, pick a preset on the node (1K or 2K in 1:1, 16:9, 9:16, 4:3, 3:4). Once a sketch exists the size is locked; ✕ start over on the node clears the sketch and unlocks the choice. The canvas select (top of the right column) is what the flattened image shows wherever nothing covers it: white or black paper, or transparent for a PNG with alpha. With a wired photo as the bottom layer you never see it; erase a hole in that photo, or start from a blank canvas, and you do.

The editor (✎ Draw)

The tools sit in a rail on the left of the canvas, Photoshop-style; the bar above the canvas shows only the active tool's properties. Hover a tool for its shortcuts. The right column starts with the canvas select and the canvas size.

Generation layers

The one paid thing in the Sketchpad, and the reason the sketch exists: a generation layer turns your marks into a photoreal render, in place, without leaving the editor.

Sketch the intent on a paint layer: where the thing goes, how big, roughly what shape, which colors. A forest, a sword, a piece of cloth can never be drawn in detail, and they do not have to be. Then press the ✦ button in the layer tray (next to +): with a paint layer selected it makes a generation layer that follows that layer; with anything else selected it makes a general one that follows every painted layer below it. (Also: Ctrl+Enter, or right-click a paint layer → ✦ Generate from this layer…) The new layer lands right above, its row shows ↳ and what it follows, and the properties bar becomes the layer's own, one row:

The model renders what your marks stand for where they are: their size, roughly their shape and colors, at the strictness you chose, in the scene's light, perspective, scale and grain, with the shadows and reflections it would really cast. The marks themselves disappear from the render.

The render comes back whole-frame: the model may change what your object implies anywhere in the picture (a forest at low sun casts long shadows across the whole image). What you see of it is decided by the layer's mask, which starts around your marks with a soft edge. So by default the untouched scene stays pixel-faithful, and you paint the mask white to reveal more of the take: the long shadow, the reflection on the floor, the disturbed sand. Reveal all if the model reworked the scene well as a whole. The mask never re-renders anything: the layer holds the whole render, painting is free. The row menu offers Re-seed the mask from the sketch when you have redrawn the guide.

Generate into a selection. Nothing needs to be drawn: make a selection (marquee, ellipse or lasso, or Ctrl+A) and press ✦ (or Ctrl+Enter). The new layer says ↳ into the selection: the selection becomes its mask (with a soft edge of a few pixels), the model works from the flattened scene below it, and the prompt says what goes there ("a red sports car", "a wet cobblestone patch"). The selection itself is consumed; the layer keeps its outline, which the region-outline button on the bar shows dashed on the canvas (off by default), and re-rolls, staleness and takes work as for any generation layer. Scope defaults to local, so the model works on what you selected; switch to whole frame when the prompt names the place itself. There is no follow dial: with no marks, placement is the selection.

An ellipse selection on the lawn, the spark, 'add a pond with lush vegetation': the render lands inside the selection only
**🕘 takes** on the bar lists every render this layer ever made, from the project ledger. **Use this take** brings any of them back as the layer's raster, fitted into the region it was rendered for, your mask kept, free; it shows as stale if the sketch or the prompt changed since. A re-roll is never destructive. The node face counts stale generation layers.

The row says where the layer stands: not rendered, stale (the sketch below it, the prompt or the model changed since the take), done, rendering…, or failed with the provider's reason. A stale layer keeps showing its last take until you generate again; a take that still matches is free (Generate does nothing new). ↻ next to Generate asks for a fresh take of the same sketch and prompt, paying again. Every render is a normal generation on the ledger, with the layer named on the row.

A rendered layer behaves like an image layer: eye, opacity, a mask you can paint, Transform. Its take is stored on the node the moment it lands, so closing the editor with Cancel never loses a paid render; ✓ Use this sketch flattens the stack with the generation layers in place. While a layer renders, its row carries the same travelling light as a running node on the canvas.

A new Sketchpad opens with the first wired image already placed as the bottom layer and an empty paint layer selected, so you can draw right away.

From a flat picture: Decompose into layers

A Sketchpad can also start from a finished image. Right-click any picture → Decompose into layers… sends it to Seedream 5.0 (Flash or Pro, on your own BytePlus key), which splits it into a base (the scene with the elements lifted out and the gaps filled in) and up to 16 layers with transparency. Brut lands them as a new Sketchpad beside the picture:

They are ordinary image layers: move, scale and rotate them with Transform, hide them, give them masks, paint between them, add a generation layer over the stack, and Export PSD carries all of it to Photoshop. The node shows the recomposed picture straight away, and its image plug is live. The model lifts each element out whole (a tree that stood behind a hedge can come back with its full trunk): a layer mask hides what should stay behind. Find in ledger on the node's preview shows the paid run.

It is one paid call, and the price is asked first: a form for the model, the size and (optionally) what to separate, then the price dialog with the ceiling. The models, the rates and the size rule are on the Seedream page. Without the BytePlus key the menu item stays greyed with the reason.

Right-click a render, Decompose into layers: the price, then a Sketchpad with the pergola, the bench, the building and each tree as its own layer
## Export PSD, for the old schoolers

Export PSD in the editor's footer, or right-click the node's preview → Export PSD…, writes a Photoshop file into the project's outputs/exports folder (no dialog; Explorer shows it). Every layer goes in, hidden ones included: paint, placed images and generation takes as raster layers at their placement (moves, scales and rotations baked), layer masks as Photoshop layer masks (feather and invert baked, since PSD has no such switches), groups as folders with their own masks, names, opacity, visibility and color labels. The merged image is the flatten you see on the node. Photoshop, Affinity, Krita and GIMP open it. The export is local and free.

Notes