# Spacelab recipes

Three canvases you can build in a few minutes, each a starting point for a space.

Last updated: 2026-10-05

**Key facts**

- Spacelab recipes are three canvases you can build in a few minutes: a product photo in a new scene, one product in several scenes, and a two-shot video with music.
- The Spacelab product photo recipe wires an Image Input and a Text Input through a Prompt into Nano Banana Pro at 4:5, then an Upscaler, and publishes as a two-field form.
- The Spacelab several-scenes recipe uses a Text Iterator, Bundle and Download, so one run makes one image per scene and one click saves them all.
- The Spacelab two-shot video recipe joins two 5-second clips with Extract Frame and Video Concat, then puts a Lyria 3 track on them with Merge audio + video.

Web page: https://sloosh.ai/docs/spacelab-recipes

## Product photo in a new scene

A visitor uploads a product and types a scene. They get a large, sharp image of their product in that scene.

**Wiring**

```text
Image Input (Product photo) ───────────────→ Image Model: reference image
Text Input (Scene) → Prompt {{scene}} → Image Model: prompt
Image Model (Nano Banana Pro, 4:5) → Upscaler (2x)
```

Canvas diagram: Text Input Scene fills a Prompt's scene variable; the Prompt and Product photo feed an Image Model, then an Upscaler.

Nodes:

- `scene`: Scene (Text Input). Inputs: none. Outputs: `text` (Text, text).
- `prompt`: Prompt. Inputs: `scene` (scene, text). 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):

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

1. Add an Image Input and name it Product photo.
2. Add a Text Input and name it Scene.
3. Add a Prompt: `The product in the image, placed in {{scene}}. Keep its colour, shape and label exactly as they are. Soft natural light.` Press Add Variable, name it scene, and wire Scene into its port.
4. Add an Image Model, pick Nano Banana Pro and 4:5. Wire the Prompt into Prompt and Product photo into a reference image.
5. Add an Upscaler after it and run the canvas.
6. Publish. The form has two fields, Product photo and Scene, and shows the upscaled image.

## One product, several scenes

One run makes an image per scene and hands you all of them to download.

**Wiring**

```text
Text Iterator (beach at noon / white studio / rainy street at night)
  → Prompt {{scene}} → Image Model ← Image Input (Product photo)
Image Model → Bundle → Download
```

Canvas diagram: A Text Iterator fills a Prompt's scene variable; the Prompt and Product photo feed an Image Model, whose images go through a Bundle to a Download.

Nodes:

- `scenes`: Text Iterator. Inputs: `values_port` (Values, text). Outputs: `text` (Text, text).
- `prompt`: Prompt. Inputs: `scene` (scene, text). 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).
- `bundle`: Bundle. Inputs: `image` (Image, image). Outputs: `images` (Images, image).
- `download`: Download. Inputs: `images__0` (Image 1, image), `videos__0` (Video 1, video). Outputs: none.

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

- scenes.text -> prompt.scene
- prompt.text -> gen.prompt
- photo.image -> gen.reference_images__0
- gen.image -> bundle.image
- bundle.images -> download.images__0

1. Add a Text Iterator and type one scene per value.
2. Wire it into a Prompt variable, as in the first recipe.
3. Wire the Prompt and your product photo into an Image Model.
4. Add a Bundle after the Image Model and a Download after the Bundle.
5. Run it. You get three images, and one click on Download saves all three as separate files.

To make the same scene for several products, swap the Text Iterator for an Image Iterator over the product photos and wire it into the Image Model's reference image instead.

## Two-shot video with music

The second shot starts where the first ends, then both play over one track.

**Wiring**

```text
Image Input → Video: first frame  (Prompt: shot 1)
Video → Extract Frame (last frame) → Video: first frame  (Prompt: shot 2)
Video 1 + Video 2 → Video Concat → Merge audio + video ← Lyria 3
```

