Mikubill / sd-webui-controlnet

WebUI extension for ControlNet
GNU General Public License v3.0
17.04k stars 1.96k forks source link

[Bug]: #2133 broke adetailer + controlnet #2200

Closed Bing-su closed 1 year ago

Bing-su commented 1 year ago

Is there an existing issue for this?

What happened?

after e382d1618593ae05a7115006de8680d3ddbd9777 commit (#2133), controlnet is no longer available with adetailer.

Steps to reproduce the problem

use latest controlnet and adetailer

chrome_LuSkepGGO7

set controlnet model on adetailer tap

What should have happened?

external_code.py should work without any issues.

Commit where the problem happens

webui: 1.6.0 controlnet: e382d1618593ae05a7115006de8680d3ddbd9777

What browsers do you use to access the UI ?

Google Chrome

Command Line Arguments

Launching Web UI with arguments: --xformers --api

List of enabled extensions

chrome_PkCast3hIc

Console logs

(sd)
adetailer on ๎‚  dev via ๐Ÿ v3.10.12 via ๐Ÿ…’ sd
โฏ task launch
Python 3.10.12 | packaged by conda-forge | (main, Jun 23 2023, 22:34:57) [MSC v.1936 64 bit (AMD64)]
Version: v1.6.0-106-g78213d4a
Commit hash: 78213d4a38872c046fecdc166875ef5f626577c4
Launching Web UI with arguments: --xformers --api
Tag Autocomplete: Could not locate model-keyword extension, Lora trigger word completion will be limited to those added through the extra networks menu.
[-] ADetailer initialized. version: 23.10.2.dev0, num models: 37
2023-10-28 19:13:07,174 - ControlNet - INFO - ControlNet v1.1.411
ControlNet preprocessor location: D:\stable-diffusion-webui\extensions\sd-webui-controlnet\annotator\downloads
2023-10-28 19:13:07,396 - ControlNet - INFO - ControlNet v1.1.411
Loading weights [5998292c04] from D:\stable-diffusion-webui\models\Stable-diffusion\Counterfeit-V3.0_fp16-no-ema.safetensors
Creating model from config: D:\stable-diffusion-webui\configs\v1-inference.yaml
Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.
Startup time: 14.6s (prepare environment: 2.3s, import torch: 3.4s, import gradio: 1.4s, setup paths: 0.6s, initialize shared: 0.2s, other imports: 0.6s, setup codeformer: 0.1s, load scripts: 4.4s, create ui: 0.7s, gradio launch: 0.7s).
Loading VAE weights specified in settings: D:\stable-diffusion-webui\models\VAE\kl-f8-anime2.safetensors
Applying attention optimization: xformers... done.
Model loaded in 8.0s (load weights from disk: 0.5s, create model: 1.0s, apply weights to model: 5.0s, load VAE: 0.6s, load textual inversion embeddings: 0.4s, calculate empty prompt: 0.3s).
100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 20/20 [00:06<00:00,  3.33it/s]
*** Error running postprocess_image: D:\stable-diffusion-webui\extensions\adetailer\scripts\!adetailer.py00,  4.29it/s]
    Traceback (most recent call last):
      File "D:\stable-diffusion-webui\modules\scripts.py", line 675, in postprocess_image
        script.postprocess_image(p, pp, *script_args)
      File "D:\stable-diffusion-webui\extensions\adetailer\adetailer\traceback.py", line 159, in wrapper
        raise error from None
    TypeError:
    โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
    โ”‚                                                   System info                                                    โ”‚
    โ”‚ โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“ โ”‚
    โ”‚ โ”ƒ             โ”ƒ Value                                                                                          โ”ƒ โ”‚
    โ”‚ โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ โ”‚
    โ”‚ โ”‚    Platform โ”‚ Windows-10-10.0.22621-SP0                                                                      โ”‚ โ”‚
    โ”‚ โ”‚      Python โ”‚ 3.10.12 | packaged by conda-forge | (main, Jun 23 2023, 22:34:57) [MSC v.1936 64 bit (AMD64)]  โ”‚ โ”‚
    โ”‚ โ”‚     Version โ”‚ v1.6.0-106-g78213d4a                                                                           โ”‚ โ”‚
    โ”‚ โ”‚      Commit โ”‚ 78213d4a38872c046fecdc166875ef5f626577c4                                                       โ”‚ โ”‚
    โ”‚ โ”‚ Commandline โ”‚ ['launch.py', '--xformers', '--api']                                                           โ”‚ โ”‚
    โ”‚ โ”‚   Libraries โ”‚ {'torch': '2.1.0+cu121', 'torchvision': '0.16.0+cu121', 'ultralytics': '8.0.202', 'mediapipe': โ”‚ โ”‚
    โ”‚ โ”‚             โ”‚ '0.10.7'}                                                                                      โ”‚ โ”‚
    โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
    โ”‚                                                      Inputs                                                      โ”‚
    โ”‚ โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“ โ”‚
    โ”‚ โ”ƒ                 โ”ƒ Value                                                                                      โ”ƒ โ”‚
    โ”‚ โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ โ”‚
    โ”‚ โ”‚          prompt โ”‚ masterpiece, best quality, 1girl, <lora:add_detail:0.5>                                    โ”‚ โ”‚
    โ”‚ โ”‚ negative_prompt โ”‚ (worst quality, low quality:1.1), text, title, logo, signature, (EasyNegativeV2:0.7),      โ”‚ โ”‚
    โ”‚ โ”‚                 โ”‚ (negative_hand-neg:0.7)                                                                    โ”‚ โ”‚
    โ”‚ โ”‚          n_iter โ”‚ 1                                                                                          โ”‚ โ”‚
    โ”‚ โ”‚      batch_size โ”‚ 2                                                                                          โ”‚ โ”‚
    โ”‚ โ”‚           width โ”‚ 512                                                                                        โ”‚ โ”‚
    โ”‚ โ”‚          height โ”‚ 768                                                                                        โ”‚ โ”‚
    โ”‚ โ”‚    sampler_name โ”‚ DPM++ 2M Karras                                                                            โ”‚ โ”‚
    โ”‚ โ”‚       enable_hr โ”‚ False                                                                                      โ”‚ โ”‚
    โ”‚ โ”‚     hr_upscaler โ”‚ Latent                                                                                     โ”‚ โ”‚
    โ”‚ โ”‚      checkpoint โ”‚ Counterfeit-V3.0_fp16-no-ema.safetensors [5998292c04]                                      โ”‚ โ”‚
    โ”‚ โ”‚             vae โ”‚ kl-f8-anime2.safetensors                                                                   โ”‚ โ”‚
    โ”‚ โ”‚            unet โ”‚ Automatic                                                                                  โ”‚ โ”‚
    โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
    โ”‚                       ADetailer                                                                                  โ”‚
    โ”‚ โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“                                                            โ”‚
    โ”‚ โ”ƒ                     โ”ƒ Value                       โ”ƒ                                                            โ”‚
    โ”‚ โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ                                                            โ”‚
    โ”‚ โ”‚             version โ”‚ 23.10.2.dev0                โ”‚                                                            โ”‚
    โ”‚ โ”‚            ad_model โ”‚ face_yolov8n.pt             โ”‚                                                            โ”‚
    โ”‚ โ”‚           ad_prompt โ”‚                             โ”‚                                                            โ”‚
    โ”‚ โ”‚  ad_negative_prompt โ”‚                             โ”‚                                                            โ”‚
    โ”‚ โ”‚ ad_controlnet_model โ”‚ control_v11p_sd15_openpose  โ”‚                                                            โ”‚
    โ”‚ โ”‚              is_api โ”‚ False                       โ”‚                                                            โ”‚
    โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                                                            โ”‚
    โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Traceback (most recent call last) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ             โ”‚
    โ”‚ โ”‚ D:\stable-diffusion-webui\extensions\adetailer\adetailer\traceback.py:139 in wrapper             โ”‚             โ”‚
    โ”‚ โ”‚                                                                                                  โ”‚             โ”‚
    โ”‚ โ”‚   136 โ”‚   โ”‚   width = width - 4 if width > 4 else None                                           โ”‚             โ”‚
    โ”‚ โ”‚   137 โ”‚   โ”‚   console = Console(file=string, width=width)                                        โ”‚             โ”‚
    โ”‚ โ”‚   138 โ”‚   โ”‚   try:                                                                               โ”‚             โ”‚
    โ”‚ โ”‚ โฑ 139 โ”‚   โ”‚   โ”‚   return func(*args, **kwargs)                                                   โ”‚             โ”‚
    โ”‚ โ”‚   140 โ”‚   โ”‚   except Exception as e:                                                             โ”‚             โ”‚
    โ”‚ โ”‚   141 โ”‚   โ”‚   โ”‚   tables = [                                                                     โ”‚             โ”‚
    โ”‚ โ”‚   142 โ”‚   โ”‚   โ”‚   โ”‚   get_table(title, data)                                                     โ”‚             โ”‚
    โ”‚ โ”‚                                                                                                  โ”‚             โ”‚
    โ”‚ โ”‚ D:\stable-diffusion-webui\extensions\adetailer\scripts\!adetailer.py:740 in postprocess_image    โ”‚             โ”‚
    โ”‚ โ”‚                                                                                                  โ”‚             โ”‚
    โ”‚ โ”‚   737 โ”‚   โ”‚   โ”‚   for n, args in enumerate(arg_list):                                            โ”‚             โ”‚
    โ”‚ โ”‚   738 โ”‚   โ”‚   โ”‚   โ”‚   if args.ad_model == "None":                                                โ”‚             โ”‚
    โ”‚ โ”‚   739 โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   continue                                                               โ”‚             โ”‚
    โ”‚ โ”‚ โฑ 740 โ”‚   โ”‚   โ”‚   โ”‚   is_processed |= self._postprocess_image_inner(p, pp, args, n=n)            โ”‚             โ”‚
    โ”‚ โ”‚   741 โ”‚   โ”‚                                                                                      โ”‚             โ”‚
    โ”‚ โ”‚   742 โ”‚   โ”‚   if is_processed and not getattr(p, "_ad_skip_img2img", False):                     โ”‚             โ”‚
    โ”‚ โ”‚   743 โ”‚   โ”‚   โ”‚   self.save_image(                                                               โ”‚             โ”‚
    โ”‚ โ”‚                                                                                                  โ”‚             โ”‚
    โ”‚ โ”‚ D:\stable-diffusion-webui\extensions\adetailer\scripts\!adetailer.py:650 in                      โ”‚             โ”‚
    โ”‚ โ”‚ _postprocess_image_inner                                                                         โ”‚             โ”‚
    โ”‚ โ”‚                                                                                                  โ”‚             โ”‚
    โ”‚ โ”‚   647 โ”‚   โ”‚   i = self.get_i(p)                                                                  โ”‚             โ”‚
    โ”‚ โ”‚   648 โ”‚   โ”‚                                                                                      โ”‚             โ”‚
    โ”‚ โ”‚   649 โ”‚   โ”‚   pp.image = self.get_i2i_init_image(p, pp)                                          โ”‚             โ”‚
    โ”‚ โ”‚ โฑ 650 โ”‚   โ”‚   i2i = self.get_i2i_p(p, args, pp.image)                                            โ”‚             โ”‚
    โ”‚ โ”‚   651 โ”‚   โ”‚   seed, subseed = self.get_seed(p)                                                   โ”‚             โ”‚
    โ”‚ โ”‚   652 โ”‚   โ”‚   ad_prompts, ad_negatives = self.get_prompt(p, args)                                โ”‚             โ”‚
    โ”‚ โ”‚   653                                                                                            โ”‚             โ”‚
    โ”‚ โ”‚                                                                                                  โ”‚             โ”‚
    โ”‚ โ”‚ D:\stable-diffusion-webui\extensions\adetailer\scripts\!adetailer.py:519 in get_i2i_p            โ”‚             โ”‚
    โ”‚ โ”‚                                                                                                  โ”‚             โ”‚
    โ”‚ โ”‚   516 โ”‚   โ”‚   i2i._ad_inner = True                                                               โ”‚             โ”‚
    โ”‚ โ”‚   517 โ”‚   โ”‚                                                                                      โ”‚             โ”‚
    โ”‚ โ”‚   518 โ”‚   โ”‚   if args.ad_controlnet_model != "None":                                             โ”‚             โ”‚
    โ”‚ โ”‚ โฑ 519 โ”‚   โ”‚   โ”‚   self.update_controlnet_args(i2i, args)                                         โ”‚             โ”‚
    โ”‚ โ”‚   520 โ”‚   โ”‚   else:                                                                              โ”‚             โ”‚
    โ”‚ โ”‚   521 โ”‚   โ”‚   โ”‚   i2i.control_net_enabled = False                                                โ”‚             โ”‚
    โ”‚ โ”‚   522                                                                                            โ”‚             โ”‚
    โ”‚ โ”‚                                                                                                  โ”‚             โ”‚
    โ”‚ โ”‚ D:\stable-diffusion-webui\extensions\adetailer\scripts\!adetailer.py:187 in                      โ”‚             โ”‚
    โ”‚ โ”‚ update_controlnet_args                                                                           โ”‚             โ”‚
    โ”‚ โ”‚                                                                                                  โ”‚             โ”‚
    โ”‚ โ”‚   184 โ”‚   โ”‚   โ”‚   and self.controlnet_ext.cn_available                                           โ”‚             โ”‚
    โ”‚ โ”‚   185 โ”‚   โ”‚   โ”‚   and args.ad_controlnet_model != "None"                                         โ”‚             โ”‚
    โ”‚ โ”‚   186 โ”‚   โ”‚   ):                                                                                 โ”‚             โ”‚
    โ”‚ โ”‚ โฑ 187 โ”‚   โ”‚   โ”‚   self.controlnet_ext.update_scripts_args(                                       โ”‚             โ”‚
    โ”‚ โ”‚   188 โ”‚   โ”‚   โ”‚   โ”‚   p,                                                                         โ”‚             โ”‚
    โ”‚ โ”‚   189 โ”‚   โ”‚   โ”‚   โ”‚   model=args.ad_controlnet_model,                                            โ”‚             โ”‚
    โ”‚ โ”‚   190 โ”‚   โ”‚   โ”‚   โ”‚   module=args.ad_controlnet_module,                                          โ”‚             โ”‚
    โ”‚ โ”‚                                                                                                  โ”‚             โ”‚
    โ”‚ โ”‚ D:\stable-diffusion-webui\extensions\adetailer\controlnet_ext\controlnet_ext.py:93 in            โ”‚             โ”‚
    โ”‚ โ”‚ update_scripts_args                                                                              โ”‚             โ”‚
    โ”‚ โ”‚                                                                                                  โ”‚             โ”‚
    โ”‚ โ”‚    90 โ”‚   โ”‚   โ”‚   )                                                                              โ”‚             โ”‚
    โ”‚ โ”‚    91 โ”‚   โ”‚   ]                                                                                  โ”‚             โ”‚
    โ”‚ โ”‚    92 โ”‚   โ”‚                                                                                      โ”‚             โ”‚
    โ”‚ โ”‚ โฑ  93 โ”‚   โ”‚   self.external_cn.update_cn_script_in_processing(p, cn_units)                       โ”‚             โ”‚
    โ”‚ โ”‚    94                                                                                            โ”‚             โ”‚
    โ”‚ โ”‚    95                                                                                            โ”‚             โ”‚
    โ”‚ โ”‚    96 def get_cn_model_dirs() -> list[Path]:                                                     โ”‚             โ”‚
    โ”‚ โ”‚                                                                                                  โ”‚             โ”‚
    โ”‚ โ”‚ D:\stable-diffusion-webui\extensions\sd-webui-controlnet\internal_controlnet\external_code.py:34 โ”‚             โ”‚
    โ”‚ โ”‚ 1 in update_cn_script_in_processing                                                              โ”‚             โ”‚
    โ”‚ โ”‚                                                                                                  โ”‚             โ”‚
    โ”‚ โ”‚   338 โ”‚                                                                                          โ”‚             โ”‚
    โ”‚ โ”‚   339 โ”‚   cn_units_type = type(cn_units) if type(cn_units) in (list, tuple) else list            โ”‚             โ”‚
    โ”‚ โ”‚   340 โ”‚   script_args = p.script_args_value                                                      โ”‚             โ”‚
    โ”‚ โ”‚ โฑ 341 โ”‚   update_cn_script_in_place(p.scripts, script_args, cn_units)                            โ”‚             โ”‚
    โ”‚ โ”‚   342 โ”‚   p.script_args = cn_units_type(script_args)                                             โ”‚             โ”‚
    โ”‚ โ”‚   343                                                                                            โ”‚             โ”‚
    โ”‚ โ”‚   344                                                                                            โ”‚             โ”‚
    โ”‚ โ”‚                                                                                                  โ”‚             โ”‚
    โ”‚ โ”‚ D:\stable-diffusion-webui\extensions\sd-webui-controlnet\internal_controlnet\external_code.py:37 โ”‚             โ”‚
    โ”‚ โ”‚ 2 in update_cn_script_in_place                                                                   โ”‚             โ”‚
    โ”‚ โ”‚                                                                                                  โ”‚             โ”‚
    โ”‚ โ”‚   369 โ”‚   for script in script_runner.alwayson_scripts:                                          โ”‚             โ”‚
    โ”‚ โ”‚   370 โ”‚   โ”‚   if script is cn_script:                                                            โ”‚             โ”‚
    โ”‚ โ”‚   371 โ”‚   โ”‚   โ”‚   cn_script_args_diff = len(cn_units) - (cn_script.args_to - cn_script.args_fr   โ”‚             โ”‚
    โ”‚ โ”‚ โฑ 372 โ”‚   โ”‚   โ”‚   script_args[script.args_from:script.args_to] = cn_units                        โ”‚             โ”‚
    โ”‚ โ”‚   373 โ”‚   โ”‚   โ”‚   script.args_to = script.args_from + len(cn_units)                              โ”‚             โ”‚
    โ”‚ โ”‚   374 โ”‚   โ”‚   else:                                                                              โ”‚             โ”‚
    โ”‚ โ”‚   375 โ”‚   โ”‚   โ”‚   script.args_from += cn_script_args_diff                                        โ”‚             โ”‚
    โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ             โ”‚
    โ”‚ TypeError: 'tuple' object does not support item assignment                                                       โ”‚
    โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

Additional information

If the user's webui version is less than 1.6.0, AttributeError occurs:

AttributeError: 'StableDiffusionProcessingImg2Img' object has no attribute 'script_args_value'

Because the script_args_value attribute was added in webui version 1.6.0.

In webui 1.6.0, script_args_value's annotation is list, but the real type appears to be a tuple.

TypeError: 'tuple' object does not support item assignment    
huchenlei commented 1 year ago

Problem PR reverted. I will take a look at root cause later and make sure both Deforum and ADetailer are happy with the external_code.py setup. ๐Ÿ™ƒ

Bing-su commented 1 year ago

Thanks!