A local-first, server-capable repository for movie-grade generative production:
- SDXL identity/style LoRA training,
- batched multi-project image+video generation,
- dialog voice + music + mix + final MP4 packaging,
- modular judges and self-evolving optimization loops,
- non-destructive scene/shot patch tweaks,
- Slurm jobs (2x80GB GPUs),
- natural-language AI command interface.
- Local debug mode
- Fast iteration profile via
configs/run/local_debug.yaml. - Use low resolution/fps/steps while preserving pipeline behavior.
- Server mode
studio.serverFastAPI app with endpoints for:- run orchestration,
- AI plan/execute,
- model list/pull/push.
- Model retrieval and publishing
- Pull from local path or Hugging Face repo into local model cache.
- Push from local model folder to local path or Hugging Face repo.
- CLI:
python -m studio.model_registry ...
- Generic movie project baseline
projects/feature_film_demois the default movie-oriented sample.- Previous sample (
my_makeover) remains available as legacy reference.
- Multi prompt-image/video references
- Supported across workspace/project/scene/shot levels.
- Also supported via
shot.references.prompt_images[]andshot.references.prompt_videos[].
conda env create -f environment.yml
conda activate movilizer
pip install -e .python -m studio.run \
--workspace workspace.yaml \
--run_config configs/run/local_debug.yaml \
--projects feature_film_demo \
--scenes all \
--resumepython -m studio.run --workspace workspace.yaml --projects feature_film_demo --scenes all --resumepython -m studio.run --workspace workspace.yaml --project feature_film_demo --scene scene_001_opening --compile_onlypython -m studio.ai --workspace workspace.yaml --project feature_film_demo --scene scene_001_opening \
"make shot_001 more cinematic and regenerate frames 48-120"# Pull model from HF to local cache
python -m studio.model_registry pull --source stabilityai/stable-diffusion-xl-base-1.0
# Push local model folder to HF repo
python -m studio.model_registry push --source_dir models/cache/stabilityai__stable-diffusion-xl-base-1.0 --target your-org/your-model
# Push local model folder to local destination
python -m studio.model_registry push --source_dir models/cache/stabilityai__stable-diffusion-xl-base-1.0 --target /tmp/model_exportpython -m studio.server --config configs/server/default.yamlExample requests:
curl http://127.0.0.1:8080/health
curl -X POST http://127.0.0.1:8080/models/pull \
-H 'content-type: application/json' \
-d '{"source":"stabilityai/stable-diffusion-xl-base-1.0"}'
curl -X POST http://127.0.0.1:8080/run \
-H 'content-type: application/json' \
-d '{"projects":["feature_film_demo"],"scenes":["scene_001_opening"],"run_config":"configs/run/local_debug.yaml"}'Every pull request now generates a sample MP4 and uploads it as a GitHub Actions artifact:
- Workflow:
.github/workflows/pr-sample-video-artifact.yml - Artifact name:
sample-prototype-video - File:
artifacts/sample_prototype_pr.mp4
How to view/download:
- Open the PR on GitHub.
- Open the Checks tab and click PR Sample Video Artifact workflow run.
- Download
sample-prototype-videofrom the run's Artifacts section.
- Shot:
outputs/<run_id>/<project>/<scene>/<shot>/... - Scene:
outputs/<run_id>/<project>/<scene>/scene.mp4 - Project final:
outputs/<run_id>/<project>/final.mp4 - Eval:
outputs/eval/<run_id>/...
slurm/train_identity_2gpu.sbatchslurm/run_studio_2gpu.sbatchslurm/eval.sbatchslurm/evolve.sbatch
Human docs:
docs/HUMAN/PROJECTS.mddocs/HUMAN/SCENES.mddocs/HUMAN/TWEAKS.mddocs/HUMAN/PIPELINE.mddocs/HUMAN/SLURM.mddocs/HUMAN/SERVER.mddocs/HUMAN/AUDIO.mddocs/HUMAN/VIDEO.mddocs/HUMAN/JUDGES.mddocs/HUMAN/TROUBLESHOOTING.mddocs/HUMAN/SAFETY.md
AI docs:
docs/AI/*.schema.jsondocs/AI/PLAYBOOK.mddocs/AI/COMMANDS.mddocs/AI/EXAMPLES/
When optional components are unavailable:
- generation uses synthetic frame fallback,
- training uses mock LoRA artifact fallback,
- advanced judges stay heuristic,
- server/model sync endpoints return actionable failure messages.