Back to the lesson and its film

Animate a still image, as a loop or a one-shot

Bring a feature-animation still to life with small controlled motion, and choose between a clean loop and a one-shot by measuring both.

Run it in ScenarioGPT Image 2.5 Sunburst Minimax H3

On this page8 sections

A 5-second "living illustration" from one feature-animation still, and the numbers to choose between a clean loop and a one-shot. For film key art, web headers, social posts and lesson openers.

The loop take: Minimax H3, first and last frame set to the same still, 5 seconds.

The still shows Isa and Master Oren in the Quillfern glass workshop, the cast from Storyboard from a script.

The brief

FieldBrief
GoalA 5-second living illustration of one film still
MotionSmall and calm: hanging lanterns sway, a polishing cloth circles, the blowpipe glows, the furnace flickers, dust in the light; locked camera
Format16:9, 768p, no sound
FixedComposition, characters, the lantern with its three brass bands, the painterly texture, no new objects
May varyHow far each small motion goes
Accept whenNo morphing; faces and hands hold; the texture stays; for a loop, no visible jump when the clip repeats

Approach

  1. 1Make the stillGPT Image 2.5 Sunburst, cast and prop sheets
  2. 2Write the motionSmall motions, locked camera, no new objects
  3. 3Loop takeMinimax H3, first and last frame
  4. 4One-shot takeMinimax H3, first frame only
  5. 5Measure and watchSeam and motion RMSE, three plays

Image-to-video models handle small motion well when the image already holds everything. Most failures come from asking for too much: new objects, a camera move, a character leaving the frame. List a few small movements, lock the camera, forbid new objects.

For a loop, set the same image as First Frame and Last Frame (Pin the first and last frame): the clip must end where it began. The playbook runs one constrained take and one free take and compares them. See First and last frame.

  • Model used: Minimax H3, the default video model in Create > Videos and the top pick for animating a still in the October 2026 recommendations, as of October 2026. It always returns a soundtrack; strip it if the brief says no sound.
  • Runner-up: Seedance 2.5, run as a loop at 480p on the same still and prompt (see the measurements below).

Steps

  1. Make or approve the still. Approve the still first: fixes cost less on the image than on the clip. Use a version without text, since lettering warps when animated. This still was made with GPT Image 2.5 Sunburst at 2048x1152, with the cast sheet and the prop sheet in Reference Images, two outputs; the first had the clearer staging. The video keeps its 16:9 shape: 1344x768 at 768P.

    The source still: Isa polishing the glowing amber lantern at the workbench while Master Oren holds a blowpipe at the furnace, colored glass lanterns hanging from the beams
    Source still, GPT Image 2.5 Sunburst with the cast and prop sheets.
  2. Write the motion prompt. List each small motion, then what must not change:

    Prompt
    A gentle living-illustration loop. The camera stays perfectly still. The
    small glass lanterns hanging from the ceiling beams sway slowly on their
    chains. Isa's cloth makes two small slow circles on the amber lantern and
    lifts; Master Oren turns the blowpipe a little in his hands and the glow
    on its tip pulses. The furnace light flickers softly. Dust motes drift
    through the warm light. Everything returns to exactly the opening pose at
    the end. Keep the painterly 3D look and textures; no new objects, no
    text. Soft workshop ambience only, no music, no speech.
    
  3. Run the loop take. Create > Videos, Model Minimax H3. First Frame and Last Frame: the same still. Duration 5 s, Resolution 768P. The price shows on the Generate button before you run.

  4. Run the one-shot take. Same prompt and settings, First Frame only; it costs the same as the loop take. Skip it once you know which behavior you want.

  5. Measure the seam and the motion (Check by measurement). Compare the first and last frame of each take, then consecutive frames through the clip:

    Shell
    ffmpeg -i take.mp4 -vf "select=eq(n\,0)" -frames:v 1 first.png
    ffmpeg -sseof -0.05 -i take.mp4 -update 1 -frames:v 1 last.png
    magick compare -metric RMSE first.png last.png null:
    
  6. Watch it repeat. Loop the clip three times and watch the restart. Numbers give the size of the jump; your eye tells you whether it shows.

With the Scenario MCP: model_run on model_minimax-h3 with firstFrameImage and lastFrameImage set to the same asset id for the loop, or firstFrameImage alone for the one-shot; duration: 5, resolution: "768P". Quote with dry_run: true before the run (Quote before you run).

Check the result

Check before you accept
Accept when

