-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Pipiline] Wuerstchen v3 aka Stable Cascasde pipeline #6487
Conversation
cc @dome272 |
src/diffusers/pipelines/wuerstchen/modeling_wuerstchen_common.py
Outdated
Show resolved
Hide resolved
The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update. |
src/diffusers/pipelines/wuerstchen3/modeling_wuerstchen3_prior.py
Outdated
Show resolved
Hide resolved
src/diffusers/pipelines/wuerstchen3/modeling_wuerstchen3_diffnext.py
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is still quite a bit of clean-up to do until we can merge this I think
all of the recent class renames broke actual model as |
If I understand correctly this was expected and will be fixed by merging this PR on model repo? |
correct @aa956 and @vladmandic |
feels like a sledgehammer solution to self-inflicted problem - users will need to manually delete existing copy of stable cascade and redownload it. |
FWIW, it was from a PR branch and not even from the |
fair point, i forgot that we needed a pr branch to start with. |
also, what are plans to support loading different model variations? for each stage there is full or light and fp32 and bf16 for each (and unofficial fp16) right now, even with the pr, there is only one frozen variation available on huggingface as that is the only variation in actual hf folder-style format. perhaps diffusers team could republish the model so all variations are actually available as variations and can be loaded using from_pretrained by specifying variation - that is what variation was designed for? the current prs to model itself (44 for decoder and 2 for prior) only make it worse since they force fp32 version which is double the size and unusable by majority of users. |
yes we need load from single point (e.g. a single safetensors file). this is really really needed |
@DN6 @sayakpaul what are the plans to make SC actually available at https://huggingface.co/stabilityai/stable-cascade ? |
The merge decision lies with StabilityAI. Once merged that will become available. But until then we have to use the You can also check out the open PRs in the repository where we are adding support for Stable Cascade single file checkpoint loading. Cc: @apolinario |
Not necessarily - StabilityAI uploaded only single variant of the model in diffusers format. Switching blame does not help users that want to use the model. |
You want us to host the model on our org? Sorry, I didn’t mean to blame anyone and I apologise if it sounded like that. Also, which variant in the diffusers format is currently missing? |
as you know, both stage_b and stage_c exist in 4 variants each: full fp32, full bf16, lite fp32, lite bf16 the pr:44 in decoder and pr:2 in prior adds variants, but places and yes, ideally stabiltiyai should accept those two prs (and even better, they should publish models with all variants in the first place). as it is, model is now 1 month from publication and still not usable (and pr is one week old) - so yes, if stabilityai does not accept pr, then perhaps huggingface should re-publish the model under hugggingface org. |
These will be separate pipelines for convenience. Refer to the
Duly noted. Thanks for explaining! |
hi @vladmandic
|
a bit messy as it requires manual load of unet from subfolder and then create a pipeline and does |
we have a bug in the pipeline, this PR should fix it #7287
ohh I like this idea, I think it will be easier to use indeed, that would require us to duplicate the checkpoint for other components though, cc @DN6 and @sayakpaul here, let me know what you guys think! |
and it should work with combined pipeline
|
Sounds good to me! In line with https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/tree/main/vae_1_0. |
@vladmandic |
having a key for variant-specific values in the config might work? something like {
... other config values...
"variant_config": {
"lite": {
....lite values....
}
} |
The Would love to know why and how that's not we're looking for here. |
well, that's true. the subfolder can have config.json in there and it should use that to load that model type |
@sayakpaul I'm not saying we should use |
This can only be done when:
Model versions mean different things and can vary with respect to numerical precision, architecture, etc. I think the sole assumption behind "variant" is that we're operating with a model that respects the two points I enlisted above. If those two are respected, then sure -- we definitely shouldn't be restrictive about it. But I don't think that is the case for "lite" here. |
i might propose that model_index.json could have a list of subfolders to point to for a new keyword. something like model = DiffusionModel.from_pretrained('username/reponame', collection='lite')
{
"collections": {
"lite": {
"prior": "prior_lite",
...
}
}
} |
@sayakpaul i agree with your points. i was looking for a quick-easy solution and overloading variant is not it. |
What does this PR do?
Add Wuerstchen v3 pipeline