Skip to content

Defenders

Narrate a folk tale → a team of agents storyboards it, earns each keyframe with a verifier-guided reward loop, animates a multi-shot narrated short, then lets you re-direct any shot by conversation., it solves the widely

Core trick

A verifier scores each generated keyframe against a rubric and regenerates until it passes, then animates narrated shots with video generation.

Tags

Description

Narrate a folk tale → a team of agents storyboards it, earns each keyframe with a verifier-guided reward loop, animates a multi-shot narrated short, then lets you re-direct any shot by conversation., it solves the widely unresovled rpoblem in India of folktale being srved to mass media
aupc2061/gdm_hack★ 00 forksPythonCreated Jul 10, 2026 · last push Jul 11, 2026

README excerpt

# ChitraKatha (चित्रकथा)

**Narrate a folk tale → a team of agents storyboards it, *earns* each keyframe with a
verifier-guided reward loop, animates a multi-shot narrated short, then lets you
re-direct any shot by conversation.**

GDM Bangalore Hackathon — **Idea 4** (Conversational Video & Motion), chaining
**NB2 Lite** (ultra-fast image gen) → **Omni Flash** (conversational video).

> *ChitraKatha* means "picture-story / storyboard" in Sanskrit — also the name behind
> India's beloved *Amar Chitra Katha* comics, the locked visual style.

North star: [`GOAL.md`](GOAL.md) · Full spec: [`ps_final.md`](ps_final.md) ·
API cheat-sheet: [`api_ref.md`](api_ref.md)

---

## What it does

1. **Director** turns a folk tale into a structured storyboard (chooses beat count from
   the story; each beat = subject/action/setting/camera/motion/narration).
2. **Anchors** — one reference image per character/prop (NB2). *The consistency key.*
3. **Keyframe fan-out** — 2 candidates per beat, conditioned on the anchors (NB2).
4. **Verifier-guided reward loop** — an LLM critic scores each keyframe on 5 proxy-reward
   axes (prompt-adherence, style, identity-vs-anchor, composition, narrative-fit); if the
   weakest axis is below threshold it issues a targeted edit and re-scores, up to a bounded
   budget — the keyframe is *earned*, not sampled-and-hoped. (`story/critic.py`)
5. **Global harmonize** — judges all winning keyframes together, re-generates the single
   outlier to match the set's palet

Team