Coconut Head: Consistent-Character Kids Song Video Pipeline
Sixty-plus generated songs turned into cartoon videos with identical characters across shots, scheduled uploads and burned-in watermarks.
Word-timed lyric slots that tile the song, identity reference stills for a five-member cast, a three-lane overnight renderer (keyframes, GPU video, assembly) with skip-if-exists resume, correct made-for-kids declarations, and an hourly upload autopilot with daily scheduling.
- Slots tile the song; word timings aligned by diff
- Identity refs give identical characters across shots
- Resume-safe three-lane overnight renderer
- Correct COPPA declarations and scheduled publishing
A catalogue of generated toddler songs needed videos that do not look like AI slop: the same characters in every shot, a locked camera, and visuals that stay on the words. The pipeline prepares each song with word-level timings aligned to the catalogue lyrics (a transcription prompt with the lyrics makes long segments, so alignment is done by diff), plans visual slots that tile the entire song so the picture never drifts ahead of the audio, and has sub-agents write per-shot prompts from a brief. Identity is held by master stills for each cast member attached to every keyframe generation.
The overnight runner has three lanes: a keyframe lane that sleeps through the image tool's usage limits instead of failing, a GPU lane rendering image-to-video clips with native audio, and assembly. Everything is skip-if-exists, so a resume is simply rerunning the script, which also adopts orphaned clips from an interrupted run. Night one verified identical characters across shots.
Distribution was handled with care for the rules: videos are declared made-for-kids per video via the API (my request to skip the label was refused as a false declaration), the channel watermark is burned in because YouTube hides branding on kids content, and an hourly autopilot retries uploads, Shorts and thumbnails around the unverified-channel cap, then schedules one song per day at a fixed time.
How it works
- prep.py builds the manifest and word timings per song
- plan.py tiles the song into visual slots
- Sub-agents write shot prompts from the brief and cast
- night.py renders keyframes, clips and assembles finals
- autopilot.py uploads with the kids declaration and daily schedule