| --- |
| title: Perry Alchemist - Comic Generator |
| emoji: ⚗️ |
| colorFrom: purple |
| colorTo: yellow |
| sdk: gradio |
| sdk_version: 6.18.0 |
| python_version: '3.13' |
| app_file: app.py |
| pinned: false |
| short_description: perry- the alchemist |
| license: mit |
| tags: |
| - comics |
| - gradio |
| - huggingface-spaces |
| - image-generation |
| - story-generation |
| - track:wood |
| - sponsor:modal |
| --- |
| |
| # Perri Comic Generator |
|
|
| Track:An Adventure in Thousand Token Wood |
|
|
| Retro comic strip generator built around a single-panel workflow. |
|
|
| blogpost: https://dev.to/meemeealm/building-perri-a-comic-strip-generator-5a91 |
|
|
| social media: https://x.com/siniyny/status/2066659720413479294 |
|
|
| video: https://vimeo.com/1201597662 |
|
|
| ## What it does |
|
|
| - Takes a short story seed from the user |
| - Builds a single structured comic panel description |
| - Generates the panel image on a backend diffusion worker |
| - Renders dialogue directly onto the image before returning it to the frontend |
|
|
| ## Architecture |
|
|
| - `/app.py` |
| - Gradio UI |
| - Prompt collection |
| - API request/response handling |
| - `/orchestrator.py` |
| - Single-panel script generation |
| - Panel image generation |
| - Dialogue overlay composition |
| - `magic_theme.py` |
| - Shared theme and CSS styling |
|
|
| ## Local run |
|
|
| ```bash |
| python frontend/app.py |
| ``` |
|
|
| ## Environment |
|
|
| Required backend secret / env values: |
|
|
| - `HF_TOKEN` |
| - `MODAL_ENDPOINT_URL` for the frontend |
|
|
| ## Notes |
|
|
| - The frontend expects the backend to return a single `panel` object |
| - The backend returns JPEG bytes encoded as base64 for the frontend image component |
| - The UI uses a magical vintage theme with star twinkle overlays |
|
|
|
|