Skip to content

Commit 8417ff5

Browse files
committed
rename photon to prx
1 parent 57636ad commit 8417ff5

File tree

12 files changed

+88
-66
lines changed

12 files changed

+88
-66
lines changed

.gitignore

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,4 +178,26 @@ tags
178178
.ruff_cache
179179

180180
# wandb
181-
wandb
181+
wandb
182+
convert_checkpoints.py
183+
dcae_mirage_generated_image_.png
184+
dcae_prx_generated_image.png
185+
example_usage.py
186+
META_TENSOR_FIX.md
187+
mirage_generated_image__.png
188+
mirage_generated_image_.png
189+
prx_generated_image.png
190+
plan.md
191+
test_existing_checkpoints_with_timestep_change.py
192+
test_timestep_embedding.py
193+
test_updated_checkpoint.png
194+
test_updated_checkpoint.py
195+
testhf.ipynb
196+
update_checkpoint_parameters.py
197+
verify_checkpoint_parameters.py
198+
for_claude/mirage_layers.py
199+
for_claude/mirage.py
200+
for_claude/text_tower.py
201+
for_claude/vae_tower.py
202+
prx_/prx_layers.py
203+
prx_/prx.py

docs/source/en/_toctree.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -541,8 +541,8 @@
541541
title: PAG
542542
- local: api/pipelines/paint_by_example
543543
title: Paint by Example
544-
- local: api/pipelines/photon
545-
title: Photon
544+
- local: api/pipelines/prx
545+
title: PRX
546546
- local: api/pipelines/pixart
547547
title: PixArt-α
548548
- local: api/pipelines/pixart_sigma

docs/source/en/api/pipelines/photon.md

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -12,43 +12,43 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License. -->
1414

15-
# Photon
15+
# PRX
1616

1717

18-
Photon generates high-quality images from text using a simplified MMDIT architecture where text tokens don't update through transformer blocks. It employs flow matching with discrete scheduling for efficient sampling and uses Google's T5Gemma-2B-2B-UL2 model for multi-language text encoding. The ~1.3B parameter transformer delivers fast inference without sacrificing quality. You can choose between Flux VAE (8x compression, 16 latent channels) for balanced quality and speed or DC-AE (32x compression, 32 latent channels) for latent compression and faster processing.
18+
PRX generates high-quality images from text using a simplified MMDIT architecture where text tokens don't update through transformer blocks. It employs flow matching with discrete scheduling for efficient sampling and uses Google's T5Gemma-2B-2B-UL2 model for multi-language text encoding. The ~1.3B parameter transformer delivers fast inference without sacrificing quality. You can choose between Flux VAE (8x compression, 16 latent channels) for balanced quality and speed or DC-AE (32x compression, 32 latent channels) for latent compression and faster processing.
1919

2020
## Available models
2121

