MODEL IDbfl:flux@3-video
live

FLUX 3 Video

Black Forest Labs
by Black Forest Labs

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.

FLUX 3 Video

Audio and speech with FLUX 3

How to compose FLUX 3's synchronized audio: layering ambient and effects, directing music by instrumentation and tempo, directing speech delivery, and rendering multilingual dialogue with clean lip-sync.

Introduction

FLUX 3 renders audio in the same request as the video. The two land together as one mp4, with the ambient tone, sound effects, music, and any spoken lines all planned against the same shot. There's no post-hoc audio pass or manual sync step. The model treats audio as a peer layer to the image, not an afterthought.

An 8-second wide landscape interior shot in a home podcast studio. A woman in her late twenties with a warm auburn bob and thick-framed glasses sits on the right side of the frame at a small wooden desk in warm morning window light, speaking directly into a large brass microphone angled toward her. The rest of the frame shows her home studio on the left: a tall bookshelf lined with worn hardcovers, a couple of trailing pothos plants, a soft indigo velvet curtain over the window, and a warm ceramic mug on the desk beside her hand. She smiles slightly and says naturally: "Today we're talking about the tiny domestic rituals that keep me sane." Handheld camera at eye level, shallow depth of field with her in sharp focus. Audio: warm room tone underneath her voice, the faint hum of a laptop fan on the desk, distant traffic through the curtained window. No music, her voice clean and unprocessed, no on-screen text, no subtitles.

The clip above came from one 8-second request. The prompt named a specific speaker on camera and quoted the exact line she says, so FLUX 3 renders her mouth in sync with the words rather than baking a subtitle track into the frame. Under her voice, warm room tone and distant traffic hold the space, with the faint hum of a laptop fan sitting underneath. This guide covers the audio spec vocabulary the model reads, how to layer ambient and effects cleanly, the quoted-line-plus-visible-speaker pattern for real speech, and when to request music versus silence.

Request shape

Audio is generated in every FLUX 3 request by default. settings.audio is true unless you set it false. See the prompting guide for the full request shape and the other parameters that apply to every FLUX 3 call.

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: 'An 8-second interior shot in a home podcast studio. A woman in her late twenties with a warm auburn bob and thick-framed glasses sits at a small wooden desk in warm morning window light, speaking directly into a large brass microphone that\'s angled toward her. She says naturally: "Today we\'re talking about the tiny domestic rituals that keep me sane." Audio: warm room tone underneath her voice, the faint hum of a laptop fan on the desk, distant traffic through the curtained window. No music, her voice clean and unprocessed, no on-screen text, no subtitles.',
  width: 704,
  height: 1280,
  duration: 8
})
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": "An 8-second interior shot in a home podcast studio. A woman in her late twenties with a warm auburn bob and thick-framed glasses sits at a small wooden desk in warm morning window light, speaking directly into a large brass microphone that's angled toward her. She says naturally: \"Today we're talking about the tiny domestic rituals that keep me sane.\" Audio: warm room tone underneath her voice, the faint hum of a laptop fan on the desk, distant traffic through the curtained window. No music, her voice clean and unprocessed, no on-screen text, no subtitles.",
            "width": 704,
            "height": 1280,
            "duration": 8
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "b7c8d9e0-f1a2-3b4c-5d6e-7f8091a2b3c4",
      "model": "bfl:flux@3-video",
      "positivePrompt": "An 8-second interior shot in a home podcast studio. A woman in her late twenties with a warm auburn bob and thick-framed glasses sits at a small wooden desk in warm morning window light, speaking directly into a large brass microphone that's angled toward her. She says naturally: \"Today we're talking about the tiny domestic rituals that keep me sane.\" Audio: warm room tone underneath her voice, the faint hum of a laptop fan on the desk, distant traffic through the curtained window. No music, her voice clean and unprocessed, no on-screen text, no subtitles.",
      "width": 704,
      "height": 1280,
      "duration": 8
    }
  ]'
