From 28c8dc4bcc5eedbc92e2add76291326a30c9df63 Mon Sep 17 00:00:00 2001 From: cmdr2 Date: Sat, 10 Sep 2022 22:45:12 +0530 Subject: [PATCH 1/4] Update CONTRIBUTING.md --- CONTRIBUTING.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7449d8a6..f1f80c00 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,8 +19,9 @@ This is in-flux, but one way to get a development environment running for editin 4) Check you can view and generate images on `localhost:9000` 5) Close the server, and edit `/projects/stable-diffusion-ui-archive/scripts/on_env_start.sh` 6) Comment out the line near the bottom that copies the `files/ui` folder, e.g. `cp -Rf sd-ui-files/ui ui` for `.sh` or `@xcopy sd-ui-files\ui ui /s /i /Y` for `.bat` -7) Delete the current `ui` folder at `/projects/stable-diffusion-ui-archive/ui` -8) Now make a symlink between the repository clone (where you will be making changes) and this archive (where you will be running stable diffusion): +7) Comment out the line at the top of `/projects/stable-diffusion-ui-archive/scripts/on_sd_start.sh` that copies `on_env_start`. For e.g. `@copy sd-ui-files\scripts\on_env_start.bat scripts\ /Y` +8) Delete the current `ui` folder at `/projects/stable-diffusion-ui-archive/ui` +9) Now make a symlink between the repository clone (where you will be making changes) and this archive (where you will be running stable diffusion): `ln -s /projects/stable-diffusion-ui-repo/ui /projects/stable-diffusion-ui-archive/ui` or for Windows `mklink /D \projects\stable-diffusion-ui-archive\ui \projects\stable-diffusion-ui-repo\ui` (link name first, source repo dir second) From a1e5a2cb67f25720930e991b977340495c6db8d9 Mon Sep 17 00:00:00 2001 From: cmdr2 Date: Sat, 10 Sep 2022 22:58:16 +0530 Subject: [PATCH 2/4] Update modifiers.json --- ui/modifiers.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ui/modifiers.json b/ui/modifiers.json index 9eb2e7f5..d1191cb5 100644 --- a/ui/modifiers.json +++ b/ui/modifiers.json @@ -191,6 +191,7 @@ "by Johannes Vermeer", "by John William Waterhouse", "by Katsushika Hokusai", + "by Kim Tschang Yeul", "by Ko Young Hoon", "by Leonardo da Vinci", "by Lisa Frank", @@ -212,6 +213,7 @@ "by Sam Does Arts", "by Sandro Botticelli", "by Ted Nasmith", + "by Ten Hundred", "by Thomas Kinkade", "by Tivadar Csontváry Kosztka", "by Victo Ngai", From d88e0f16ac506f404cbaf14ef6848663d8c1156e Mon Sep 17 00:00:00 2001 From: cmdr2 Date: Sun, 11 Sep 2022 10:34:04 +0530 Subject: [PATCH 3/4] Use CPU mode for graphics cards with less than 3 GB of RAM --- ui/sd_internal/runtime.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ui/sd_internal/runtime.py b/ui/sd_internal/runtime.py index f0ca6412..02094ae5 100644 --- a/ui/sd_internal/runtime.py +++ b/ui/sd_internal/runtime.py @@ -57,11 +57,19 @@ sampler_ddim = None has_valid_gpu = False force_full_precision = False try: - gpu_name = torch.cuda.get_device_name(torch.cuda.current_device()) - has_valid_gpu = True + gpu = torch.cuda.current_device() + gpu_name = torch.cuda.get_device_name(gpu) force_full_precision = ('nvidia' in gpu_name.lower()) and ('1660' in gpu_name or ' 1650' in gpu_name) # otherwise these NVIDIA cards create green images if force_full_precision: print('forcing full precision on NVIDIA 16xx cards, to avoid green images. GPU detected: ', gpu_name) + + mem_free, mem_total = torch.cuda.mem_get_info(gpu) + mem_total /= float(10**9) + if mem_total < 3.0: + print("GPUs with less than 3 GB of VRAM are not compatible with Stable Diffusion") + raise Exception() + + has_valid_gpu = True except: print('WARNING: No compatible GPU found. Using the CPU, but this will be very slow!') pass From 9fe1709bf7071d533a6bbf8223c0f3654299091d Mon Sep 17 00:00:00 2001 From: cmdr2 Date: Sun, 11 Sep 2022 11:16:05 +0530 Subject: [PATCH 4/4] Catch 16xx cards without the NVIDIA name in them --- ui/sd_internal/runtime.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/sd_internal/runtime.py b/ui/sd_internal/runtime.py index 02094ae5..36550dbe 100644 --- a/ui/sd_internal/runtime.py +++ b/ui/sd_internal/runtime.py @@ -59,7 +59,7 @@ force_full_precision = False try: gpu = torch.cuda.current_device() gpu_name = torch.cuda.get_device_name(gpu) - force_full_precision = ('nvidia' in gpu_name.lower()) and ('1660' in gpu_name or ' 1650' in gpu_name) # otherwise these NVIDIA cards create green images + force_full_precision = ('nvidia' in gpu_name.lower() or 'geforce' in gpu_name.lower()) and (' 1660' in gpu_name or ' 1650' in gpu_name) # otherwise these NVIDIA cards create green images if force_full_precision: print('forcing full precision on NVIDIA 16xx cards, to avoid green images. GPU detected: ', gpu_name)