Spaces:
Running on Zero
Running on Zero
| title: Character Studio | |
| emoji: π | |
| colorFrom: blue | |
| colorTo: indigo | |
| sdk: gradio | |
| sdk_version: 5.9.1 | |
| app_file: app.py | |
| pinned: false | |
| license: apache-2.0 | |
| short_description: Multi-model character generator on ZeroGPU | |
| # π Character Studio | |
| A Hugging Face **ZeroGPU** Space that bundles many image models behind one UI for | |
| character generation. Pick a model from an **editable registry**, type a prompt, | |
| optionally drop a **reference image**, and generate. | |
| ## Features | |
| - **Editable model registry** β add / remove models by editing `models.json`, no code change. | |
| - **Multiple base families** β SD1.5, SDXL, FLUX. Each model declares its own `base`. | |
| - **Multiple input modes** β `txt2img`, `img2img`, `IP-Adapter` (style/subject), `Face identity` (FaceID). | |
| - **Custom sources** β HF repos, full `.safetensors` checkpoints, and Civitai download URLs. | |
| ## Hardware | |
| Set the Space hardware to **ZeroGPU** (Nvidia, dynamic). Free tier works; pipelines | |
| are cached on CPU and moved to GPU only during a generation call. | |
| ## Secrets / environment variables (Settings β Variables and secrets) | |
| - `HF_TOKEN` β needed only for **gated** models (e.g. FLUX.1-dev). Optional otherwise. | |
| - `CIVITAI_TOKEN` β needed only if a registry entry pulls from a Civitai download URL. | |
| ## Adding / removing models | |
| See **README_TH.md** for the full Thai field guide. Quick version: each entry in | |
| `models.json` looks like: | |
| ```json | |
| { | |
| "id": "my-model", | |
| "label": "My Model (SDXL)", | |
| "base": "sdxl", | |
| "type": "checkpoint", | |
| "repo_id": "author/repo-on-hf", | |
| "single_file_url": null, | |
| "default_steps": 30, | |
| "default_guidance": 6.0, | |
| "enabled": true | |
| } | |
| ``` | |
| For a LoRA, set `"type": "lora"`, keep `repo_id` as the **base checkpoint**, and add | |
| either `lora_repo_id` (+ optional `lora_weight_name`) or `lora_url` (Civitai), plus | |
| `lora_scale`. After editing, click **π Reload models** in the UI. | |
| ## Notes | |
| - IP-Adapter and Face identity modes are available for **SD1.5 / SDXL** only; FLUX | |
| supports `txt2img` / `img2img`. | |
| - Face identity uses InsightFace (`buffalo_l`) + IP-Adapter-FaceID and needs a clear face. | |
| - Only one large model is held in memory at a time; switching models reloads. | |
| ## Responsible use | |
| This tool is for original character art and authorized creative work. Do not use the | |
| Face identity feature to depict real people without their consent. | |