Skip to main content

Refer to your images

Send one to nine JPEG, PNG, or WebP upload references with each clip. For one image, use reference_image; for an ordered list, use reference_images. Supply one field, not both. The list order determines the names used in your prompt: Picture 1 is the first image, Picture 2 is the second, and so on. Describe the role of each picture. For example, with a subject image followed by a setting image:
References guide subjects and appearance. They do not define a fixed first or last frame. A reference does not have to be a character. A picture can carry a person, an object, or a place, and a set that mixes them works well: one image per character, plus one for the setting they act in. Order the list the way your prompt reads, then name every picture you send.

Describe the clip and its sound

Use prompt to describe what the clip should show and sound like. It must contain nonempty text. The model stores the prompt unchanged and never truncates it. There is no character limit, but there is a budget. The prompt is measured in text tokens, and the default budget is about 2,000 — roughly 8,000 characters of English prose. A prompt past the budget is accepted by enqueue and then fails the build, so it arrives as clip_failed rather than as a refusal. The structure below fits comfortably; a prompt long enough to hit the budget is usually one that is repeating itself. Each enqueue keeps its own prompt and ordered reference list, including while other clips build or play. Supply the references for each new clip; new uploads do not change earlier requests.

Structure a detailed prompt

Short prompts work. For a clip with several subjects, a specific camera, and its own sound, a labelled structure gives the model far more to hold onto. The following six sections are a convention rather than required syntax — the model reads the prompt as plain text — but they cover the decisions the model has to make, in the order it helps to make them.
Use whichever sections earn their place. A single subject on a plain background needs a sentence, not six headings. Reach for the full structure when you are holding several identities steady at once.

Name and preserve your subjects

Give each subject a stable label, bind it to its picture, and then say which traits must not drift. Repeat those labels in the action so the model knows who is doing what.
Two habits pay off here:
  • Count the things you do not want duplicated. Writing “a single canvas tote” or “one silver blade” is more reliable than naming the object alone, because it tells the model how many should appear.
  • List traits, not adjectives. Face, hair, garment, and the props a subject carries are what hold an identity together across a clip.

Break the action into beats

Say the look of the clip once, state what you do not want, then walk the action in order. Labelled beats keep a five-second clip from trying to do everything at once.
Timecodes are optional, and they help most on short clips where every beat is tight. When you use them, let the last beat end at the clip’s real duration, which the clip_queued reply reports. Longer clips read fine with plain [Shot 1] beats in order. Stating what to avoid is as useful as stating what to show. Phrases like “no cuts”, “no duplicate people”, “no costume changes”, and “no readable text” reliably remove the artefacts they name.

Describe the sound

Video and audio are generated together, so the sound belongs in the same prompt. List what the scene itself makes, and say plainly when there is none.
For a spoken line, name the speaker, describe the voice, and wrap the words with the language tagged:

Choose reference images that hold up

The reference set does most of the work on identity, so it is worth assembling deliberately.
  • One subject per picture. A clean, well-lit image of a single character or a single place is easier to hold than a group shot the model has to pull apart.
  • Show what you want preserved. If a costume detail or a prop matters, it should be visible in the picture you bind it to.
  • Keep the set coherent. References that share a palette, time of day, and light direction produce a clip that looks like one scene rather than a collage.
  • Any aspect is fine. Each image must be a single-frame JPEG, PNG, or WebP, at most 25 MiB and 25 million pixels, with an aspect ratio between 1:4 and 4:1. Images may differ in size from each other and from the output canvas, and they are never cropped into a fixed first frame.

Continue a scene across clips

To continue a scene, pass a generated clip’s ID as continue_from_clip_id in the next enqueue. Motion, camera, and audio carry forward while the new clip’s references guide its appearance. The source must have finished generating. A blank, unknown, or dropped ID produces an independent clip. Write a continued clip as the next stretch of the same shot. Three things keep the seam quiet:
  • Repeat the subject definitions. Each clip is prompted on its own, so the labels and the traits to preserve have to appear again.
  • Restate the look. Naming the same lighting, weather, and palette as the previous clip stops the scene from drifting, and opening the action with “the shot continues from…” tells the model where it is picking up.
  • Update a subject that changed. If a clip ends with a mask pushed up or a coat removed, the next clip’s definition should describe the subject in that new state, even though the reference image still shows the old one. The references guide appearance; your prompt says which moment of it you are in.
Setting set_flush_on_clip_end.enabled to false holds the last frame and avoids flushing between ready autoplay clips. This setting controls playback boundaries; it does not request continuation. Use continue_from_clip_id to continue from a generated clip.

Try several seeds

The same prompt and references produce a different take under a different seed. When a scene matters, queue it a few times with explicit seed values and keep the take you like. An explicit seed leaves the session default untouched, so a sweep does not disturb the clips you queue afterwards. See the schema for parameters and the tutorial for the command sequence.