22-
Photon offers multiple variants with different VAE configurations, each optimized for specific resolutions. Base models excel with detailed prompts, capturing complex compositions and subtle details. Fine-tuned models trained on the [Alchemist dataset](https://huggingface.co/datasets/yandex/alchemist) improve aesthetic quality, especially with simpler prompts.
22+
PRX offers multiple variants with different VAE configurations, each optimized for specific resolutions. Base models excel with detailed prompts, capturing complex compositions and subtle details. Fine-tuned models trained on the [Alchemist dataset](https://huggingface.co/datasets/yandex/alchemist) improve aesthetic quality, especially with simpler prompts.
2323

2424

2525
| Model | Resolution | Fine-tuned | Distilled | Description | Suggested prompts | Suggested parameters | Recommended dtype |
2626
|:-----:|:-----------------:|:----------:|:----------:|:----------:|:----------:|:----------:|:----------:|
27-
| [`Photoroom/photon-256-t2i`](https://huggingface.co/Photoroom/photon-256-t2i)| 256 | No | No | Base model pre-trained at 256 with Flux VAE|Works best with detailed prompts in natural language|28 steps, cfg=5.0| `torch.bfloat16` |
28-
| [`Photoroom/photon-256-t2i-sft`](https://huggingface.co/Photoroom/photon-256-t2i-sft)| 512 | Yes | No | Fine-tuned on the [Alchemist dataset](https://huggingface.co/datasets/yandex/alchemist) dataset with Flux VAE | Can handle less detailed prompts|28 steps, cfg=5.0| `torch.bfloat16` |
29-
| [`Photoroom/photon-512-t2i`](https://huggingface.co/Photoroom/photon-512-t2i)| 512 | No | No | Base model pre-trained at 512 with Flux VAE |Works best with detailed prompts in natural language|28 steps, cfg=5.0| `torch.bfloat16` |
30-
| [`Photoroom/photon-512-t2i-sft`](https://huggingface.co/Photoroom/photon-512-t2i-sft)| 512 | Yes | No | Fine-tuned on the [Alchemist dataset](https://huggingface.co/datasets/yandex/alchemist) dataset with Flux VAE | Can handle less detailed prompts in natural language|28 steps, cfg=5.0| `torch.bfloat16` |
31-
| [`Photoroom/photon-512-t2i-sft-distilled`](https://huggingface.co/Photoroom/photon-512-t2i-sft-distilled)| 512 | Yes | Yes | 8-step distilled model from [`Photoroom/photon-512-t2i-sft`](https://huggingface.co/Photoroom/photon-512-t2i-sft) | Can handle less detailed prompts in natural language|8 steps, cfg=1.0| `torch.bfloat16` |
32-
| [`Photoroom/photon-512-t2i-dc-ae`](https://huggingface.co/Photoroom/photon-512-t2i-dc-ae)| 512 | No | No | Base model pre-trained at 512 with [Deep Compression Autoencoder (DC-AE)](https://hanlab.mit.edu/projects/dc-ae)|Works best with detailed prompts in natural language|28 steps, cfg=5.0| `torch.bfloat16` |
33-
| [`Photoroom/photon-512-t2i-dc-ae-sft`](https://huggingface.co/Photoroom/photon-512-t2i-dc-ae-sft)| 512 | Yes | No | Fine-tuned on the [Alchemist dataset](https://huggingface.co/datasets/yandex/alchemist) dataset with [Deep Compression Autoencoder (DC-AE)](https://hanlab.mit.edu/projects/dc-ae) | Can handle less detailed prompts in natural language|28 steps, cfg=5.0| `torch.bfloat16` |
34-
| [`Photoroom/photon-512-t2i-dc-ae-sft-distilled`](https://huggingface.co/Photoroom/photon-512-t2i-dc-ae-sft-distilled)| 512 | Yes | Yes | 8-step distilled model from [`Photoroom/photon-512-t2i-dc-ae-sft-distilled`](https://huggingface.co/Photoroom/photon-512-t2i-dc-ae-sft-distilled) | Can handle less detailed prompts in natural language|8 steps, cfg=1.0| `torch.bfloat16` |s
27+
| [`Photoroom/prx-256-t2i`](https://huggingface.co/Photoroom/prx-256-t2i)| 256 | No | No | Base model pre-trained at 256 with Flux VAE|Works best with detailed prompts in natural language|28 steps, cfg=5.0| `torch.bfloat16` |
28+
| [`Photoroom/prx-256-t2i-sft`](https://huggingface.co/Photoroom/prx-256-t2i-sft)| 512 | Yes | No | Fine-tuned on the [Alchemist dataset](https://huggingface.co/datasets/yandex/alchemist) dataset with Flux VAE | Can handle less detailed prompts|28 steps, cfg=5.0| `torch.bfloat16` |
29+
| [`Photoroom/prx-512-t2i`](https://huggingface.co/Photoroom/prx-512-t2i)| 512 | No | No | Base model pre-trained at 512 with Flux VAE |Works best with detailed prompts in natural language|28 steps, cfg=5.0| `torch.bfloat16` |
30+
| [`Photoroom/prx-512-t2i-sft`](https://huggingface.co/Photoroom/prx-512-t2i-sft)| 512 | Yes | No | Fine-tuned on the [Alchemist dataset](https://huggingface.co/datasets/yandex/alchemist) dataset with Flux VAE | Can handle less detailed prompts in natural language|28 steps, cfg=5.0| `torch.bfloat16` |
31+
| [`Photoroom/prx-512-t2i-sft-distilled`](https://huggingface.co/Photoroom/prx-512-t2i-sft-distilled)| 512 | Yes | Yes | 8-step distilled model from [`Photoroom/prx-512-t2i-sft`](https://huggingface.co/Photoroom/prx-512-t2i-sft) | Can handle less detailed prompts in natural language|8 steps, cfg=1.0| `torch.bfloat16` |
32+
| [`Photoroom/prx-512-t2i-dc-ae`](https://huggingface.co/Photoroom/prx-512-t2i-dc-ae)| 512 | No | No | Base model pre-trained at 512 with [Deep Compression Autoencoder (DC-AE)](https://hanlab.mit.edu/projects/dc-ae)|Works best with detailed prompts in natural language|28 steps, cfg=5.0| `torch.bfloat16` |
33+
| [`Photoroom/prx-512-t2i-dc-ae-sft`](https://huggingface.co/Photoroom/prx-512-t2i-dc-ae-sft)| 512 | Yes | No | Fine-tuned on the [Alchemist dataset](https://huggingface.co/datasets/yandex/alchemist) dataset with [Deep Compression Autoencoder (DC-AE)](https://hanlab.mit.edu/projects/dc-ae) | Can handle less detailed prompts in natural language|28 steps, cfg=5.0| `torch.bfloat16` |
34+
| [`Photoroom/prx-512-t2i-dc-ae-sft-distilled`](https://huggingface.co/Photoroom/prx-512-t2i-dc-ae-sft-distilled)| 512 | Yes | Yes | 8-step distilled model from [`Photoroom/prx-512-t2i-dc-ae-sft-distilled`](https://huggingface.co/Photoroom/prx-512-t2i-dc-ae-sft-distilled) | Can handle less detailed prompts in natural language|8 steps, cfg=1.0| `torch.bfloat16` |s
3535

36-
Refer to [this](https://huggingface.co/collections/Photoroom/photon-models-68e66254c202ebfab99ad38e) collection for more information.
36+
Refer to [this](https://huggingface.co/collections/Photoroom/prx-models-68e66254c202ebfab99ad38e) collection for more information.
3737

3838
## Loading the pipeline
3939

4040
Load the pipeline with [`~DiffusionPipeline.from_pretrained`].
4141

4242
```py
43-
from diffusers.pipelines.photon import PhotonPipeline
43+
from diffusers.pipelines.prx import PRXPipeline
4444

4545
# Load pipeline - VAE and text encoder will be loaded from HuggingFace
46-
pipe = PhotonPipeline.from_pretrained("Photoroom/photon-512-t2i-sft", torch_dtype=torch.bfloat16)
46+
pipe = PRXPipeline.from_pretrained("Photoroom/prx-512-t2i-sft", torch_dtype=torch.bfloat16)
4747
pipe.to("cuda")
4848

4949
prompt = "A front-facing portrait of a lion the golden savanna at sunset."
5050
image = pipe(prompt, num_inference_steps=28, guidance_scale=5.0).images[0]
51-
image.save("photon_output.png")
51+
image.save("prx_output.png")
5252
```
5353

5454
### Manual Component Loading
@@ -57,26 +57,26 @@ Load components individually to customize the pipeline for instance to use quant
5757

5858
```py
5959
import torch
60-
from diffusers.pipelines.photon import PhotonPipeline
60+
from diffusers.pipelines.prx import PRXPipeline
6161
from diffusers.models import AutoencoderKL, AutoencoderDC
62-
from diffusers.models.transformers.transformer_photon import PhotonTransformer2DModel
62+
from diffusers.models.transformers.transformer_prx import PRXTransformer2DModel
6363
from diffusers.schedulers import FlowMatchEulerDiscreteScheduler
6464
from transformers import T5GemmaModel, GemmaTokenizerFast
6565
from diffusers import BitsAndBytesConfig as DiffusersBitsAndBytesConfig
6666
from transformers import BitsAndBytesConfig as BitsAndBytesConfig
6767

6868
quant_config = DiffusersBitsAndBytesConfig(load_in_8bit=True)
6969
# Load transformer
70-
transformer = PhotonTransformer2DModel.from_pretrained(
71-
"checkpoints/photon-512-t2i-sft",
70+
transformer = PRXTransformer2DModel.from_pretrained(
71+
"checkpoints/prx-512-t2i-sft",
7272
subfolder="transformer",
7373
quantization_config=quant_config,
7474
torch_dtype=torch.bfloat16,
7575
)
7676

7777
# Load scheduler
7878
scheduler = FlowMatchEulerDiscreteScheduler.from_pretrained(
79-
"checkpoints/photon-512-t2i-sft", subfolder="scheduler"
79+
"checkpoints/prx-512-t2i-sft", subfolder="scheduler"
8080
)
8181

8282
# Load T5Gemma text encoder
@@ -94,7 +94,7 @@ vae = AutoencoderKL.from_pretrained("black-forest-labs/FLUX.1-dev",
9494
quantization_config=quant_config,
9595
torch_dtype=torch.bfloat16)
9696

97-
pipe = PhotonPipeline(
97+
pipe = PRXPipeline(
9898
transformer=transformer,
9999
scheduler=scheduler,
100100
text_encoder=text_encoder,
@@ -111,21 +111,21 @@ For memory-constrained environments:
111111

112112
```py
113113
import torch
114-
from diffusers.pipelines.photon import PhotonPipeline
114+
from diffusers.pipelines.prx import PRXPipeline
115115

116-
pipe = PhotonPipeline.from_pretrained("Photoroom/photon-512-t2i-sft", torch_dtype=torch.bfloat16)
116+
pipe = PRXPipeline.from_pretrained("Photoroom/prx-512-t2i-sft", torch_dtype=torch.bfloat16)
117117
pipe.enable_model_cpu_offload() # Offload components to CPU when not in use
118118

119119
# Or use sequential CPU offload for even lower memory
120120
pipe.enable_sequential_cpu_offload()
121121
```
122122

123-
## PhotonPipeline
123+
## PRXPipeline
124124

125-
[[autodoc]] PhotonPipeline
125+
[[autodoc]] PRXPipeline
126126
- all
127127
- __call__
128128

129-
## PhotonPipelineOutput
129+
## PRXPipelineOutput
130130

131-
[[autodoc]] pipelines.photon.pipeline_output.PhotonPipelineOutput
131+
[[autodoc]] pipelines.prx.pipeline_output.PRXPipelineOutput

scripts/convert_photon_to_diffusers.py

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/env python3
22
"""
3-
Script to convert Photon checkpoint from original codebase to diffusers format.
3+
Script to convert PRX checkpoint from original codebase to diffusers format.
44
"""
55

66
import argparse
@@ -13,15 +13,15 @@
1313
import torch
1414
from safetensors.torch import save_file
1515

16-
from diffusers.models.transformers.transformer_photon import PhotonTransformer2DModel
17-
from diffusers.pipelines.photon import PhotonPipeline
16+
from diffusers.models.transformers.transformer_prx import PRXTransformer2DModel
17+
from diffusers.pipelines.prx import PRXPipeline
1818

1919

2020
DEFAULT_RESOLUTION = 512
2121

2222

2323
@dataclass(frozen=True)
24-
class PhotonBase:
24+
class PRXBase:
2525
context_in_dim: int = 2304
2626
hidden_size: int = 1792
2727
mlp_ratio: float = 3.5
@@ -34,22 +34,22 @@ class PhotonBase:
3434

3535

3636
@dataclass(frozen=True)
37-
class PhotonFlux(PhotonBase):
37+
class PRXFlux(PRXBase):
3838
in_channels: int = 16
3939
patch_size: int = 2
4040

4141

4242
@dataclass(frozen=True)
43-
class PhotonDCAE(PhotonBase):
43+
class PRXDCAE(PRXBase):
4444
in_channels: int = 32
4545
patch_size: int = 1
4646

4747

4848
def build_config(vae_type: str) -> Tuple[dict, int]:
4949
if vae_type == "flux":
50-
cfg = PhotonFlux()
50+
cfg = PRXFlux()
5151
elif vae_type == "dc-ae":
52-
cfg = PhotonDCAE()
52+
cfg = PRXDCAE()
5353
else:
5454
raise ValueError(f"Unsupported VAE type: {vae_type}. Use 'flux' or 'dc-ae'")
5555

@@ -64,7 +64,7 @@ def create_parameter_mapping(depth: int) -> dict:
6464
# Key mappings for structural changes
6565
mapping = {}
6666

67-
# Map old structure (layers in PhotonBlock) to new structure (layers in PhotonAttention)
67+
# Map old structure (layers in PRXBlock) to new structure (layers in PRXAttention)
6868
for i in range(depth):
6969
# QKV projections moved to attention module
7070
mapping[f"blocks.{i}.img_qkv_proj.weight"] = f"blocks.{i}.attention.img_qkv_proj.weight"
@@ -108,8 +108,8 @@ def convert_checkpoint_parameters(old_state_dict: Dict[str, torch.Tensor], depth
108108
return converted_state_dict
109109

110110

111-
def create_transformer_from_checkpoint(checkpoint_path: str, config: dict) -> PhotonTransformer2DModel:
112-
"""Create and load PhotonTransformer2DModel from old checkpoint."""
111+
def create_transformer_from_checkpoint(checkpoint_path: str, config: dict) -> PRXTransformer2DModel:
112+
"""Create and load PRXTransformer2DModel from old checkpoint."""
113113

114114
print(f"Loading checkpoint from: {checkpoint_path}")
115115

@@ -137,8 +137,8 @@ def create_transformer_from_checkpoint(checkpoint_path: str, config: dict) -> Ph
137137
converted_state_dict = convert_checkpoint_parameters(state_dict, depth=model_depth)
138138

139139
# Create transformer with config
140-
print("Creating PhotonTransformer2DModel...")
141-
transformer = PhotonTransformer2DModel(**config)
140+
print("Creating PRXTransformer2DModel...")
141+
transformer = PRXTransformer2DModel(**config)
142142

143143
# Load state dict
144144
print("Loading converted parameters...")
@@ -221,14 +221,14 @@ def create_model_index(vae_type: str, default_image_size: int, output_path: str)
221221
vae_class = "AutoencoderDC"
222222

223223
model_index = {
224-
"_class_name": "PhotonPipeline",
224+
"_class_name": "PRXPipeline",
225225
"_diffusers_version": "0.31.0.dev0",
226226
"_name_or_path": os.path.basename(output_path),
227227
"default_sample_size": default_image_size,
228228
"scheduler": ["diffusers", "FlowMatchEulerDiscreteScheduler"],
229-
"text_encoder": ["photon", "T5GemmaEncoder"],
229+
"text_encoder": ["prx", "T5GemmaEncoder"],
230230
"tokenizer": ["transformers", "GemmaTokenizerFast"],
231-
"transformer": ["diffusers", "PhotonTransformer2DModel"],
231+
"transformer": ["diffusers", "PRXTransformer2DModel"],
232232
"vae": ["diffusers", vae_class],
233233
}
234234

@@ -275,7 +275,7 @@ def main(args):
275275

276276
# Verify the pipeline can be loaded
277277
try:
278-
pipeline = PhotonPipeline.from_pretrained(args.output_path)
278+
pipeline = PRXPipeline.from_pretrained(args.output_path)
279279
print("Pipeline loaded successfully!")
280280
print(f"Transformer: {type(pipeline.transformer).__name__}")
281281
print(f"VAE: {type(pipeline.vae).__name__}")
@@ -298,10 +298,10 @@ def main(args):
298298

299299

300300
if __name__ == "__main__":
301-
parser = argparse.ArgumentParser(description="Convert Photon checkpoint to diffusers format")
301+
parser = argparse.ArgumentParser(description="Convert PRX checkpoint to diffusers format")
302302

303303
parser.add_argument(
304-
"--checkpoint_path", type=str, required=True, help="Path to the original Photon checkpoint (.pth file )"
304+
"--checkpoint_path", type=str, required=True, help="Path to the original PRX checkpoint (.pth file )"
305305
)
306306

307307
parser.add_argument(

src/diffusers/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@
232232
"MultiControlNetModel",
233233
"OmniGenTransformer2DModel",
234234
"ParallelConfig",
235-
"PhotonTransformer2DModel",
235+
"PRXTransformer2DModel",
236236
"PixArtTransformer2DModel",
237237
"PriorTransformer",
238238
"QwenImageControlNetModel",
@@ -516,7 +516,7 @@
516516
"MusicLDMPipeline",
517517
"OmniGenPipeline",
518518
"PaintByExamplePipeline",
519-
"PhotonPipeline",
519+
"PRXPipeline",
520520
"PIAPipeline",
521521
"PixArtAlphaPipeline",
522522
"PixArtSigmaPAGPipeline",
@@ -928,7 +928,7 @@
928928
MultiControlNetModel,
929929
OmniGenTransformer2DModel,
930930
ParallelConfig,
931-
PhotonTransformer2DModel,
931+
PRXTransformer2DModel,
932932
PixArtTransformer2DModel,
933933
PriorTransformer,
934934
QwenImageControlNetModel,
@@ -1182,7 +1182,7 @@
11821182
MusicLDMPipeline,
11831183
OmniGenPipeline,
11841184
PaintByExamplePipeline,
1185-
PhotonPipeline,
1185+
PRXPipeline,
11861186
PIAPipeline,
11871187
PixArtAlphaPipeline,
11881188
PixArtSigmaPAGPipeline,

src/diffusers/models/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@
9696
_import_structure["transformers.transformer_lumina2"] = ["Lumina2Transformer2DModel"]
9797
_import_structure["transformers.transformer_mochi"] = ["MochiTransformer3DModel"]
9898
_import_structure["transformers.transformer_omnigen"] = ["OmniGenTransformer2DModel"]
99-
_import_structure["transformers.transformer_photon"] = ["PhotonTransformer2DModel"]
99+
_import_structure["transformers.transformer_prx"] = ["PRXTransformer2DModel"]
100100
_import_structure["transformers.transformer_qwenimage"] = ["QwenImageTransformer2DModel"]
101101
_import_structure["transformers.transformer_sd3"] = ["SD3Transformer2DModel"]
102102
_import_structure["transformers.transformer_skyreels_v2"] = ["SkyReelsV2Transformer3DModel"]
@@ -191,7 +191,7 @@
191191
LuminaNextDiT2DModel,
192192
MochiTransformer3DModel,
193193
OmniGenTransformer2DModel,
194-
PhotonTransformer2DModel,
194+
PRXTransformer2DModel,
195195
PixArtTransformer2DModel,
196196
PriorTransformer,
197197
QwenImageTransformer2DModel,

src/diffusers/models/transformers/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
from .transformer_lumina2 import Lumina2Transformer2DModel
3333
from .transformer_mochi import MochiTransformer3DModel
3434
from .transformer_omnigen import OmniGenTransformer2DModel
35-
from .transformer_photon import PhotonTransformer2DModel
35+
from .transformer_prx import PRXTransformer2DModel
3636
from .transformer_qwenimage import QwenImageTransformer2DModel
3737
from .transformer_sd3 import SD3Transformer2DModel
3838
from .transformer_skyreels_v2 import SkyReelsV2Transformer3DModel

src/diffusers/pipelines/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@
144144
"FluxKontextPipeline",
145145
"FluxKontextInpaintPipeline",
146146
]
147-
_import_structure["photon"] = ["PhotonPipeline"]
147+
_import_structure["prx"] = ["PRXPipeline"]
148148
_import_structure["audioldm"] = ["AudioLDMPipeline"]
149149
_import_structure["audioldm2"] = [
150150
"AudioLDM2Pipeline",
@@ -718,7 +718,7 @@
718718
StableDiffusionXLPAGPipeline,
719719
)
720720
from .paint_by_example import PaintByExamplePipeline
721-
from .photon import PhotonPipeline
721+
from .prx import PRXPipeline
722722
from .pia import PIAPipeline
723723
from .pixart_alpha import PixArtAlphaPipeline, PixArtSigmaPipeline
724724
from .qwenimage import (

0 commit comments

Comments
 (0)