← Files HiggsfieldARCHIVED FILE
skills/faceless-video/references/kids-song.md
8.01 KB · Oct 2, 2026 · 00:02 UTC
# kids-song.md — SONG MODE: the Kids music video
A Kids-only sub-direction: instead of a narrated explainer, the run produces a
MUSIC VIDEO — a real SUNG children's song (verses + repeating chorus) with the
video choreographed to it. **The song is generated FIRST; the video blocks are
then staged TO the song; assembly lays the one continuous song track over the
whole cut.**
## When SONG MODE turns on
- **The duration question (Round 3) on KIDS runs** (Kids channel, or any run in
a Kids-catalog style) offers, alongside 1/2/3 min: **"Music video — a real
sung song (1 or 2 min)"**. Picking it locks SONG MODE.
- Direct asks lock it from the prompt: "kids song", "nursery song video",
"sing-along", "music video for kids/toddlers" (any language).
- **Kids-catalog styles ONLY** (Studio 3D / Pastel Flat 2D / Colorful 3D /
Hand-drawn Ink / Poster Vector, or Fluffy Toy). A non-Kids style ask in SONG
MODE → map to the closest Kids style and confirm in one line.
## What changes vs the normal Kids run
- **No narrator**: the song IS the voice. SKIP the voice widget (Round 4),
skip `voice.lock` — rules 15/16/17 (per-block lines) do not apply; the audio
is ONE continuous track.
- **No sonilo bed**: the song IS the music. Never add a second music layer.
- **Subtitles are not offered in SONG MODE v1** (Whisper on singing is
unreliable); if the user insists, say lyrics captions aren't supported yet.
- Everything else holds: Kids key flow for the style, asset roster, 4-cut
blocks, interplay staging, retry ladder, scripts-only assembly, no lip-sync.
## Pipeline order (SONG FIRST)
1. **Intake** as usual (type/style/topic/duration; duration = 1 or 2 min →
target 6 or 12 blocks).
2. **Write the song** (lyrics + structure, template below) — lyrics in the
USER'S language, themed on the topic, starring the main character.
3. **Generate the SONG** — `seed_audio`, **prompt-only: NO `voice_id`, NO
`voice_type`** (the singing voice is described inside the prompt). Use a
one-request `generate_audio_batch` call and wait with `jobs_wait`.
`ffprobe` the result: duration must be within ±3s of the target (60/120s) —
off-length → regenerate the song (tested: the template lands exactly on
target). **Budget cap: max 3 song attempts**, then stop and surface (same
spirit as the clip retry ladder — never burn credits in a loop). After a
passing song, interactive mode calls `show_generation_by_ids` with its exact
final `{index, job_id}`, asks whether to continue to images, and ends the turn.
4. **Style key + asset roster** (Phases 1–2, unchanged; start only after the
song checkpoint). Roster = the MAIN CHARACTER + friends the lyrics name
(birdies, bunny, puppy...), 2–3 locations (meadow, garden), prop = the
through-object if the lyrics have one.
5. **Block plan mapped to the song timeline** (Phase 3): N = duration/10.
Use the template's nominal map — 2 min / 12 blocks:
B1 intro + verse 1 opens · B2 verse 1 · B3–B4 CHORUS #1 · B5–B6 verse 2 ·
B7–B8 CHORUS #2 · B9–B10 verse 3 · B11–B12 FINAL CHORUS (fullest).
(1 min / 6 blocks: B1 intro+verse · B2–B3 chorus · B4 verse · B5–B6 final
chorus.) A few seconds of drift between render and plan is fine — the
staging reads by vibe, not frame-sync.
- **Verse blocks = story beats:** SHOW WHAT THE LYRICS NAME (the line sings
birdies → birdies on screen; bunny hops → bunny hops).
- **Chorus blocks = the SIGNATURE DANCE, repeated:** same location, main
character + friends doing the same recognizable dance staging every
chorus, escalating each time (more friends, more props, fuller frame on
the final). The repetition IS the hook.
- Characters DANCE, clap, jump, spin, sway ON THE BEAT — gesture only,
mouths never articulate words (rule 7: no lip-sync; humming smiles are
fine, articulated singing mouths are not).
- Kids 4-cut pattern per block, order varied; every cut an action.
6. **Generate the 12 (or 6) blocks** (Phase 4 as usual,
`generate_video_batch` groups of at most six + `jobs_wait`): prompts
carry the block's lyric line meaning as choreography + "characters dance to
an upbeat children's song, moving on a steady beat"; AUDIO line stays
diegetic-only (claps, hops — the song is added in post). After all blocks
complete, interactive mode calls `show_generation_by_ids` with the exact
final block ledger, asks whether to assemble, and ends the turn.
7. **Assemble with `--song`** (Phase 6):
```
sandbox_exec({
background:true,
command:"bash ${HF_WORKFLOWS}/faceless-video/scripts/assemble_final.sh --out work/output/final.mp4 --blocks N --manifest clips.txt --song song.wav"
})
```
Manifest lines = ONE clip per line (no voice files). The script lays the
song at 1.0 over the whole cut, keeps clip SFX barely-there (0.06 default
in song mode), asserts song-vs-video length (±3s), N×10s duration,
narration-in-every-window (the song), full decode, poster + sidecar
(`"song":true`).
8. Deliver ONE confirmed `final.mp4` through the normal media upload path
(billing `block_count` = N).
## The SONG PROMPT template (≤2048 chars — HARD LIMIT, count before sending)
Two proven moods; pick by topic energy (or the user's ask):
- **GENTLE** (lullaby-ish walks, nature, bedtime): C major, **100 BPM**, soft
4/4; ukulele + acoustic guitar, glockenspiel, gentle bass, soft flute, light
chorus handclaps; meadow ambience touches.
- **DANCE-ALONG** (party, exercise, action topics): G major, **112 BPM**,
claps on every second beat, bouncy plucked ukulele + bass locked to the
kick, marimba + sparkle bells; chorus packed with ACTION WORDS (clap, stomp,
jump, spin).
Skeleton (fill {}, keep every law):
> A full {1|2}-minute children's {song|dance-along song}, SUNG by a warm
> bright {gentle|cheerful, energetic} female singer with a smile in her voice
> - a real melodic song with verses and a repeating chorus on a clear singable
> tune, not narration. THE BEAT IS STEADY AND CONSTANT from the first second
> to the last: {100|112} BPM, simple 4/4, NO tempo changes, NO slowdowns, NO
> pauses between sections. Every lyric line has 8 syllables in steady trochaic
> meter (stress on 1,3,5,7), sung one syllable per beat, and EVERY line starts
> exactly on beat one of its bar; each line is one 4-bar phrase. Melody:
> simple {sweet|bouncy} nursery tune in {C|G} major, small steps within one
> octave, verse lower and playful, chorus a little higher and brighter.
> Instruments: {mood set from above}; clean warm mix, voice clearly in front,
> everything locked to the same steady beat. Structure with NO gaps: 4s
> instrumental intro, Verse 1, Chorus, Verse 2, Chorus, Verse 3, Chorus
> (final, fuller, extra claps and bells), 4s outro on {bells + a happy
> character sound}.
> Verse 1: "{4 lines, 8 syllables each}" · Chorus: "{4 lines, catchy, action
> words, repeats verbatim}" · Verse 2 · Chorus: (repeat) · Verse 3 · Chorus:
> (repeat, final, fuller)
> Delivery: {soft and melodic | energetic but sweet}, perfectly in tune, every
> syllable landing right on the steady beat; innocent and age-appropriate for
> toddlers. Total length approximately {1|2} minutes.
**Laws learned in testing (violating these produced beatless mush):**
- ONE constant tempo. Never write a bridge/slow-down/speed-up — dynamics come
ONLY from orchestration (the final chorus gets fuller: extra claps, bells,
doubled melody). Tempo-change words are BANNED from the prompt.
- Keep the meter machinery verbatim: 8-syllable trochaic lines, one syllable
per beat, line starts on beat one, 4-bar phrases — this skeleton is what
holds the tune together.
- No groove jargon ("four-on-the-floor", "syncopation", "drop") — describe
claps and instruments plainly.
- Chorus text repeats VERBATIM every time (that's the sing-along).
- Lyrics: concrete, visual, age-appropriate; the main character named; action
words the video can stage. 1-minute songs: 2 verses + 2 choruses.
- Prompt ≤2048 chars TOTAL — count it; trim instrument adjectives first,
never the meter laws or lyrics.
SHA-256: 885edd935b14be4b9699a525a7761fb86c0e0bc79488ab12263f861f2868f37f