stable-diffusion icon indicating copy to clipboard operation
stable-diffusion copied to clipboard

UI crash on 1024x1024

Open mahdiyari opened this issue 2 years ago • 12 comments

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

mahdiyari avatar Sep 05 '22 21:09 mahdiyari

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.

Doggettx avatar Sep 06 '22 07:09 Doggettx

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.

mahdiyari avatar Sep 06 '22 08:09 mahdiyari

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)

Doggettx avatar Sep 06 '22 08:09 Doggettx

btw is there any difference in terms of image in full vs half? I see you changed the model to half.

mahdiyari avatar Sep 06 '22 09:09 mahdiyari

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.

Doggettx avatar Sep 06 '22 09:09 Doggettx

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.

mahdiyari avatar Sep 06 '22 09:09 mahdiyari

Did you also update the attention.py and model.py?

Doggettx avatar Sep 06 '22 10:09 Doggettx

Yes those are the only files I updated. I use lstein fork with k_euler_a sampler.

mahdiyari avatar Sep 06 '22 10:09 mahdiyari

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

mahdiyari avatar Sep 12 '22 21:09 mahdiyari

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.

mahdiyari avatar Sep 15 '22 09:09 mahdiyari

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?

Doggettx avatar Sep 16 '22 07:09 Doggettx

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.

mahdiyari avatar Sep 16 '22 07:09 mahdiyari