runware run bfl:flux@3-video \
  positivePrompt="An 8-second interior shot in a home podcast studio. A woman in her late twenties with a warm auburn bob and thick-framed glasses sits at a small wooden desk in warm morning window light, speaking directly into a large brass microphone that's angled toward her. She says naturally: \"Today we're talking about the tiny domestic rituals that keep me sane.\" Audio: warm room tone underneath her voice, the faint hum of a laptop fan on the desk, distant traffic through the curtained window. No music, her voice clean and unprocessed, no on-screen text, no subtitles." \
  width=704 \
  height=1280 \
  duration=8
{
  "taskType": "videoInference",
  "taskUUID": "b7c8d9e0-f1a2-3b4c-5d6e-7f8091a2b3c4",
  "model": "bfl:flux@3-video",
  "positivePrompt": "An 8-second interior shot in a home podcast studio. A woman in her late twenties with a warm auburn bob and thick-framed glasses sits at a small wooden desk in warm morning window light, speaking directly into a large brass microphone that's angled toward her. She says naturally: \"Today we're talking about the tiny domestic rituals that keep me sane.\" Audio: warm room tone underneath her voice, the faint hum of a laptop fan on the desk, distant traffic through the curtained window. No music, her voice clean and unprocessed, no on-screen text, no subtitles.",
  "width": 704,
  "height": 1280,
  "duration": 8
}
Response
[
  {
    "taskType": "videoInference",
    "taskUUID": "b7c8d9e0-f1a2-3b4c-5d6e-7f8091a2b3c4",
    "videoUUID": "abc12345-6789-def0-1234-567890abcdef",
    "videoURL": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/abc12345-6789-def0-1234-567890abcdef.mp4"
  }
]

To render a silent mp4 with no audio track at all, set settings.audio: false. The model doesn't compose ambient or silence in that case, and it omits the audio layer entirely. Reach for that when you'll composite audio yourself downstream and want the model out of the loop.

Layered audio composition

Every audio layer FLUX 3 renders is named in the prompt. If a layer isn't named, the model chooses whether to include it based on the scene. If a layer is named explicitly, the model reserves it.

The scene below layers four distinct sound worlds inside one 8-second clip: the sizzle of a hot wok, a crowd of voices, distant club music from a stall down the street, and coins clinking on a metal tray. Each layer is named in the prompt as its own audio directive:

An 8-second wide handheld shot down the centre of a bustling Bangkok night market, colourful stall lights overhead, steam rising from a wok on the right where a vendor tosses noodles, small clusters of customers eating at low plastic stools. The camera drifts slowly forward through the crowd. Audio in layers: the sharp sizzle and clang of the wok in the foreground, dense overlapping crowd chatter and laughter, distant tinny club music bleeding in from a stall further down the street, the metallic clink of coins being counted onto a tray near a food stand. No music underscore, no on-screen text.

The prompt does four specific things. Each layer is named with a specific verb ("sizzle and clang" for the wok, "overlapping crowd chatter" for the voices, "distant tinny" for the music, "metallic clink" for the coins) rather than a generic tag like "market sounds", because named verbs sit clearer in the mix. Each layer is also placed spatially: the wok is foreground, the music bleeds in from further down the block, so FLUX 3 renders the mix with those spatial cues and the wok sits closer to the listener than the music.

Layers are ranked by prominence in the order they appear in the audio spec, so the wok sizzle leads because it's what the shot centres on, and everything else sits underneath at conversation level and softer. The prompt also explicitly says "no music underscore", because without that FLUX 3 might have added a music bed given the "bustling" energy, which it reads as a mood tag. Naming the absence pins the decision.

