invoke-ai / InvokeAI

Invoke is a leading creative engine for Stable Diffusion models, empowering professionals, artists, and enthusiasts to generate and create visual media using the latest AI-driven technologies. The solution offers an industry leading WebUI, and serves as the foundation for multiple commercial products.
https://invoke-ai.github.io/InvokeAI/
Apache License 2.0
23.51k stars 2.42k forks source link

[enhancement]: Default Model Specification Settings #5042

Open Void2258 opened 11 months ago

Void2258 commented 11 months ago

Is there an existing issue for this?

Contact Details

No response

What should this feature add?

Currently, if you switch from 1.5 to XL, the VAE selected is the on-release SDXL VAE (unless baked or manually changed in a diffuser-format model's folder) which produces flat black images at FP16. A fixed VAE was released a long time ago, but there is no way to set this as the default in Invoke to be used in cases where invoke automatically assigns the vae (such as for run-time converted safetensors). This means the user must either manually change the VAE to the fixed one or manually change the precision to FP32 every single time they switch to an SDXL model.

There needs to be a way to change/specify the default choice of VAE. The current setup assumes either that there will never be a problem with a VAE (not a safe assumption) or that the hardcoded VAE will always be updated to address issues (which places a large burden on the maintainer to rapidly make changes, possibly which could themselves lead to disputes).

For this particular issue, having Invoke detect and force change to FP32 would be a stopgap, but would not proof against future VAE issues.

Alternatives

It would be great to have a way for the user to set default behavior in a modal manner (ie if 1.5, use this VAE, precision, resolution, etc. by default, if SDXL use these other ones, and so on for future tech to avoid the issue recurring). This is already done in the background, it is just not user accessible currently.

An option to set a specific model to an alternate set of defaults, including whether or not to prefer using the refiner would be handy to go with this (to accommodate special use models like SDD-B1 that would benefit from different defaults).

Additional Content

An error message indicating a problem in decode would also be helpful. There is currently nothing indicating an error in either the UI or the terminal when this happens. The user had no information as to what is happening unless they go to the discord. Fortunately once you know what the issue is, caching means a full regen is not needed, but it's still not great having this happen.

ReyvanZA commented 11 months ago

Could we extend this request to be able to create one or more model profiles? So instead of selecting a model, you select a profile, and that sets the settings you are looking for.

Alternative: Allow us to name images/assets, which will allow us to recall settings more easily.

Void2258 commented 9 months ago

Just adding that this is still an issue as of 3.6rc2. If you change the precision to FP16 on an SDXL model, it will load the on-release VAE and generate black images, and there is no way to globally fix it. Either you remember to change the vae every time in the dropdown or you have to put a custom vae in every single SDXL model entry in the manager by hand.