My Own Funeral
WinnerGenHQ · Give Your Character a Voice
In 1987 a doctor gives Reverend Otis Freeman three months, so he preaches his own funeral while he is still around to enjoy it. On Thanksgiving night 2005, his family still plays the church tape.
Only Otis speaks, in a voice designed from a paragraph of description. The tape he is on and the television it plays on are both written in code.
Doctor gave me three months! So I’m preaching my own funeral, church, because I have heard Deacon Brown preach! Don’t you cry for me. I know where I’m going. I just can’t come back and tell you about it!
Casting
Midjourney V8.2, Seedream 5.0 Pro
Otis had to look like a man nothing could scare. He is not old and he is not visibly ill, because the words carry the diagnosis.
The church came from four reference videos of late-eighties services, with their red-carpeted platforms, carved pulpits, robed choirs and hot tungsten light. Midjourney V8.2 drew the casting and the sets, and Seedream 5.0 Pro locked them into keyframes. The tape opens over the congregation’s Sunday hats, where the church’s own camera stood on its tripod.
The 2005 house is a brick ranch on Thanksgiving night, lit by the screen. The family is seen once, on the sofa, and never speaks.




Voice
ElevenLabs Voice Design, Eleven v4
A 66-year-old Black American man from Mississippi, a country preacher. Low, smoky, resonant baritone, full of power and warmth, with a gravelly rasp, a deep chuckle, and a commanding pulpit cadence that rises and rolls fast when he preaches. Southern drawl. Recorded close on a church microphone, no music.
Out of a TV
- Voice as heard
- Added by the chain
- Removed by the chain
Every line is spoken on Eleven v4 in that designed voice. The take in the film comes from a steadier second set, recorded because in the first pick “Don’t you cry for me” fell too far after the Deacon Brown line.
Then the line goes where the sound in that church would have gone. It plays through the PA into the sanctuary, into the camcorder’s microphone and onto the tape’s linear track, and out of a small TV speaker into a carpeted den.
- church PA
- a sanctuary with a 1.9 s tail
- VHS linear track
- 100 Hz to 8 kHz, AGC, wow and flutter, hiss
- TV speaker
- 180 Hz to 6.5 kHz, a cabinet resonance at 950 Hz
- the den
- carpeted, a 0.35 s tail
Blocking
three.js
Before any video, the whole fifteen seconds was blocked in three.js as a grey-box and timed to the voice take.
The church camera has an operator. His servo zoom runs from 50 to 135 mm at an uneven speed, with a pause, and his pans follow Otis a beat late and overshoot.
Once the film was finished, the blocking was matched back to it frame by frame, with the TV’s corners within 2.6 pixels and Otis’s face within 0.84.
Lip sync
Seedance 2.5, ElevenLabs Speech to Speech
Seedance 2.5 takes an audio reference, so the plan was to hand it the designed voice and let Otis act to it. Every full-length run with the sermon recording as that reference came back blocked, pitch-shifted copies included.
Short tests showed why. In 2.5 the reference sets the timbre. The lips follow whatever Seedance says itself, and the words come from the prompt.
So the reference became a separate, neutral line in the same voice, and the sermon went into the prompt. Seedance spoke it with native lip sync in something close to Otis’s voice, and ElevenLabs Speech to Speech moved that dialogue onto the designed voice with its timing untouched.
- blocked
- six of six runs with the sermon itself as the reference
- takes
- six at fifteen seconds, four of them with native lip sync
- kept
- Kb, finished at 1080p
- after Speech to Speech
- 0.96 word match with the script
Tape
VHS signal model, Python, and here in WebGL
The 1987 tape is computed from the Seedance take one frame at a time, the way a camcorder and two VCRs would have treated it.
The camera’s date goes into the picture before it reaches the tape, so it smears with everything else. The family’s copy is a dub of the church master, a second generation, and the rewind between the two films runs through the same model in search mode.
The deck below runs that model on your graphics card, from the clean take. Under the picture is a waveform monitor on one line. It opens on line 433, through the date stamp, where the digits are square pulses, so you can watch the record bandwidth round them off, the playback halos overshoot them, and every dub make both worse.
stage 6 of 6
dubbed
A copy of the church’s master. Every loss happens again, on top of the first.
225 TV lines of luma, 32 of chroma
The amber line on the picture chooses the row the scope plots. Drag it anywhere.
Tube
slot-mask CRT model, three.js
The television is a model of a slot-mask tube, rendered in three.js. It draws 480 Gaussian beam lines that widen with brightness, through a slot mask 640 triads across, with halation and bloom in the faceplate.
The phosphor face sits 3 cm behind the bezel and bulges 6 mm, so the bezel covers the edge of the picture with real parallax as the camera moves. The front glass reflects the room behind the camera, which is the family’s sofa, mirrored and blurred.
The camera filming it exposes one 240-line field with a 180 degree shutter.
- beams
- 480 Gaussian lines, wider as the beam current rises
- mask
- slot mask, 640 triads across, 1 mm pitch
- glass
- halation, faceplate bloom, the room’s reflection
- camera
- one 240-line field, 180 degree shutter
- fit
- the bezel’s opening fitted at subpixel level, under 0.8 px off
- triads across
- 640
- beam lines
- 480
Scroll over the screen to zoom, drag to look around, double-click to step in.
layers
Switch a layer off to see what it adds.
Room
Depth Anything 3, Seedance 2.5
The den is one Seedream still cut into rigid cards at their Depth Anything 3 depths, from the curtains at 2.32 m to the console at 1.66 m. That is enough depth for the camera to move through it with real parallax.
The picture lights the room. The bezel’s lip, the console top and the fan take the tape’s colour frame by frame, and the varnish on the console reflects the bottom of the screen.
In the film, the pull back out of the screen hands over at 9.7 seconds to a Seedance shot generated from the comp’s own frame. The tape and the tube are tracked back into its screen, and the move eases to a stop before the cut to the family.
35 mm
film model, Python
The 2005 house gets a 35 mm finish, and that is computed too.
A colourist’s per-shot balance, a spherical prime at night aperture, Kodak Vision2 500T 5218 halation around the strongest highlights and three dye-layer grain fields at 2K scan scale, new every frame, all sit under a 2383 print curve.
The same pass runs over the tape on the screen, so the 1987 picture picks up the 2005 lens and grain.


