Aloereed / stable-diffusion-webui-arc-directml

A proven usable Stable diffusion webui project on Intel Arc GPU with DirectML
GNU Affero General Public License v3.0
66 stars 9 forks source link

Torch not compiled with CUDA enabled when running #2

Open mslagle opened 1 year ago

mslagle commented 1 year ago

Is there an existing issue for this?

What happened?

Downloaded the repo and installed the other repositories. When I run webui-user.bat, I get the error.

Steps to reproduce the problem

  1. Git clone this repo
  2. Git cloned repositories/k-diffusion
  3. Git cloned repositories/stable-diffusion-stability-ai
  4. Run webui-user.bat

What should have happened?

It should have run the script without error.

Commit where the problem happens

ee3d390

What platforms do you use to access the UI ?

No response

What browsers do you use to access the UI ?

No response

Command Line Arguments

webui-user.bat

List of extensions

No

Console logs

.\webui-user.bat
venv "M:\Code\stable-diffusion-webui-arc-directml\venv\Scripts\Python.exe"
Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr  5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)]
Commit hash: ee3d3904c327031ed193a1e6d8472c3eed9409c7
Installing torch and torchvision
Collecting torch==1.13.1
  Using cached torch-1.13.1-cp310-cp310-win_amd64.whl (162.6 MB)
Collecting torchvision==0.14.1
  Using cached torchvision-0.14.1-cp310-cp310-win_amd64.whl (1.1 MB)
Collecting torch-directml
  Using cached torch_directml-0.1.13.1.dev230301-cp310-cp310-win_amd64.whl (7.4 MB)
Collecting typing-extensions
  Using cached typing_extensions-4.5.0-py3-none-any.whl (27 kB)
Collecting requests
  Using cached requests-2.28.2-py3-none-any.whl (62 kB)
Collecting pillow!=8.3.*,>=5.3.0
  Using cached Pillow-9.5.0-cp310-cp310-win_amd64.whl (2.5 MB)
Collecting numpy
  Using cached numpy-1.24.2-cp310-cp310-win_amd64.whl (14.8 MB)
Collecting charset-normalizer<4,>=2
  Using cached charset_normalizer-3.1.0-cp310-cp310-win_amd64.whl (97 kB)
Collecting urllib3<1.27,>=1.21.1
  Using cached urllib3-1.26.15-py2.py3-none-any.whl (140 kB)
Collecting idna<4,>=2.5
  Using cached idna-3.4-py3-none-any.whl (61 kB)
Collecting certifi>=2017.4.17
  Using cached certifi-2022.12.7-py3-none-any.whl (155 kB)
