stable-diffusion
stable-diffusion copied to clipboard
UI crash on 1024x1024
My UI crashes when going 1024x1024 The GPU is AMD and on linux 6700xt 12gb vram Lower resolutions work fine such as 1024x512
After UI crash the script never ends. I have to kill the docker container and UI from terminal.
PS. using the attention from main branch and updated model.py
What is your UI? There's always going to be a limit to how high you can go btw before it starts crashing.. These changes just push that limit higher.
I've just released a new update, might allow you to go higher.
kubuntu (KDE, pascal)
The weird thing was crashing of the UI not the script itself. Script keeps running and sucks all the cpu too it seems.
ah ok weird, CPU usage should be minimal, almost all work is done on the GPU.
It's possible it was going to way too high number of steps. I've put a reasonable limit (64) on it that should fix that. You'll get an error now if you go too high with the max possible res (for a square)
btw is there any difference in terms of image in full vs half? I see you changed the model to half.
Shouldn't be, although there's a minor difference if you run generation in full mode as well, but need to fix the code for that still probably. haven't tested it yet, but I assume you'll need twice the memory while generating.
I just tried again with the updated codes and it crashed at half precision too. The same way it did before. Although there was no cpu nor gpu usage after UI crash. Only gpu VRAM was full and script still running. Did try 2048x512
Edit: There is no problem on 1536x512 at full precision. Vram usage is 8.6 out of 12 available.
Did you also update the attention.py and model.py?
Yes those are the only files I updated. I use lstein fork with k_euler_a sampler.
I did find out the code never gets past this line at i_level = 1 at higher res I will try to dig deeper and find where it gets stuck. https://github.com/Doggettx/stable-diffusion/blob/ab0bff6bc08c0ac55e08c596c999e5e5e0a7c111/ldm/modules/diffusionmodules/model.py#L623
Update: Going deeper it gets stuck here https://github.com/Doggettx/stable-diffusion/blob/ab0bff6bc08c0ac55e08c596c999e5e5e0a7c111/ldm/modules/diffusionmodules/model.py#L61
Update on this issue: I did figure out .interpolate and .conv2d is where it fails and struggles on higher resolutions. I did split the image into multiple chunks and it did successfully go through both functions and generated the image. It is somehow faster in the last stage by doing so. Almost instant.
Weird, haven't seen anyone who had problems at that point, any chance you can do a pull request with your changes? Or post them here?
I will do a PR here. My changes should increase the res limit but still, there's a lot of potential in the upsampling to increase the resolution limit.