Skip to content

Commit 3b635cb

Browse files
authored
Merge branch 'main' into fix/z-image-redundant-timestep
2 parents cbc10e2 + 303f3a7 commit 3b635cb

18 files changed

Lines changed: 179 additions & 51 deletions

File tree

.github/workflows/build_documentation.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ jobs:
2525
notebook_folder: diffusers_doc
2626
languages: en ko zh ja pt
2727
custom_container: diffusers/diffusers-doc-builder
28+
pre_command: uv pip uninstall transformers huggingface_hub && UV_PRERELEASE=allow uv pip install -U transformers@git+https://github.com/huggingface/transformers.git
2829
secrets:
2930
token: ${{ secrets.HUGGINGFACE_PUSH }}
3031
hf_token: ${{ secrets.HF_DOC_BUILD_PUSH }}

.github/workflows/build_pr_documentation.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,4 @@ jobs:
5050
package: diffusers
5151
languages: en ko zh ja pt
5252
custom_container: diffusers/diffusers-doc-builder
53+
pre_command: uv pip uninstall transformers huggingface_hub && UV_PRERELEASE=allow uv pip install -U transformers@git+https://github.com/huggingface/transformers.git

.github/workflows/pr_tests.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,8 @@ jobs:
194194
- name: Install dependencies
195195
run: |
196196
uv pip install -e ".[quality]"
197+
uv pip uninstall transformers huggingface_hub && UV_PRERELEASE=allow uv pip install -U transformers@git+https://github.com/huggingface/transformers.git
198+
uv pip uninstall tokenizers && uv pip install "tokenizers<=0.23.0"
197199
198200
- name: Environment
199201
run: |

src/diffusers/__init__.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
is_torchao_available,
2323
is_torchsde_available,
2424
is_transformers_available,
25+
is_transformers_flax_compatible,
2526
is_transformers_version,
2627
)
2728

