# LongLive 2 prompting guide: shots, cuts and timelines

> Write LongLive-2.0 shot prompts for a live multi-shot video: one shot per prompt, soft shots versus hard cuts, continuity anchors and a timeline planned ahead.

Source: https://windflow.online/guides/longlive-2-prompting-guide · Updated 2026-11-03 · Windflow Labs

[LongLive-2.0](https://windflow.online/models/longlive-2) builds a long video out of shots you write in text. Each shot prompt steers the stream from the next chunk boundary, and you decide for every change whether it continues the current scene or cuts to a new one. Good results come from writing shots, not scenes: one prompt, one filmable moment.

LongLive-2.0 on Windflow takes text only; there is no reference image in this release. For the API (tokens, sessions, the socket), see [how to use the LongLive 2 API](https://windflow.online/guides/longlive-2-api).

## Write one shot per prompt

A shot prompt describes what one camera sees for a stretch of time:

- **Subject** and what makes it recognisable.
- **Action**, one, in the present tense.
- **Place**, with a few concrete details.
- **Framing and movement**: wide, medium, close-up; static, push-in, tracking.
- **Light**: time of day and quality.

Avoid packing several locations or a time jump into one prompt. That is two shots, and the second belongs in its own command.

| Weak | Strong |
|---|---|
| A chef cooks dinner and then serves it at a restaurant at night. | A chef chops vegetables on a wooden board in a quiet kitchen at dawn, medium shot, soft window light. |
| A robot in a lab doing things. | A compact silver robot walks through a clean robotics lab, low tracking shot, cool overhead light. |

The upstream LongLive examples are paragraph-length descriptions in the same pattern: what the subject looks like, what it does, what surrounds it, and the camera angle. Detail helps as long as each prompt still describes one moment.

## Choose a soft shot or a hard cut

Every change is one of two kinds.

**A soft shot (`set_shot`)** steers inside the rolling context. Whatever is in the scene carries over, and the switch happens live, well under a second. Use it for the next beat of the same scene: a new action, a closer framing, a change of light.

**A hard cut (`scene_cut`)** erases the rolling context and re-primes the model with the new prompt. It takes about two seconds to set up the new scene and opens a fresh scene budget. Use it for a genuine change of place, time or cast.

| Intent | Command | Cost |
|---|---|---|
| Continue now | `set_shot` | Live soft transition |
| New scene now | `scene_cut` | Fresh 48-chunk budget; about 2 s re-prime |
| Continue later | `schedule_shot` | At a global `at_session_chunk` |
| Cut later | `schedule_scene_cut` | At a global `at_session_chunk` |

A soft shot is built for one change at a time. If more than one major thing changes (location, cast, time of day), make it a cut.

## Carry continuity anchors

The model does not know which details you care about. Repeat them.

- **Across soft shots**, repeat the stable identity, wardrobe, location and lens cues: `The same chef in a white apron, now sliding vegetables into a hot pan, close-up, steam rising.`
- **After a cut**, restate everything that must survive, because the previous scene's memory is gone: `The same chef in a white apron serves the plated dish at a candlelit table, slow push-in.`

## Plan the timeline before you connect

LongLive's scheduling commands use a global chunk counter, `session_chunk`, which keeps counting across cuts. Write the sequence as beats on that counter, then schedule them all once the session is ready:

```js
const beats = [
  { at_session_chunk: 0, prompt: "A chef chops vegetables in a quiet kitchen at dawn, medium shot" },
  { at_session_chunk: 6, prompt: "The same chef slides the vegetables into a hot pan, close-up, steam rising" },
  { at_session_chunk: 12, prompt: "The plated dish on a candlelit table in a small restaurant, slow push-in", cut: true },
  { at_session_chunk: 18, prompt: "The same restaurant seen from the street at night, rain on the window", cut: true },
];
```

Send the first beat with `set_shot` before `start`, and the rest with `schedule_shot` or `schedule_scene_cut`. Each chunk is 29 frames. Leave each shot enough chunks to establish itself before the next one lands, and reserve cuts for real changes.

A scene runs up to 48 chunks. When it hits that ceiling, the session sends `scene_budget_reached` and stops generating until you send the next `set_shot` or `scene_cut`. A long piece is a series of scenes, each opened by a cut.

## Tune the result

| Symptom | Likely cause | What to change |
|---|---|---|
| A beat fires at the wrong time | It was scheduled against the per-scene `chunk_index` | Schedule against `session_chunk` |
| A soft shot changes more than intended | Too many things changed at once | Change one thing, or make it a `scene_cut` |
| A character changes look between shots | Identity cues were not repeated | Restate wardrobe and features in every shot |
| A short pause at a scene change | A hard cut is setting up the new scene | Use `set_shot` if the scene continues |
| A scene ends after 48 chunks | That is the scene budget | Send the next shot or cut instead of reconnecting |

## FAQ

### How long is one LongLive 2 shot?

As long as you let it run before the next shot lands. Each chunk is 29 frames, and a scene can run up to 48 chunks before it needs a cut.

### Can LongLive 2 use a reference image?

Not in this release. Direct it with text shot prompts only.

### What is the license?

LongLive-2.0 is licensed by NVIDIA Corporation under the NVIDIA Open Model License.
