# Canvas

> Lay out cards on a board, generate pictures and clips in place, and keep track of every run.

A canvas is a free board for trying things out. Place image, video and note cards, wire one card into another, and generate without leaving the board. Open **Canvases** from the sidebar, or from a project or World, and pick a board to open it full screen.

## Canvases

Narrows the list to one status, with how many canvases carry each. Pick All to see every canvas again.

1. Open **Canvases** from the sidebar.
2. Type in &#x2A;*Search canvases…** to narrow the list by name.
3. In the rail, choose **All** or a status to show only canvases with that status.

* Each status row counts the canvases that carry it.

**For agents**

- `studio_read (type: canvas_boards_list)`

## Board

This board's name, where it lives and how many cards it holds. A board the system keeps in step with a sequence can't be renamed.

1. Open a board and click an empty spot so no card is selected.
2. Press **Board settings** in the page bar if the panel is closed. It opens on **Details**.
3. Click **Name** to rename the board.
4. Switch to **Model defaults** to choose the model and settings new cards on this board start with.

| Row   | What it shows                                                                       |
| ----- | ----------------------------------------------------------------------------------- |
| Name  | The board's name. You can edit it unless the board is kept in step with a sequence. |
| Scope | The team, World or project the board belongs to.                                    |
| Nodes | How many cards are on it.                                                           |

**For agents**

- `canvas_board (type: canvas_rename)` — fields: `canvasId`, `name`

## Image nodes

The image model and settings every new image card on this board starts with, including each model's starting rate. A row left unset follows your own defaults in Settings.

1. Open a board and click an empty spot so no card is selected.
2. Switch the panel to **Model defaults**.
3. Under **Image nodes**, pick a model and set the rows you want every new image card to start with.

* **Rows**: the model and the settings that model offers, such as aspect and resolution.
* **Unset rows**: follow your own model defaults in Settings. Aspect follows the project, or the docked sequence.
* **Per card**: every new card can still change any of these for itself. An image card offers only image models and shows the exact estimate in a starred badge beside **Generate**.

**For agents**

- `canvas_board (type: canvas_settings_update)` — fields: `canvasId`, `rev`, `fields.kind`, `fields.fields`

## Video nodes

The video model and settings every new video card on this board starts with, including each model's starting rate. A row left unset follows your own defaults in Settings.

1. On the board's **Model defaults** tab, find **Video nodes** under Image nodes.
2. Pick a model and set the rows you want every new video card to start with, such as its duration.

* **Rows**: the model and the settings that model offers, such as aspect, resolution and duration.
* **Unset rows**: follow your own model defaults in Settings.
* **Per card**: a video card offers only video models and shows the exact estimate in a starred badge beside **Generate**.

**For agents**

- `canvas_board (type: canvas_settings_update)` — fields: `canvasId`, `rev`, `fields.kind`, `fields.fields`

## Versions

Every run of this card, in order. Click one to preview it, then Set as main to make the card and every card it feeds use it.

1. Select an image or video card and switch the panel to **Output**.
2. Click a thumbnail in **Versions** to preview that run.
3. Press **Set as main** to make the card show it. Every card that takes this one as an input moves to it too.

* **Strip**: every run of the card, in order, with its version number.
* **Set as main**: makes the previewed run the card's own. It reads **This is the main version** when it already is.
* **Notes**: say when a version was based on another card, or branched from an earlier run.

**For agents**

- `canvas_node (type: canvas_node_version_select)` — fields: `nodeId`, `canvasId`, `mediaId`

## Prompt

The exact words this version was made from, as they were sent. Change the next run's words on the Compose tab.

1. On **Output**, pick a version in the strip.
2. Read **Prompt** for the exact words that run was given.
3. To change the words for the next run, switch to **Compose**.

* **Prompt**: the words as they were sent. They never change after the run.

**For agents**

- `generate (type: canvas_node_generate)` — fields: `nodeId`, `prompt`

## Inputs

The pictures and cards this version was given, in the order the model saw them.

1. On **Output**, pick a version and find **Inputs**.
2. Read each input in the order the model received it.
3. To change the inputs for the next run, switch to **Compose**, or right-click another card on the board and choose **Add as input**.

| Part   | What it shows                                 |
| ------ | --------------------------------------------- |
| Number | The input's place in the order.               |
| Label  | Which card or file it was, and which version. |
| Kind   | Image, video or audio.                        |

**For agents**

- `canvas_node (type: canvas_node_input_add)` — fields: `nodeId`, `canvasId`, `sourceNodeId`, `mediaId`, `role`

## Provenance

Which model made this version, with its settings, seed and cost. Use it to make the same thing again.

1. On **Output**, pick a version and scroll to **Provenance**.
2. Read which model made it, the settings it ran with and what it cost.

| Row                | What it shows                                              |
| ------------------ | ---------------------------------------------------------- |
| Provider and Model | Which service and model made it.                           |
| Settings           | Each setting the run used, such as resolution or duration. |
| Seed               | The number that lets the same run be repeated.             |
| Cost               | What it cost, or what is held while it runs.               |

## Node

This card's name, kind and where it sits on the board. Click the name to rename the card.

<img alt="The Node card on a selected card's Details tab" src="__img0" />

1. Select a card and switch the panel to **Details**.
2. Click **Name** to rename the card.
3. To take the card off the board, open its ⋯ menu on the board and choose Delete.

| Row      | What it shows                                                       |
| -------- | ------------------------------------------------------------------- |
| Name     | What the card is called. You can edit it.                           |
| Kind     | What sort of card it is, such as image, video, shot, frame or text. |
| Position | Where the card sits on the board.                                   |
| Duration | How long a video card runs.                                         |

**For agents**

- `canvas_board (type: canvas_node_rename)` — fields: `nodeId`, `canvasId`, `name`
- `canvas_board (type: canvas_node_move)` — fields: `nodeId`, `canvasId`, `x`, `y`

## Runs

Each time this card was generated, with the model and what it cost, or why it failed.

<img alt="The Runs list at the foot of a card's Details tab" src="__img1" />

1. Select a card and switch the panel to **Details**.
2. Click **Runs** to open it. The count beside it shows how many there are.
3. Read each run's version, model and cost. A failed run says why.

* **Each run**: its version number and model, then what it cost, "running", or the reason it failed.

## Changes

Edits made to this card and who made them, newest first.

<img alt="The Changes list at the foot of a card's Details tab" src="__img2" />

1. Select a card and switch the panel to **Details**.
2. Click **Changes** to open it.
3. Read each edit and who made it, newest first.

* **Each entry**: one change to the card, with who made it and when.

**For agents**

- `studio_read (type: canvas_node_history_get)` — fields: `nodeId`
