FLUX Video Edit [fast]

FLUX Video Edit [fast] is Black Forest Labs' instruction-based video editing model for changing an existing clip with a natural-language prompt. It can add, remove, or replace objects and characters; alter settings, styles, actions, and on-screen text; and revise or translate dialogue while preserving unedited motion, camera work, timing, framing, and audio. It supports source clips up to 15 seconds and produces 24 FPS output at up to 720p while retaining the original duration and aspect ratio.
![FLUX Video Edit [fast]](https://assets.runware.ai/covers/bfl-flux-video-edit-fast.jpg)
Complete technical specification for integration
Ready-to-use code snippets for common workflows
Step-by-step tutorials for advanced use cases
← All GuidesReplacing and adding elements
How to swap a product, change wardrobe, or put something new into a clip with FLUX Video Edit [fast], and why an added object needs its light described.
Introduction
A packshot is the most reusable footage a brand owns and the most expensive to repeat. The turntable, the lighting rig, the retoucher and the studio day all get paid again the moment a product ships in a second colorway. The same is true of a lookbook clip when the garment changes, and of a hospitality b-roll when the table needs to be dressed.
Replacing and adding are the two edits that turn one shoot into a range. FLUX Video Edit [fast] keeps the camera move, the lighting setup and the timing, and changes the thing in front of them.
Same rotation, same key light, same contact shadow, different material. This guide covers swapping what is already in frame, putting something new into it, and the one structural limit that shapes both.
The request
Replacement and addition are the same call as any other edit: the clip in inputs.video, the instruction in positivePrompt.
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@video-edit-fast',
positivePrompt: 'Change the white leather upper to navy canvas with white stitching, and keep the gum rubber sole.',
inputs: {
video: 'https://vm.runware.ai/video/os/a14d18/ws/2/vi/2e7b9d43-1c86-4a50-9f37-5d2a8c6e1b90.mp4'
},
deliveryMethod: 'async'
})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@video-edit-fast",
"positivePrompt": "Change the white leather upper to navy canvas with white stitching, and keep the gum rubber sole.",
"inputs": {
"video": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/2e7b9d43-1c86-4a50-9f37-5d2a8c6e1b90.mp4"
},
"deliveryMethod": "async"
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "videoInference",
"taskUUID": "c58d2f74-9a13-4e60-b825-7f3c1d9a4e62",
"model": "bfl:flux@video-edit-fast",
"positivePrompt": "Change the white leather upper to navy canvas with white stitching, and keep the gum rubber sole.",
"inputs": {
"video": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/2e7b9d43-1c86-4a50-9f37-5d2a8c6e1b90.mp4"
},
"deliveryMethod": "async"
}
]'runware run bfl:flux@video-edit-fast \
positivePrompt="Change the white leather upper to navy canvas with white stitching, and keep the gum rubber sole." \
inputs.video=https://vm.runware.ai/video/os/a14d18/ws/2/vi/2e7b9d43-1c86-4a50-9f37-5d2a8c6e1b90.mp4 \
deliveryMethod=async{
"taskType": "videoInference",
"taskUUID": "c58d2f74-9a13-4e60-b825-7f3c1d9a4e62",
"model": "bfl:flux@video-edit-fast",
"positivePrompt": "Change the white leather upper to navy canvas with white stitching, and keep the gum rubber sole.",
"inputs": {
"video": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/2e7b9d43-1c86-4a50-9f37-5d2a8c6e1b90.mp4"
},
"deliveryMethod": "async"
}Response
[
{
"taskType": "videoInference",
"taskUUID": "c58d2f74-9a13-4e60-b825-7f3c1d9a4e62",
"videoUUID": "9a4c1e58-3d72-4b60-8e15-6f2c7a9d3b41",
"videoURL": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/9a4c1e58-3d72-4b60-8e15-6f2c7a9d3b41.mp4"
}
]There is no image input on this model. You cannot hand it a photograph of the product you want in the frame, and there is no reference image, style reference or mask to attach. Every replacement is described in words, which puts a hard ceiling on how exactly you can pin down a specific item. A swap that has to match a real SKU down to the logo placement is outside what this model can promise.
That limit decides what this model is good at. Material, color, shape and category are describable. A particular manufactured object is not.
One shoot, a range of variants
The commercially valuable pattern is running the same source clip through several instructions and getting a set of variants that share a camera move. Because nothing about the shot is regenerated, the results cut together as a family:
Change the white leather upper to tan suede, and keep the gum rubber sole.
Change the white leather upper to navy canvas with white stitching, and keep the gum rubber sole.
Change the white leather upper to olive green nubuck, and change the laces to cream flat cotton.
Three instructions, one shoot. The shared structure across them is worth copying:
- Name the material, not only the color. "Navy canvas with white stitching" and "olive nubuck" carry a surface response to light that "navy" and "olive" do not, and on a rotating product the way the material takes a highlight is most of what sells it.
- Say what stays. The gum sole appears in two of these prompts, because a replacement instruction that names only the upper leaves the model free to consider the sole part of the same object. This is the exception to preservation by default: a preserve clause earns its place inside the boundary of the thing you are replacing.
- Change more than one part when the variant genuinely does. The olive version swaps the laces as well, because a real colorway would.
Variants generated this way are not color-graded copies of each other. Each is an independent generation, so fine detail differs slightly between them. For a grid of thumbnails that is invisible. For an A/B test where the only intended difference is the color, run them and then check the frames where the product is largest.
Changing wardrobe
Garment swaps behave like product swaps with a body underneath, and the body is what makes them harder. The instruction has to be about the garment and silent about the person:
Naming the garment by cut and construction does more work than naming it by category. "A chunky cream knitted cardigan, open at the front" describes a silhouette that hangs and moves in a specific way. "A cardigan" leaves the drape to the model, and drape is what the eye reads first when the subject shifts her weight.
Where garment swaps go wrong is at the boundary between the replaced item and what it touches. Collars, cuffs and hems all sit against skin or another layer, so name the layer you want kept when it is visible: "worn open over the white shirt" tells the model the shirt is not part of the thing being replaced.
A garment swap changes what the clothing looks like, not what the body underneath is doing. A tailored jacket and a loose cardigan do not move the same way, so a swap between silhouettes that behave very differently can read as a garment painted onto the original motion. Swaps within a family, one knit for another or one jacket for another, hold up best.
Adding something that was not there
An addition is harder than a replacement, because there is no existing object whose lighting and perspective the new one can inherit. The model has to place a thing into a scene and make it agree with the scene's light.
Compare a plain addition with one that describes how the object sits:
Add a white espresso cup and saucer and a small almond pastry on a plate to the marble table.
Add a white espresso cup and saucer and a small almond pastry on a plate to the marble table, sitting flat on the surface with soft diffused shadows underneath them matching the overcast daylight.
The second instruction adds three things that cost almost nothing to type: the contact (sitting flat on the surface), the shadow (soft diffused shadows underneath), and the light source it should match (the overcast daylight). Contact shadow is the single cue that separates an object in a scene from an object pasted over one, and it is the first thing to name when an addition looks wrong.
A useful order for the sentence is what, where, how it sits. Position first pins the object to a surface the model can see, and the lighting clause tells it which of the scene's lights to obey.
Size is the other thing a bare instruction gets wrong, and it is easy to miss because the object does appear. Black Forest Labs' own comparison is the clearest version of this: "Add a lighthouse" puts a small one in the distance, while naming its height, its parts and where it stands puts a large one exactly where it was asked for. An unqualified noun gets rendered at whatever scale the model finds plausible, which is usually further back and smaller than you pictured. Say how big the thing is relative to something already in frame, and say what it is standing on.
Additions land best on surfaces the camera can see clearly and continuously. An object added onto a table that stays in frame for the whole clip is a stable problem. One added at the edge of frame, or onto something the camera passes quickly, has to be invented, tracked and occluded at the same time.
Weather and atmosphere
Weather is an addition that covers the whole frame rather than one surface, and it is the case where a short instruction pays off most, because rain touches everything and you cannot enumerate everything.
What makes this read as weather rather than as an overlay is that the prompt names what the water does to the surfaces already in frame. Falling rain on its own is a particle effect. Wet marble, reflections and dimpled puddles are the scene responding, and naming two or three surfaces is enough for the model to extend the logic to the rest.
The same shape covers the atmospheric effects that get asked for most: snow settling on horizontal surfaces, mist collecting in the low parts of a frame, sun flare entering from a named direction, steam rising from something hot. In every case, say what the effect touches.
Weather changes the light. Rain under the original sunlight is a frame that fights itself, so expect an atmospheric edit to shift the grade of the whole shot even though you only asked about water. If the clip has to cut against untouched footage, run the weather edit on every shot in the sequence, not just the one that needed it.
Which edit to reach for
Three instructions can produce a similar-looking frame, and they are not equally reliable:
- Replace when something is already in the right place and the new thing has the same footprint. The model inherits position, scale, lighting and occlusion from what was there. This is the highest-confidence edit of the three.
- Add when the frame genuinely lacks the object. You take on placement and lighting, so name both.
- Remove and then add almost never. Two edits on the same patch of frame is one job described as two, and it invites the second pass to disagree with the first about what the background is. Say "replace X with Y" in one sentence instead.
The corollary is a good habit when planning a shoot: leave a placeholder in frame. A plain box where the product will go, a bare mannequin where the garment will go, a blank card where the sign will go. Replacing a placeholder is a far more reliable edit than adding into empty space, and it costs nothing on the day.
Tips
-
Name the material, not just the color. "Navy canvas with white stitching" tells the model how the surface takes light. "Navy" does not.
-
Pin the parts that stay inside the object. A sneaker's sole and a shirt under a cardigan are inside the boundary of what you are replacing, so say they survive.
-
Do not expect an exact SKU. With no image input, a replacement is as specific as your sentence, which is not specific enough for a logo, a trim detail or a legally exact packshot.
-
Describe cut and construction on garments. Drape is what the eye reads when a subject moves, and it comes from the silhouette you named.
-
Swap within a family. A jacket for a jacket holds together. A tailored jacket for a flowing coat asks the original motion to belong to a garment that would not move that way.
-
Give every addition a contact and a shadow. "Sitting flat on the surface with soft shadows underneath, matching the daylight" is the difference between placed and pasted.
-
Add onto surfaces that stay in frame. An object on a table the camera holds is stable. One at the frame edge has to be invented and tracked at once.
-
Name what an effect touches. Wet marble and dimpled puddles make rain read. Falling drops on their own read as an overlay.
-
Re-run atmosphere across the whole sequence. Weather shifts the grade, so a single treated shot will not cut against untreated ones.
-
Shoot a placeholder. Replacing an object that is already lit in the right position beats adding one into empty space every time.