Foley recipes that FLUX 3 renders cleanly. Name the surface and the action, not the abstract sound:

  • Footsteps → name the surface AND the footwear: "boots on wet cobblestone", "bare feet on hardwood", "high heels clicking on marble"
  • Fabric → name the fabric AND the motion: "linen shirt rustling as she shrugs", "leather jacket creaking as he sits"
  • Impact → name the object AND the surface it hits: "keys tossed onto a marble counter", "book dropped on a wool rug"
  • Liquid → name the container AND the pour: "wine glugging from a bottle into a wide glass", "hot water hissing into a French press"
  • Doors → name the door type AND how it moves: "heavy oak front door creaking open slowly", "steel screen door slapping shut fast"
  • Ambient tone → name the space's acoustic property: "the cavernous reverb of an empty cathedral", "the dead flat sound of a padded studio"

The pattern is the same: a specific object doing a specific action beats a generic sound name. "The clink of ice in a glass" beats "kitchen ambience". "A leather chair creaking as he leans back" beats "office sounds".

Speech: quoted line and visible speaker

FLUX 3 renders spoken dialogue when the line is quoted and paired with a visible speaker on camera. Add "no on-screen text" or "no subtitles" at the end to prevent the model from falling back to a burned-in subtitle bake instead of rendering the words as audio.

A 10-second close single-shot cooking demo. A confident chef in her mid-forties with tied-back grey hair, a plain white apron, and a lightly tattooed forearm stands at a warm-lit prep bench, holding up a plump ripe lemon to the camera. She turns it slowly in her hand and says naturally: "The trick with a citrus dressing is finishing with the zest, never starting with it." Warm afternoon kitchen light, shallow depth of field, camera locked off at eye level. Audio: her voice clean and warm, a faint distant clink of prep in the background, low kitchen ambience underneath. No music, no on-screen text, no subtitles.

Four moves in the prompt make the speech land as audio rather than text. The line is quoted verbatim (not "she describes citrus zest technique" but the actual words in quotation marks), because FLUX 3 renders spoken audio from the quoted string and not from a description of the concept. The prompt also names a visible speaker on camera with enough detail (age, hair, apron) to pin who's talking, so the model has a specific face to lip-sync to. A quoted line without a visible speaker often lands as burned-in text on screen rather than spoken audio, since the model can't decide whose mouth to move.

The prompt closes with "no on-screen text" or "no subtitles", because FLUX 3 sometimes defaults to a subtitle bake when it can't resolve whether a line should be spoken or shown. And the quoted line itself is kept natural for spoken delivery: it reads the way a person would actually say it, not as formal comma-heavy prose that delivers awkwardly when the model speaks it aloud.

Speech works in multiple languages. Quote the line in the target language, keep the same pattern (visible speaker on camera, no on-screen text, no subtitles), and the model matches accent, cadence, and pronunciation to that language rather than reading it phonetically as English. Useful for localised social spots, transit and travel content, and any deliverable that has to speak to a specific market.

The clip below runs the same speech pattern in Japanese, on a real use case (a transit announcement) rather than a translated marketing line.

An 8-second interior shot of a modern Tokyo commuter train in warm morning light. A Japanese train conductor in his fifties, wearing a crisp navy uniform with a small red armband and a peaked cap, stands at the front of the carriage speaking clearly into a compact intercom microphone at chest height. A few passengers seated behind him quietly read on their phones. He announces evenly, in Japanese: "次は、東京駅です。ドアは右側が開きます。" Camera locked at chest height on the conductor, shallow depth of field. Audio: his voice with the slight EQ compression of the train PA system, the low steady hum of the moving carriage, the distant rhythm of wheels on rail beneath. No music, no on-screen text, no subtitles.

Two things the prompt does that carry the language beyond just quoting Japanese characters. The speaker is described in a culturally coherent context (a Japanese conductor on a Tokyo train, not a random person with a Japanese line) so the model has the right physical model to render lip movement against. And the audio layers name the actual acoustic signature of a train PA (the EQ compression, the carriage hum, the wheels), which lands the voice through the right sonic filter rather than as a raw studio recording.

