Turn a topic — or a few static poster images — into a finished, punchy short video, entirely from Atlas Cloud APIs + local ffmpeg. No editor, no timeline, no GPU.
Two pipelines, one toolkit:
| Pipeline | What it does | Inspired by | Cost/film |
|---|---|---|---|
| Explainer (repo root) | one topic → papercraft "Vox-style" explainer, AI-generated footage + narration + captions | Higgsfield Explainer (Claude × Gemini Omni Flash) | ~$0.95 |
Collage motion (cr7v2/) |
a few poster images → cut them into pieces → keyframed motion-graphics montage | rom1trs (NB2 cut-outs × Seedance) | ~$1.5 |
📖 Deep dive on the collage pipeline (prompts, engine design, every gotcha): cr7v2/PIPELINE_PLAYBOOK.md
The Explainer pipeline is packaged as a self-contained, installable agent skill — it now lives in its own repo: AtlasCloudAI/atlas-explainer. Turn a bare topic into a finished mp4, no hand-authoring:
git clone https://github.com/AtlasCloudAI/atlas-explainer ~/.claude/skills/atlas-explainer
export ATLASCLOUD_API_KEY=apikey-xxxx
python3 ~/.claude/skills/atlas-explainer/scripts/run.py /tmp/myvideo \
--topic "how the shipping container reshaped global trade" # → /tmp/myvideo/out/final.mp4Storyboard → parallel scene footage ∥ narration ∥ music → titles/subtitles → assembly; proxy-tolerant,
retries transient drops, never re-bills an already-generated scene. Installed at
~/.claude/skills/atlas-explainer/, just ask your agent "make a 1-minute explainer about X."
The scripts in this repo root (gen_scene.py etc.) are the original pipeline the skill was distilled from.
git clone <this-repo> && cd omniflash-explainer
pip install -r requirements.txt
# get a key at https://www.atlascloud.ai/console/api-keys
export ATLASCLOUD_API_KEY=apikey-xxxxxxxxThat's it — imageio-ffmpeg ships its own ffmpeg binary, so there's nothing else to install.
Edit scenes.json (topic, per-scene narration ≤20 words, visual prompt, headline), then:
for i in 0 1 2 3 4 5; do python3 gen_scene.py $i & done; wait # gemini-omni-flash t2v, $0.125 ea
for i in 0 1 2 3 4 5; do python3 gen_tts.py $i; done # xai-tts narration, $0.015 ea
python3 gen_bgm.py # minimax music bed
python3 make_overlays.py && python3 assemble.py # → out/final.mp4Put your poster/collage images somewhere, map out the cut boxes in cr7v2/extract_elements.py
(ELEMENTS dict — each entry is name: (file, (l,t,r,b), needs_matte)), then:
python3 cr7v2/extract_elements.py # crop + youchuan background-removal → cr7v2/assets/*.png
python3 cr7v2/gen_audio_v2.py # 7 VO lines + BGM + whoosh SFX
python3 cr7v2/motion.py --start 0 --end 735 --out cr7v2/out/chunk.mp4 # render (or split into parallel chunks)
python3 cr7v2/mix_v2.py # concat + 3-layer mix → cr7v2/out/final_v2.mp4The timeline (scenes, per-element keyframes, VO text) lives directly in cr7v2/motion.py
(build()) and cr7v2/gen_audio_v2.py (VO). See the playbook for how the keyframe engine works.
Reusable engine (Atlas- and subject-agnostic):
atlas_common.py— submit/poll/download + Cloudflare-safe UA (used by both pipelines)cr7v2/motion.py— the keyframe motion-graphics engine (Layer, easings,fly_in/slap, procedural starburst/halftone/confetti, camera zoom/shake/whip-pan)cr7v2/extract_elements.py— crop + AI matting + residue cleanup (connected-component / chroma / geometric mask)- audio chain (
gen_audio_v2.py+mix_v2.py) — VO + music + SFX with sidechain ducking - the 6-act narrative template and the adversarial-QC approach
Re-authored per film: the cut boxes for each source image, and each element's landing coordinates + keyframe timing. This is the hand-layout work — see the playbook's §7 for the plan to automate it with an LLM layout pass.
google/gemini-omni-flash/{text,reference}-to-video · xai/tts-v1 · minimax/music-2.6
· bytedance/seed-audio-1.0 · youchuan/v8.1/remove-background
Endpoints: image/video → POST /api/v1/model/generateVideo|generateImage; all audio (TTS, music, SFX) →
POST /api/v1/model/generateAudio; then poll GET /api/v1/model/prediction/{id}. Full model schemas live at
https://static.atlascloud.ai/model/schema/<model-id>.json.
- Bring your own images. The example configs reference celebrity/club-branded collage cards that are not included and are gitignored — those carry likeness/trademark rights. Use assets you own or have cleared before publishing a film.
- Real-person portrait footage is moderated.
gemini-omni-flash/reference-to-videoblocks recognizable-face reference images (prohibited contents). That's exactly why the collage pipeline animates cut-outs locally instead of regenerating faces — do the same, don't try to bypass moderation. - Never commit your key.
atlas_common.pyreadsATLASCLOUD_API_KEYfrom the environment;.envis gitignored.
atlas_common.py shared Atlas API client (env-var key)
scenes.json Explainer example config (containers topic — no rights issues)
gen_scene / gen_tts / gen_bgm / make_overlays / assemble / render_card_scene Explainer pipeline
cr7v2/
extract_elements.py image → cut-out assets
motion.py keyframe motion-graphics engine + timeline
gen_audio_v2.py VO + BGM + SFX
mix_v2.py concat + 3-layer audio mix
PIPELINE_PLAYBOOK.md full walkthrough: prompts, engine, gotchas, cost, next steps
cr7/ Chinese vertical variant config (reference)
The turnkey explainer skill now lives in its own repo: AtlasCloudAI/atlas-explainer.
MIT licensed. Built to drive Atlas Cloud API usage — fork it, ship films.