@@ -861,7 +862,6 @@
861862
_import_structure["models.modeling_flax_utils"] = ["FlaxModelMixin"]
862863
_import_structure["models.unets.unet_2d_condition_flax"] = ["FlaxUNet2DConditionModel"]
863864
_import_structure["models.vae_flax"] = ["FlaxAutoencoderKL"]
864-
_import_structure["pipelines"].extend(["FlaxDiffusionPipeline"])
865865
_import_structure["schedulers"].extend(
866866
[
867867
"FlaxDDIMScheduler",
@@ -878,7 +878,7 @@
878878

879879

880880
try:
881-
if not (is_flax_available() and is_transformers_available()):
881+
if not (is_flax_available() and is_transformers_available() and is_transformers_flax_compatible()):
882882
raise OptionalDependencyNotAvailable()
883883
except OptionalDependencyNotAvailable:
884884
from .utils import dummy_flax_and_transformers_objects # noqa F403
@@ -891,6 +891,7 @@
891891
else:
892892
_import_structure["pipelines"].extend(
893893
[
894+
"FlaxDiffusionPipeline",
894895
"FlaxStableDiffusionControlNetPipeline",
895896
"FlaxStableDiffusionImg2ImgPipeline",
896897
"FlaxStableDiffusionInpaintPipeline",
@@ -1620,7 +1621,6 @@
16201621
from .models.modeling_flax_utils import FlaxModelMixin
16211622
from .models.unets.unet_2d_condition_flax import FlaxUNet2DConditionModel
16221623
from .models.vae_flax import FlaxAutoencoderKL
1623-
from .pipelines import FlaxDiffusionPipeline
16241624
from .schedulers import (
16251625
FlaxDDIMScheduler,
16261626
FlaxDDPMScheduler,
@@ -1634,12 +1634,13 @@
16341634
)
16351635

16361636
try:
1637-
if not (is_flax_available() and is_transformers_available()):
1637+
if not (is_flax_available() and is_transformers_available() and is_transformers_flax_compatible()):
16381638
raise OptionalDependencyNotAvailable()
16391639
except OptionalDependencyNotAvailable:
16401640
from .utils.dummy_flax_and_transformers_objects import * # noqa F403
16411641
else:
16421642
from .pipelines import (
1643+
FlaxDiffusionPipeline,
16431644
FlaxStableDiffusionControlNetPipeline,
16441645
FlaxStableDiffusionImg2ImgPipeline,
16451646
FlaxStableDiffusionInpaintPipeline,

src/diffusers/modular_pipelines/ernie_image/encoders.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,23 @@
1515
import json
1616

1717
import torch
18-
from transformers import AutoModel, AutoModelForCausalLM, AutoTokenizer
18+
from transformers import AutoTokenizer, Mistral3Model
1919

2020
from ...configuration_utils import FrozenDict
2121
from ...guiders import ClassifierFreeGuidance
2222
from ...utils import logging
23+
from ...utils.import_utils import is_transformers_version
2324
from ..modular_pipeline import ModularPipelineBlocks, PipelineState
2425
from ..modular_pipeline_utils import ComponentSpec, InputParam, OutputParam
2526
from .modular_pipeline import ErnieImageModularPipeline
2627

2728

29+
if is_transformers_version("<", "5.0.0"):
30+
raise ImportError("`ErnieImageModularPipeline` requires `transformers>=5.0.0` for `Ministral3ForCausalLM`.")
31+
32+
from transformers import Ministral3ForCausalLM # noqa: E402
33+
34+
2835
logger = logging.get_logger(__name__) # pylint: disable=invalid-name
2936

3037

@@ -38,7 +45,7 @@ def description(self) -> str:
3845
@property
3946
def expected_components(self) -> list[ComponentSpec]:
4047
return [
41-
ComponentSpec("pe", AutoModelForCausalLM),
48+
ComponentSpec("pe", Ministral3ForCausalLM),
4249
ComponentSpec("pe_tokenizer", AutoTokenizer),
4350
]
4451

@@ -83,7 +90,7 @@ def intermediate_outputs(self) -> list[OutputParam]:
8390

8491
@staticmethod
8592
def _enhance_prompt(
86-
pe: AutoModelForCausalLM,
93+
pe: Ministral3ForCausalLM,
8794
pe_tokenizer: AutoTokenizer,
8895
prompt: str,
8996
device: torch.device,
@@ -160,7 +167,7 @@ def description(self) -> str:
160167
@property
161168
def expected_components(self) -> list[ComponentSpec]:
162169
return [
163-
ComponentSpec("text_encoder", AutoModel),
170+
ComponentSpec("text_encoder", Mistral3Model),
164171
ComponentSpec("tokenizer", AutoTokenizer),
165172
ComponentSpec(
166173
"guider",
@@ -200,7 +207,7 @@ def intermediate_outputs(self) -> list[OutputParam]:
200207

201208
@staticmethod
202209
def _encode(
203-
text_encoder: AutoModel,
210+
text_encoder: Mistral3Model,
204211
tokenizer: AutoTokenizer,
205212
prompt: list[str],
206213
device: torch.device,

src/diffusers/pipelines/__init__.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
OptionalDependencyNotAvailable,
66
_LazyModule,
77
get_objects_from_module,
8-
is_flax_available,
98
is_librosa_available,
109
is_note_seq_available,
1110
is_onnx_available,
@@ -14,6 +13,7 @@
1413
is_torch_available,
1514
is_torch_npu_available,
1615
is_transformers_available,
16+
is_transformers_flax_compatible,
1717
is_transformers_version,
1818
)
1919

@@ -504,7 +504,7 @@
504504
_import_structure["consisid"] = ["ConsisIDPipeline"]
505505

506506
try:
507-
if not is_flax_available():
507+
if not is_transformers_flax_compatible():
508508
raise OptionalDependencyNotAvailable()
509509
except OptionalDependencyNotAvailable:
510510
from ..utils import dummy_flax_objects # noqa F403
@@ -513,7 +513,7 @@
513513
else:
514514
_import_structure["pipeline_flax_utils"] = ["FlaxDiffusionPipeline"]
515515
try:
516-
if not (is_flax_available() and is_transformers_available()):
516+
if not is_transformers_flax_compatible():
517517
raise OptionalDependencyNotAvailable()
518518
except OptionalDependencyNotAvailable:
519519
from ..utils import dummy_flax_and_transformers_objects # noqa F403
@@ -930,15 +930,15 @@
930930
from .consisid import ConsisIDPipeline
931931

932932
try:
933-
if not is_flax_available():
933+
if not is_transformers_flax_compatible():
934934
raise OptionalDependencyNotAvailable()
935935
except OptionalDependencyNotAvailable:
936936
from ..utils.dummy_flax_objects import * # noqa F403
937937
else:
938938
from .pipeline_flax_utils import FlaxDiffusionPipeline
939939

940940
try:
941-
if not (is_flax_available() and is_transformers_available()):
941+
if not is_transformers_flax_compatible():
942942
raise OptionalDependencyNotAvailable()
943943
except OptionalDependencyNotAvailable:
944944
from ..utils.dummy_flax_and_transformers_objects import *

src/diffusers/pipelines/controlnet/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
OptionalDependencyNotAvailable,
66
_LazyModule,
77
get_objects_from_module,
8-
is_flax_available,
98
is_torch_available,
109
is_transformers_available,
10+
is_transformers_flax_compatible,
1111
)
1212

1313

@@ -34,7 +34,7 @@
3434
_import_structure["pipeline_controlnet_union_sd_xl"] = ["StableDiffusionXLControlNetUnionPipeline"]
3535
_import_structure["pipeline_controlnet_union_sd_xl_img2img"] = ["StableDiffusionXLControlNetUnionImg2ImgPipeline"]
3636
try:
37-
if not (is_transformers_available() and is_flax_available()):
37+
if not is_transformers_flax_compatible():
3838
raise OptionalDependencyNotAvailable()
3939
except OptionalDependencyNotAvailable:
4040
from ...utils import dummy_flax_and_transformers_objects # noqa F403
@@ -65,7 +65,7 @@
6565
from .pipeline_controlnet_union_sd_xl_img2img import StableDiffusionXLControlNetUnionImg2ImgPipeline
6666

6767
try:
68-
if not (is_transformers_available() and is_flax_available()):
68+
if not is_transformers_flax_compatible():
6969
raise OptionalDependencyNotAvailable()
7070
except OptionalDependencyNotAvailable:
7171
from ...utils.dummy_flax_and_transformers_objects import * # noqa F403

src/diffusers/pipelines/controlnet_sd3/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
OptionalDependencyNotAvailable,
66
_LazyModule,
77
get_objects_from_module,
8-
is_flax_available,
98
is_torch_available,
109
is_transformers_available,
10+
is_transformers_flax_compatible,
1111
)
1212

1313

@@ -39,7 +39,7 @@
3939
from .pipeline_stable_diffusion_3_controlnet_inpainting import StableDiffusion3ControlNetInpaintingPipeline
4040

4141
try:
42-
if not (is_transformers_available() and is_flax_available()):
42+
if not is_transformers_flax_compatible():
4343
raise OptionalDependencyNotAvailable()
4444
except OptionalDependencyNotAvailable:
4545
from ...utils.dummy_flax_and_transformers_objects import * # noqa F403

src/diffusers/pipelines/deprecated/controlnet_xs/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
OptionalDependencyNotAvailable,
66
_LazyModule,
77
get_objects_from_module,
8-
is_flax_available,
98
is_torch_available,
109
is_transformers_available,
10+
is_transformers_flax_compatible,
1111
)
1212

1313

@@ -25,7 +25,7 @@
2525
_import_structure["pipeline_controlnet_xs"] = ["StableDiffusionControlNetXSPipeline"]
2626
_import_structure["pipeline_controlnet_xs_sd_xl"] = ["StableDiffusionXLControlNetXSPipeline"]
2727
try:
28-
if not (is_transformers_available() and is_flax_available()):
28+
if not is_transformers_flax_compatible():
2929
raise OptionalDependencyNotAvailable()
3030
except OptionalDependencyNotAvailable:
3131
from ....utils import dummy_flax_and_transformers_objects # noqa F403
@@ -47,7 +47,7 @@
4747
from .pipeline_controlnet_xs_sd_xl import StableDiffusionXLControlNetXSPipeline
4848

4949
try:
50-
if not (is_transformers_available() and is_flax_available()):
50+
if not is_transformers_flax_compatible():
5151
raise OptionalDependencyNotAvailable()
5252
except OptionalDependencyNotAvailable:
5353
from ....utils.dummy_flax_and_transformers_objects import * # noqa F403

src/diffusers/pipelines/ernie_image/pipeline_ernie_image.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,25 @@
2020
from typing import Callable, List, Optional, Union
2121

2222
import torch
23-
from transformers import AutoModel, AutoModelForCausalLM, AutoTokenizer
23+
from transformers import AutoTokenizer, Mistral3Model
2424

2525
from ...image_processor import VaeImageProcessor
2626
from ...loaders import ErnieImageLoraLoaderMixin
2727
from ...models import AutoencoderKLFlux2
2828
from ...models.transformers import ErnieImageTransformer2DModel
2929
from ...pipelines.pipeline_utils import DiffusionPipeline
3030
from ...schedulers import FlowMatchEulerDiscreteScheduler
31+
from ...utils.import_utils import is_transformers_version
3132
from ...utils.torch_utils import randn_tensor
3233
from .pipeline_output import ErnieImagePipelineOutput
3334

3435

36+
if is_transformers_version("<", "5.0.0"):
37+
raise ImportError("`ErnieImagePipeline` requires `transformers>=5.0.0` for `Ministral3ForCausalLM`.")
38+
39+
from transformers import Ministral3ForCausalLM # noqa: E402
40+
41+
3542
class ErnieImagePipeline(DiffusionPipeline, ErnieImageLoraLoaderMixin):
3643
"""
3744
Pipeline for text-to-image generation using ErnieImageTransformer2DModel.
@@ -52,10 +59,10 @@ def __init__(
5259
self,
5360
transformer: ErnieImageTransformer2DModel,
5461
vae: AutoencoderKLFlux2,
55-
text_encoder: AutoModel,
62+
text_encoder: Mistral3Model,
5663
tokenizer: AutoTokenizer,
5764
scheduler: FlowMatchEulerDiscreteScheduler,
58-
pe: Optional[AutoModelForCausalLM] = None,
65+
pe: Optional[Ministral3ForCausalLM] = None,
5966
pe_tokenizer: Optional[AutoTokenizer] = None,
6067
):
6168
super().__init__()

0 commit comments

Comments
 (0)