Skip to content

AtlasCloudAI/atlas-collage-studio

Repository files navigation

Atlas Collage Studio

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


Turnkey: the atlas-explainer skill (one prompt → video)

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.mp4

Storyboard → 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.


Quick start

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-xxxxxxxx

That's it — imageio-ffmpeg ships its own ffmpeg binary, so there's nothing else to install.

A) Explainer pipeline (text → video)

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.mp4

B) Collage-motion pipeline (images → video)

Put 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.mp4

The 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.


What's reusable vs. what you re-author per film

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.


Models used (all via Atlas Cloud)

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.


⚠️ Notes before you publish anything

  • 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-video blocks 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.py reads ATLASCLOUD_API_KEY from the environment; .env is gitignored.

Repo layout

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.

About

Turn a topic or poster images into a finished short film — entirely from Atlas Cloud APIs + local ffmpeg

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages