--- title: Celebrity Deathmatch emoji: 🥊 colorFrom: red colorTo: yellow sdk: gradio sdk_version: "6.0.0" app_file: app.py pinned: false --- # Celebrity Deathmatch Upload two photos, and an AI ring director books an MTV-style claymation brawl: a fight script with round-by-round announcer commentary, a rendered keyframe reel, a declared winner — and an optional **Animate** button that chains it into one continuous fight video with the commentary burned in as captions. > ⚠ **Parody.** All visuals are AI-generated claymation caricatures of public > figures, for comedic effect. Not real. ## Models | Stage | Role | Model | GPU | |------|------|-------|-----| | 1 | Fight director (reads both photos) | MiniCPM-V-2_6 (OpenBMB) | A10G | | 2 | Claymation keyframes | FLUX.1-schnell (BFL) | L40S | | 3 | Image→video fight clip (opt-in) | LTX-Video (Lightricks) | H100 | ## Architecture - **Frontend:** this Gradio Space. - **Backend:** Modal GPU app `deathmatch` — set `DEATHMATCH_API_URL` (the deploy pipeline does this automatically). - **Mock mode:** run locally with `DEATHMATCH_MOCK=1` to exercise the full UX on CPU (canned fight, placeholder frames, GIF stand-in for the video). ```sh DEATHMATCH_MOCK=1 python app.py ```