mcmonkeyprojects / sd-dynamic-thresholding

Dynamic Thresholding (CFG Scale Fix) for Stable Diffusion (eSwarmUI, ComfyUI, and Auto WebUI)
MIT License
1.1k stars 103 forks source link

Can no longer run sd-dynamic-thresholding on Colab #66

Closed Azura-13 closed 1 year ago

Azura-13 commented 1 year ago

Hi, um I don't really understand coding but sd-dynamic-thresholding no longer runs on my automatic 1111 colab, every time I turn it on, I get this:

@markdown # Start Stable-Diffusion

from IPython.utils import capture import time import sys import fileinput from pyngrok import ngrok, conf import re

Use_Cloudflare_Tunnel = False #@param {type:"boolean"}

@markdown - Offers better gradio responsivity

Ngrok_token = "" #@param {type:"string"}

@markdown - Input your ngrok token if you want to use ngrok server

User = "" #@param {type:"string"} Password= "" #@param {type:"string"}

@markdown - Add credentials to your Gradio interface (optional)

auth=f"--gradio-auth {User}:{Password}" if User =="" or Password=="": auth=""

with capture.capture_output() as cap: %cd /content/gdrive/$mainpth/sd/stable-diffusion-w$blasphemy/modules/ !wget -q -O extras.py https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-w$blasphemy/master/modules/extras.py !wget -q -O sd_models.py https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-w$blasphemy/master/modules/sd_models.py !wget -q -O /usr/local/lib/python3.10/dist-packages/gradio/blocks.py https://raw.githubusercontent.com/TheLastBen/fast-stable-diffusion/main/AUTOMATIC1111_files/blocks.py %cd /content/gdrive/$mainpth/sd/stable-diffusion-w$blasphemy/

!sed -i 's@shared.opts.data["sd_model_checkpoint"] = checkpoint_info.title@shared.opts.data["sd_model_checkpoint"] = checkpoint_info.title;model.half()@' /content/gdrive/$mainpth/sd/stable-diffusion-w$blasphemy/modules/sd_models.py !sed -i 's@ui.create_ui().*@ui.create_ui();shared.demo.queue(concurrency_count=999999,status_update_rate=0.1)@' /content/gdrive/$mainpth/sd/stable-diffusion-w$blasphemy/webui.py !sed -i "s@map_location='cpu'@map_location='cuda'@" /content/gdrive/$mainpth/sd/stable-diffusion-w$blasphemy/modules/extras.py

!sed -i 's@possible_sd_paths =.*@possible_sd_paths = [\"/content/gdrive/{mainpth}/sd/stablediffusion\"]@' /content/gdrive/$mainpth/sd/stable-diffusion-w$blasphemy/modules/paths.py !sed -i 's@..\/@src/@g' /content/gdrive/$mainpth/sd/stable-diffusion-w$blasphemy/modules/paths.py !sed -i 's@src/generative-models@generative-models@g' /content/gdrive/$mainpth/sd/stable-diffusion-w$blasphemy/modules/paths.py

!sed -i 's@print(\"No module.*@@' /content/gdrive/$mainpth/sd/stablediffusion/ldm/modules/diffusionmodules/model.py !sed -i 's@["sd_model_checkpoint"]@["sd_model_checkpoint", "sd_vae", "CLIP_stop_at_last_layers", "inpainting_mask_weight", "initial_noise_multiplier"]@g' /content/gdrive/$mainpth/sd/stable-diffusion-w$blasphemy/modules/shared.py

share='' if Ngrok_token!="": ngrok.kill() srv=ngrok.connect(7860, pyngrok_config=conf.PyngrokConfig(auth_token=Ngrok_token) , bind_tls=True).public_url

for line in fileinput.input('/usr/local/lib/python3.10/dist-packages/gradio/blocks.py', inplace=True): if line.strip().startswith('self.server_name ='): line = f' self.server_name = "{srv[8:]}"\n' if line.strip().startswith('self.protocol = "https"'): line = ' self.protocol = "https"\n' if line.strip().startswith('if self.local_url.startswith("https") or self.is_colab'): line = '' if line.strip().startswith('else "http"'): line = '' sys.stdout.write(line)

elif Use_Cloudflare_Tunnel: with capture.capture_output() as cap: !pkill cloudflared time.sleep(4) !nohup cloudflared tunnel --url http://localhost:7860 > /content/srv.txt 2>&1 & time.sleep(4) with open('/content/srv.txt', "r") as file: text = file.read() srv= re.findall(r"https?://(?:\S+?.)?trycloudflare.com\S*", text)[0]

for line in fileinput.input('/usr/local/lib/python3.10/dist-packages/gradio/blocks.py', inplace=True):
  if line.strip().startswith('self.server_name ='):
      line = f'            self.server_name = "{srv[8:]}"\n'
  if line.strip().startswith('self.protocol = "https"'):
      line = '            self.protocol = "https"\n'
  if line.strip().startswith('if self.local_url.startswith("https") or self.is_colab'):
      line = ''
  if line.strip().startswith('else "http"'):
      line = ''
  sys.stdout.write(line)

