Views
No views yet
pipeline.py, component modules, and weights.| Subfolder | Pipeline | Task | Resolution | Source checkpoint | gFID | Params |
|---|---|---|---|---|---|---|
PixelDiT-T2I-1024/ | PixelDiTT2IPipeline | text-to-image | 1024×1024 | pixeldit_t2i_v1.pth | — | ~1.3B |
PixelDiT-XL-16-256/ | PixelDiTPipeline | class-to-image | 256×256 | imagenet256_pixeldit_xl_epoch320.ckpt | 1.61 | ~700M |
PixelDiT-XL-16-512/ | PixelDiTPipeline | class-to-image | 512×512 | imagenet512_pixeldit_xl.ckpt | 1.81 | ~700M |
1BiliSakura/PixelDiT-diffusers/
2├── README.md
3├── demo_inference.py
4├── PixelDiT-T2I-1024/
5│ ├── pipeline.py
6│ ├── model_index.json
7│ ├── demo.png
8│ ├── scheduler/scheduler_config.json
9│ └── transformer/
10├── PixelDiT-XL-16-256/
11│ ├── pipeline.py
12│ ├── model_index.json
13│ ├── demo.png
14│ ├── scheduler/scheduler_config.json
15│ └── transformer/
16└── PixelDiT-XL-16-512/
17 ├── pipeline.py
18 ├── model_index.json
19 ├── scheduler/scheduler_config.json
20 └── transformer/scheduler/ folder uses built-in FlowMatchEulerDiscreteScheduler from PyPI diffusers. No shared helper modules at inference time beyond the local variant directory.id2label is embedded in each variant's model_index.json (DiT-style).pipe.id2label — inspect id → English label correspondencepipe.labels — reverse map (English synonym → id)pipe.get_label_ids("golden retriever")pipe(class_labels="golden retriever", ...) — string labels resolved automatically
guidance_scale=2.75.python demo_inference_t2i.py
guidance_scale=2.75, CFG interval [0.1, 0.9].python demo_inference.pyPixelDiT-T2I-1024)1from pathlib import Path
2import torch
3from diffusers import DiffusionPipeline
4
5model_dir = Path("./PixelDiT-T2I-1024").resolve()
6pipe = DiffusionPipeline.from_pretrained(
7 str(model_dir),
8 local_files_only=True,
9 custom_pipeline=str(model_dir / "pipeline.py"),
10 trust_remote_code=True,
11 torch_dtype=torch.bfloat16,
12)
13pipe.to("cuda")
14
15generator = torch.Generator(device="cuda").manual_seed(42)
16image = pipe(
17 prompt="A golden retriever playing in a sunny garden",
18 negative_prompt="low quality, worst quality, over-saturated, blurry, deformed, watermark",
19 height=1024,
20 width=1024,
21 num_inference_steps=50,
22 guidance_scale=2.75,
23 generator=generator,
24).images[0]
25image.save("demo.png")google/gemma-2-2b-it) is downloaded on first run unless bundled under text_encoder/.PixelDiT-XL-16-256)1from pathlib import Path
2import torch
3from diffusers import DiffusionPipeline
4
5model_dir = Path("./PixelDiT-XL-16-256").resolve()
6pipe = DiffusionPipeline.from_pretrained(
7 str(model_dir),
8 local_files_only=True,
9 custom_pipeline=str(model_dir / "pipeline.py"),
10 trust_remote_code=True,
11 torch_dtype=torch.bfloat16,
12)
13pipe.to("cuda")
14
15print(pipe.id2label[207])
16print(pipe.get_label_ids("golden retriever"))
17
18generator = torch.Generator(device="cuda").manual_seed(42)
19image = pipe(
20 class_labels="golden retriever",
21 height=256,
22 width=256,
23 num_inference_steps=100,
24 guidance_scale=2.75,
25 guidance_interval_min=0.1,
26 guidance_interval_max=0.9,
27 generator=generator,
28).images[0]
29image.save("demo.png")PixelDiT-XL-16-512)1from pathlib import Path
2import torch
3from diffusers import DiffusionPipeline
4
5model_dir = Path("./PixelDiT-XL-16-512").resolve()
6pipe = DiffusionPipeline.from_pretrained(
7 str(model_dir),
8 local_files_only=True,
9 custom_pipeline=str(model_dir / "pipeline.py"),
10 trust_remote_code=True,
11 torch_dtype=torch.bfloat16,
12)
13pipe.to("cuda")
14
15generator = torch.Generator(device="cuda").manual_seed(42)
16image = pipe(
17 class_labels=207,
18 height=512,
19 width=512,
20 num_inference_steps=100,
21 guidance_scale=3.5,
22 guidance_interval_min=0.1,
23 guidance_interval_max=1.0,
24 generator=generator,
25).images[0]
26image.save("demo.png")| Variant | Steps | CFG scale | Scheduler shift | CFG interval |
|---|---|---|---|---|
PixelDiT-T2I-1024 | 50 | 2.75 | 4.0 | [0.0, 1.0] |
PixelDiT-XL-16-256 | 100 | 2.75 | 1.0 | [0.1, 0.9] |
PixelDiT-XL-16-512 | 100 | 3.5 | 2.0 | [0.1, 1.0] |
height and width must be divisible by the patch size (16).1cd libs/PixelDiT-diffusers
2
3python scripts/convert_pixeldit_t2i_to_diffusers.py \
4 --checkpoint /path/to/pixeldit_t2i_v1.pth \
5 --config /path/to/config.json \
6 --output /path/to/PixelDiT-T2I-1024 \
7 --sample-size 1024 \
8 --scheduler-shift 4.0 \
9 --check-load
10
11python scripts/convert_pixeldit_to_diffusers.py \
12 --checkpoint /path/to/imagenet256_pixeldit_xl_epoch320.ckpt \
13 --output /path/to/PixelDiT-XL-16-256 \
14 --model-size pixeldit-xl \
15 --sample-size 256 \
16 --scheduler-shift 1.0 \
17 --check-load \
18 --id2label /path/to/id2label_en.json1@inproceedings{yu2025pixeldit,
2 title={PixelDiT: Pixel Diffusion Transformers for Image Generation},
3 author={Yongsheng Yu and Wei Xiong and Weili Nie and Yichen Sheng and Shiqiu Liu and Jiebo Luo},
4 booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
5 year={2026},
6}