How mir-learn/ai-video-creator works
This is a local AI video creator: an agent or user prepares a story and reusable character, then chooses a narrated B-roll or talking-head workflow that produces a vertical video. Image/video generation is dispatched through the local ComfyUI client; audio, visual review, and final assembly are separate stages. The README documents model comparison and QA capabilities, though their full implementations were not sampled, so their wiring is shown only where supported.
Main entry points: stories Story JSON · talk.py Lip-sync video · keyframes.py Portrait and keyframes · comfy.py ComfyUI client
Components 18
Story and characters
- Story JSON
stories - Character assets
characters
Narrated video
- Narration TTS
scripts/tts.py - Portrait and keyframes
scripts/keyframes.py - Wan animation
scripts/animate.py - Video assembly
scripts/assemble.py - ComfyUI client
scripts/comfy.py
Talking head
- Designed voice TTS
scripts/tts_qwen.py - Lip-sync video
scripts/talk.py - Word timestamps
scripts/captions.py - Talking export
scripts/finish_talk.py
Review and comparison
- Visual review
scripts/preview.py - Voice QA
scripts/check_lines.py - Model comparison
compare - Comparison renders
scripts/compare_comfy.py
Other components
- User / agent
- ComfyUI engine
- Generated media
Connections 32
- User / agent → Story JSON: writes
- User / agent → Character assets: creates
- Story JSON → Narration TTS: provides lines
- Story JSON → Portrait and keyframes: provides prompts
- Character assets → Portrait and keyframes: reuses portrait
- Story JSON → Wan animation: provides motion
- Portrait and keyframes → Wan animation: provides frames
- Narration TTS → Video assembly: provides narration
- Wan animation → Video assembly: provides clips
- Story JSON → Video assembly: provides captions
- Video assembly → Generated media: writes final video
- Story JSON → Designed voice TTS: provides lines
- Story JSON → Lip-sync video: provides prompts
- Designed voice TTS → Lip-sync video: provides shot audio
- Portrait and keyframes → Lip-sync video: provides start images
- Lip-sync video → Word timestamps: provides clips
- Designed voice TTS → Word timestamps: provides audio
- Word timestamps → Talking export: provides timestamps
- Lip-sync video → Talking export: provides clips
- Story JSON → Talking export: provides script
- Talking export → Generated media: writes final video
- Portrait and keyframes → ComfyUI client: queues workflows
- Wan animation → ComfyUI client: queues workflows
- Lip-sync video → ComfyUI client: queues workflows
- ComfyUI client → ComfyUI engine: queues and polls
- Visual review → Generated media: reads media
- Voice QA → Generated media: checks audio
- User / agent → Visual review: reviews output
- User / agent → Voice QA: runs QA
- Comparison renders → ComfyUI client: queues renders
- Comparison renders → Model comparison: writes comparison clips
- Model comparison → User / agent: presents comparison