!rm /content/srv.txt

else: share='--share'

ckptdir='' if os.path.exists('/content/temp_models'): ckptdir='--ckpt-dir /content/temp_models'

try: model if os.path.isfile(model): !python /content/gdrive/$mainpth/sd/stable-diffusion-w$blasphemy/webui.py $share --api --disable-safe-unpickle --enable-insecure-extension-access --no-download-sd-model --no-half-vae --ckpt "$model" --xformers $auth --disable-console-progressbars --upcast-sampling $ckptdir else: !python /content/gdrive/$mainpth/sd/stable-diffusion-w$blasphemy/webui.py $share --api --disable-safe-unpickle --enable-insecure-extension-access --no-download-sd-model --no-half-vae --ckpt-dir "$model" --xformers $auth --disable-console-progressbars --upcast-sampling except: !python /content/gdrive/$mainpth/sd/stable-diffusion-w$blasphemy/webui.py $share --api --disable-safe-unpickle --enable-insecure-extension-access --no-download-sd-model --no-half-vae --xformers $auth --disable-console-progressbars --upcast-sampling $ckptdir

Used to work perfectly, Thanks in advance

mcmonkey4eva commented 1 year ago

That's ... the commands in the colab you're using, not an error message?

Azura-13 commented 1 year ago

Sorry is this better?

