From 039324ae167a1d668733407cc63f31fd43590975 Mon Sep 17 00:00:00 2001 From: sayakpaul Date: Wed, 14 Jan 2026 14:52:15 +0530 Subject: [PATCH 1/8] switch to transformers main again./ --- .github/workflows/pr_tests.yml | 4 ++-- .github/workflows/pr_tests_gpu.yml | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pr_tests.yml b/.github/workflows/pr_tests.yml index c0dfa89e776d..85fd9850ee34 100644 --- a/.github/workflows/pr_tests.yml +++ b/.github/workflows/pr_tests.yml @@ -115,8 +115,8 @@ jobs: - name: Install dependencies run: | uv pip install -e ".[quality]" - #uv pip uninstall transformers huggingface_hub && uv pip install --prerelease allow -U transformers@git+https://github.com/huggingface/transformers.git - uv pip uninstall transformers huggingface_hub && uv pip install transformers==4.57.1 + uv pip uninstall transformers huggingface_hub && uv pip install --prerelease allow -U transformers@git+https://github.com/huggingface/transformers.git + # uv pip uninstall transformers huggingface_hub && uv pip install transformers==4.57.1 uv pip uninstall accelerate && uv pip install -U accelerate@git+https://github.com/huggingface/accelerate.git --no-deps - name: Environment diff --git a/.github/workflows/pr_tests_gpu.yml b/.github/workflows/pr_tests_gpu.yml index dd20bbe93250..2ae48291be7f 100644 --- a/.github/workflows/pr_tests_gpu.yml +++ b/.github/workflows/pr_tests_gpu.yml @@ -14,6 +14,7 @@ on: - "tests/pipelines/test_pipelines_common.py" - "tests/models/test_modeling_common.py" - "examples/**/*.py" + - ".github/**.yml" workflow_dispatch: concurrency: @@ -131,8 +132,8 @@ jobs: run: | uv pip install -e ".[quality]" uv pip uninstall accelerate && uv pip install -U accelerate@git+https://github.com/huggingface/accelerate.git - #uv pip uninstall transformers huggingface_hub && uv pip install --prerelease allow -U transformers@git+https://github.com/huggingface/transformers.git - uv pip uninstall transformers huggingface_hub && uv pip install transformers==4.57.1 + uv pip uninstall transformers huggingface_hub && uv pip install --prerelease allow -U transformers@git+https://github.com/huggingface/transformers.git + # uv pip uninstall transformers huggingface_hub && uv pip install transformers==4.57.1 - name: Environment run: | From c152b1831cef9da6d66b150c7ceec95977961bf3 Mon Sep 17 00:00:00 2001 From: sayakpaul Date: Wed, 14 Jan 2026 14:54:39 +0530 Subject: [PATCH 2/8] more --- .github/workflows/pr_tests.yml | 4 ++-- .github/workflows/pr_tests_gpu.yml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/pr_tests.yml b/.github/workflows/pr_tests.yml index 85fd9850ee34..b3d08dfce01e 100644 --- a/.github/workflows/pr_tests.yml +++ b/.github/workflows/pr_tests.yml @@ -247,8 +247,8 @@ jobs: uv pip install -U peft@git+https://github.com/huggingface/peft.git --no-deps uv pip install -U tokenizers uv pip uninstall accelerate && uv pip install -U accelerate@git+https://github.com/huggingface/accelerate.git --no-deps - #uv pip uninstall transformers huggingface_hub && uv pip install --prerelease allow -U transformers@git+https://github.com/huggingface/transformers.git - uv pip uninstall transformers huggingface_hub && uv pip install transformers==4.57.1 + uv pip uninstall transformers huggingface_hub && uv pip install --prerelease allow -U transformers@git+https://github.com/huggingface/transformers.git + # uv pip uninstall transformers huggingface_hub && uv pip install transformers==4.57.1 - name: Environment run: | diff --git a/.github/workflows/pr_tests_gpu.yml b/.github/workflows/pr_tests_gpu.yml index 2ae48291be7f..58c7ba6263b5 100644 --- a/.github/workflows/pr_tests_gpu.yml +++ b/.github/workflows/pr_tests_gpu.yml @@ -203,8 +203,8 @@ jobs: uv pip install -e ".[quality]" uv pip install peft@git+https://github.com/huggingface/peft.git uv pip uninstall accelerate && uv pip install -U accelerate@git+https://github.com/huggingface/accelerate.git - #uv pip uninstall transformers huggingface_hub && uv pip install --prerelease allow -U transformers@git+https://github.com/huggingface/transformers.git - uv pip uninstall transformers huggingface_hub && uv pip install transformers==4.57.1 + uv pip uninstall transformers huggingface_hub && uv pip install --prerelease allow -U transformers@git+https://github.com/huggingface/transformers.git + # uv pip uninstall transformers huggingface_hub && uv pip install transformers==4.57.1 - name: Environment run: | @@ -265,8 +265,8 @@ jobs: nvidia-smi - name: Install dependencies run: | - #uv pip uninstall transformers huggingface_hub && uv pip install --prerelease allow -U transformers@git+https://github.com/huggingface/transformers.git - uv pip uninstall transformers huggingface_hub && uv pip install transformers==4.57.1 + uv pip uninstall transformers huggingface_hub && uv pip install --prerelease allow -U transformers@git+https://github.com/huggingface/transformers.git + # uv pip uninstall transformers huggingface_hub && uv pip install transformers==4.57.1 uv pip install -e ".[quality,training]" - name: Environment From c5e023fbe64641bc1d7ea257bc58fa030137c60a Mon Sep 17 00:00:00 2001 From: sayakpaul Date: Thu, 15 Jan 2026 13:02:55 +0530 Subject: [PATCH 3/8] up --- tests/models/test_models_auto.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/models/test_models_auto.py b/tests/models/test_models_auto.py index a70754343f30..c0e9b4494b07 100644 --- a/tests/models/test_models_auto.py +++ b/tests/models/test_models_auto.py @@ -20,7 +20,9 @@ def test_load_from_config_diffusers_with_subfolder(self, mock_load_config): side_effect=[EnvironmentError("File not found"), {"model_type": "clip_text_model"}], ) def test_load_from_config_transformers_with_subfolder(self, mock_load_config): - model = AutoModel.from_pretrained("hf-internal-testing/tiny-stable-diffusion-torch", subfolder="text_encoder") + model = AutoModel.from_pretrained( + "hf-internal-testing/tiny-stable-diffusion-torch", subfolder="text_encoder", use_safetensors=False + ) assert isinstance(model, CLIPTextModel) def test_load_from_config_without_subfolder(self): @@ -28,5 +30,7 @@ def test_load_from_config_without_subfolder(self): assert isinstance(model, LongformerModel) def test_load_from_model_index(self): - model = AutoModel.from_pretrained("hf-internal-testing/tiny-stable-diffusion-torch", subfolder="text_encoder") + model = AutoModel.from_pretrained( + "hf-internal-testing/tiny-stable-diffusion-torch", subfolder="text_encoder", use_safetensors=False + ) assert isinstance(model, CLIPTextModel) From d0f279ce76c587d70e4f8f3074d3fd8d47a0834a Mon Sep 17 00:00:00 2001 From: sayakpaul Date: Thu, 15 Jan 2026 16:59:41 +0530 Subject: [PATCH 4/8] up --- examples/custom_diffusion/test_custom_diffusion.py | 4 ++++ src/diffusers/pipelines/kandinsky/text_encoder.py | 2 ++ src/diffusers/pipelines/kolors/text_encoder.py | 5 ++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/examples/custom_diffusion/test_custom_diffusion.py b/examples/custom_diffusion/test_custom_diffusion.py index 9af84ec7598f..ad18eb246777 100644 --- a/examples/custom_diffusion/test_custom_diffusion.py +++ b/examples/custom_diffusion/test_custom_diffusion.py @@ -17,6 +17,9 @@ import os import sys import tempfile +import unittest + +from diffusers.utils import is_transformers_version sys.path.append("..") @@ -30,6 +33,7 @@ logger.addHandler(stream_handler) +@unittest.skipIf(is_transformers_version(">=", "4.57.5"), "Size mismatch") class CustomDiffusion(ExamplesTestsAccelerate): def test_custom_diffusion(self): with tempfile.TemporaryDirectory() as tmpdir: diff --git a/src/diffusers/pipelines/kandinsky/text_encoder.py b/src/diffusers/pipelines/kandinsky/text_encoder.py index caa0029f00ca..58cc9ac4d3ed 100644 --- a/src/diffusers/pipelines/kandinsky/text_encoder.py +++ b/src/diffusers/pipelines/kandinsky/text_encoder.py @@ -20,6 +20,8 @@ def __init__(self, config, *args, **kwargs): self.LinearTransformation = torch.nn.Linear( in_features=config.transformerDimensions, out_features=config.numDims ) + if hasattr(self, "post_init"): + self.post_init() def forward(self, input_ids, attention_mask): embs = self.transformer(input_ids=input_ids, attention_mask=attention_mask)[0] diff --git a/src/diffusers/pipelines/kolors/text_encoder.py b/src/diffusers/pipelines/kolors/text_encoder.py index 6fd17156a116..88c551028968 100644 --- a/src/diffusers/pipelines/kolors/text_encoder.py +++ b/src/diffusers/pipelines/kolors/text_encoder.py @@ -782,6 +782,9 @@ def __init__(self, config: ChatGLMConfig, device=None, empty_init=True): self.prefix_encoder = PrefixEncoder(config) self.dropout = torch.nn.Dropout(0.1) + if hasattr(self, "post_init"): + self.post_init() + def get_input_embeddings(self): return self.embedding.word_embeddings @@ -811,7 +814,7 @@ def forward( output_hidden_states = ( output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states ) - use_cache = use_cache if use_cache is not None else self.config.use_cache + use_cache = use_cache if use_cache is not None else getattr(self.config, "use_cache", None) return_dict = return_dict if return_dict is not None else self.config.use_return_dict batch_size, seq_length = input_ids.shape From 96f08043a392b4ab234dff06e0ddcd511fcdb4eb Mon Sep 17 00:00:00 2001 From: sayakpaul Date: Thu, 15 Jan 2026 20:00:45 +0530 Subject: [PATCH 5/8] fix group offloading. --- src/diffusers/hooks/_common.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/diffusers/hooks/_common.py b/src/diffusers/hooks/_common.py index ca7934e5c313..52e3508846f6 100644 --- a/src/diffusers/hooks/_common.py +++ b/src/diffusers/hooks/_common.py @@ -44,6 +44,7 @@ torch.nn.ConvTranspose2d, torch.nn.ConvTranspose3d, torch.nn.Linear, + torch.nn.Embedding, # TODO(aryan): look into torch.nn.LayerNorm, torch.nn.GroupNorm later, seems to be causing some issues with CogVideoX # because of double invocation of the same norm layer in CogVideoXLayerNorm ) From 37cfceef0dda50512d739c02362065b521ba6a11 Mon Sep 17 00:00:00 2001 From: sayakpaul Date: Fri, 16 Jan 2026 09:38:48 +0530 Subject: [PATCH 6/8] attributes --- src/diffusers/loaders/textual_inversion.py | 32 +++++++++++++++++----- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/src/diffusers/loaders/textual_inversion.py b/src/diffusers/loaders/textual_inversion.py index 63fc97ed431f..3eca9821bdfe 100644 --- a/src/diffusers/loaders/textual_inversion.py +++ b/src/diffusers/loaders/textual_inversion.py @@ -19,7 +19,13 @@ from torch import nn from ..models.modeling_utils import load_state_dict -from ..utils import _get_model_file, is_accelerate_available, is_transformers_available, logging +from ..utils import ( + _get_model_file, + is_accelerate_available, + is_transformers_available, + is_transformers_version, + logging, +) if is_transformers_available(): @@ -549,17 +555,29 @@ def unload_textual_inversion( # Delete from tokenizer for token_id, token_to_remove in zip(token_ids, tokens): - del tokenizer._added_tokens_decoder[token_id] - del tokenizer._added_tokens_encoder[token_to_remove] + if is_transformers_version("<=", "4.58.0"): + del tokenizer._added_tokens_decoder[token_id] + del tokenizer._added_tokens_encoder[token_to_remove] + elif is_transformers_version(">", "4.58.0"): + del tokenizer.added_tokens_decoder[token_id] + del tokenizer.added_tokens_encoder[token_to_remove] # Make all token ids sequential in tokenizer key_id = 1 for token_id in tokenizer.added_tokens_decoder: if token_id > last_special_token_id and token_id > last_special_token_id + key_id: - token = tokenizer._added_tokens_decoder[token_id] - tokenizer._added_tokens_decoder[last_special_token_id + key_id] = token - del tokenizer._added_tokens_decoder[token_id] - tokenizer._added_tokens_encoder[token.content] = last_special_token_id + key_id + if is_transformers_version("<=", "4.58.0"): + token = tokenizer._added_tokens_decoder[token_id] + tokenizer._added_tokens_decoder[last_special_token_id + key_id] = token + del tokenizer._added_tokens_decoder[token_id] + elif is_transformers_version(">", "4.58.0"): + token = tokenizer.added_tokens_decoder[token_id] + tokenizer.added_tokens_decoder[last_special_token_id + key_id] = token + del tokenizer.added_tokens_decoder[token_id] + if is_transformers_version("<=", "4.58.0"): + tokenizer._added_tokens_encoder[token.content] = last_special_token_id + key_id + elif is_transformers_version(">", "4.58.0"): + tokenizer.added_tokens_encoder[token.content] = last_special_token_id + key_id key_id += 1 tokenizer._update_trie() # set correct total vocab size after removing tokens From 926db24add2661c5a28513b3ff3ee6badac8f799 Mon Sep 17 00:00:00 2001 From: sayakpaul Date: Fri, 16 Jan 2026 10:01:44 +0530 Subject: [PATCH 7/8] up --- src/diffusers/pipelines/cosmos/pipeline_cosmos2_5_predict.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/diffusers/pipelines/cosmos/pipeline_cosmos2_5_predict.py b/src/diffusers/pipelines/cosmos/pipeline_cosmos2_5_predict.py index ea9df999ddd6..c7162c6d1859 100644 --- a/src/diffusers/pipelines/cosmos/pipeline_cosmos2_5_predict.py +++ b/src/diffusers/pipelines/cosmos/pipeline_cosmos2_5_predict.py @@ -278,6 +278,9 @@ def _get_prompt_embeds( truncation=True, padding="max_length", ) + input_ids = ( + input_ids["input_ids"] if not isinstance(input_ids, list) and "input_ids" in input_ids else input_ids + ) input_ids = torch.LongTensor(input_ids) input_ids_batch.append(input_ids) From cec020988b6c47a4a26af3fdb4349c6c6b5294ce Mon Sep 17 00:00:00 2001 From: sayakpaul Date: Fri, 16 Jan 2026 10:22:59 +0530 Subject: [PATCH 8/8] up --- tests/pipelines/cogview4/test_cogview4.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/pipelines/cogview4/test_cogview4.py b/tests/pipelines/cogview4/test_cogview4.py index a1f0fc7a715b..5f71b1b296d9 100644 --- a/tests/pipelines/cogview4/test_cogview4.py +++ b/tests/pipelines/cogview4/test_cogview4.py @@ -108,7 +108,7 @@ def get_dummy_inputs(self, device, seed=0): generator = torch.Generator(device=device).manual_seed(seed) inputs = { "prompt": "dance monkey", - "negative_prompt": "", + "negative_prompt": "bad", "generator": generator, "num_inference_steps": 2, "guidance_scale": 6.0,