compose-creator-layer
Run
bashpython compose.py --layer layer.mp4 --beats cutlist.aligned.json --creator creator.mp4 \ --out reel.mp4 [--music bed.mp3 --music-db -20] [--head 0.30] \ [--zoom 1.15] [--divider '#RRGGBB' --divider-px 4]
--layer:footage-cutlistcut.pyoutput rendered from the same cut list as--beats(re-render it afteralign_beats.py).--draftlayers are refused.--creator:create-creator-takes-h3join_takes.pyoutput, reel time from 0.--audio creator|music|none: the voice (+ ducked--music), the--musicbed alone (voiceless paid ads), or a silent master (organic posts: the track is added in-platform at upload, which is licensed for organic use only).- The creator track may be shorter than the reel (a 2.3s reaction hook): it only shows
during its own
creatorbeats. --head: where the crop sits vertically when the creator is scaled to cover an area (0 keeps the top, 0.5 centres). 0.30 keeps the head in the upper third.
Split screen
The split-screen creator look (product on top, the creator talking below) is this atom with split beats; it replaces render-split-screen-creator.
- The product zone comes from the layer: in the footage-cutlist cut list set the
seam(even, about 52% of the height for product on top) andcreator_side: "bottom", fit each 16:9 product clip bywidth, and setbg: "blur"so the margins are a darkened blur of the same clip, never black bars. Window each clip to the moment that proves its line; never loop a short clip. - The creator zone:
--zoom 1.15to1.2with--headpushes a webcam-distance take in to head and shoulders. Tune it by eye against the reference; a re-run is free. Zoom cannot rescue a take shot too close, so the creator still should be a candid medium shot (chest up, real room), not a plain-background headshot. - The seam:
--divider '#RRGGBB'draws a brand-colour bar centred on the seam (default 4 px, even) on split beats only. - Audio: the creator's voice is the whole bed; leave out
--musicfor this look.
Rules
- Crop from the take's real size, never a hard-coded height. A hard-coded 1080 once cropped the top half of an upscaled take and blew it up.
- No grade. Chasing a saturation or warmth reading was tried twice and both looked wrong. The take goes in as generated.
- The voice leads. A music bed is ducked under the voice (sidechain); the mix is normalised to -14 LUFS.
- Captions come after this (
caption-burn, transcribed from this output).