0: 640x512 1 face, 7.2ms Speed: 3.0ms preprocess, 7.2ms inference, 1.4ms postprocess per image at shape (1, 3, 640, 512) 100% 17/17 [00:13<00:00, 1.23it/s] 0% 0/40 [00:00<?, ?it/s] Error completing request Arguments: ('task(cg3i9ouzx3auq5g)', '(realistic:1.3), finely detailed, quality, perfect lighting, (masterpiece:1.2), (photorealistic:1.2), (best quality), perfect skin, (intricate details), ray tracing, (looking at viewer), (girl centred), (perfect breasts) (clear breast skin), (facing forward), exhausted expression, short hair, long bangs, (centre parted hair), (white hair), beautiful girls head on old machine body, gunmetal, rusty old exoskeleton, outdated, poor, rust, rusty metal, official cyberpunk wallpaper, (white background:1.1), (blue glowing human heart visible inside breast, exposed), (yellow eyes), complex robot (((translucent skin))), mechanical, , (white background:1.3), bare breasts, ((large breasts)) , nsfw, sagging breasts , medium areola, perfect nipples, ', 'easynegative,ng_deepnegative_v1_75t, badhandv4,(worst quality:2),(low quality:2),(normal quality:2),lowres,bad anatomy,bad hands,normal quality,((monochrome)),((grayscale)),((watermark)), ((bra, bra lines, bra straps, bra strap)), ((colour tattoos:1.5)), skin spots, acnes, skin blemishes, extra limbs, skin spots, acnes, skin blemishes, ', [], 40, 'DPM2 a Karras', 1, 2, 20, 680, 544, True, 0.5, 2, '4x-UltraSharp', 10, 0, 0, 'Use same checkpoint', 'Use same sampler', '', '', [], <gradio.routes.Request object at 0x7946579e7790>, 0, False, '', 0.8, -1, False, -1, 0, 0, 0, True, {'ad_model': 'face_yolov8n.pt', 'ad_prompt': '', 'ad_negative_prompt': '', 'ad_confidence': 0.3, 'ad_mask_min_ratio': 0, 'ad_mask_max_ratio': 1, 'ad_x_offset': 0, 'ad_y_offset': 0, 'ad_dilate_erode': 4, 'ad_mask_merge_invert': 'None', 'ad_mask_blur': 4, 'ad_denoising_strength': 0.4, 'ad_inpaint_only_masked': True, 'ad_inpaint_only_masked_padding': 32, 'ad_use_inpaint_width_height': False, 'ad_inpaint_width': 512, 'ad_inpaint_height': 512, 'ad_use_steps': False, 'ad_steps': 28, 'ad_use_cfg_scale': False, 'ad_cfg_scale': 7, 'ad_use_sampler': False, 'ad_sampler': 'Euler a', 'ad_use_noise_multiplier': False, 'ad_noise_multiplier': 1, 'ad_restore_face': False, 'ad_controlnet_model': 'None', 'ad_controlnet_module': 'inpaint_global_harmonious', 'ad_controlnet_weight': 1, 'ad_controlnet_guidance_start': 0, 'ad_controlnet_guidance_end': 1, 'is_api': ()}, {'ad_model': 'None', 'ad_prompt': '', 'ad_negative_prompt': '', 'ad_confidence': 0.3, 'ad_mask_min_ratio': 0, 'ad_mask_max_ratio': 1, 'ad_x_offset': 0, 'ad_y_offset': 0, 'ad_dilate_erode': 4, 'ad_mask_merge_invert': 'None', 'ad_mask_blur': 4, 'ad_denoising_strength': 0.4, 'ad_inpaint_only_masked': True, 'ad_inpaint_only_masked_padding': 32, 'ad_use_inpaint_width_height': False, 'ad_inpaint_width': 512, 'ad_inpaint_height': 512, 'ad_use_steps': False, 'ad_steps': 28, 'ad_use_cfg_scale': False, 'ad_cfg_scale': 7, 'ad_use_sampler': False, 'ad_sampler': 'Euler a', 'ad_use_noise_multiplier': False, 'ad_noise_multiplier': 1, 'ad_restore_face': False, 'ad_controlnet_model': 'None', 'ad_controlnet_module': 'inpaint_global_harmonious', 'ad_controlnet_weight': 1, 'ad_controlnet_guidance_start': 0, 'ad_controlnet_guidance_end': 1, 'is_api': ()}, True, 7, 95, 'Constant', 0, 'Half Cosine Up', 5, 4, False, False, 'LoRA', 'None', 1, 1, 'LoRA', 'None', 1, 1, 'LoRA', 'None', 1, 1, 'LoRA', 'None', 1, 1, 'LoRA', 'None', 1, 1, None, 'Refresh models', <scripts.controlnet_ui.controlnet_ui_group.UiControlNetUnit object at 0x7946579eceb0>, <scripts.controlnet_ui.controlnet_ui_group.UiControlNetUnit object at 0x794654a70e50>, <scripts.controlnet_ui.controlnet_ui_group.UiControlNetUnit object at 0x794654c13d60>, False, False, 'positive', 'comma', 0, False, False, '', 1, '', [], 0, '', [], 0, '', [], True, False, False, False, 0, False, None, None, False, None, None, False, None, None, False, 50) {} Traceback (most recent call last): File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/call_queue.py", line 57, in f res = list(func(*args, kwargs)) File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/call_queue.py", line 36, in f res = func(*args, *kwargs) File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/txt2img.py", line 55, in txt2img processed = processing.process_images(p) File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/processing.py", line 732, in process_images res = process_images_inner(p) File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/extensions/sd-webui-controlnet/scripts/batch_hijack.py", line 42, in processing_process_images_hijack return getattr(processing, '__controlnet_original_process_images_inner')(p, args, kwargs) File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/processing.py", line 867, in process_images_inner samples_ddim = p.sample(conditioning=p.c, unconditional_conditioning=p.uc, seeds=p.seeds, subseeds=p.subseeds, subseed_strength=p.subseed_strength, prompts=p.prompts) File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/processing.py", line 1140, in sample samples = self.sampler.sample(self, x, conditioning, unconditional_conditioning, image_conditioning=self.txt2img_image_conditioning(x)) File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/sd_samplers_kdiffusion.py", line 235, in sample samples = self.launch_sampling(steps, lambda: self.func(self.model_wrap_cfg, x, extra_args=self.sampler_extra_args, disable=False, callback=self.callback_state, extra_params_kwargs)) File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/sd_samplers_common.py", line 261, in launch_sampling return func() File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/sd_samplers_kdiffusion.py", line 235, in samples = self.launch_sampling(steps, lambda: self.func(self.model_wrap_cfg, x, extra_args=self.sampler_extra_args, disable=False, callback=self.callback_state, extra_params_kwargs)) File "/usr/local/lib/python3.10/dist-packages/torch/utils/_contextlib.py", line 115, in decorate_context return func(*args, kwargs) File "/content/gdrive/MyDrive/sd/stablediffusion/src/k-diffusion/k_diffusion/sampling.py", line 225, in sample_dpm_2_ancestral denoised = model(x, sigmas[i] * s_in, *extra_args) File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1501, in _call_impl return forward_call(args, kwargs) File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/sd_samplers_cfg_denoiser.py", line 188, in forward x_out[a:b] = self.inner_model(x_in[a:b], sigma_in[a:b], cond=make_condition_dict(c_crossattn, image_cond_in[a:b])) File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/sd_samplers_cfg_denoiser.py", line 63, in inner_model raise NotImplementedError() NotImplementedError

mcmonkey4eva commented 1 year ago

Oh, yes that's the actual error - you just need to update the extension.

Azura-13 commented 1 year ago

ah right thank you. Can I update through automatic 1111 or does it need a fresh install?

mcmonkey4eva commented 1 year ago

Yes, you can update in auto webui by going to the extensions tab and clicking "check for updates", then once it's found them just confirm/apply

Azura-13 commented 1 year ago

Ahh I asked because I auto updated 2 days ago and it didn't update dynamic-thresholding. I'll have to see if I can manually update it. Thanks for all your help