Delivery direction

Quoted lines land at the model's default delivery (usually neutral, mid-pitch, mid-pace) unless the prompt directs otherwise. Naming the delivery widens what FLUX 3 can render for a given speaker: same face, same words, different read.

An 8-second interior shot of a small twin-engine plane cockpit at dusk, warm sunset light bleeding in from the left. A woman in her forties in a plain white pilot's shirt with faded epaulettes and thin-frame glasses sits at the controls, hands on the yoke, eyes scanning the instrument panel. She says quickly, clipped and professional, keeping her voice level but urgent: "Bravo Nine Two, engine two showing yellow, requesting immediate return." A brief pause, then she adds under her breath, half to herself: "come on, come on." Camera locked at a slight three-quarter angle showing her face and the instruments beyond. Audio: her voice with the slight compression of the headset mic, the steady drone of the engines underneath, faint static on the radio between transmissions, the ticking of one of the instruments. No music, no on-screen text, no subtitles.

The pattern is a three-part shape: speaker, delivery, line. "She says calmly, without raising her voice, 'you'll want to be careful with that'". Or: "He whispers, urgently, 'don't look now, but...'". The cockpit prompt above stacks two beats of delivery direction: the transmission ("clipped and professional, keeping her voice level but urgent") and the aside ("under her breath, half to herself"). Same speaker, two very different reads.

Descriptors the model reads reliably:

  • Volume: whisper, hushed, calm, raised, shouted, at conversation level
  • Pace: slowly, quickly, in a rush, drawing it out, at a normal cadence
  • Emotion: warmly, coldly, patiently, angrily, laughing, sighing, wearily, brightly
  • Register: formal, casual, intimate, professional, sarcastic, deadpan
  • Physical state: through gritted teeth, out of breath, half-asleep, half-laughing, from across the room

Stack two or three when the delivery is complex: "she says gently, but with a note of frustration underneath", or "he says quickly, half-laughing, still catching his breath". The model reads compound descriptors and blends them.

Sub-vocal sounds render as their own beats when quoted. She sighs and says, "well, that's that." gives an audible sigh before the line lands. Skip the quotation and describe them the same way you'd describe any physical action.

For multi-speaker scenes, direct each speaker separately. He asks flatly, "any news?" She replies, warmly but tired, "not really. tomorrow." gives two distinct reads in one shot. Naming who says what and how they say it keeps the model from delivering both lines in the same voice.

Music and silence

FLUX 3 doesn't add music unless the prompt names it. Same for the reverse: silence needs to be named for scenes that read like they would want a score.

The two clips below sit at those two decisions. On the left, a morning news anchor set explicitly asks for a soft news theme underneath the anchor's voice, and the model composes one. On the right, a tense burglary scene explicitly asks for silence, so the model reserves the audio for foley rather than adding a suspenseful score.

Both prompts made the decision explicit. The news clip named the music by instrumentation ("brass and vibraphone news theme") and by tempo ("mid-tempo") so the model composed something specific rather than a generic background. The burglary clip used "only diegetic sound" and "absolutely no music" to lock the sonic palette to the foley layers and keep the model from reaching for a tension score.

Two decisions to make on every prompt. Music is off by default in the audio layer unless you ask for it, so if the deliverable wants music, name it by instrumentation, tempo, and mood so the model composes to spec rather than reaching for a generic bed. Silence has to be named too for scenes that read like they would want a score. Anything with tension or dramatic weight pulls the model toward adding a bed, and "absolutely no music" or "only diegetic sound" pins the decision.

Directing music

Prompts that just say "music" get an unfocused wash of underscore. Direct the music the way you'd direct a session composer: name the instrumentation, the tempo, the key mood, when it enters, when it fades.

