Version 1 · 15 November 2026
The FMF Benchmark: can a model hold a job on a show?
Version 1, 15 November 2026. Built from the making of episode 1 of Friday Morning Funeral, a 21-minute animated sketch show in one felt-puppet style. Every result below is from a job we ran and paid for; a cell we did not run says untested.
What we are looking for
Endurance, above all. One good clip proves little. A show needs the same characters, in the same style, with the same details, across hundreds of shots and several rounds of review. So the headline number here is not how good a model's best clip is. It is how much of a real shot list a model gets through, and how much of that is still in the cut after a person has watched it.
Second: movement and character detail. What kinds of motion a model can add to a drawing without changing who is in it. This is the bar for a premium animated look: living characters whose design never moves.
How a test is set
- Our drawing is the first frame and the last frame. A hold uses the same drawing at both ends (a loop). A move uses drawing A and drawing B. The model fills the time between. A model that cannot take a last frame is tested from the first frame only and marked so.
- Same drawings, same instruction, same day for every model.
- 720p, 16:9, 3 to 5 seconds (the model's own allowed lengths), no sound unless the test is speech.
- Each instruction carries the same rules: no new characters or objects, no text, eyes stay open, every flower stays on its head and in frame.
- No retries inside a score. A second attempt is recorded as a second job.
- A refusal is recorded and not worked round.
The test shots
Each is a shot the pilot needed. A model is run on all of them; the hold and move tests are run on a list of at least twenty set-ups, not on one.
| ID | Test | The shot | What breaks it |
|---|---|---|---|
| H1 | Close hold | The host in close-up, dark bead eyes: breathe, stay alive, change nothing | Blinks that render as glowing lids; a drifting head |
| H2 | Medium hold | A character at a desk with a monitor behind, hands down | A gesture when told to hold; sparks and light from the screen |
| H3 | Crowd hold | The club audience, a dozen or more heads, a flower on each | People added or lost; flowers lost |
| M1 | Pose change | Hands down to hands up, same framing | Light appearing as the hands rise; overshoot past the end drawing |
| M2 | Camera move | A crane move from a high wide shot to a medium shot of the same stage | Identity change on the way in; ending near, not on, the drawing |
| M3 | Travel | Marchers seen from behind, the roadside passing | People changing between frames; signs garbling |
| A1 | Entrance | The host walks on from the wings. Variant: he is only in the last frame | Skin, clothes or flower wrong from the first step |
| A2 | Violent beat | A man shakes, screams and is snapped out of frame; the crowd behind holds still | The crowd swelling or moving; the face warping |
| A3 | Rise | At night a figure floats from the lawn to an upstairs window; highlights in the eyes | Scale against the house; added light |
| A4 | Vehicle | A car pulls up and a figure gets out; a car peels away | Driving backwards; an empty car; flicker in the corners |
| L1 | Lettering | A protest sign and a screen with words, in a moving shot | The words |
| S1 | Speak | A given line, on a felt character (models with sound) | Wrong words; lips off; and whether a person can bear to watch it |
| E1 | Edit a drawing | Mouth only; eyes closed only; swap one prop; look left | Anything else changing; left and right; lettering |
| R1 | Refusals | Slapstick (a child kicks an adult), a weapon as a prop, adult jokes | Recorded as they are |
What is measured
Computed on every frame, by the show's own tools:
| Measure | How | Pass line used on the pilot |
|---|---|---|
| Ends on our drawing | Mean pixel difference between the last frame and the target drawing | 2 to 3 is compression noise; a clip well above that is rejected as "does not end on our drawing" |
| Head drift | Phase correlation on the face against our drawing, per frame; mean and maximum in pixels at 1280 wide | Reported; under about 2 px is steady, up to about 14 px is usable only with a mouth that follows the head |
| Mid-clip wander | Distance of each frame from the line between the first and last frame | Rejected as "moves too much mid-clip" |
| Added things | Share of each frame clearly brighter or more coloured than the same spot in the first frame | A breathing character scores near zero; a sparkle scores high; failing clips are dropped |
| Identity and the mark | By eye on a frame sheet: same person, same clothes, same number of hands, flower on the head and in frame | Any change fails |
| Lettering | By eye: every drawn word read | Any change fails |
| Sudden jumps | Frame-to-frame jumps counted inside shots across a finished sketch | Reported per sketch |
Endurance, in five levels:
| Level | Question | Number |
|---|---|---|
| E1 Within a clip | Does the detail hold from the first second to the last? | Drift and added things, per second |
| E2 Across a shot list | Of every hold and move an episode needs, how many pass the computed checks? | Pass rate over the list |
| E3 Across review | Of the clips that passed, how many are still in the cut after a person watched at speed? | Survival rate |
| E4 Across runs | The same job five times: how different are the results? | Spread of drift and end-frame difference |
| E5 Without anchors | Chained from its own last frame, how many clips before the character fails the identity check? | Clips survived |
Production yield = E2 × E3. That is the share of an episode's moving shots a model delivers. We call 90% or more holds a show, 70% or more holds with a checker, 50% or more needs a fallback for every shot, and less than that tests only.
Price is dollars per clip that reaches the cut: the price of every job, rejects included, divided by the clips that survive.
The scoring sheet
One sheet per model per run.
Model: Version / date: Run by:
Input accepted: first frame [ ] last frame [ ] reference images [ ] sound [ ]
Lengths allowed: Minimum billed: Price per second:
Test Jobs Ends on drawing Head drift mean/max Mid-clip Added things Identity+mark Verdict Note (name the failure)
H1
H2 (list of 20+)
H3
M1 (list of 20+)
M2
M3
A1 / A1 variant
A2
A3
A4
L1
S1
E1 mouth / blink / prop / look left
R1 (each refusal, in the model's own words)
E2 pass rate over the list: E3 survival after review: Production yield:
E4 spread over five runs: E5 clips chained:
Dollars per surviving clip:
Named failures, each with its clip:
Results so far (episode 1, 10 to 15 November 2026)
Video models: holds and moves over a real shot list (H1, H2, M1; levels E2 and E3)
From the log of every hold and pose change of cut 4, and the clips later removed after review.
| Model | Jobs scored | Passed the computed checks | Failed: moved too much mid-clip | Failed: did not end on our drawing | E2 | Passed clips later dropped for added lights or objects | E3 | Production yield | Price per job | Dollars per passed job |
|---|---|---|---|---|---|---|---|---|---|---|
| google/veo-3.1-lite | 122 | 83 | 28 | 11 | 68% | 21 of 80 | 74% | about 50% | $0.12 (4 s) | $0.18 |
| kwaivgi/kling-v3.0-std | 29 | 23 | 1 | 5 | 79% | 1 of 23 | 96% | about 76% | $0.42 (bills 5 s minimum) | $0.53 |
Thirteen more Kling jobs were refused by the account's limit on jobs in flight, not by the model; they are not scored. Five dropped clips could not be matched to a model. By the yield bands above: Kling 3.0 standard holds with a checker; Veo 3.1 Lite needs a fallback for every shot.
Named failures:
- Veo 3.1 Lite: a character told to hold gestures anyway (most of its mid-clip failures); sparkles, specks and light over dark screens and when hands rise.
- Kling 3.0 standard: its blink on dark bead eyes renders as glowing yellow lids (four host loops rejected on the first try; clean when told to keep the eyes open). Its picture sits further from the source on dark, detailed drawings, which shows when cutting between the clip and the drawing.
- One set of living plates for a desk character was switched off in a later cut because the face shook under a drawn mouth (model not recorded).
Video models: measured side by side (scorecard 003)
One character, same drawings, same day. Head drift in pixels at 1280 wide, mean / max.
| Model | Hold: drift | Hold: last frame vs target | Move: drift | Move: last frame vs target | Price per clip |
|---|---|---|---|---|---|
| kwaivgi/kling-v3.0-std | 0.7 / 2.0 | 2.3 | 1.7 / 6.5 | 2.3 | $0.42 |
| google/veo-3.1-lite | 3.2 / 13.6 | 2.1 | 0.9 / 3.2 | 5.6 (overshoots) | $0.12 |
| alibaba/wan-3.0 | 5.6 / 11.7 | 2.9 | 2.8 / 15.6 | 2.9 | $0.43 |
None of the three changed the character, lost the flower or added an object in these six clips.
Video models: by test
| Test | veo-3.1-lite | kling-v3.0-std | seedance-2.0 | wan-3.0 | seedance-2.0-fast | tbc/mischief-1 | grok-imagine-video-1.5-lite |
|---|---|---|---|---|---|---|---|
| One drawn frame, one action, no last frame (scorecard 001) | Pass | Pass (the hand crosses the face) | untested | Fail: moved the flower | Fail: pushed in until the flower left the frame | Pass, cheapest ($0.05 for 5 s) | Pass; the face drifts a little |
| H1 to H2, M1 over a list | 68% pass, 74% survive | 79% pass, 96% survive | One loop (a laughing host), clean on the frame sheet; not measured | Side-by-side only | untested | untested with a last frame | untested |
| H3 crowd | A waiting audience, alive, made twice for two cuts; in the cut | untested | untested | untested | untested | untested | untested |
| M2 camera move between two framings | untested | untested | Pass (one shot, in the cut) | untested | untested | untested | untested |
| M3 travel | untested | untested | Two shots in the cut; the one from behind travels well, the one from the front only a little | untested | untested | untested | untested |
| A1 entrance, character in the first frame | untested | untested | Pass (one shot, in the cut) | untested | untested | untested | untested |
| A1 variant, character only in the last frame | Fail: the host turned pale | Fail: the host turned pale | untested | untested | untested | untested | untested |
| A2 violent beat | untested | untested | Pass (scream and snap, two shots, in the cut) | untested | untested | untested | untested |
| A3 rise | untested | untested | Pass (two shots, in the cut; one made twice because our own end drawing was wrong) | untested | untested | untested | untested |
| A4 vehicle | A car pulling up: one clip, in the cut | untested | Getting out of the car: pass (one shot, in the cut). Peeling away: untested | untested | untested | untested | untested |
| Free-running from one frame over a whole sketch | untested | untested | untested | untested | untested | Fail: 76 clips; people through a gate, flowers on shoulders, a character who became someone else; 418 sudden jumps inside shots in that sketch against 29 and 28 in the two sketches without it | untested |
| S1 speak | Says the line exactly, lips match; judged uncanny on a felt face and not used | no sound used | untested | untested | untested | no sound | untested |
| Price per second | $0.03 ($0.05 with sound) | $0.084, 5 s minimum | about $0.16 | $0.085 | $0.091 | $0.01 | $0.032 |
Also run once each: kwaivgi/kling-v3.0-pro (one clip from one frame: real gestures, felt held, the face drifted mid-clip in a wide frame with a small face; $0.56) and google/gemini-omni-1.2-flash (S1: line exact, lips match; $0.28 for 4 s).
L1 lettering: every video model we animated lettering with garbled it (models not recorded per clip). The show's rule since: lettering is never inside a clip.
R1 refusals: a video model refused a child kicking an adult (model not recorded); the kick is drawings. A voice service refused to design a child's voice.
Seedance 2.0's shots were checked on frame sheets, not with the drift tools. Its row is eleven shots in twelve jobs, too few for a yield figure.
Image models (E1 of the test list)
| Test | openai gpt-image-2 (its own API) | google/gemini-nano-banana-2.1 | openai/gpt-5.4-image-2 through OpenRouter | meta muse-image-1.0 |
|---|---|---|---|---|
| Drawings made for the episode | 612 | 376 | 1 | untested |
| New character in the house style from one reference | Works | Works | untested | untested |
| Change the mouth or eyes only | Works; an edit to a tiny figure can silently do nothing | Works; changes only what it is told | Redraws and reframes; returns a square | untested |
| Keeps lettering through an edit | untested | Yes | untested | untested |
| Look left / look right | untested | Not reliable | Not reliable | untested |
| Named failures | A three-handed character | An edit that also moved an eyebrow; a "closed mouth" drawn as a lump that read as a nose | — | — |
| Look, by the creator's eye | Preferred | "Worse" than the first sets | — | — |
| Price per drawing | $0.04 to $0.18 by quality | $0.04 | $0.24 | $0.01 (listed) |
One lettering failure not attributed to a model: an edit instruction ending "…reads exactly: X. Everything else stays the same" came back with the instruction written into the picture.
Levels not yet run
E1 per-second curves, E4 (five runs of one job) and E5 (chains without anchors) have not been run on any model. H3, M2, M3, A1 to A4 have been run on one or two models each, as production shots. An earlier clip of the car peeling away flickered in the corners and was replaced by a still plate (model not recorded).
What works when animating a character, and what does not
From seven cuts of one episode.
Holds up - Breathing, weight shifts, hair and petals moving, a room alive behind a still character. - One clear movement between two of our drawings, three to five seconds long. - A camera move between two framings of the same set when both framings are our drawings. - Background travel behind figures seen from behind. - A violent, short beat in close-up (a shake, a scream) when it ends on our drawing. - Highlights in dark eyes in a night shot, when asked for.
Breaks - Blinks on dark bead eyes: glowing lids. Tell the model to keep the eyes open; draw the blink. - Raised hands and screens: light, sparks and specks appear around them. - "Hold": cheaper models gesture anyway. - Small faces in wide frames: the face drifts. Faces also stretch when a model opens a mouth or lifts a brow. - A character who is not in the first frame: arrives with the wrong skin or clothes. Generate the exit and play it backwards. - The mark on the head: pushed out of frame by a push-in, or moved, when only a first frame is given. - A rule about the mark ("every flower stays on its head") makes a model add flowers to a shot with no characters in it. - Lettering, always. - Scale between shots: the same prop at two sizes in two clips. - Crowds in a burst of action: the crowd swells. - Talking: lips can match and the result is still wrong for a stylised face. - Anything longer than a few seconds, or without an end frame.
So the premium bar, as a method: drawn keys; a model only between two keys; drawn mouths and blinks on a locked face; every clip measured, vetted for added things and looked at; a still wherever a clip fails.
Running a new model through it
What we need from a lab: API access; first-frame and last-frame input; 720p at 16:9; lengths of 3 to 5 seconds; a no-sound option; the price per second and any minimum billed length; content rules in writing.
What happens: 1. The model is added to the clips file with its price. Nothing else changes: same drawings, same instructions. 2. The whole battery is run in one day beside at least two models from the table above, as controls. 3. Every clip is measured (end frame, head drift, mid-clip wander, added things) and laid out on frame sheets. 4. A person reviews at speed and marks what would survive a cut. 5. E4 and E5 are run on H1 and M1. 6. The sheet is written, with every clip, pass or fail, and each failure named. 7. The lab sees it first. It is published with the next episode only by agreement; a model that passes is used on screen and credited.
What a lab gets that its own tests do not give: a shot list from a show that ships, failures named with the clip, and a yield number that a producer can budget from.
Limits of version 1
- One style (felt puppets with bead eyes) and one show. A cel or anime style needs its own run; in a one-frame test in an anime style, four of six models kept the character.
- Sample sizes are uneven: 122 jobs for one model, one for another.
- The review that sets E3 was one person's notes on seven cuts. The reviewer for the computed checks worked from frame sheets and could not watch at speed.
- Prices are what we paid through one reseller in November 2026.