Canvas diagram: An image and a Prompt make Video 1; Extract Frame takes its last frame as Video 2's first frame; Video Concat joins both, and Merge audio + video adds Lyria 3's track.

Nodes:

- `shot1`: Shot 1 (Prompt). Inputs: none. Outputs: `text` (Prompt, text).
- `photo`: Image Input. Inputs: none. Outputs: `image` (Image, image).
- `v1`: Video 1 (Video). Inputs: `prompt` (Prompt, text), `first_frame` (First frame, image), `last_frame` (Last frame, image), `aspect_ratio` (Aspect ratio, setting), `duration_seconds` (Duration (s), setting). Outputs: `video` (Result, video).
- `shot2`: Shot 2 (Prompt). Inputs: none. Outputs: `text` (Prompt, text).
- `frame`: Extract Frame. Inputs: `video` (Video, video). Outputs: `image` (Frame image, image).
- `v2`: Video 2 (Video). Inputs: `prompt` (Prompt, text), `first_frame` (First frame, image), `last_frame` (Last frame, image), `aspect_ratio` (Aspect ratio, setting), `duration_seconds` (Duration (s), setting). Outputs: `video` (Result, video).
- `concat`: Video Concat. Inputs: `videos__0` (Clip 1, video), `videos__1` (Clip 2, video). Outputs: `video` (Result, video).
- `music`: Music (Prompt). Inputs: none. Outputs: `text` (Prompt, text).
- `lyria`: Lyria 3. Inputs: `prompt` (Prompt, text), `reference_images__0` (Reference image 1, image). Outputs: `audio` (Audio, audio).
- `merge`: Merge audio + video. Inputs: `video` (Video, video), `audio` (Audio, audio). Outputs: `video` (Video, video).

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

- shot1.text -> v1.prompt
- photo.image -> v1.first_frame
- v1.video -> frame.video
- shot2.text -> v2.prompt
- frame.image -> v2.first_frame
- v1.video -> concat.videos__0
- v2.video -> concat.videos__1
- concat.video -> merge.video
- music.text -> lyria.prompt
- lyria.audio -> merge.audio

1. Add an Image Input with your product photo, a Prompt for shot 1 and a Video node. Wire the photo into First frame and the Prompt into Prompt. Set 5 seconds.
2. Add Extract Frame after it and set Frame close to the end. How many frames a clip has depends on the model's frame rate. At 24 frames a second, a 5-second clip has 120 frames, so try 110. A number past the end fails the run.
3. Wire that frame into a second Video node's First frame, with a Prompt for shot 2.
4. Wire both videos into Video Concat, in order.
5. Add Lyria 3 (Clip) with a music prompt, and Merge audio + video with the joined video. The music is longer than the video, so the video sets the length.
6. Run it once, then use Run on single nodes to redo a shot without paying for the rest.

## Frequently asked questions

### What prompt keeps a product unchanged in a new scene in Sloosh?

Spacelab's product photo recipe uses this Prompt: `The product in the image, placed in {{scene}}. Keep its colour, shape and label exactly as they are. Soft natural light.` The scene comes from a Text Input, and the product photo goes into Nano Banana Pro as a reference image.

### How do I make the same scene for several products in Spacelab?

Swap the several-scenes recipe's Text Iterator for an Image Iterator over the product photos, and wire it into the Image Model's reference image instead. Each product then runs through the same Prompt in Spacelab, and Bundle and Download collect every image.

### Which frame should I extract to join two AI video shots in Spacelab?

Set Spacelab's Extract Frame close to the end of the first clip. At 24 frames a second, a 5-second clip has 120 frames, so try 110; the count depends on the model's frame rate. A frame number past the end of the clip fails the run.

### How do I redo one shot without paying for the whole Spacelab canvas?

Run the Spacelab canvas once, then press Run on the single Video node you want to redo. Spacelab runs only that node, with the latest results of the nodes wired into it, so you pay for that shot and not the rest of the flow.
