---
title: Restyle footage and keep the motion
display: '*Restyle* footage and keep the motion'
nav_title: Restyle footage
summary:
  - "Restyle a 5-second running shot into a hand-drawn ink look, then change only the shoe color, with camera and stride locked."
  - "A three-model shoot-out on the same clip picks the model; a measured pan curve proves the camera held."
  - "Run the shoot-out at the lowest resolution; each 720p final waits about 2 minutes."
description: "Restyle a clip or change one element while the camera move, timing and layout stay locked: a shoot-out, a style frame, two finals and a measured check."
section: playbooks
order: 145
type: playbook
topic: Film and animation
level: Build
roles: [artist, creator]
time: { read: 9, do: 30, wait: 10 }
needs: ["Any plan with credits", "A short source clip, 3 to 10 seconds", "ffmpeg, ImageMagick and Python with OpenCV for the checks (optional)"]
last_verified: 2026-10-16
models_checked: ["Gemini Omni 1.1 Flash Edit", "FLUX.3 Edit Video", "Luma Ray 3.2 Edit", "Seedance 2.5", "Minimax H3", "GPT Image 2.5 Sunburst"]
hero: playbooks/restyle-footage-keep-the-motion/hero-source-and-ink-look.webp
related: [swap-the-actor-keep-the-performance]
pdf: true
run_in: [model_google-omni-1-1-flash-edit, model_bfl-flux-3-edit-video, model_luma-ray-3-2-edit, model_bytedance-seedance-2-5]
# the use case made, on scenario.com/explorations, and the platform workflows that run it
made_with:
  - { slug: alter, title: "ALTER" }
  - { slug: green-screen-to-any-scene, title: "Green Screen to Any Scene" }
thumb: playbooks/restyle-footage-keep-the-motion/thumb.webp
video: tutorials/restyle-footage-keep-the-motion.mp4
chapters:
  - { at: 0, title: "The footage to restyle", image: "/media/images/playbooks/restyle-footage-keep-the-motion/ch-01-the-footage-to-restyle.webp" }
  - { at: 22.5, title: "A short source, no sound", image: "/media/images/playbooks/restyle-footage-keep-the-motion/ch-02-a-short-source-no-sound.webp" }
  - { at: 36.5, title: "One keep-list, every prompt", image: "/media/images/playbooks/restyle-footage-keep-the-motion/ch-03-one-keep-list-every-prompt.webp" }
  - { at: 56, title: "A shoot-out at low resolution", image: "/media/images/playbooks/restyle-footage-keep-the-motion/ch-04-a-shoot-out-at-low-resolution.webp" }
  - { at: 85.5, title: "A style frame from frame 0", image: "/media/images/playbooks/restyle-footage-keep-the-motion/ch-05-a-style-frame-from-frame-0.webp" }
  - { at: 103.5, title: "The style frame guides the video", image: "/media/images/playbooks/restyle-footage-keep-the-motion/ch-06-the-style-frame-guides-the-video.webp" }
  - { at: 126.5, title: "Change one thing", image: "/media/images/playbooks/restyle-footage-keep-the-motion/ch-07-change-one-thing.webp" }
  - { at: 145, title: "Measure the pan", image: "/media/images/playbooks/restyle-footage-keep-the-motion/ch-08-measure-the-pan.webp" }
  - { at: 174.5, title: "Recap", image: "/media/images/playbooks/restyle-footage-keep-the-motion/ch-09-recap.webp" }