Installing collected packages: urllib3, typing-extensions, pillow, numpy, idna, charset-normalizer, certifi, torch, requests, torchvision, torch-directml
Successfully installed certifi-2022.12.7 charset-normalizer-3.1.0 idna-3.4 numpy-1.24.2 pillow-9.5.0 requests-2.28.2 torch-1.13.1 torch-directml-0.1.13.1.dev230301 torchvision-0.14.1 typing-extensions-4.5.0 urllib3-1.26.15
Installing gfpgan
Installing clip
Installing open_clip
Installing requirements for CodeFormer
Installing requirements for Web UI
Launching Web UI with arguments: --opt-sub-quad-attention --disable-nan-check
Thank you for helping to bring diversity to the graphics card market.
Disabled experimental graphic memory optimizations.
Warning: caught exception 'Torch not compiled with CUDA enabled', memory monitor disabled
Traceback (most recent call last):
  File "M:\Code\stable-diffusion-webui-arc-directml\launch.py", line 353, in <module>
    start()
  File "M:\Code\stable-diffusion-webui-arc-directml\launch.py", line 344, in start
    import webui
  File "M:\Code\stable-diffusion-webui-arc-directml\webui.py", line 15, in <module>
    from modules import import_hook, errors, extra_networks, ui_extra_networks_checkpoints
  File "M:\Code\stable-diffusion-webui-arc-directml\modules\ui_extra_networks_checkpoints.py", line 6, in <module>
    from modules import shared, ui_extra_networks, sd_models
  File "M:\Code\stable-diffusion-webui-arc-directml\modules\sd_models.py", line 15, in <module>
    from modules import paths, shared, modelloader, devices, script_callbacks, sd_vae, sd_disable_initialization, errors, hashes, sd_models_config
  File "M:\Code\stable-diffusion-webui-arc-directml\modules\sd_disable_initialization.py", line 1, in <module>
    import ldm.modules.encoders.modules
  File "M:\Code\stable-diffusion-webui-arc-directml\repositories\stable-diffusion-stability-ai\ldm\modules\encoders\modules.py", line 3, in <module>
    import kornia
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\kornia\__init__.py", line 11, in <module>
    from . import augmentation, color, contrib, core, enhance, feature, io, losses, metrics, morphology, tracking, utils, x
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\kornia\augmentation\__init__.py", line 1, in <module>
    from kornia.augmentation._2d import (
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\kornia\augmentation\_2d\__init__.py", line 3, in <module>
    from kornia.augmentation._2d.mix import *
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\kornia\augmentation\_2d\mix\__init__.py", line 1, in <module>
    from kornia.augmentation._2d.mix.cutmix import RandomCutMix, RandomCutMixV2
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\kornia\augmentation\_2d\mix\cutmix.py", line 7, in <module>
    from kornia.augmentation._2d.mix.base import MixAugmentationBase, MixAugmentationBaseV2
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\kornia\augmentation\_2d\mix\base.py", line 10, in <module>
    from kornia.geometry.boxes import Boxes
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\kornia\geometry\boxes.py", line 582, in <module>
    class Boxes3D:
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit\_script.py", line 1323, in script
    _compile_and_register_class(obj, _rcb, qualified_name)
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit\_recursive.py", line 47, in _compile_and_register_class
    script_class = torch._C._jit_script_class_compile(qualified_name, ast, defaults, rcb)
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit\_recursive.py", line 863, in try_compile_fn
    return torch.jit.script(fn, _rcb=rcb)
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit\_script.py", line 1343, in script
    fn = torch._C._jit_script_compile(
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit\_recursive.py", line 863, in try_compile_fn
    return torch.jit.script(fn, _rcb=rcb)
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit\_script.py", line 1343, in script
    fn = torch._C._jit_script_compile(
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit\_recursive.py", line 863, in try_compile_fn
    return torch.jit.script(fn, _rcb=rcb)
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit\_script.py", line 1343, in script
    fn = torch._C._jit_script_compile(
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit\_recursive.py", line 863, in try_compile_fn
    return torch.jit.script(fn, _rcb=rcb)
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit\_script.py", line 1343, in script
    fn = torch._C._jit_script_compile(
RuntimeError:

aten::pad(Tensor self, int[] pad, str mode="constant", float? value=None) -> Tensor:
Expected a value of type 'List[int]' for argument 'pad' but instead found type 'Tensor (inferred)'.
Inferred the value for argument 'pad' to be of type 'Tensor' because it was not annotated with an explicit type.
:
  File "M:\Code\stable-diffusion-webui-arc-directml\modules\devices.py", line 243
def pad(input, pad, mode='constant', value=None):
    if input.dtype == torch.float16 and input.device.type == 'privateuseone':
        return _pad(input.float(), pad, mode, value).type(input.dtype)
               ~~~~ <--- HERE
    else:
        return _pad(input, pad, mode, value)
'pad' is being compiled since it was called from 'convert_points_to_homogeneous'
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\kornia\geometry\conversions.py", line 199
        raise ValueError(f"Input must be at least a 2D tensor. Got {points.shape}")

    return torch.nn.functional.pad(points, [0, 1], "constant", 1.0)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <--- HERE
'convert_points_to_homogeneous' is being compiled since it was called from 'transform_points'
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\kornia\geometry\linalg.py", line 189
    trans_01 = torch.repeat_interleave(trans_01, repeats=points_1.shape[0] // trans_01.shape[0], dim=0)
    # to homogeneous
    points_1_h = convert_points_to_homogeneous(points_1)  # BxNxD+1
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <--- HERE
    # transform coordinates
    points_0_h = torch.bmm(points_1_h, trans_01.permute(0, 2, 1))
'transform_points' is being compiled since it was called from '_transform_boxes'
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\kornia\geometry\boxes.py", line 53
        )

    transformed_boxes: torch.Tensor = transform_points(M, points)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <--- HERE
    transformed_boxes = transformed_boxes.view_as(boxes)
    return transformed_boxes
'_transform_boxes' is being compiled since it was called from 'Boxes3D.transform_boxes'
  File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\kornia\geometry\boxes.py", line 897
        # Due to some torch.jit.script bug (at least <= 1.9), you need to pass all arguments to __init__ when
        # constructing the class from inside of a method.
        transformed_boxes = _transform_boxes(self._data, M)
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <--- HERE
        if inplace:
            self._data = transformed_boxes

Additional information

No response

mslagle commented 1 year ago

I was able to get past this by forcing the cuda install, but now getting an error about a missing nvidia driver.

pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116

venv "M:\Code\stable-diffusion-webui-arc-directml\venv\Scripts\Python.exe" Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr 5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)] Commit hash: ee3d3904c327031ed193a1e6d8472c3eed9409c7 Installing requirements for Web UI Launching Web UI with arguments: --opt-sub-quad-attention --disable-nan-check Thank you for helping to bring diversity to the graphics card market. Disabled experimental graphic memory optimizations. 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 Traceback (most recent call last): File "M:\Code\stable-diffusion-webui-arc-directml\launch.py", line 353, in start() File "M:\Code\stable-diffusion-webui-arc-directml\launch.py", line 344, in start import webui File "M:\Code\stable-diffusion-webui-arc-directml\webui.py", line 15, in from modules import import_hook, errors, extra_networks, ui_extra_networks_checkpoints File "M:\Code\stable-diffusion-webui-arc-directml\modules\ui_extra_networks_checkpoints.py", line 6, in from modules import shared, ui_extra_networks, sd_models File "M:\Code\stable-diffusion-webui-arc-directml\modules\sd_models.py", line 15, in from modules import paths, shared, modelloader, devices, script_callbacks, sd_vae, sd_disable_initialization, errors, hashes, sd_models_config File "M:\Code\stable-diffusion-webui-arc-directml\modules\sd_disable_initialization.py", line 1, in import ldm.modules.encoders.modules File "M:\Code\stable-diffusion-webui-arc-directml\repositories\stable-diffusion-stability-ai\ldm\modules\encoders\modules.py", line 3, in import kornia File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\kornia__init.py", line 11, in from . import augmentation, color, contrib, core, enhance, feature, io, losses, metrics, morphology, tracking, utils, x File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\kornia\augmentation__init.py", line 1, in from kornia.augmentation._2d import ( File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\kornia\augmentation_2d\init__.py", line 3, in from kornia.augmentation._2d.mix import * File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\kornia\augmentation_2d\mix\init__.py", line 1, in from kornia.augmentation._2d.mix.cutmix import RandomCutMix, RandomCutMixV2 File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\kornia\augmentation_2d\mix\cutmix.py", line 7, in from kornia.augmentation._2d.mix.base import MixAugmentationBase, MixAugmentationBaseV2 File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\kornia\augmentation_2d\mix\base.py", line 10, in from kornia.geometry.boxes import Boxes File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\kornia\geometry\boxes.py", line 582, in class Boxes3D: File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit_script.py", line 1323, in script _compile_and_register_class(obj, _rcb, qualified_name) File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit_recursive.py", line 47, in _compile_and_register_class script_class = torch._C._jit_script_class_compile(qualified_name, ast, defaults, rcb) File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit_recursive.py", line 863, in try_compile_fn return torch.jit.script(fn, _rcb=rcb) File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit_script.py", line 1343, in script fn = torch._C._jit_script_compile( File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit_recursive.py", line 863, in try_compile_fn return torch.jit.script(fn, _rcb=rcb) File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit_script.py", line 1343, in script fn = torch._C._jit_script_compile( File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit_recursive.py", line 863, in try_compile_fn return torch.jit.script(fn, _rcb=rcb) File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit_script.py", line 1343, in script fn = torch._C._jit_script_compile( File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit_recursive.py", line 863, in try_compile_fn return torch.jit.script(fn, _rcb=rcb) File "M:\Code\stable-diffusion-webui-arc-directml\venv\lib\site-packages\torch\jit_script.py", line 1343, in script fn = torch._C._jit_script_compile(

Aloereed commented 1 year ago

You can't download the CUDA-version torch. Torch not compiled with CUDA enabled is just a piece of log, not an error. Are you sure you download the DirectML version k-diffusion and stable-diffusion-stability-ai? And your models are better not to be FP16.

kotomiDu commented 1 year ago

I got the same error @mslagle proposed at the very fisrt report.This issue is about the api usage in torch. I fixed this issue by adding a little code change and it works. The solution is to comment the line torch.nn.functional.pad = pad in stable-diffusion-webui-arc-directml\modules\devices.py. Besides, @mslagle please make sure that you download the DirectML version k-diffusion and stable-diffusion-stability-ai as Aloereed mentioned. The link can also found in stable-diffusion-webui-arc-directml\repositories\ToBeDownloaded.txt