openvinotoolkit / stable-diffusion-webui

Stable Diffusion web UI
GNU Affero General Public License v3.0
250 stars 39 forks source link

[Bug]: AttributeError when use sd_xl_base_1.0 checkpoint (SDXL) #35

Closed rncar closed 10 months ago

rncar commented 10 months ago

Is there an existing issue for this?

What happened?

When use SDXL checkpoint with "Accelerate with OpenVINO" script, I get this error

Using TCMalloc: libtcmalloc_minimal.so.4
fatal: No names found, cannot describe anything.
Python 3.10.12 (main, Aug 20 2023, 20:38:40) [GCC 13.2.1 20230801]
Version: 1.5.1
Commit hash: 434282272d43591e17f157954efe5869c7004c05
Launching Web UI with arguments: --skip-torch-cuda-test --precision full --no-half
no module 'xformers'. Processing without...
no module 'xformers'. Processing without...
No module 'xformers'. Proceeding without it.
Warning: caught exception 'Found no NVIDIA driver on your system. Please check that you have an NVIDIA GPU and installed a driver from http://www.nvidia.com/Download/index.aspx', memory monitor disabled
Loading weights [31e35c80fc] from /home/vito/3ros/apps/openvino/stable-diffusion-webui/models/Stable-diffusion/sd_xl_base_1.0.safetensors
Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.
Startup time: 3.8s (launcher: 0.1s, import torch: 1.2s, import gradio: 0.4s, setup paths: 0.3s, other imports: 0.2s, load scripts: 1.1s, create ui: 0.3s, gradio launch: 0.1s).
Creating model from config: /home/vito/3ros/apps/openvino/stable-diffusion-webui/repositories/generative-models/configs/inference/sd_xl_base.yaml
Applying attention optimization: InvokeAI... done.
Model loaded in 2.3s (load weights from disk: 0.6s, create model: 0.4s, apply weights to model: 0.8s, calculate empty prompt: 0.4s).
Loading weights [31e35c80fc] from /home/vito/3ros/apps/openvino/stable-diffusion-webui/models/Stable-diffusion/sd_xl_base_1.0.safetensors
OpenVINO Script:  created model from config : /home/vito/3ros/apps/openvino/stable-diffusion-webui/repositories/generative-models/configs/inference/sd_xl_base.yaml
*** Error completing request
*** Arguments: ('task(188wrsf49wkbyie)', 'in the stye of Frank Frazetta, jungle beautiful young woman with a Serge modular synth with colourful pomona banana plugs and jacks, curvy bikini pose, masterpiece, beautiful face, awesome eyes', '', [], 20, 0, False, False, 1, 1, 7, -1.0, -1.0, 0, 0, 0, False, 512, 512, False, 0.7, 2, 'Latent', 0, 0, 0, 0, '', '', [], <gradio.routes.Request object at 0x7f3b60d5a7a0>, 1, True, False, False, False, 'Watercolor', 'v2-inference.yaml', 'CPU', True, 'Euler a', True, False, False, 'positive', 'comma', 0, False, False, '', 1, '', [], 0, '', [], 0, '', [], True, False, False, False, 0) {}
    Traceback (most recent call last):
      File "/home/vito/3ros/apps/openvino/stable-diffusion-webui/modules/call_queue.py", line 58, in f
        res = list(func(*args, **kwargs))
      File "/home/vito/3ros/apps/openvino/stable-diffusion-webui/modules/call_queue.py", line 37, in f
        res = func(*args, **kwargs)
      File "/home/vito/3ros/apps/openvino/stable-diffusion-webui/modules/txt2img.py", line 59, in txt2img
        processed = modules.scripts.scripts_txt2img.run(p, *args)
      File "/home/vito/3ros/apps/openvino/stable-diffusion-webui/modules/scripts.py", line 501, in run
        processed = script.run(p, *script_args)
      File "/home/vito/3ros/apps/openvino/stable-diffusion-webui/scripts/openvino_accelerate.py", line 774, in run
        processed = process_images_openvino(p, model_config, p.sampler_name, enable_caching, openvino_device, mode)
      File "/home/vito/3ros/apps/openvino/stable-diffusion-webui/scripts/openvino_accelerate.py", line 523, in process_images_openvino
        shared.sd_diffusers_model = get_diffusers_sd_model(model_config, sampler_name, enable_caching, openvino_device, mode)
      File "/home/vito/3ros/apps/openvino/stable-diffusion-webui/scripts/openvino_accelerate.py", line 329, in get_diffusers_sd_model
        sd_model = StableDiffusionPipeline.from_single_file(checkpoint_path, local_config_file=local_config_file, load_safety_checker=False)
      File "/home/vito/3ros/apps/openvino/stable-diffusion-webui/scripts/openvino_accelerate.py", line 249, in from_single_file
        pipe = download_from_original_stable_diffusion_ckpt(
      File "/home/vito/3ros/apps/python/bin/lib/python3.10/site-packages/diffusers/pipelines/stable_diffusion/convert_from_ckpt.py", line 1352, in download_from_original_stable_diffusion_ckpt
        set_module_tensor_to_device(unet, param_name, "cpu", value=param)
      File "/home/vito/3ros/apps/python/bin/lib/python3.10/site-packages/accelerate/utils/modeling.py", line 124, in set_module_tensor_to_device
        new_module = getattr(module, split)
      File "/home/vito/3ros/apps/python/bin/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1614, in __getattr__
        raise AttributeError("'{}' object has no attribute '{}'".format(
    AttributeError: 'ModuleList' object has no attribute '1'

No error if I use "None" as script.

Steps to reproduce the problem

  1. Select SDXL checkpoint
  2. Select "Accelerate with OpenVINO" as Script
  3. Select "v2-inference.yaml" as local config file
  4. Select "CPU" as device

What should have happened?

Works like the option Script "None" but faster

Version or Commit where the problem happens

commit 434282272d43591e17f157954efe5869c7004c05 (HEAD -> master, origin/master, origin/HEAD)

What Python version are you running on ?

Python 3.10.x

What platforms do you use to access the UI ?

Linux

What device are you running WebUI on?

CPU

Cross attention optimization

Automatic

What browsers do you use to access the UI ?

Google Chrome

Command Line Arguments

export COMMANDLINE_ARGS="--skip-torch-cuda-test --precision full --no-half" 

List of extensions

No

Console logs

################################################################
Install script for stable-diffusion + Web UI
Tested on Debian 11 (Bullseye)
################################################################

################################################################
Running on vito user
################################################################

################################################################
Repo already cloned, using it as install directory
################################################################

################################################################
python venv already activate or run without venv: /home/vito/3ros/apps/openvino/sd_env
################################################################

################################################################
Launching launch.py...
################################################################
Using TCMalloc: libtcmalloc_minimal.so.4
fatal: No names found, cannot describe anything.
Python 3.10.12 (main, Aug 20 2023, 20:38:40) [GCC 13.2.1 20230801]
Version: 1.5.1
Commit hash: 434282272d43591e17f157954efe5869c7004c05
Launching Web UI with arguments: --skip-torch-cuda-test --precision full --no-half
no module 'xformers'. Processing without...
no module 'xformers'. Processing without...
No module 'xformers'. Proceeding without it.
Warning: caught exception 'Found no NVIDIA driver on your system. Please check that you have an NVIDIA GPU and installed a driver from http://www.nvidia.com/Download/index.aspx', memory monitor disabled
Loading weights [31e35c80fc] from /home/vito/3ros/apps/openvino/stable-diffusion-webui/models/Stable-diffusion/sd_xl_base_1.0.safetensors
Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.
Startup time: 3.8s (launcher: 0.1s, import torch: 1.2s, import gradio: 0.4s, setup paths: 0.3s, other imports: 0.3s, load scripts: 1.1s, create ui: 0.2s).
Creating model from config: /home/vito/3ros/apps/openvino/stable-diffusion-webui/repositories/generative-models/configs/inference/sd_xl_base.yaml
Applying attention optimization: InvokeAI... done.
Model loaded in 2.2s (load weights from disk: 0.6s, create model: 0.4s, apply weights to model: 0.8s, calculate empty prompt: 0.4s).
Loading weights [31e35c80fc] from /home/vito/3ros/apps/openvino/stable-diffusion-webui/models/Stable-diffusion/sd_xl_base_1.0.safetensors
OpenVINO Script:  created model from config : /home/vito/3ros/apps/openvino/stable-diffusion-webui/repositories/generative-models/configs/inference/sd_xl_base.yaml
*** Error completing request
*** Arguments: ('task(4lpgdxntf198q92)', 'in the stye of Frank Frazetta, jungle beautiful young woman with a Serge modular synth with colourful pomona banana plugs and jacks, curvy bikini pose, masterpiece, beautiful face, awesome eyes', '', [], 20, 0, False, False, 1, 1, 7, -1.0, -1.0, 0, 0, 0, False, 512, 512, False, 0.7, 2, 'Latent', 0, 0, 0, 0, '', '', [], <gradio.routes.Request object at 0x7f6aba4bf700>, 1, False, False, False, False, 'base', 'v2-inference.yaml', 'CPU', True, 'Euler a', True, False, False, 'positive', 'comma', 0, False, False, '', 1, '', [], 0, '', [], 0, '', [], True, False, False, False, 0) {}
    Traceback (most recent call last):
      File "/home/vito/3ros/apps/openvino/stable-diffusion-webui/modules/call_queue.py", line 58, in f
        res = list(func(*args, **kwargs))
      File "/home/vito/3ros/apps/openvino/stable-diffusion-webui/modules/call_queue.py", line 37, in f
        res = func(*args, **kwargs)
      File "/home/vito/3ros/apps/openvino/stable-diffusion-webui/modules/txt2img.py", line 59, in txt2img
        processed = modules.scripts.scripts_txt2img.run(p, *args)
      File "/home/vito/3ros/apps/openvino/stable-diffusion-webui/modules/scripts.py", line 501, in run
        processed = script.run(p, *script_args)
      File "/home/vito/3ros/apps/openvino/stable-diffusion-webui/scripts/openvino_accelerate.py", line 774, in run
        processed = process_images_openvino(p, model_config, p.sampler_name, enable_caching, openvino_device, mode)
      File "/home/vito/3ros/apps/openvino/stable-diffusion-webui/scripts/openvino_accelerate.py", line 523, in process_images_openvino
        shared.sd_diffusers_model = get_diffusers_sd_model(model_config, sampler_name, enable_caching, openvino_device, mode)
      File "/home/vito/3ros/apps/openvino/stable-diffusion-webui/scripts/openvino_accelerate.py", line 329, in get_diffusers_sd_model
        sd_model = StableDiffusionPipeline.from_single_file(checkpoint_path, local_config_file=local_config_file, load_safety_checker=False)
      File "/home/vito/3ros/apps/openvino/stable-diffusion-webui/scripts/openvino_accelerate.py", line 249, in from_single_file
        pipe = download_from_original_stable_diffusion_ckpt(
      File "/home/vito/3ros/apps/python/bin/lib/python3.10/site-packages/diffusers/pipelines/stable_diffusion/convert_from_ckpt.py", line 1352, in download_from_original_stable_diffusion_ckpt
        set_module_tensor_to_device(unet, param_name, "cpu", value=param)
      File "/home/vito/3ros/apps/python/bin/lib/python3.10/site-packages/accelerate/utils/modeling.py", line 124, in set_module_tensor_to_device
        new_module = getattr(module, split)
      File "/home/vito/3ros/apps/python/bin/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1614, in __getattr__
        raise AttributeError("'{}' object has no attribute '{}'".format(
    AttributeError: 'ModuleList' object has no attribute '1'

---


### Additional information

_No response_
rncar commented 10 months ago

It works with the lasts updates and doing pip install invisible-watermark>=2.0

StableDiffusionXLPipeline requires the invisible-watermark library but it was not found in your environment. You can install it with pip: `pip install invisible-watermark>=2.0`