steps:
  - title: "A short source, no sound"
    text: "The source is a five-second generated clip of a runner on a wet night track, the camera panning with her, trimmed to 120 frames with the sound removed. The pan moves the background across a quarter of the frame, so any drift will show."
    prompt: |-
      Slow-motion tracking shot from a camera car, one continuous take. The runner runs forward to the right in slow motion with a long, even stride, and the camera travels to the right with her at the same speed, so she stays near the center of frame, whole from head to shoes, while the whole background moves past: over the 5 seconds the floodlight tower slides from the upper left out of frame at the left edge, new sections of the dark stands and trees enter from the right, and the white lane markings and the reflections on the wet track stream from right to left under her feet. The track is wet but has no puddles: at each foot strike only a fine mist of droplets flicks off the sole and falls straight back, no tall splashes, no water crowns, no rings. Her orange shoes keep exactly the same design in every frame: molten orange upper, white laces, translucent sole with a dark line. Sound of rain and soft footfalls, no music, no speech.
  - title: "One keep-list, every prompt"
    text: "Create › Videos › Gemini Omni 1.1 Flash Edit, with the source clip in Input Video. Paste the look prompt, then the keep-list, which goes word for word at the end of every prompt for this clip."
    prompt: |-
      Restyle the whole video as hand-drawn 2D animation for a sportswear campaign: confident black ink outlines with varying line weight, flat gouache color in two or three tones per shape, visible paper grain, the night sky as a painted blue wash, the floodlight as a bright painted glow, rain and spray as white ink flecks. The runner keeps her face, dark ponytail, black top and black shorts; her shoes stay molten orange with white laces and a pale translucent sole with a dark line.

      Motion stays as smooth as the source. Keep exactly the same camera move, framing and speed at every moment, the runner's position, size and pose in every frame, every stride and foot strike at the same moment, the floodlight, stands and lane lines in the same places, and the same clip length. No new objects, no text.
  - title: "A shoot-out at low resolution"
    text: "Run the same clip and prompt on three edit models at their lowest resolution: Gemini Omni 1.1 Flash Edit at 360p, Luma Ray 3.2 Edit at 540p, FLUX.3 Edit Video. Luma rebuilt the set and FLUX added a paper border; Gemini only got colors wrong, and a wrong color can be fixed, so Gemini wins."
  - title: "A style frame from frame 0"
    text: "Export frame 0, then Create › Images › GPT Image 2.5 Sunburst with that frame in Reference Images. The prompt names what the shoot-out got wrong: a charcoal track, not blue; one white floodlight, no yellow; no border."
    prompt: |-
      Re-render this exact frame as a still from a hand-drawn 2D animation for a sportswear campaign. Use the image as a layout reference: keep the camera angle, the framing, the runner's position, size and pose, the stands, the tree line, the lane lines and the floodlight exactly where they are. Change only the rendering: confident black ink outlines with varying line weight, flat gouache color in two or three tones per shape, visible paper grain, the night sky as a painted deep blue wash. Keep the colors of the scene: the track stays dark wet charcoal grey with pale reflections, not blue; the floodlight stays one small bright white painted glow in the upper left corner, with no beam and no yellow wash; the stands stay dark grey. The runner keeps her face, dark ponytail, black top and black shorts; her shoes stay molten orange with white laces and a pale translucent sole with a dark line, and the small VIREO on the heel. Rain and spray are small white ink flecks. The drawing fills the whole frame edge to edge: no border, no paper edge, no frame. No text other than the heel mark, no new objects.
  - title: "The style frame guides the video"
    text: "Back in Gemini Omni 1.1 Flash Edit with the source clip, add the style frame in Reference Images and set Resolution to 720p. The first take drew a paper border, so the grain moved inside the image and the prompt asks for full bleed and describes the lamps."
    prompt: |-
      Restyle the whole video as hand-drawn 2D animation for a sportswear campaign that matches the reference image: confident black ink outlines with varying line weight, flat gouache color in two or three tones per shape, a fine grain texture inside the image, the night sky as a painted deep blue wash, rain and spray as small white ink flecks. Full bleed: the picture runs to every edge of the frame, with no paper border, no torn edge and no white margin. Keep the colors of the scene: the track stays dark wet charcoal grey with pale reflections, not blue; the floodlight stays a bank of bright white lamps on a tall dark pole in the upper left, as in the source, with no beam and no yellow wash; the stands stay dark grey. The runner keeps her face, dark ponytail, black top and black shorts; her shoes stay molten orange with white laces and a pale translucent sole with a dark line.

      Motion stays as smooth as the source. Keep exactly the same camera move, framing and speed at every moment, the runner's position, size and pose in every frame, every stride and foot strike at the same moment, the floodlight, stands and lane lines in the same places, and the same clip length. No new objects, no text.
  - title: "Change one thing"
    text: "For the second version, the same model with Reference Images cleared and one change: cobalt uppers instead of orange. Everything else is named as fixed, and the keep-list follows."
    prompt: |-
      Change only the color of the runner's shoes: the uppers become deep cobalt blue instead of orange. The white laces, the pale translucent sole with its dark line, the shape of the shoe and the small VIREO on the heel stay exactly as they are. Everything else stays exactly as in the source: the runner, her face, hair and clothes, every stride, the camera move, the wet track, the stands, the floodlight, the light and the rain. No new objects, no text.

      Motion stays as smooth as the source. Keep exactly the same camera move, framing and speed at every moment, the runner's position, size and pose in every frame, every stride and foot strike at the same moment, the floodlight, stands and lane lines in the same places, and the same clip length. No new objects, no text.
  - title: "Measure the pan"
    text: "Code measures how far the background moves between frames and adds it up: the colorway stays within half a percent of the source's pan, the ink look within about two percent. Also check the frame count: a runner-up model's colorway came back 7 frames short, so its strides drift and it can't be paired."