Haitian Creole
Eleven v4, Sync Lipsync 3
The bonus cut is the same sermon in Haitian Creole, the language of Miami’s Haitian churches since the 1970s.
The ElevenLabs Dubbing API does not take Haitian Creole, and in the languages it does take it spoke through both laughs. So the Creole was translated line by line to the English timing and spoken on Eleven v4 in Otis’s designed voice, which keeps both laughs where they were. Sync Lipsync 3 moves his mouth to the new words, and the dub runs through the same church, tape and TV chain.
No native speaker has checked the Creole yet.
The process film
every chapter above in ninety-five seconds, cut to its own score.
What was generated, and what was not
Generated
- Otis, the church, the congregation
- Midjourney V8.2 casting and sets, Seedream 5.0 Pro keyframes, a Seedance 2.5 performance
- The den and the family
- Seedream 5.0 Pro keyframes and Seedance 2.5
- The move out of the screen
- a Seedance 2.5 shot started from the comp’s own frame
- Otis’s voice
- designed in ElevenLabs Voice Design, spoken on Eleven v4, converted with Speech to Speech
- Haitian Creole
- translated line by line, then Eleven v4 and Sync Lipsync 3. Not yet checked by a native speaker
- Process film score
- ElevenLabs Music, cut to picture on bar lines
Built in code
- Blocking
- a three.js grey-box, before any video
- The tape
- a VHS signal model, the date stamp included
- The television
- a slot-mask tube model in three.js
- The room in depth
- rigid cards at depths measured with Depth Anything 3
- The track
- the tape and the tube fitted back into the Seedance screen
- The sound of the rooms
- church PA, camcorder track, TV speaker and den
- The 35 mm finish
- a film model, grain to print