A 10-second luxury fashion teaser. A tall woman in her twenties in a floor-length ivory silk gown walks slowly toward the camera down a wide empty marble gallery at golden hour, warm sunset light streaming from tall arched windows behind her. Handheld tracking pull-back at chest height, shallow depth of field, her face in soft focus. Audio: driving warm synth-wave bed at 105 BPM opening on a two-note sub-bass hit at the top, layered analogue synths and a slow four-on-the-floor kick building through the first six seconds, resolving into a wide sustained chord on the final three seconds. The bed holds throughout; there is no dialogue, no ambient sound competing with the music. No on-screen text.

The audio spec you're aiming for reads like a music-supervision note: "warm indie-folk underscore, acoustic guitar and gentle upright bass at 80 BPM, enters softly under the first line, holds under the second, fades to nothing on the final beat". Naming the instrumentation keeps the model from defaulting to strings-and-piano. Naming the tempo controls the energy. Naming the entry and exit points controls the mix relative to the voice.

For a jingle or theme cue, add a shape: "opens on a two-note brass hit, resolves down into a warm sustained pad", or "a rising synth arpeggio building through the first three seconds, punching into a wide chord on the fourth". The fashion teaser above uses that shape language ("two-note sub-bass hit at the top", "building through the first six seconds", "resolving into a wide sustained chord on the final three seconds") to tell the model where the beats land in the runtime.

Vocabulary FLUX 3 reads reliably:

  • Genre or reference: indie-folk, synth-wave, minimal piano, dub reggae, ambient drone, bossa nova, dark cinematic, warm jazz trio
  • Instrumentation: acoustic guitar, upright bass, brass, vibraphone, warm synth pad, sub bass, string quartet, muted piano, Rhodes electric piano
  • Tempo: exact BPM ("at 80 BPM") or descriptor ("mid-tempo", "slow", "driving", "walking pace")
  • Mood: warm, tense, hopeful, wistful, urgent, playful, meditative, foreboding
  • Mix behaviour relative to speech: "enters under her first line", "swells during the pause", "drops to nothing when she speaks", "holds under throughout"

For repeated brand assets (a bumper, a stinger, a hero cue), pin the exact same music spec across every generation. FLUX 3 renders a similar but not bit-identical bed each time. If the cue has to be reusable across many pieces of content, generate it once and layer it in post rather than expecting exact repetition.

Tips

  1. Name each audio layer as its own directive. "Audio in layers: [ambient], [effects], [music], [speech]" reads cleaner to the model than a general "with realistic sound" tag.

  2. Use verbs for sound effects, not adjectives. "The clang of the wok" is a directive. "Realistic kitchen sounds" is a mood tag. Verbs bind to on-screen events, adjectives don't.

  3. Rank layers by prominence. The layer at the front of the mix is the layer named first in your audio spec. Foreground gets the primary sonic weight, background sits underneath.

  4. Quote every spoken line. Even a short sigh or a muttered aside. If it should be heard, put it in quotation marks so the model treats it as speech rather than description.

  5. Name the speaker's face when you want lip-sync. A visible age and clothing detail is enough. Without a specific face to sync to, the model either invents one or falls back to a subtitle bake.

  6. Say "no on-screen text" every time speech is quoted. It's three words in the prompt and eliminates the biggest failure mode (baked-in subtitles instead of spoken audio).

  7. Ask for music explicitly, or ask for silence. Named music gets composed to spec (instrumentation, tempo, mood). Named silence keeps the model out of the audio layer for that beat.

  8. Time a sound to a visual beat by naming both together. "A soft clink of a spoon just as the whistle peaks" or "one deep wave impact as the light sweeps past" pins the audio event to a specific frame. The model reads the temporal cue and synchronises. Loose framing ("some background sounds") leaves the sync to chance.

  9. Match the ambient tone to the physical space. A cathedral has reverb. A padded studio doesn't. A rainy street outside a café is muffled through the window from indoors and loud from outside. Naming the acoustic property of the space, not just the sounds in it, gives the model a physical model to render against.