agent_steps:
  - title: "Connect the Scenario MCP"
    text: "Connect your agent and sign in once at [mcp.scenario.com](https://mcp.scenario.com). Then tell it which Scenario team and project to use, so every file lands there."
  - title: "Give the agent the files"
    text: "One short source clip, 3 to 10 seconds, with the sound removed. The run used a five-second clip of a runner on a wet night track, trimmed to 120 frames, with a camera pan that moves the background across a quarter of the frame, so any drift shows. A local agent trims it with ffmpeg and uploads it with upload_asset."
  - title: "Brief the agent: a low-resolution shoot-out"
    text: "The keep-list goes word for word at the end of every prompt for this clip. Luma rebuilt the set and FLUX added a paper border; Gemini only got colors wrong, and a wrong color can be fixed."
    prompt: |-
      Run the source clip with the same prompt on three edit models, each at its lowest resolution: Gemini Omni 1.1 Flash Edit (model_google-omni-1-1-flash-edit) at 360p, Luma Ray 3.2 Edit (model_luma-ray-3-2-edit) at 540p, and FLUX.3 Edit Video (model_bfl-flux-3-edit-video). Read each model's parameters with model_schema_get first. Start the three with wait: false and collect them with one jobs_wait. Quote the cost with a dry run first and wait for my go.

      Prompt, word for word, look and keep-list:
      Restyle the whole video as hand-drawn 2D animation for a sportswear campaign: confident black ink outlines with varying line weight, flat gouache color in two or three tones per shape, visible paper grain, the night sky as a painted blue wash, the floodlight as a bright painted glow, rain and spray as white ink flecks. The runner keeps her face, dark ponytail, black top and black shorts; her shoes stay molten orange with white laces and a pale translucent sole with a dark line.

      Motion stays as smooth as the source. Keep exactly the same camera move, framing and speed at every moment, the runner's position, size and pose in every frame, every stride and foot strike at the same moment, the floodlight, stands and lane lines in the same places, and the same clip length. No new objects, no text.

      Show me the three takes and tell me, for each, whether it rebuilt the set, added a border, or only got colors wrong.
  - title: "A style frame, then the final"
    prompt: |-
      Export frame 0 of the source. Make a style frame with GPT Image 2.5 Sunburst (model_openai-gpt-image-2-5-sunburst), with frame 0 in referenceImages as an array. Prompt, word for word:
      Re-render this exact frame as a still from a hand-drawn 2D animation for a sportswear campaign. Use the image as a layout reference: keep the camera angle, the framing, the runner's position, size and pose, the stands, the tree line, the lane lines and the floodlight exactly where they are. Change only the rendering: confident black ink outlines with varying line weight, flat gouache color in two or three tones per shape, visible paper grain, the night sky as a painted deep blue wash. Keep the colors of the scene: the track stays dark wet charcoal grey with pale reflections, not blue; the floodlight stays one small bright white painted glow in the upper left corner, with no beam and no yellow wash; the stands stay dark grey. The runner keeps her face, dark ponytail, black top and black shorts; her shoes stay molten orange with white laces and a pale translucent sole with a dark line, and the small VIREO on the heel. Rain and spray are small white ink flecks. The drawing fills the whole frame edge to edge: no border, no paper edge, no frame. No text other than the heel mark, no new objects.

      When I approve the style frame, run Gemini Omni 1.1 Flash Edit on the source clip with video set to the clip, referenceImages set to [the style frame] and resolution "720p". Prompt, word for word:
      Restyle the whole video as hand-drawn 2D animation for a sportswear campaign that matches the reference image: confident black ink outlines with varying line weight, flat gouache color in two or three tones per shape, a fine grain texture inside the image, the night sky as a painted deep blue wash, rain and spray as small white ink flecks. Full bleed: the picture runs to every edge of the frame, with no paper border, no torn edge and no white margin. Keep the colors of the scene: the track stays dark wet charcoal grey with pale reflections, not blue; the floodlight stays a bank of bright white lamps on a tall dark pole in the upper left, as in the source, with no beam and no yellow wash; the stands stay dark grey. The runner keeps her face, dark ponytail, black top and black shorts; her shoes stay molten orange with white laces and a pale translucent sole with a dark line.

      Motion stays as smooth as the source. Keep exactly the same camera move, framing and speed at every moment, the runner's position, size and pose in every frame, every stride and foot strike at the same moment, the floodlight, stands and lane lines in the same places, and the same clip length. No new objects, no text.

      Quote each run first and wait for my go.
  - title: "Change one thing: the colorway"
    prompt: |-
      Same model and source clip, resolution "720p", with no referenceImages. Prompt, word for word:
      Change only the color of the runner's shoes: the uppers become deep cobalt blue instead of orange. The white laces, the pale translucent sole with its dark line, the shape of the shoe and the small VIREO on the heel stay exactly as they are. Everything else stays exactly as in the source: the runner, her face, hair and clothes, every stride, the camera move, the wet track, the stands, the floodlight, the light and the rain. No new objects, no text.

      Motion stays as smooth as the source. Keep exactly the same camera move, framing and speed at every moment, the runner's position, size and pose in every frame, every stride and foot strike at the same moment, the floodlight, stands and lane lines in the same places, and the same clip length. No new objects, no text.

      Quote it first and wait for my go.
  - title: "Measure the pan, then file and report"
    text: "Accept when the pan curve follows the source within 3% of frame width at every frame, the runner stands in the same place and pose at matching times, the shoe keeps its laces, sole and heel mark, and the picture runs to every edge. Reject a border, a pan that runs ahead or behind, a rebuilt set, a changed shoe or a shorter clip."
    prompt: |-
      With OpenCV, measure how far the background moves between frames in the source and in each final, add it up, and show me the curves. Check that each final has the same frame count as the source. Tell me if either final fails and why. Then create a collection for this clip with the source, the style frame and the two finals, and report the models, every asset ID and the total cost spent.
