diffusers breaking changes
Every breaking API change we have recorded in diffusers on PyPI: 596 breaking changes in 3 versions. Below are its newest 3 versions, removals and renames first, each with its source.
Newest change October 6, 2026

On this page
0.41.0
- Removed
force_upcast
The force_upcast option was removed from the Flux2 autoencoder. github.com - Removed
Lumina2Text2ImgPipeline
The Lumina2Text2ImgPipeline alias was removed as part of removing deprecated code paths. Use Lumina2Pipeline instead. github.com - Removed
LuminaText2ImgPipeline
The LuminaText2ImgPipeline alias was removed as part of removing deprecated code paths. Use LuminaPipeline instead. github.com - Default changed
ModularPipeline.save_pretrained
The overwrite_modular_index argument of save_pretrained now defaults to True instead of False. github.com - Signature changed
diffusers.AceStepPipeline.__call__
Was def __call__(self, prompt: Union[str, List[str]] = None, lyrics: Union[str, List[str]] = '', audio_duration: float = 60.0, vocal_language: Union[str, List[str]] = 'en', num_inference_steps: int = 8, guidance_scale: float = 7.0, shift... pypi.org - Signature changed
diffusers.AllegroTransformer3DModel.forward
Was def forward(self, hidden_states: torch.Tensor, encoder_hidden_states: torch.Tensor, timestep: torch.LongTensor, attention_mask: torch.Tensor | None = None, encoder_attention_mask: torch.Tensor | None = None, image_rotary_emb... pypi.org - Signature changed
diffusers.AnimateDiffControlNetPipeline.__call__
Was def __call__(self, prompt: str | list[str] = None, num_frames: int | None = 16, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, guidance_scale: float = 7.5, negative_prompt: str | list[str] | None =... pypi.org - Signature changed
diffusers.AnimateDiffPAGPipeline.__call__
Was def __call__(self, prompt: str | list[str] | None = None, num_frames: int | None = 16, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, guidance_scale: float = 7.5, negative_prompt: str | list[str] |... pypi.org - Signature changed
diffusers.AnimateDiffPipeline.__call__
Was def __call__(self, prompt: str | list[str] | None = None, num_frames: int | None = 16, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, guidance_scale: float = 7.5, negative_prompt: str | list[str] |... pypi.org - Signature changed
diffusers.AnimateDiffSDXLPipeline.__call__
Was def __call__(self, prompt: str | list[str] = None, prompt_2: str | list[str] | None = None, num_frames: int = 16, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, timesteps: list[int] = None, sigmas... pypi.org
And 435 more in this version.
0.40.0
- Removed
Flax*
All Flax classes and the flax extras are gone; code using them must move to PyTorch or pin the older release. github.com - Behavior changed
DiffusionPipeline.device
DiffusionPipeline.device is now deduced differently for pipelines split across devices. github.com - Behavior changed
DiffusionPipeline.from_pretrained
Kernels are no longer downloaded automatically; users must request them. github.com - Behavior changed
get_peft_kwargs
Mixed-rank LoRAs with no alpha information now use alpha equal to rank, so existing such LoRAs produce different results. github.com - Signature changed
diffusers.AceStepPipeline
Was class AceStepPipeline(DiffusionPipeline); now class AceStepPipeline(DiffusionPipeline, AceStepLoraLoaderMixin). pypi.org - Signature changed
diffusers.AceStepPipeline.__call__
Was def __call__(self, prompt: Union[str, List[str]] = None, lyrics: Union[str, List[str]] = '', audio_duration: float = 60.0, vocal_language: Union[str, List[str]] = 'en', num_inference_steps: int = 8, guidance_scale: float = 7.0, shift... pypi.org - Signature changed
diffusers.AceStepTransformer1DModel
Was class AceStepTransformer1DModel(ModelMixin, ConfigMixin, AttentionMixin, CacheMixin); now class AceStepTransformer1DModel(ModelMixin, ConfigMixin, PeftAdapterMixin, AttentionMixin, CacheMixin). pypi.org - Signature changed
diffusers.AceStepTransformer1DModel.forward
Was def forward(self, hidden_states: torch.Tensor, timestep: torch.Tensor, timestep_r: torch.Tensor, encoder_hidden_states: torch.Tensor, context_latents: torch.Tensor, return_dict: bool = True) -> Union[torch.Tensor... pypi.org - Signature changed
diffusers.ComponentsManager.enable_auto_cpu_offload
Was def enable_auto_cpu_offload(self, device: str | int | torch.device = None, memory_reserve_margin='3GB'); now def enable_auto_cpu_offload(self, device: str | int | torch.device = None, memory_reserve_margin='3GB', offload_strategy=None). pypi.org - Signature changed
diffusers.Cosmos3OmniPipeline.__call__
Was def __call__(self, prompt: str | list[str], negative_prompt: str | list[str] | None = None, image: torch.Tensor | None = None, video: list[Image.Image] | torch.Tensor | np.ndarray | None = None, condition_frame_indexes_vision... pypi.org
And 106 more in this version.
0.39.0
- Removed
The minimum supported torch version is now 2.6, so code running on older torch versions must upgrade torch to 2.6 or later. github.com - Removed
txt_seq_lens
The txt_seq_lens argument was removed from the Qwen transformer, so calls that pass it must stop passing it. github.com - Signature changed
diffusers.AutoencoderKLMochi.forward
Was def forward(self, sample: torch.Tensor, sample_posterior: bool = False, return_dict: bool = True, generator: torch.Generator | None = None) -> torch.Tensor | torch.Tensor; now def forward(self, sample: torch.Tensor, sample_posterior... pypi.org - Signature changed
diffusers.BlockRefinementScheduler.set_timesteps
Was def set_timesteps(self, num_inference_steps: int, device: str | torch.device | None = None) -> None; now def set_timesteps(self, num_inference_steps: int, device: str | torch.device | None = None, block_length: int | None = None) ->... pypi.org - Signature changed
diffusers.BlockRefinementScheduler.step
Was def step(self, model_output: torch.Tensor, timestep: int | torch.Tensor, sample: torch.LongTensor, *, mask_token_id: int, temperature: float = 0.0, top_p: float | None = None, top_k: int | None = None, sampling_method: str = 'auto'... pypi.org - Signature changed
diffusers.BlockRefinementSchedulerOutput.__init__
Was def __init__(self, prev_sample: torch.LongTensor, transfer_index: torch.BoolTensor, editing_transfer_index: torch.BoolTensor, sampled_tokens: torch.LongTensor, sampled_probs: torch.Tensor) -> None; now def __init__(self, prev_sample... pypi.org - Signature changed
diffusers.BriaFiboEditPipeline.__call__
Was def __call__(self, prompt: Union[str, List[str]] = None, image: Optional[PipelineImageInput] = None, mask: Optional[PipelineMaskInput] = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 30... pypi.org - Signature changed
diffusers.BriaFiboEditPipeline.check_inputs
Was def check_inputs(self, prompt, seed, image, mask, height, width, negative_prompt=None, prompt_embeds=None, negative_prompt_embeds=None, callback_on_step_end_tensor_inputs=None, max_sequence_length=None); now def check_inputs(self... pypi.org - Signature changed
diffusers.BriaFiboEditPipeline.encode_prompt
Was def encode_prompt(self, prompt: Union[str, List[str]], device: torch.device | None = None, num_images_per_prompt: int = 1, guidance_scale: float = 5, negative_prompt: Optional[Union[str, List[str]]] = None, prompt_embeds... pypi.org - Signature changed
diffusers.BriaFiboPipeline.__call__
Was def __call__(self, prompt: str | list[str] = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 30, timesteps: list[int] = None, guidance_scale: float = 5, negative_prompt: str | list[str] | None =... pypi.org
And 25 more in this version.
Check your code
These are the changes. To see which of them reach your code, scan a public repository, or have your coding agent call check_code with your manifest or lockfile over MCP. The API reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

Put your code on continuous management.
Scan a public repository now, or give your agent one line.
See how out of date your code is.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcp