Friday Morning Funeral

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

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:

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