updated: 2026-10-16
canonical: https://learn.scenario.com/playbooks/restyle-footage-keep-the-motion
---

Last updated: 2026-10-16

# Restyle footage and keep the motion

> Restyle a clip or change one element while the camera move, timing and layout stay locked: a shoot-out, a style frame, two finals and a measured check.

In short:

- Restyle a 5-second running shot into a hand-drawn ink look, then change only the shoe color, with camera and stride locked.
- A three-model shoot-out on the same clip picks the model; a measured pan curve proves the camera held.
- Run the shoot-out at the lowest resolution; each 720p final waits about 2 minutes.


One 5-second tracking shot of a Vireo Athletics runner on a wet night track, restyled twice: into a hand-drawn ink look for a campaign film, then with only the shoe color changed. Camera, stride and layout stay locked, and a measurement proves it.

:::note As of October 2026
The models, settings and screens in this article are the ones Scenario offered in October 2026. New models and updates arrive often, so check the app for newer options before you choose.
:::

:::video https://ufgc0c9mhl4ueq76.public.blob.vercel-storage.com/academy/c4c814bd8d3c5a5d05b0846faba3e899fe5b743e9f50401ac9c997e4d423b102.mp4
Source (left) and the ink look (right): Gemini Omni 1.1 Flash Edit, 720p, with a style frame. Same 120 frames, same camera pan, same strides.
:::

## The brief

| Field | Brief |
|---|---|
| Goal | Two new versions of one clip: a hand-drawn ink restyle, and the same shot with a new shoe colorway |
| Source | 5 seconds, 24 fps, 120 frames, a side tracking shot that pans with the runner, no sound |
| Format | 16:9, 720p, 24 fps, the same 120 frames as the source |
| Fixed | Camera move and speed, runner position, pose and every foot strike, shoe design, floodlight, stands and lane lines, clip length |
| May vary | Rendering (ink look); the shoe upper color only (colorway) |
| Accept when | The measured pan stays within 3% of frame width of the source at every frame; strides land on the same frames; the shoe keeps its laces, sole and heel mark; nothing new appears |

The source is a generated clip: a first frame from GPT Image 2.5 Sunburst with the Vireo shoe and athlete references, animated with Minimax H3. Its pan moves the background across more than a quarter of the frame, so any camera drift shows.

## Approach

:::flow
Keep-list | camera, stride, layout, shoe |
Shoot-out | three models, low resolution | video
Style frame | frame 0 restyled | image
Finals | Gemini Omni 1.1 Flash Edit, Seedance 2.5 | video
Measure | pan curve, side by side |
:::

Edit models differ in how hard they hold the source: some keep the layout and add their own ideas, others rebuild the set, so choose on your own clip, at low resolution.

