FLUX 3 Video

FLUX 3 Video is Black Forest Labs' multimodal foundation model for video generation with synchronized audio. It generates clips from 5 to 20 seconds across text-to-video, image-to-video, and video-to-video modes on one architecture, with keyframe control to pin an opening image or interpolate motion across pinned frames, chained continuations for arcs beyond 20 seconds, multi-shot sequences with hard cuts inside one generation, and native multilingual dialogue. A draft mode returns a fast low-resolution preview and a cache that a follow-up call enhances at full quality, tightening iteration loops. Style range spans candid camcorder footage, animation, motion design, and cinematic photoreal, character consistency holds across scenes within one generation, and in-video typography renders cleanly for titles and animated designs.

Complete technical specification for integration
Ready-to-use code snippets for common workflows
Step-by-step tutorials for advanced use cases
← All GuidesMulti-shot sequences with FLUX 3
How to build multi-shot video sequences inside one FLUX 3 generation: HARD CUT syntax, shot contrast, time compression, threading an audio bed across the cuts, and pacing shot rhythm.
Introduction
FLUX 3 renders multi-shot sequences inside a single generation. A prompt that names three shots with hard cuts between them returns one mp4 with three real cuts, not three separate clips stitched by an editor and not a continuous take that reads as one long shot. The audio bed threads across the cuts rather than restarting per shot.
A 15-second boutique coffee brand spot with three real cuts. SHOT ONE: extreme close-up of dark specialty coffee beans cascading from a small polished copper roasting drum into an open burlap sack on a walnut workshop bench, warm afternoon window light. HARD CUT. SHOT TWO: mid-shot from behind a Chemex on a wooden countertop, a barista in a plain white t-shirt pouring hot water slowly in a controlled spiral, steam rising, coffee blooming in the filter. HARD CUT. SHOT THREE: overhead top-down of a small warm ceramic cup being placed on a wooden tray, the freshly brewed coffee catching a beam of afternoon light, a single hand pulling back out of frame. Warm indie-folk acoustic guitar bed threading softly through all three shots. Ambient: workshop tone for shot one, water and pouring sounds for shot two, quiet warm tone for shot three. No on-screen text.
The clip above came from one 15-second request that named three shots. It opened on an extreme close-up of beans cascading from a copper roasting drum, cut hard to a mid-shot behind a Chemex with a slow pour, then cut hard again to an overhead of the finished cup being placed on a wooden tray in a beam of afternoon light. A warm indie-folk guitar bed threads underneath from beat one to beat fifteen, ambient sound shifts to match each shot, and the two HARD CUT tokens signal where the transitions land. This guide covers the HARD CUT syntax, how to build shot contrast so the cuts register, how to thread an audio bed across the sequence, and how to pick duration by beat count.
Request shape
A multi-shot FLUX 3 request is a standard videoInference call. The shot count and cut structure live in the positivePrompt string, not in a separate parameter. Duration and aspect follow the prompting guide defaults.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'bfl:flux@3-video',
positivePrompt: 'A 15-second boutique coffee brand spot with three real cuts. SHOT ONE: extreme close-up of dark specialty coffee beans cascading from a small polished copper roasting drum into an open burlap sack on a walnut workshop bench, warm afternoon window light. HARD CUT. SHOT TWO: mid-shot from behind a Chemex on a wooden countertop, a barista in a plain white t-shirt pouring hot water slowly in a controlled spiral, steam rising, coffee blooming in the filter. HARD CUT. SHOT THREE: overhead top-down of a small warm ceramic cup being placed on a wooden tray, the freshly brewed coffee catching a beam of afternoon light, a single hand pulling back out of frame. Warm indie-folk acoustic guitar bed threading softly through all three shots. Ambient: workshop tone for shot one, water and pouring sounds for shot two, quiet warm tone for shot three. No on-screen text.',
width: 1440,
height: 608,
duration: 15
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "bfl:flux@3-video",
"positivePrompt": "A 15-second boutique coffee brand spot with three real cuts. SHOT ONE: extreme close-up of dark specialty coffee beans cascading from a small polished copper roasting drum into an open burlap sack on a walnut workshop bench, warm afternoon window light. HARD CUT. SHOT TWO: mid-shot from behind a Chemex on a wooden countertop, a barista in a plain white t-shirt pouring hot water slowly in a controlled spiral, steam rising, coffee blooming in the filter. HARD CUT. SHOT THREE: overhead top-down of a small warm ceramic cup being placed on a wooden tray, the freshly brewed coffee catching a beam of afternoon light, a single hand pulling back out of frame. Warm indie-folk acoustic guitar bed threading softly through all three shots. Ambient: workshop tone for shot one, water and pouring sounds for shot two, quiet warm tone for shot three. No on-screen text.",
"width": 1440,
"height": 608,
"duration": 15
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "videoInference",
"taskUUID": "d4e5f6a7-b8c9-0123-4567-89abcdef0123",
"model": "bfl:flux@3-video",
"positivePrompt": "A 15-second boutique coffee brand spot with three real cuts. SHOT ONE: extreme close-up of dark specialty coffee beans cascading from a small polished copper roasting drum into an open burlap sack on a walnut workshop bench, warm afternoon window light. HARD CUT. SHOT TWO: mid-shot from behind a Chemex on a wooden countertop, a barista in a plain white t-shirt pouring hot water slowly in a controlled spiral, steam rising, coffee blooming in the filter. HARD CUT. SHOT THREE: overhead top-down of a small warm ceramic cup being placed on a wooden tray, the freshly brewed coffee catching a beam of afternoon light, a single hand pulling back out of frame. Warm indie-folk acoustic guitar bed threading softly through all three shots. Ambient: workshop tone for shot one, water and pouring sounds for shot two, quiet warm tone for shot three. No on-screen text.",
"width": 1440,
"height": 608,
"duration": 15
}
]'runware run bfl:flux@3-video \
positivePrompt="A 15-second boutique coffee brand spot with three real cuts. SHOT ONE: extreme close-up of dark specialty coffee beans cascading from a small polished copper roasting drum into an open burlap sack on a walnut workshop bench, warm afternoon window light. HARD CUT. SHOT TWO: mid-shot from behind a Chemex on a wooden countertop, a barista in a plain white t-shirt pouring hot water slowly in a controlled spiral, steam rising, coffee blooming in the filter. HARD CUT. SHOT THREE: overhead top-down of a small warm ceramic cup being placed on a wooden tray, the freshly brewed coffee catching a beam of afternoon light, a single hand pulling back out of frame. Warm indie-folk acoustic guitar bed threading softly through all three shots. Ambient: workshop tone for shot one, water and pouring sounds for shot two, quiet warm tone for shot three. No on-screen text." \
width=1440 \
height=608 \
duration=15{
"taskType": "videoInference",
"taskUUID": "d4e5f6a7-b8c9-0123-4567-89abcdef0123",
"model": "bfl:flux@3-video",
"positivePrompt": "A 15-second boutique coffee brand spot with three real cuts. SHOT ONE: extreme close-up of dark specialty coffee beans cascading from a small polished copper roasting drum into an open burlap sack on a walnut workshop bench, warm afternoon window light. HARD CUT. SHOT TWO: mid-shot from behind a Chemex on a wooden countertop, a barista in a plain white t-shirt pouring hot water slowly in a controlled spiral, steam rising, coffee blooming in the filter. HARD CUT. SHOT THREE: overhead top-down of a small warm ceramic cup being placed on a wooden tray, the freshly brewed coffee catching a beam of afternoon light, a single hand pulling back out of frame. Warm indie-folk acoustic guitar bed threading softly through all three shots. Ambient: workshop tone for shot one, water and pouring sounds for shot two, quiet warm tone for shot three. No on-screen text.",
"width": 1440,
"height": 608,
"duration": 15
}[
{
"taskType": "videoInference",
"taskUUID": "d4e5f6a7-b8c9-0123-4567-89abcdef0123",
"videoUUID": "def45678-9abc-def0-1234-56789abcdef0",
"videoURL": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/def45678-9abc-def0-1234-56789abcdef0.mp4"
}
]Everything the model needs to build the sequence is in the prompt string. The parameter list is identical to any other t2v call.
The HARD CUT syntax
FLUX 3 reads two conventions for cuts inside a prompt: SHOT N: at the start of each shot, and HARD CUT. between them. The SHOT label signals a new beat with new framing, and the HARD CUT token tells the model the transition should be an actual cut rather than a dissolve or a continuous drift.
SHOT ONE: [what the camera shows and what happens in beat one]. HARD CUT.
SHOT TWO: [new framing, new subject or new angle, new beat]. HARD CUT.
SHOT THREE: [final framing and closing beat].
The convention is deliberately verbose so the model reads it as intent rather than as scene description. "SHOT" written in capitals lands cleaner than "next shot" or "cut to". "HARD CUT" outperforms "cut" alone because "cut" appears constantly in unrelated prompt context, like "the chef cuts an onion".
Ask for "one continuous unbroken shot" when you want the opposite behavior. Without either convention, FLUX 3 tends toward a single continuous shot on shorter durations and toward one or two implicit cuts on longer ones.
Shot contrast
Cuts register when adjacent shots contrast visibly. Near-identical coverage blends into a continuous take even with HARD CUT tokens in the prompt, since the model has nothing to snap the cut on.
The clip below runs three shots of a marathon runner where every cut lands on a different scale: extreme close-up of the shoes, then side profile at eye level, then overhead drone.
A 10-second sports highlight of a marathon runner across three cuts. SHOT ONE: extreme close-up of running shoes striking wet pavement in sequence, morning rain reflecting streetlights. HARD CUT. SHOT TWO: side profile of the runner mid-stride at eye level, focused expression, breath fogging in cold air. HARD CUT. SHOT THREE: overhead drone shot of the runner passing an empty park bench, small in a wide green landscape as the camera pulls up. Warm inspirational orchestral bed threading softly through all three cuts. Ambient: the rhythmic slap of shoes on pavement carrying through, wind under the drone shot. No on-screen text.
Contrast can land on several axes:
-
Scale. Macro, mid-shot, wide, and overhead read as distinct to the model. Two mid-shots in a row usually blur into one. A macro-to-wide cut always snaps.
-
Angle. Frontal versus profile, or eye-level versus overhead. Even at the same scale, an angle change reads as a new shot.
-
Location. A cut from indoor to outdoor, or from workbench to street. Different environments always register.
-
Time of day and lighting. A day-to-night cut inside one sequence signals a genuine time jump. A warm-to-cool grade shift does the same on a shorter timescale.
Three shots that all sit at eye level in the same room will blur toward continuous no matter how many HARD CUT tokens you write. Three shots that alternate on any of these axes cut cleanly with only one HARD CUT between them.
Reach for a single continuous take before you reach for cuts. A three-cut spot works when there are three genuinely distinct moments worth showing. It rushes when there aren't. If the story is one moment (a hand pouring a drink, a subject reacting to something) it usually reads stronger as one uncut shot with directed camera motion than as three fragments trying to sell the same beat from three angles. Cuts are for changing scene, subject, or scale, not for making a single moment feel bigger.
Audio bed continuity
A music bed named in the prompt threads through the entire sequence, not per shot. Ambient sound shifts to match the shot content, but the underlying music holds continuous from the first frame to the last.
The coffee spot above did this with one guitar bed running under all three shots. The prompt named the bed once, at the end of the sequence description, and FLUX 3 rendered it continuously rather than restarting per cut. The ambient layer was named per shot ("workshop tone for shot one, water and pouring sounds for shot two, quiet warm tone for shot three"), and the model shifts the mix at each cut.
Two rules to hold in mind:
-
Name the music bed once, at the top or the tail of the sequence description. Naming it per shot causes the model to restart the bed at each cut.
-
Name ambient per shot when you want the mix to change with the content. Naming ambient once across the sequence tells the model to hold one background tone through every cut, which reads as a single continuous take rather than a real sequence.
Time compression
A day in a shot, a workday in a beat, a season in a clip. Multi-shot cuts let one generation cover more time than any single continuous take could. Not a montage of disconnected moments but a compressed timeline: the same subject or space carried through three or four beats that stand in for the hours between them.
A 15-second time-compression spot of a single small independent coffee shop across one day, across four cuts. SHOT ONE: locked-off wide interior at first light, warm blue dawn spilling through the front windows onto empty walnut tables and stacked upside-down chairs, the espresso machine catching the first rays. Ambient: birdsong outside, the low hum of the fridge waking up. HARD CUT. SHOT TWO: same locked-off wide interior in golden late-morning light, tables now set with menus, one barista in a plain apron pulling a shot behind the counter, two customers reading at the window seat. Ambient: the hiss of the espresso machine, the clink of a cup on a saucer, low chatter. HARD CUT. SHOT THREE: same locked-off wide interior in warm afternoon light at peak busy, every table occupied, two baristas moving quickly behind the counter, steam and motion. Ambient: dense overlapping chatter, the steady grind and hiss of the machine, laughter. HARD CUT. SHOT FOUR: same locked-off wide interior in dim evening light, empty again, chairs going back onto tables, one barista wiping down the counter with the front door propped open to the street. Ambient: quiet street tones through the open door, the soft rustle of the cloth on the counter, a distant tram bell. Warm mellow indie-folk piano bed threading softly through all four shots, holding continuous across the time jumps. No on-screen text.
The prompt structure:
- Hold the camera position stable across the cuts. All four shots above are the same locked-off wide interior. A fixed camera turns the cuts into pure time markers, so the eye can't attribute what's changing to anything except elapsed time.
- Name a temporal marker in each beat. Dawn light, golden late-morning, warm afternoon, dim evening. Without an explicit time cue per shot, the model has nothing to anchor the compression on.
- Shift the audio too. Birdsong at dawn, quiet chatter mid-morning, dense chatter at peak, tram bells at dusk. The audio does as much time-marking as the light does.
- Thread a music bed underneath. The bed holds continuous across the time jumps, which is what makes the sequence read as one continuous piece across compressed time rather than four unrelated moments.
Time compression is also the shape that best sells transformation over time: a construction site from empty lot to finished building, a garden from bare soil to full bloom, a workshop from raw materials to finished piece. Same locked-off frame, four cuts, four states of the same subject across an implied duration.
Duration by shot count
Multi-shot sequences need enough runtime for each cut to breathe. A single shot lands in 5 to 7 seconds, a two-shot sequence typically wants 8 to 12, a three-shot spot wants 12 to 18, and four cuts push toward the 20-second ceiling.
Pin the duration when you know the shot count. A 15-second prompt with three named shots gives the model roughly 5 seconds per shot to establish and clear. A 6-second prompt with three named shots forces the model to compress or drop content, and the output tends to skip beats rather than shorten them evenly.
The 20-second per-request ceiling caps how many cuts fit in one call. For longer narratives, either request multiple sequences and edit them together downstream, or use the video continuation guide to continue one FLUX 3 clip from the end frames of another.
Shot rhythm
Editorial pacing sits behind everything above. Every sequence has a rhythm: the intervals between cuts, whether they hold or accelerate, when the camera moves and when it locks off. Rhythm reads faster than any single shot, so it's the first thing to design when the sequence has to feel like something specific.
Three rhythmic patterns land reliably:
- Even pacing. All shots share roughly the same runtime and the same energy. Reads calm, deliberate, editorial. Fits documentary registers, brand stories, considered pieces. The coffee spot above uses even pacing.
- Accelerating. Each shot shorter than the last. Reads urgent, building, action-forward. Fits sports highlights, trailers, dramatic reveals. The runner sequence above leans this way: the shoes shot is long, the profile is shorter, the overhead is the longest hold, resolving the acceleration.
- Held-then-cut. One long establishing shot, then a run of quick cuts. Reads as tension release, a beat that lands after a wait. Fits reveals, punchlines, moments where the wait is part of the payoff.
Shift the pacing at your cost. A run of quick cuts followed by a long hold reads as running out of ideas rather than as intentional deceleration, unless the long hold is genuinely the payoff. When in doubt, hold the rhythm across the sequence and let the shot content vary within it.
Tips
-
Write
HARD CUT.in capitals with a period. The all-caps signal reads as directive rather than as scene description. Without the period, the model sometimes treats "hard cut" as the start of the next shot's prose rather than as the cut token itself. -
Give each shot its own beat. Not "the cook chops onions and then plates the dish and then serves it" (one shot, three subject beats) but three separate shots each with its own framing and single subject beat.
-
Change framing between adjacent shots. Scale, angle, or location shift is enough. Two mid-shots at the same eye level in the same room read as one long take with a stutter.
-
Name the music bed once, not per shot. FLUX 3 threads it continuously across the cuts. Naming a bed per shot restarts it at each cut.
-
Match duration to shot count. Roughly 5 seconds per shot for real breathing room. A three-cut spot at 8 seconds forces the model to skip beats rather than shorten them evenly.
-
Ask for a continuous unbroken shot when you want the opposite. FLUX 3 defaults toward a mix of continuous and implicit-cut behavior. Naming the intent either way keeps the output on the shape you asked for.
-
Fewer cuts land more reliably than more. Every additional cut is another beat the model has to plan around. Reach for two shots before three, and three before four.
-
Cut on motion end, not mid-motion. A cut that lands while the subject is mid-gesture reads as a stutter or a glitch. Describe each shot so it lands on a natural motion pause (a hand comes to rest, a subject settles into place, a camera move completes), then HARD CUT to the next beat. The model reads the pause as a clean out-point.
-
Order scale changes deliberately. Establish wide then move close reads as reveal. Establish close then pull wide reads as reveal-of-context. Zig-zagging scale (wide → close → wide → close) reads as confused coverage. Pick a direction and hold it across the sequence unless the story genuinely needs the back-and-forth.
-
Keep the palette continuous across cuts. The coffee spot above holds a warm walnut-and-brass palette across all three shots. The marathon runner holds a wet grey-and-warmth register. Radical colour shifts between shots read as a scene change (Shot One was in a different world), which is sometimes what you want but rarely what you meant.