the camera does not move; only the listed elements move; faces, hands and the lantern keep their shape; the painterly texture holds; for a loop, the restart is not visible when played three times in a row.

Reject when

objects or animals appear; a hand gains or loses fingers during the polishing; the lantern loses or gains a band; the loop visibly jumps.

Measure (RMSE, lower is closer)Loop take (first + last frame)One-shot (first frame only)Seedance 2.5 loop (runner-up, 480p)
First frame vs last frame2.4%8.0%2.0%
Change between consecutive frames, averaged2.6%2.4%1.5%
Reads asno visible seam, as lively as the one-shotlively, clear jump at restartclosed seam, calmer and softer
First and last frame of the loop take side by side, nearly identical
Loop take: first frame (left) and last frame (right). The seam is closed.

With Minimax H3, the loop constraint closed the seam (2.4% against 8.0%) without calming the motion: both takes move about as much. Faces, hands and the three-band lantern held in both. The Seedance 2.5 loop closed the seam as well but moved less, at a lower resolution and with a softer image.

How to choose:

  • Clean loop (website header, e-book page, display screen): first and last frame. With Minimax H3 it costs no liveliness.
  • One-shot (trailer cut, social post that plays once): first frame only, no promise of returning to the start.
  • Very calm loop: compare a second model on the same still; here Seedance 2.5 moved less.
The one-shot take: first frame only. Similar motion, no return to the start.
Check yourself2 questions

1You need a website header animation that plays on repeat with no visible jump. Which setup do you run?

Answer: C. A clean loop must end where it began. In this run the first and last frame take closed the seam; the first-frame-only take jumped at the restart.

2Two takes of the workshop still, both paused at 4 seconds. The brief asks for small motion, a locked camera and no new objects. Which take ships?

The workshop at 4 seconds: a gray cat sits on the workbench and Isa holds the lantern up beside Master Oren
Take A
The workshop at 4 seconds, framed as in the still: Isa polishes the lantern while Master Oren holds the blowpipe
Take B

Answer: B. Objects that appear are on the Reject list. Take A came from a prompt that asked for a push-in, a cat and moths; If it breaks says to remove anything that implies new content.

Make it repeatable

  • Animate a whole set of stills. In the Node Editor: an Image node with the stills, a Loop over them (its Input List port), and a Video Generator on Minimax H3 with each still wired to both First Frame and Last Frame, the motion prompt in a fixed Text node. Add an Approval node after the first item to check the motion style before the batch runs.
  • Keep a motion prompt per art style. The small motions change per image; the frame ("camera stays perfectly still", "keep the painterly 3D look and textures; no new objects, no text") stays.
  • Add sound later if needed, with Sound effects and foley.
  • Reuse the clips. Both takes appear as shots in the trailer of Score, sound effects and mix.

Runs and time

StepModelRunsWait
Source still, 2 outputsGPT Image 2.5 Sunburst1about 47 s
Loop take, 5 s, 768PMinimax H31about 2 min 40 s
One-shot take, 5 s, 768PMinimax H31about 2 min 45 s, in parallel
Runner-up loop, 5 s, 480pSeedance 2.51about 3 min, in parallel
Measurementsffmpeg, ImageMagick0seconds

About 4 minutes in all, with the takes in parallel. The video takes are almost all of the cost, each several times the still; once you know which behavior you want, run one take.

The price shows on the Generate button before you run; with the Scenario MCP, ask for a dry-run quote.

Variations

  • Product image: steam from a cup, a light sweep across a label; lock the camera and forbid any change to the label.
  • For compositing: animate the subject alone on a plain or green background, then key it.
  • Learning: a diagram where only the arrows or wind lines move,, as a lesson opener.
  • Games: a menu background with drifting clouds and a flickering lantern, as a loop.
  • Social: a 9:16 crop animated as a one-shot, title added in the edit.

If it breaks

  • Things appear that were not in the image. Remove anything that implies new content ("a cat jumps up"), and keep "no new objects".
  • The camera drifts. Put "The camera stays perfectly still" in the first two sentences.
  • Hands deform during the action. Ask for smaller hand motion ("two small slow circles and lifts") or choose a still where hands rest on a surface.
  • The style turns smooth or plastic. Name the look to keep ("keep the painterly 3D look and textures").
  • Sound you did not ask for. Minimax H3 always returns audio; strip it in the edit with ffmpeg -an.
CoursesLessonsBrowseMy learning