A full restyle needs a model that holds structure; a one-element change (a color, the light, one object) needs a model that changes as little as possible. See [Edit video](https://learn.scenario.com/courses/video-production).

- **Model used:** Gemini Omni 1.1 Flash Edit for both finals: shoot-out winner, and it accepts a style frame in **Reference Images**. Seedance 2.5 in edit mode ran the colorway as a comparison.
- **Alternative:** FLUX.3 Edit Video kept the layout as well and was the fastest, but drew a torn-paper border around the frame. Luma Ray 3.2 Edit rebuilt the stands.

## Steps

:::steps
1. **Make and prepare the source.** This run generated it: a first frame with GPT Image 2.5 Sunburst, then **Create** > **Videos**, **Minimax H3**, **First Frame**, 5 s, 768P. Take 3 passed; takes 1 and 2 threw tall water crowns and left rings on the track. Keep only the seconds you need (edit models bill by input length) and remove the sound.

   ```prompt
   Slow-motion tracking shot from a camera car, one continuous take. The runner
   runs forward to the right in slow motion with a long, even stride, and the
   camera travels to the right with her at the same speed, so she stays near the
   center of frame, whole from head to shoes, while the whole background moves
   past: over the 5 seconds the floodlight tower slides from the upper left out
   of frame at the left edge, new sections of the dark stands and trees enter
   from the right, and the white lane markings and the reflections on the wet
   track stream from right to left under her feet. The track is wet but has no
   puddles: at each foot strike only a fine mist of droplets flicks off the sole
   and falls straight back, no tall splashes, no water crowns, no rings. Her
   orange shoes keep exactly the same design in every frame: molten orange
   upper, white laces, translucent sole with a dark line. Sound of rain and soft
   footfalls, no music, no speech.
   ```

   ```bash
   ffmpeg -i take-3.mp4 -frames:v 120 -an -c:v libx264 -crf 16 source.mp4
   ```

2. **Write the keep-list** ([Write a keep-list](https://learn.scenario.com/browse)). One block, pasted word for word at the end of every prompt for this clip:

   ```prompt
   Motion stays as smooth as the source. Keep exactly the same camera move,
   framing and speed at every moment, the runner's position, size and pose in
   every frame, every stride and foot strike at the same moment, the floodlight,
   stands and lane lines in the same places, and the same clip length. No new
   objects, no text.
   ```

3. **Run a three-model shoot-out** ([Run a same-input shoot-out](https://learn.scenario.com/browse)). Same clip, same look prompt, lowest resolution: Gemini Omni 1.1 Flash Edit at 360p, Luma Ray 3.2 Edit at 540p, FLUX.3 Edit Video. Quote each run first ([Quote before you run](https://learn.scenario.com/browse)). All three returned within 3 minutes.

   ```prompt
   Restyle the whole video as hand-drawn 2D animation for a sportswear campaign:
   confident black ink outlines with varying line weight, flat gouache color in
   two or three tones per shape, visible paper grain, the night sky as a painted
   blue wash, the floodlight as a bright painted glow, rain and spray as white
   ink flecks. The runner keeps her face, dark ponytail, black top and black
   shorts; her shoes stay molten orange with white laces and a pale translucent
   sole with a dark line.
   ```

   Then the keep-list.

   ![Four frames at the same moment: the photoreal source, an ink version with a blue track and a yellow sky wash, an ink version inside a torn paper edge, and a version with a brown track and a new floodlight](https://ufgc0c9mhl4ueq76.public.blob.vercel-storage.com/academy/bb6b611284ef16301ecacf069937ec069b3430d7154f8be945d29390581164a9.webp "Frame 90. Top: source, Gemini Omni 1.1 Flash Edit. Bottom: FLUX.3 Edit Video, Luma Ray 3.2 Edit.")

4. **Judge the shoot-out on frames and on the camera.** Luma replaced the stands, turned the track brown and added a floodlight: rejected. FLUX kept the layout but framed every frame in torn paper. Gemini applied the strongest look and kept the pan, but painted the track blue and washed the sky yellow around the floodlight, which a style frame can fix: Gemini wins. Numbers under Check the result.

5. **Make a style frame** ([Approve the still first](https://learn.scenario.com/browse)). Export frame 0 and restyle it with GPT Image 2.5 Sunburst, naming what the shoot-out got wrong: track color, floodlight, border. It takes 33 seconds and a fraction of a video take's price ([Repair at the cheapest stage](https://learn.scenario.com/browse)).

   ```bash
   ffmpeg -i source.mp4 -frames:v 1 frame-0.png
   ```

   ```prompt
   Re-render this exact frame as a still from a hand-drawn 2D animation for a
   sportswear campaign. Use the image as a layout reference: keep the camera
   angle, the framing, the runner's position, size and pose, the stands, the
   tree line, the lane lines and the floodlight exactly where they are. Change
   only the rendering: confident black ink outlines with varying line weight,
   flat gouache color in two or three tones per shape, visible paper grain, the
   night sky as a painted deep blue wash. Keep the colors of the scene: the
   track stays dark wet charcoal grey with pale reflections, not blue; the
   floodlight stays one small bright white painted glow in the upper left
   corner, with no beam and no yellow wash; the stands stay dark grey. The
   runner keeps her face, dark ponytail, black top and black shorts; her shoes
   stay molten orange with white laces and a pale translucent sole with a dark
   line, and the small VIREO on the heel. Rain and spray are small white ink
   flecks. The drawing fills the whole frame edge to edge: no border, no paper
   edge, no frame. No text other than the heel mark, no new objects.
   ```

   ![Frame 0 of the source next to the style frame: the same runner and layout with ink outlines and grain, a charcoal track and a white floodlight](https://ufgc0c9mhl4ueq76.public.blob.vercel-storage.com/academy/8ff4c11e7ab24ef8114b7263bf0480b9f6b8c00a8bbbc77c830fe3a767340ae8.webp "Source frame 0 and the style frame.")

6. **Run final A: the ink look.** **Create** > **Videos**, **Model** > **Edit** tab > Gemini Omni 1.1 Flash Edit. Load the source as the video and the style frame in **Reference Images**. **Resolution** 720p. Take 1 (1 minute 55 seconds) still drew a paper border and turned the floodlight into a blank sign, so take 2 says "full bleed" and describes the lamp bank. Take 2, 1 minute 43 seconds:

   ```prompt
   Restyle the whole video as hand-drawn 2D animation for a sportswear campaign
   that matches the reference image: confident black ink outlines with varying
   line weight, flat gouache color in two or three tones per shape, a fine grain
   texture inside the image, the night sky as a painted deep blue wash, rain and
   spray as small white ink flecks. Full bleed: the picture runs to every edge
   of the frame, with no paper border, no torn edge and no white margin. Keep
   the colors of the scene: the track stays dark wet charcoal grey with pale
   reflections, not blue; the floodlight stays a bank of bright white lamps on a
   tall dark pole in the upper left, as in the source, with no beam and no
   yellow wash; the stands stay dark grey. The runner keeps her face, dark
   ponytail, black top and black shorts; her shoes stay molten orange with white
   laces and a pale translucent sole with a dark line.
   ```

   Then the keep-list.

7. **Run final B: change one thing** ([Edit one thing](https://learn.scenario.com/browse)). Same model, the source as the video, no reference image, **Resolution** 720p. 1 minute 36 seconds. As a comparison, the same prompt ran on Seedance 2.5 with the clip in **Reference Videos**, **Duration** Auto (follows the source clip) and **Generate Audio** off, starting with "Edit @video1.".

   ```prompt
   Change only the color of the runner's shoes: the uppers become deep cobalt
   blue instead of orange. The white laces, the pale translucent sole with its
   dark line, the shape of the shoe and the small VIREO on the heel stay exactly
   as they are. Everything else stays exactly as in the source: the runner, her
   face, hair and clothes, every stride, the camera move, the wet track, the
   stands, the floodlight, the light and the rain. No new objects, no text.
   ```

8. **Measure the camera, then pair the clips** ([Check by measurement](https://learn.scenario.com/browse)). Measure the horizontal shift between consecutive frames on two background strips beside the runner, add the steps, and compare the curve with the source's. Then bring every clip to one size and length, and stack them:

   ```python
   # per pair of consecutive frames (OpenCV, grayscale, background strip)
   (dx, dy), response = cv2.phaseCorrelate(prev_strip, next_strip, hann)
   pan += dx / width * 100   # cumulative pan, % of frame width
   ```

   ```bash
   ffmpeg -i final.mp4 -vf "scale=640:360,fps=24" -frames:v 120 -an final-640.mp4
   ffmpeg -i source-640.mp4 -i final-640.mp4 -filter_complex hstack -an side-by-side.mp4
   ```
:::

**With the Scenario MCP:** `model_run` on `model_google-omni-1-1-flash-edit` with `video`, `referenceImages: [style frame]` and `resolution: "720p"`; final B drops `referenceImages`.

For the Seedance comparison, `model_bytedance-seedance-2-5` with `referenceVideos: [clip]`, `duration: -1` (follow the source), `resolution: "720p"`, `generateAudio: false`. The model schema says editing is inferred from the prompt, which is why the prompt opens with "Edit @video1.".


## Check the result

:::check
**Accept when:** the pan curve follows the source within 3% of frame width at every frame; at matching frame times the runner stands in the same place and pose; the shoe keeps its laces, translucent sole and heel mark; the picture runs to every edge; nothing appears that the prompt did not ask for.
**Reject when:** a border or paper edge frames the picture; the pan runs ahead or behind; the stands, track or lights are rebuilt; the shoe changes design; the clip comes back shorter than the source.
:::

| Shoot-out | Gemini, 360p | FLUX.3 | Luma, 540p |
|---|---|---|---|
| Ink look | full | full | full |
| Pan at the last frame (source 27.3%) | 26.4% | 26.9% | 26.3% |
| Largest pan gap during the clip | 0.99% | 1.47% | 2.04% |
| Scene | track painted blue, yellow sky wash | torn-paper border on every frame | stands replaced, brown track, extra floodlight |

| Finals | Source | A, ink, Gemini | B, cobalt, Gemini | B, cobalt, Seedance |
|---|---|---|---|---|
| Frames | 120 | 120 | 120 | 113 |
| Pan at the last frame | 27.3% | 25.8% | 27.5% | not measured |
| Largest pan gap during the clip | | 2.07% | 0.50% | |
| Frame where half the pan is reached | 61 | 66 | 60 | |

![A line chart of the camera pan over the 5-second clip, measured frame by frame. The source pan rises from 0 to 27.3% of frame width. The colorway line sits on top of it and ends at 27.5%; the ink look runs slightly below in the second half and ends at 25.8%.](https://ufgc0c9mhl4ueq76.public.blob.vercel-storage.com/academy/3759f082eb433bce9731a629cb4f6f0104e64c3b0e74f922df8a6578ed01639f.webp "Measured pan: the colorway stays within 0.5% of the source, the ink look within 2.1%.")

Both Gemini finals pass. The ink look's camera runs a little slow in the middle (largest gap 2.07% of frame width, about 26 pixels at 1280) and the runner still hits the source poses at frames 70 and 119. The colorway is nearly frame-exact. The Seedance colorway came back 7 frames short, so its strides drift against the source: runner-up.

:::compare
![Final A take 1: the ink runner inside a cream paper border, the floodlight drawn as a blank sign](https://ufgc0c9mhl4ueq76.public.blob.vercel-storage.com/academy/9a753b289d3797b698e50b225b7c343442f893d7309ef2dc72934eff97a29107.webp "Take 1, rejected: paper border and a blank sign for a floodlight.")
![Final A take 2: the ink runner full bleed, the floodlight a bank of white lamps](https://ufgc0c9mhl4ueq76.public.blob.vercel-storage.com/academy/b29a975d8e0e01f447bd64806c3fb76a93c6d2b66bd43c6d781c03b4c543214c.webp "Take 2, kept: full bleed, lamp bank in place.")
![Source and final B side by side: same runner and stride, the shoe uppers cobalt blue instead of orange](https://ufgc0c9mhl4ueq76.public.blob.vercel-storage.com/academy/e4e9821ea7210c264204b139e8106e6908dcda95d2eecfb5689234772851c756.webp "Source and final B: only the shoe upper color changed.")
:::

Take 1 had the style frame and still added a border: "no border" was not enough once the look said "paper grain". Take 2 moved the grain inside the image and said "full bleed".

:::video https://ufgc0c9mhl4ueq76.public.blob.vercel-storage.com/academy/ebffce1ffa27ac5a86fd95fc54e5abd7eb02450a8d2e0b58c5c1d6d12eab4bdc.mp4
Source (left) and the cobalt colorway (right): Gemini Omni 1.1 Flash Edit, 720p. Only the shoe uppers changed.
:::

:::quiz Check yourself
? Two ink takes of frame 92. The brief fixes a full-bleed picture and the floodlight in its place. Which take passes?
![An ink frame of the runner on the wet track at night, the stands and floodlight behind her](https://ufgc0c9mhl4ueq76.public.blob.vercel-storage.com/academy/99244e1219e861e9ee7bb89f5f581ab30c0669398e0fad1ca0f4787a60083f28.webp "Take A")
![Another ink frame of the runner on the wet track at night, the stands and floodlight behind her](https://ufgc0c9mhl4ueq76.public.blob.vercel-storage.com/academy/34358cb7bf5bef516e807a1d2e2f41833708e7b9272a152bcb30d9819068f640.webp "Take B")
- [x] Take A: the picture runs to every edge and the lamp bank sits where the source has it
- [ ] Take B: the paper edge makes it read as hand-drawn, which the look asks for
- [ ] Both: the runner and the stride match, so the camera check decides
> Take B frames the picture in a paper border and loses the floodlight's lamps, two things the brief fixes. Take A came from the prompt that asked for full bleed and described the lamp bank.

? In the shoot-out, one model ends its pan close to the source but replaces the stands, turns the track brown and adds a floodlight. What do you do?
- [x] Reject it and go with a model that kept the set
- [ ] Keep it and repair the set with a style frame
- [ ] Lower the edit strength one step and run it again
> A rebuilt set fails the keep-list even when the camera matches. A run on another model costs less than a repair.
:::

## Make it repeatable

- **Restyle a whole sequence** ([Package it as a workflow or skill](https://learn.scenario.com/browse)). In the **Node Editor**: a **Video** node with the shots, a **Loop** over them (its **Input List** port), an **Image Generator** on GPT Image 2.5 Sunburst for each style frame, a **Video Generator** on Gemini Omni 1.1 Flash Edit, and an **Approval** after the first shot.
- **Keep one style frame per look** and reuse it as the reference for every shot's frame ([Lock a style anchor](https://learn.scenario.com/browse)).
- **Split the prompt into inputs:** the look, the keep-list, and the "Edit @video1." prefix for Seedance.
- **Keep the paired clips** for reviews and edits, and note the price per shot ([Keep a cost receipt](https://learn.scenario.com/browse)).


## Runs and time

| Step | Model | Runs | Kept | Wait |
|---|---|---|---|---|
| Source first frame, 2048x1152 | GPT Image 2.5 Sunburst | 1 | 1 | 45 s |
| Source clip, 5 s, 768P | Minimax H3 | 3 | 1 (take 3) | 2 min 36 s to 3 min 13 s |
| Source drafts | Seedance 2.5 | 2 | 0 | 1 min 23 s and 2 min 21 s |
| Shoot-out, 360p | Gemini Omni 1.1 Flash Edit | 1 | winner | 1 min 2 s |
| Shoot-out | FLUX.3 Edit Video | 1 | runner-up | 50 s |
| Shoot-out, 540p | Luma Ray 3.2 Edit | 1 | 0 | 2 min 55 s |
| Style frame, 1536x864 | GPT Image 2.5 Sunburst | 1 | 1 | 33 s |
| Final A, ink, 720p | Gemini Omni 1.1 Flash Edit | 2 | 1 (take 2) | 1 min 55 s and 1 min 43 s |
| Final B, cobalt, 720p | Gemini Omni 1.1 Flash Edit | 1 | 1 | 1 min 36 s |
| Final B, cobalt, 720p | Seedance 2.5 | 1 | runner-up | 2 min 43 s |
| Trim, measure, pair | ffmpeg, OpenCV | 0 | n/a | seconds |

About 10 minutes of waiting with the runs in parallel. The source takes and the shoot-out are most of the cost; once the model is chosen, a shot is one style frame and one final.

The price shows on the **Generate** button before you run.

## Variations

- **Product clip:** a turntable packshot restyled as a pencil sketch or a seasonal set. Put the product's shape, label position and colors in the keep-list.
- **Game footage:** a gameplay capture or a grey previs restyled into the key-art look.
- **Learning:** a recorded demo restyled into the course's illustration style.
- **One element only:** a colorway, a season, the sky. Use the model that changed least in your shoot-out and name the single change. See [Edit one thing](https://learn.scenario.com/browse).
- **A new performer, same moves:** see [Swap the actor, keep the performance](https://learn.scenario.com/playbooks/swap-the-actor-keep-the-performance.md).

## If it breaks

- **A border or paper edge appears.** Say "full bleed" and move texture words inside the image ("grain inside the image", not "paper grain").
- **A color or a light changes with the look.** Make a style frame that names the colors to keep, attach it, and add them to the prompt.
- **The look barely changes.** Move to the model with the strongest look in your shoot-out, and keep the style frame as the guide.
- **The pan runs slow or fast.** Use the model whose curve matched in the shoot-out; Luma had the largest gap here, 2.04% against 0.99% for Gemini.
- **The clip comes back shorter.** Reject it for a paired edit: the strides no longer land on the source frames.
- **The set is rebuilt.** Reject it; a run on another model costs less than a repair.

Source: https://learn.scenario.com/playbooks/restyle-footage-keep-the-motion
