cd /news/generative-ai/the-ai-zombie-trend-from-2-photos-pe… · home › topics › generative-ai › article
[ARTICLE · art-155908] src=discuss.huggingface.co ↗ pub= topic=generative-ai verified=true sentiment=↑ positive

The AI zombie trend from 2 photos: per-job prompt assembly, role-drift fixes, and a 5-model reference-to-video bench

A developer building the Prismojo reference-to-video pipeline documented that Vidu Q4 produced a correct zombie-transformation clip in 4 of 4 attempts, while Kling O3 standard succeeded in 1 of 6, Wan 2.7 in 0 of 1, and Seedance 2.0 Mini rejected real-person reference photos outright, in a five-model bench using two input photos. The developer reported that a fixed prompt failed four ways — role drift, wrong scale, prop misassignment and dead time — and fixed them with capitalized role names (THE ZOMBIE / THE SURVIVOR), explicit real-world proportions for mixed species, assigning the flashlight to the survivor, and timed beats that place the hug at about 45% of the clip with the match cut 1–2 s later. Vidu Q4 was the most reliable model but slow at roughly 5–7 minutes per 5-second clip, so jobs run in the background, and the developer noted some strong models refuse real-person photos on policy grounds.

read4 min views3 publishedOct 23, 2026

The “zombie love story” format is everywhere on TikTok and Reels: one person walks out of fog as a zombie, the other recognises them, and on the hug there is a hard match cut to a warm field where both are healthy again. It looks like a template, but getting it reliably from two arbitrary photos took real work. Here is the prompt structure, the failure modes, and a small model bench.

Disclosure: I build Prismojo, which runs this pipeline. Everything below also works with your own API keys.

Two inputs. Slot A becomes the zombie, Slot B is the survivor. One subject per photo.

Subject detection. AWS Rekognition labels + faces. A face means “person”; otherwise the top animal label ≥70% gives a noun (“dog”, “cat”…).

Per-job prompt. Each subject is named, roles are cast once, and the beats are timed to the clip length.

Reference-to-video. Both photos are passed as references. Output is a 9:16 MP4 with no audio; users add the trending sound when posting.

On a dog (A) + person (B) pair, our first fixed prompt broke in four ways:

Role drift: the model’s prior is “zombies are people”, so the person became the zombie.

Scale: the zombie pet came out giant.

Props: the flashlight jumped to the zombie, or was “held” by the dog.

Dead time: 10–15 s clips mostly stood still.

What fixed it: capitalised role names (THE ZOMBIE / THE SURVIVOR) instead of pronouns; explicit real-world proportions for mixed species; the light always belongs to the survivor; and timed beats. The hug lands at about 45% of the clip and the cut 1–2 s later, so the match cut has a pose to match.

Replace Image 1 / Image 2 with your model’s reference syntax:

Cast — exactly two characters. THE ZOMBIE is the person from Image 1, as a zombie: the same face, hair, body and clothing as in Image 1, with pale ash-grey skin, faint dark veins, sunken milky-white eyes and dusty, torn clothes. THE SURVIVOR is the person from Image 2, looking exactly as in Image 2 and healthy the whole time. Never swap or merge their roles, faces or bodies.
0–4 s: a cold, desaturated ruined street with fog and drifting ash. THE SURVIVOR stands in the foreground, side-on, face visible, holding a lit flashlight. THE ZOMBIE appears out of the fog and moves steadily toward THE SURVIVOR, holding nothing. THE SURVIVOR recognises them and slowly lowers the flashlight; at 4 s they embrace.
At 5 s, hard match cut on the hug to a warm golden-hour wheat field: the same two in the same hug, and only now THE ZOMBIE is healthy again, exactly as in Image 1; both happy.
Single smooth camera, continuous motion. No other people, no text, no blood, wounds, weapons, biting or violence. Cinematic, not graphic. Vertical 9:16, no audio.

For a pet zombie, use: “…the dog from Image 1, as a zombie dog: still exactly that dog on four legs, same breed and markings, at its real-life size. It never gets a human body or clothes.” That last sentence fixed a “dog-headed person” output.

The “no blood / weapons / biting” line matters: without it, several providers’ filters reject the job.

Model Accepts real faces Zombie look + story correct
Vidu Q4 yes 4/4
Kling O3 standard yes 1/6 (no zombie effect or swapped roles)
Hailuo H3 yes 1/1, clothing/hair drift
Wan 2.7 yes 0/1 (ending stayed zombie)
Seedance 2.0 Mini rejected real-person references —

Tiny samples, so directional only. The surprise was the policy side: some strong models refuse real-person photos outright. Vidu was the most reliable but slow (about 5–7 min per 5 s clip), so jobs run in the background.

Sharp, front-facing photos, one subject each, no sunglasses.

Match the lighting of both photos; indoor + outdoor breaks the match cut.

Run a short 4–5 s draft first to check photo order.

Add sound when posting: a beat that drops as the flashlight lowers sells the cut.

If you’d rather not wire up APIs, the hosted version is at prismojo.com/features/ai-zombie.

Which photo becomes the zombie? Image 1 / Slot A. Swap them to flip roles.

Pets? Yes, with the species-aware line above. They come out dusty, not gory.

Why no audio? Trend audio is licensed per platform, so adding it at post time is safer.

Open question: has anyone kept identity stable across a hard cut on an open-weight model (Wan, HunyuanVideo)? I’d love to compare prompts.

── more in #generative-ai 4 stories · sorted by recency
── more on @prismojo 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/the-ai-zombie-trend-…] indexed:0 read:4min 2026-10-23 · —