# How Spacelab works

A canvas is nodes joined by wires. Inputs feed models, models feed edits, and whatever sits at the end of the flow is your result.

Last updated: 2026-10-05

**Key facts**

- A Spacelab canvas is nodes joined by wires: each node does one job, inputs sit on its left edge and outputs on its right, and a port only accepts its own type.
- In Spacelab, image, video, music and text models have no prompt box: a separate Prompt node feeds each model's Prompt port, and one Prompt can feed several models.
- Spacelab iterators multiply: two iterators of four values each make 16 runs, Spacelab warns above 16 and refuses a run above 64.
- When a Spacelab canvas is published, input nodes such as Text Input, Image Input, Select and Audio Input each become one field on the space's form, labelled with the node's name.
- In Spacelab, a node at the end of the flow is a result, and a published space shows those results.

Web page: https://sloosh.ai/docs/how-spacelab-works

## Nodes and wires

Each node does one job: hold a photo, write a prompt, generate an image, crop it. Inputs sit on a node's left edge and outputs on its right. Drag from an output to an input to wire them. A port only accepts its own type, so an image can't go into a text port. A Prompt's variables are the exception: they take any output, such as text, a number or a choice.

Canvas diagram: A Prompt and an Image Input named Product photo feed an Image Model, whose image goes to an Upscaler.

Nodes:

- `prompt`: Prompt. Inputs: none. Outputs: `text` (Prompt, text).
- `photo`: Product photo (Image Input). Inputs: none. Outputs: `image` (Image, image).
- `gen`: Image Model. Inputs: `prompt` (Prompt, text), `aspect_ratio` (Aspect ratio, setting), `reference_images__0` (Image 1, image). Outputs: `image` (Image, image), `images` (Images, image).
- `up`: Upscaler. Inputs: `image` (Image, image). Outputs: `image` (Result, image).

Wires (node.output -> node.input):

- prompt.text -> gen.prompt
- photo.image -> gen.reference_images__0
- gen.image -> up.image

Some ports take several wires, such as an Image Model's reference images. Drop a wire on the references area at the foot of the node, or click +, and each wire gets its own slot.

## Add nodes

- Add node in the bottom toolbar opens the menu. Search it, or browse by section.
- Click a port to open Connect to. It lists only the nodes that fit that port and adds your pick already wired.
- Paste or drop images and videos onto the canvas. Spacelab makes an input node for each file. With several images it asks whether you want one Multi Image Input or separate Image Inputs.

The menu's sections match these docs: [Input nodes](https://sloosh.ai/docs/nodes-input.md), [Generate nodes](https://sloosh.ai/docs/nodes-generate.md), Edits on [Edit nodes](https://sloosh.ai/docs/nodes-edit.md), and Output, Tools and Other on [Output and tool nodes](https://sloosh.ai/docs/nodes-tools.md). Basic holds the five you'll use most. Models lists every model by name, and picking one adds its node already set to that model.

## Prompts are their own nodes

Image, video, music and text models have no prompt box. Add a Prompt node, write in it, and wire it into the model's Prompt port. One Prompt can feed several models, and a Prompt's variables let other nodes fill in parts of it.

## Run the whole canvas

Run, at the bottom right, runs every node in order. It shows what one run costs; hover it to see how many credits you have. The canvas saves as you work, so a run always uses what's on screen.

## Run one node

Model nodes have their own Run button with that node's cost on it. It reads Run on a node that feeds nothing and Run till here on one that feeds others. Either way it runs that node only, using the latest results of the nodes wired into it.

If one of those hasn't run yet, or you changed it since, Spacelab tells you to run it first. Run the whole canvas once, then rerun single nodes while you tune them.

## Make several results in one run

- Text Iterator and Image Iterator run everything after them once per value. Three scene names make three images.
- Bundle collects those results back into one set.
- Meta Muse in an Image Model makes up to 10 images per run, each billed.

Iterators multiply: two iterators of four values each make 16 runs. Spacelab warns above 16 and refuses a run above 64. See [Output and tool nodes](https://sloosh.ai/docs/nodes-tools.md).

## What counts as a result

A node at the end of the flow is a result. So is a node whose wires only go to a Download or Bundle. These never count as a result: input nodes, the iterators, Bundle, Download, Sticky Note, Crop, Rotate & Flip, Extract Frame, Veed Subtitles, Video Analyzer, Garment Classifier, Image Randomizer and Pinterest Scraper. Don't end a flow on one of them. To show a node from the middle of the flow too, hover it and turn on its Output badge. A published space shows these results.

## What costs credits

Nodes that call a model cost credits each time they run: text, image, video and music models, Text to speech, Lipsync, Prompt Enhancer, BG Remove, Auto Mask, Upscaler, Video edit, Veed Subtitles, Video Analyzer and Garment Classifier. Input nodes, Crop, Rotate & Flip, Colour Grade, Image Resize, Extract Frame, Trim video, Video Concat, Merge audio + video, the iterators, Bundle, Image Randomizer, Download and Sticky Note are free. [Plans and credits](https://sloosh.ai/docs/plans-and-credits.md) covers plans, balances and top-ups.

## From canvas to space

Publishing turns input nodes into a form. These become one field each: Text Input, Number, Select, Aspect ratio, Image Input, Reference Image Input, Multi Image Input, Background Input, Characters, Poses, Video Input and Audio Input.

- The node's name is the field's label. Click the name above a node to rename it before you publish.
- A field is required when its node is wired to something. In Publish's Form step you can mark it optional instead; left blank, the node runs with what you set on the canvas.
- Audio Input becomes an audio upload that takes one file.
- Prompt, Image Pool and Pinterest Scraper don't become fields. What you set in them is the same for everyone. To let visitors type part of a prompt, wire a Text Input into a Prompt variable.
- Publish refuses a canvas with no form field, no node that makes something, or nothing that ends in a result.

Publishing itself, plans and share links are on [What is Spacelab](https://sloosh.ai/docs/spacelab.md). For working examples, see [Spacelab recipes](https://sloosh.ai/docs/spacelab-recipes.md).

## Frequently asked questions

### How do I test one node in Spacelab without running the whole canvas?

Press the Run button on that model node; in Spacelab it reads Run till here when the node feeds others. It runs only that node, using the latest results of the nodes wired into it, so run the whole canvas once first.

### Which Spacelab nodes are free?

Spacelab nodes that don't call a model are free: input nodes, Crop, Rotate & Flip, Colour Grade, Image Resize, Extract Frame, Trim video, the iterators, Bundle, Image Randomizer, Download and Sticky Note. Nodes that call a model, such as image, video and text models, BG Remove and Upscaler, cost credits each run.

### How do I make several images in one Spacelab run?

Add a Text Iterator or Image Iterator in Spacelab: everything after it runs once per value, so three scene names make three images. Bundle collects the results back into one set. Meta Muse in an Image Model also makes up to 10 images per run, each billed.

### Why can't I publish my Spacelab canvas?

Spacelab refuses to publish a canvas with no form field, no node that makes something, or nothing that ends in a result. Wire an input node such as Image Input into the flow, and don't end it on a node that never counts as a result, such as Crop, Download or an iterator.

### How do visitors type part of the prompt in a Sloosh space?

Wire a Text Input into a Prompt variable in Spacelab. A Prompt never becomes a form field, so its text is the same for everyone, but the Text Input becomes a text field whose words fill the `{{variable}}` when the space runs.

### How do I make a Sloosh space form field optional?

A Spacelab form field is required when its node is wired to something. In Publish's Form step you can mark it optional instead. If a visitor leaves an optional field blank, the node runs with what you set on the canvas.
