File size: 2,630 Bytes
e979e25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4062de2
e979e25
 
 
 
 
 
 
 
 
 
 
 
4062de2
e979e25
 
 
 
 
 
0455112
4062de2
e979e25
 
 
 
 
 
 
 
 
 
 
 
 
 
4062de2
e979e25
4062de2
 
 
 
 
e979e25
 
 
 
 
 
 
 
 
 
 
 
 
4062de2
e979e25
4062de2
 
 
 
 
 
 
e979e25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
---
license: mit
library_name: diffusers
pipeline_tag: unconditional-image-generation
tags:
- diffusers
- jlt
- image-generation
- class-conditional
- flux2
- clean-latent
widget:
- text: golden retriever
  output:
    url: demo.png
language:
- en
---

# JLT-diffusers

Native [diffusers](https://github.com/huggingface/diffusers) checkpoints for **JLT** (Clean-Latent Prediction in Latent Diffusion Transformers). Paper: [arXiv:2605.27102](https://arxiv.org/abs/2605.27102). Code: [akatsuki-neo/JLT](https://github.com/akatsuki-neo/JLT). Each variant folder is self-contained:

- `pipeline.py` β€” `JLTPipeline`
- `scheduler/scheduling_jlt.py` β€” `JLTScheduler` (JLT time `t: 0 β†’ 1`, Heun / Euler)
- `transformer/transformer_jlt.py` β€” `JLTTransformer2DModel`
- `vae/` β€” bundled `AutoencoderKLFlux2`

Load with PyPI `diffusers` and `trust_remote_code=True`. No extra JLT package is required.

## Demo

![JLT-B-1 demo](demo.png)

Class: *golden retriever* (ImageNet 207) β€” JLT-B/1 at 256Γ—256, 50 Heun steps, `guidance_scale=2.9`, `noise_scale=1.0`, `torch_dtype=bfloat16`, seed 42. These checkpoints are trained and sampled at 256Γ—256 only.

## Available checkpoints

| Checkpoint | Path | Resolution | Latent | Recommended CFG |
| --- | --- | --- | --- | ---: |
| JLT-B/1 | [`JLT-B-1/`](JLT-B-1/) | 256Γ—256 | FLUX.2, patch /1 | 2.9 |
| JLT-L/1 | [`JLT-L-1/`](JLT-L-1/) | 256Γ—256 | FLUX.2, patch /1 | 2.9 |
| JLT-H/1 | [`JLT-H-1/`](JLT-H-1/) | 256Γ—256 | FLUX.2, patch /1 | 2.9 |

## ImageNet class labels

Each variant keeps an English `id2label` map in `model_index.json`.

- `pipe.id2label` β€” id β†’ English label
- `pipe.labels` β€” synonym β†’ id
- `pipe.get_label_ids("golden retriever")`
- `pipe(class_labels="golden retriever", ...)` β€” string labels resolve automatically

## Inference

```python
import torch
from diffusers import DiffusionPipeline

pipe = DiffusionPipeline.from_pretrained(
    "BiliSakura/JLT-diffusers",
    subfolder="JLT-B-1",  # or "JLT-L-1" / "JLT-H-1"
    custom_pipeline="pipeline.py",
    trust_remote_code=True,
    torch_dtype=torch.bfloat16,
).to("cuda")

print(pipe.id2label[207])
image = pipe(
    class_labels="golden retriever",
    num_inference_steps=50,
    guidance_scale=2.9,
    generator=torch.Generator(device="cuda").manual_seed(42),
).images[0]
image.save("demo.png")
```

## Citation

```bibtex
@article{fu2026jlt,
  title={{JLT}: {C}lean-{L}atent {P}rediction in {L}atent {D}iffusion {T}ransformers},
  author={Fu, Funing and Wang, Tenghui and Zhou, Guanyu and Cen, Junyong and Zhu, Qichao},
  journal = {arXiv preprint arXiv:2605.27102},
  year={2026}
}
```