GENERATIVE TRIBUTE VIDEO
Generative AI
Global FMCG Brand
Media.Monks
Pipeline & HITL console
A WhatsApp campaign that generates a whole tribute video from scratch. A person nominates someone they want to honour; the system writes a bespoke poem about them, animates their own photos into motion, voices it, and assembles a finished film - and a human approves every stage before it ships.
Project Overview
The brand wanted emotion, not novelty - a tribute to everyday homemakers, personalised to each participant at national scale. Every video is unique: a unique poem, unique faces, a unique voice read. You cannot pre-produce this. It has to be manufactured on demand, and it has to be good enough to carry a brand's emotional message without embarrassing anyone.
The Challenge
- 01 AI writing brand copy is a liability - free generation produces off-brand, unsafe, or just weird output
- 02 Animating real faces is uncanny by default - photo-to-video models over-move and distort
- 03 Generation is slow - minutes of work per user, which cannot block a chat
- 04 Someone has to be accountable - no brand ships fully autonomous generative video, but review cannot become a bottleneck
The Approach
A template the model fills, not a blank page
The poem is a fixed creative skeleton with one personalised stanza slot. Claude only fills the personalised part, under hard guardrails - no religious, fate, political, or regional-stereotype references, and no clichéd tropes. The creative stays consistent; the personalisation is real; brand safety is enforced in the prompt, not hoped for.
Constrained motion, on purpose
Photo-to-video runs on a Kling model via fal.ai. The quality trick is almost entirely in the negative prompt - banning walking, large positional shifts, looping motion, and creepy or sad expressions, asking only for subtle, one-directional movement. The result feels like a photo gently coming alive, not a hallucination.
A voice that sounds human
The poem is rewritten into a voiceover script with SSML - timed pauses and phoneme hints - then voiced with ElevenLabs. That shaping is the difference between a robotic read and a broadcast-usable voiceover.
Technical Architecture
Backend & Infrastructure
- FastAPI (async), MongoDB
- ReArq + Redis workers - every heavy step runs off the webhook
- QikChat WhatsApp Business API
- Next.js approval console (React Query)
AI Services
- Anthropic Claude - guardrailed script
- fal.ai Kling - photo-to-video
- ElevenLabs - multilingual voiceover
- Background face verification
The Human Approval Console
Generation never auto-sends. A reviewer works each session through a staged approval funnel in a Next.js console - approve or regenerate the script, approve the images, approve the AI clips, then approve and send the final video, or reject the workflow. Every approve action has a regenerate twin, so the reviewer is a curator, not a bottleneck. That turns "AI made a video" into "a human approved a video the AI drafted."
Key Results
Unique
Gated
Lessons Learned
At brand scale, the bottleneck for generative AI is trust, not capability. The model can do the creative in minutes; the business needs a way to be accountable for the output.
The winning pattern was the same everywhere: constrain the model, then put a human on the approve button - and make regeneration one click so the human stays a curator. That is how generative AI becomes something you can put a brand's name on.