Instructions to use BiliSakura/JiT-diffusers with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use BiliSakura/JiT-diffusers with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("BiliSakura/JiT-diffusers", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
| license: mit | |
| library_name: diffusers | |
| pipeline_tag: unconditional-image-generation | |
| tags: | |
| - diffusers | |
| - jit | |
| - image-generation | |
| - class-conditional | |
| widget: | |
| - output: | |
| url: demo.png | |
| language: | |
| - en | |
| # JiT-diffusers | |
| Native diffusers implementation of **JiT** (Just image Transformer). Each variant folder is self-contained: | |
| - `pipeline.py` β `JiTPipeline` | |
| - `scheduler/scheduler_config.json` β `FlowMatchHeunDiscreteScheduler` config (default `shift=4.0`) | |
| - `transformer/jit_transformer_2d.py` β `JiTTransformer2DModel` | |
| The pipeline now supports dynamic inference resolution in `__call__` with positional interpolation. | |
| No separate `jit_diffusers` package; only PyPI `diffusers` plus local custom code in the variant directory. | |
| ## Available checkpoints | |
| | Checkpoint | Path | Resolution | Recommended CFG | | |
| | --- | --- | --- | --- | | |
| | JiT-B/16 | `./JiT-B-16` | 256Γ256 | 3.0 | | |
| | JiT-L/16 | `./JiT-L-16` | 256Γ256 | 2.4 | | |
| | JiT-H/16 | `./JiT-H-16` | 256Γ256 | 2.2 | | |
| | JiT-B/32 | `./JiT-B-32` | 512Γ512 | 3.0 | | |
| | JiT-L/32 | `./JiT-L-32` | 512Γ512 | 2.5 | | |
| | JiT-H/32 | `./JiT-H-32` | 512Γ512 | 2.3 | | |
| ## ImageNet class labels | |
| Each variant keeps an English `id2label` map directly in its own `model_index.json` (DiT-style). | |
| - `pipe.id2label` β inspect id β English label correspondence | |
| - `pipe.labels` β reverse map (English synonym β id), sorted for browsing | |
| - `pipe.get_label_ids("golden retriever")` | |
| - `pipe(class_labels="golden retriever", ...)` β string labels resolved automatically | |
| Chinese labels are preserved in the main source repo under `src/labels/id2label_cn.json` for reference. | |
| ## Inference | |
| Run the bundled demo script from the repo root: | |
| ```bash | |
| python demo_inference.py | |
| ``` | |
| This writes `demo.png` using `JiT-H-32` with the settings below. | |
| ```python | |
| from pathlib import Path | |
| from diffusers import DiffusionPipeline, FlowMatchHeunDiscreteScheduler | |
| import torch | |
| model_dir = Path("./JiT-H-32") | |
| pipe = DiffusionPipeline.from_pretrained( | |
| str(model_dir), | |
| custom_pipeline=str(model_dir / "pipeline.py"), | |
| trust_remote_code=True, | |
| ) | |
| pipe.scheduler = FlowMatchHeunDiscreteScheduler.from_config(pipe.scheduler.config, shift=4.0) | |
| pipe.to("cuda") | |
| # Numeric or human-readable labels | |
| print(pipe.id2label[207]) | |
| print(pipe.get_label_ids("golden retriever")) | |
| generator = torch.Generator(device="cuda").manual_seed(42) | |
| image = pipe( | |
| class_labels="golden retriever", | |
| num_inference_steps=50, | |
| guidance_scale=2.3, | |
| generator=generator, | |
| ).images[0] | |
| image.save("demo.png") | |
| ``` | |
| `height` and `width` default to the checkpoint's native resolution when omitted. | |
| Load a **variant subfolder** (e.g. `./JiT-H-32`), not the repo root. | |