Image-to-Image
Diffusers
Safetensors
image-editing
pixel-art
sprite-sheet
animation
rgba
transparent-background
lora
Instructions to use irotem98/Codex-Pets-Sprite-Sheet-Generator with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use irotem98/Codex-Pets-Sprite-Sheet-Generator with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline from diffusers.utils import load_image # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("Boogu/Boogu-Image-0.1-Edit", dtype=torch.bfloat16, device_map="cuda") pipe.load_lora_weights("irotem98/Codex-Pets-Sprite-Sheet-Generator") prompt = "Turn this cat into a dog" input_image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/cat.png") image = pipe(image=input_image, prompt=prompt).images[0] - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- Draw Things
|
Download README.md from irotem98/Codex-Pets-Sprite-Sheet-Generator: direct link, hf CLI and curl.
- Browser
- Download file 5.82 kB
-
https://huggingface.co/irotem98/Codex-Pets-Sprite-Sheet-Generator/resolve/main/README.md
- Command line
-
hf download hf://irotem98/Codex-Pets-Sprite-Sheet-Generator/README.md
-
curl -L -o README.md https://huggingface.co/irotem98/Codex-Pets-Sprite-Sheet-Generator/resolve/main/README.md
5.82 kB
| license: apache-2.0 | |
| library_name: diffusers | |
| pipeline_tag: image-to-image | |
| base_model: Boogu/Boogu-Image-0.1-Edit | |
| datasets: | |
| - irotem98/codex-pets-sprite-sheets | |
| tags: | |
| - image-to-image | |
| - image-editing | |
| - pixel-art | |
| - sprite-sheet | |
| - animation | |
| - rgba | |
| - transparent-background | |
| - lora | |
| # Codex Pets Sprite Sheet Generator | |
| Give the model **one transparent character image** and it creates a complete V2 sprite sheet with **11 animation rows**. The included script handles image preparation, all 11 diffusion calls, row packing, final assembly, and binary alpha cleanup. | |
| It is built around the V2 animation layout used by [Codex Pets](https://codex-pets.net/). | |
| Created using the | |
| [`irotem98/codex-pets-sprite-sheets`](https://huggingface.co/datasets/irotem98/codex-pets-sprite-sheets) | |
| training dataset. | |
|  | |
| The example above was generated from only Jigglypuff's initial image. | |
| ## Quick start | |
| ```bash | |
| git clone https://huggingface.co/irotem98/Codex-Pets-Sprite-Sheet-Generator | |
| cd Codex-Pets-Sprite-Sheet-Generator | |
| pip install -r requirements.txt | |
| python generate_sprite_sheet.py character.png --output full-sprite-sheet.png | |
| ``` | |
| That is the complete inference command. On first use, the script automatically downloads the original [`Boogu/Boogu-Image-0.1-Edit`](https://huggingface.co/Boogu/Boogu-Image-0.1-Edit) base model. A transparent PNG containing one centered character works best. | |
| Generation uses a row batch size of 1 by default. If your GPU has additional memory, increase it with `--row-batch-size 2`, `4`, or up to `11` to generate multiple animation rows together. The underlying model is 10B parameters, so a CUDA GPU with substantial VRAM is recommended. | |
| ## Output layout | |
| The output is a `1536 Γ 2288` RGBA PNG: eight columns, eleven rows, and `192 Γ 208` pixels per sprite cell. | |
| | Row | Animation | Frames | | |
| |---:|---|---:| | |
| | 1 | idle | 6 | | |
| | 2 | run right | 8 | | |
| | 3 | run left | 8 | | |
| | 4 | wave | 4 | | |
| | 5 | jump | 5 | | |
| | 6 | failed | 8 | | |
| | 7 | waiting | 6 | | |
| | 8 | running | 6 | | |
| | 9 | review | 6 | | |
| | 10 | look directions 1β8 | 8 | | |
| | 11 | look directions 9β16 | 8 | | |
| Unused cells at the end of shorter rows remain transparent. | |
| ## How the model was trained | |
| This release uses a two-stage fine-tuning pipeline. | |
| ### 1. Alpha-compatible RGBA VAE | |
| The original Boogu VAE accepts and reconstructs RGB. It was expanded to RGBA while preserving the pretrained RGB path: | |
| - the original RGB VAE weights were frozen | |
| - a trainable one-channel alpha input adapter was added to the encoder | |
| - a trainable one-channel alpha output head was added to the decoder | |
| - RGB reconstruction, alpha reconstruction, foreground alpha, transparent RGB, and KL losses were weighted separately | |
| - after training, the adapters were merged into a standard four-channel `AutoencoderKL` | |
| The released VAE is checkpoint 2,000, trained on 3,015 sprite sheets from [`irotem98/codex-pets-sprite-sheets`](https://huggingface.co/datasets/irotem98/codex-pets-sprite-sheets), represented as 27,691 training rows and 540 validation rows. It is stored under `vae/` and can be loaded directly with Diffusers. | |
| ### 2. Boogu Image Edit sprite-sheet LoRA | |
| The RGBA VAE and Qwen3-VL instruction encoder were frozen. A rank-8 LoRA was trained on the Boogu diffusion transformer's `to_q`, `to_k`, `to_v`, and `to_out.0` attention projections. | |
| For every animation row: | |
| - **input:** a balanced 3Γ3 grid where every occupied cell repeats the first sprite from the sheet's first row | |
| - **target:** the real animation frames packed into the same occupied cells | |
| - **instruction:** an explicit prompt naming the animation, frame count, ordering, identity preservation, transparent background, and occupied-cell layout | |
| The released LoRA is checkpoint 21,000 and is stored under `lora/`. The diffusion objective was flow matching. During training, ordinary 50-step diffusion samples were logged every 50 optimizer steps. | |
| ## One-image generation pipeline | |
| `generate_sprite_sheet.py` performs the full workflow: | |
| 1. Read the input as RGBA. | |
| 2. Remove only padding where alpha is zero. | |
| 3. Resize proportionally to fit one `192 Γ 208` cell without cropping visible pixels. | |
| 4. Repeat that same first sprite in the correct 3Γ3 occupied-cell pattern for each animation row. | |
| 5. Generate all 11 row grids with row-specific prompts and 50 diffusion steps. | |
| 6. Unpack the row grids into the final eight-column V2 sprite sheet. | |
| 7. Clean the alpha channel, keep only the main connected opaque character region in each sprite cell, set every pixel in its two-pixel outer edge band to exact black, and save the finished RGBA PNG. | |
| ## Included files | |
| - `vae/` β deployable four-channel alpha-compatible VAE | |
| - `lora/` β rank-8 Boogu Image Edit sprite-sheet adapter | |
| - `generate_sprite_sheet.py` β one-image to full-sheet command | |
| - `sprite_sheet_config.json` β dimensions, row names, frame counts, and inference defaults | |
| - `boogu/` β the Apache-2.0 Boogu inference modules needed by the script | |
| ## Limitations | |
| - Best results come from a single pixel-art character on a transparent background. | |
| - RGB/JPEG input is accepted, but its entire rectangular background is treated as visible; transparent PNG is strongly recommended. | |
| - Motion quality, facing consistency, and identity preservation can vary between rows. | |
| - The layout is fixed to the eleven-row V2 format above. | |
| - This repository contains the fine-tuned VAE and LoRA, but still downloads and requires the original 10B Boogu base model. | |
| ## Base model and license | |
| This is a fine-tune of [`Boogu/Boogu-Image-0.1-Edit`](https://huggingface.co/Boogu/Boogu-Image-0.1-Edit). The base model and included Boogu inference code are Apache-2.0 licensed. Review the upstream model card for its responsible-use guidance and broader limitations. | |