huggingface / huggingface/diffusers

MiniMax H3 unnecessarily swapped w1 in VAE

Open
#14,410 3 comments 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
34.5k
Forks
7.3k
Avg merge
3d 3h
Merged PRs (30d)
91

Description

The MiniMax H3 model is very popular, congratulations to the MiniMax team.

However, there's currently an issue caused by the Diffusers' team once again modifying the layout of the model for seemingly no reason.

The video VAE's weights are reorganised from `[gate, up]` to `[up, gate]`.

why? why does this keep happening? what is the actual reason for the swap?

It's caused an enormous amount of time waste to try and make the two weight setups both loadable and function correctly during training and inference.

This isn't the first time it's happened, but it's the first time it's been done in a way that is **extremely difficult to track down the issue**. Usually, the unnecessary change arises from qkv projections being split when the upstream model release had them fused (and oftentimes their paper eg. Flux.1 and others have mentioned qkv fusion as ultimately required to achieve high levels of hardware utilisation)

Look at the result:

https://github.com/user-attachments/assets/766ea4b9-49dc-40f0-bdf4-af43b4cd9265

It's probably too late to fix it now, just like every other time the Diffusers pipeline has been released without enough time to absorb community feedback. Now we're stuck with two, incompatible sets of weights being distributed for H3 probably forever.

I understand that the tone of this post is going to upset people, but I'm not really worried about it. The time wasted through debugging this issue is worse. It's going to keep affecting people until either the weights are recalled and replaced or another model comes along to replace H3.

Can you simply stop making these changes, especially ones that don't cause obvious errors?

Contributor guide

Open the contributing guide

Research direction

The report names no Diffusers file, test, or entry point. Begin by reproducing the MiniMax H3 VAE weight-layout mismatch and tracing where `[gate, up]` becomes `[up, gate]`; done would require an agreed compatibility or correction path that preserves training and inference behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, pytorch
Domain
machine-learning
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.