Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix cls.__module__ value in extension script #15532

Merged
merged 2 commits into from
Apr 21, 2024

Conversation

huchenlei
Copy link
Contributor

@huchenlei huchenlei commented Apr 16, 2024

Description

Minimal reproduction: Mikubill/sd-webui-controlnet#2753

Adding following file to the extension script/ folder will cause A1111 report script loading error

from __future__ import annotations
from dataclasses import dataclass


@dataclass
class PreprocessorParameter:
    label: str

Error log:

*** Error loading script: repro.py
    Traceback (most recent call last):
      File "D:\stable-diffusion-webui\modules\scripts.py", line 508, in load_scripts
        script_module = script_loading.load_module(scriptfile.path)
      File "D:\stable-diffusion-webui\modules\script_loading.py", line 14, in load_module
        module_spec.loader.exec_module(module)
      File "<frozen importlib._bootstrap_external>", line 883, in exec_module
      File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
      File "D:\stable-diffusion-webui\extensions\sd-webui-controlnet\scripts\repro.py", line 6, in <module>
        class PreprocessorParameter:
      File "C:\Program Files\Python310\lib\dataclasses.py", line 1185, in dataclass
        return wrap(cls)
      File "C:\Program Files\Python310\lib\dataclasses.py", line 1176, in wrap
        return _process_class(cls, init, repr, eq, order, unsafe_hash,
      File "C:\Program Files\Python310\lib\dataclasses.py", line 945, in _process_class
        and _is_type(type, cls, dataclasses, dataclasses.KW_ONLY,
      File "C:\Program Files\Python310\lib\dataclasses.py", line 712, in _is_type
        ns = sys.modules.get(cls.__module__).__dict__
    AttributeError: 'NoneType' object has no attribute '__dict__'

The root issue is that cls.__module__ is assigned to be file name in script_loading.py::load_module. This PR fixes the cls.__module__ so that dataclass along with __future__.annotations can be used together.

Checklist:

@huchenlei
Copy link
Contributor Author

Note: the script.module_name change was made in 23c06a5

@AUTOMATIC1111 AUTOMATIC1111 merged commit c0eaeb1 into AUTOMATIC1111:dev Apr 21, 2024
3 checks passed
@rltgjqmcpgjadyd
Copy link

I'm getting an error with some extensions

ERROR:scripts.incantation_base:Incantation: Error while making axis options
Traceback (most recent call last):
  File "D:\SDWebUI\extensions\sd-webui-incantations\scripts\incantation_base.py", line 118, in callback_before_ui
    extra_axis_options = module.get_xyz_axis_options()
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\SDWebUI\extensions\sd-webui-incantations\scripts\pag.py", line 354, in get_xyz_axis_options
    xyz_grid = [x for x in scripts.scripts_data if x.script_class.__module__ == "xyz_grid.py"][0].module
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
IndexError: list index out of range
Traceback (most recent call last):
  File "D:\SDWebUI\extensions\sd-dynamic-thresholding\scripts\dynamic_thresholding.py", line 267, in callback_before_ui
    make_axis_options()
  File "D:\SDWebUI\extensions\sd-dynamic-thresholding\scripts\dynamic_thresholding.py", line 237, in make_axis_options
    xyz_grid = [x for x in scripts.scripts_data if x.script_class.__module__ == "xyz_grid.py"][0].module
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
IndexError: list index out of range
Failed to add support for X/Y/Z Plot Script because: list index out of range
2024-04-21 20:04:28,356 - AnimateDiff - WARNING - XYZ module not found.

@huchenlei
Copy link
Contributor Author

I'm getting an error with some extensions

ERROR:scripts.incantation_base:Incantation: Error while making axis options
Traceback (most recent call last):
  File "D:\SDWebUI\extensions\sd-webui-incantations\scripts\incantation_base.py", line 118, in callback_before_ui
    extra_axis_options = module.get_xyz_axis_options()
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\SDWebUI\extensions\sd-webui-incantations\scripts\pag.py", line 354, in get_xyz_axis_options
    xyz_grid = [x for x in scripts.scripts_data if x.script_class.__module__ == "xyz_grid.py"][0].module
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
IndexError: list index out of range
Traceback (most recent call last):
  File "D:\SDWebUI\extensions\sd-dynamic-thresholding\scripts\dynamic_thresholding.py", line 267, in callback_before_ui
    make_axis_options()
  File "D:\SDWebUI\extensions\sd-dynamic-thresholding\scripts\dynamic_thresholding.py", line 237, in make_axis_options
    xyz_grid = [x for x in scripts.scripts_data if x.script_class.__module__ == "xyz_grid.py"][0].module
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
IndexError: list index out of range
Failed to add support for X/Y/Z Plot Script because: list index out of range
2024-04-21 20:04:28,356 - AnimateDiff - WARNING - XYZ module not found.

PRs made to these extensions' repo to make them compatible with this change.

IllusiveMan196 added a commit to IllusiveMan196/stable-diffusion-webui-directml that referenced this pull request May 10, 2024
commit 88c1224
Author: Seunghoon Lee <lshqqytiger@naver.com>
Date:   Thu May 9 01:49:45 2024 +0900

    [DirectML] Fix samplers.

commit e2cbdab
Author: Seunghoon Lee <lshqqytiger@naver.com>
Date:   Mon May 6 10:27:49 2024 +0900

    Fix bug.

commit 9514d91
Author: Seunghoon Lee <lshqqytiger@naver.com>
Date:   Sun May 5 23:29:44 2024 +0900

    Fix ONNX/Olive.

commit 7fd77f2
Author: Seunghoon Lee <lshqqytiger@naver.com>
Date:   Sun May 5 22:45:46 2024 +0900

    Fix ONNX/Olive generation.

commit 216340d
Author: Seunghoon Lee <lshqqytiger@naver.com>
Date:   Sun May 5 20:10:54 2024 +0900

    Fix bug.

commit a92b859
Author: Seunghoon Lee <lshqqytiger@naver.com>
Date:   Sun May 5 19:56:08 2024 +0900

    Support olive-ai 0.5.x.

commit 674c5ca
Author: Seunghoon Lee <lshqqytiger@naver.com>
Date:   Tue Apr 30 16:12:53 2024 +0900

    Fix.

commit 89e60b8
Author: Seunghoon Lee <lshqqytiger@naver.com>
Date:   Tue Apr 30 13:38:44 2024 +0900

    Rewrite ZLUDA installer.

commit 65588fc
Author: Seunghoon Lee <lshqqytiger@naver.com>
Date:   Mon Apr 29 23:02:11 2024 +0900

    Fix.

commit 5d11e9c
Author: Seunghoon Lee <lshqqytiger@naver.com>
Date:   Mon Apr 29 22:55:17 2024 +0900

    Bump ZLUDA.

commit 620b78c
Author: Seunghoon Lee <lshqqytiger@naver.com>
Date:   Mon Apr 29 22:50:42 2024 +0900

    Improve ZLUDA installation.

commit 6130ef9
Merge: b7c5e60 1c0a0c4
Author: Seunghoon Lee <lshqqytiger@naver.com>
Date:   Tue Apr 23 19:48:08 2024 +0900

    Merge remote-tracking branch 'upstream/master'

commit 1c0a0c4
Merge: e2b177c 7dfe959
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Mon Apr 22 18:00:36 2024 +0300

    Merge branch 'dev'

commit 7dfe959
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Mon Apr 22 18:00:23 2024 +0300

    update changelog

commit 8f64dad
Merge: e2b177c 821adc3
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Mon Apr 22 17:57:39 2024 +0300

    Merge pull request AUTOMATIC1111#15594 from AUTOMATIC1111/fix-get_crop_region_v2

    fix get_crop_region_v2

commit 821adc3
Author: w-e-w <40751091+w-e-w@users.noreply.github.com>
Date:   Mon Apr 22 23:03:27 2024 +0900

    fix get_crop_region_v2

    Co-Authored-By: Dowon <ks2515@naver.com>

commit e2b177c
Merge: e84703b e837124
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Mon Apr 22 12:26:24 2024 +0300

    Merge branch 'dev'

commit e837124
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Mon Apr 22 12:26:05 2024 +0300

    changelog

commit 3fdc3cf
Merge: 61f6479 e9809de
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Mon Apr 22 12:24:06 2024 +0300

    Merge pull request AUTOMATIC1111#15591 from AUTOMATIC1111/restore-1.8.0-style-naming-of-scripts

    Restore 1.8.0 style naming of scripts

commit e9809de
Author: w-e-w <40751091+w-e-w@users.noreply.github.com>
Date:   Mon Apr 22 18:21:48 2024 +0900

    restore 1.8.0-style naming of scripts

commit 61f6479
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Mon Apr 22 12:19:30 2024 +0300

    restore 1.8.0-style naming of scripts

commit e84703b
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Mon Apr 22 11:59:54 2024 +0300

    update changelog

commit e4aa0c3
Merge: a183ea4 6c7c176
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Mon Apr 22 11:50:34 2024 +0300

    Merge pull request AUTOMATIC1111#15587 from AUTOMATIC1111/fix-mistake-in-#15583

    fix mistake in AUTOMATIC1111#15583

commit a183ea4
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Mon Apr 22 11:49:55 2024 +0300

    undo adding scripts to sys.modules

commit 6c7c176
Author: w-e-w <40751091+w-e-w@users.noreply.github.com>
Date:   Mon Apr 22 00:10:49 2024 +0900

    fix mistake in AUTOMATIC1111#15583

commit e6a8d0b
Merge: d1998d7 db263df
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Sun Apr 21 18:06:40 2024 +0300

    Merge pull request AUTOMATIC1111#15583 from AUTOMATIC1111/get_crop_region_v2

    get_crop_region_v2

commit db263df
Author: w-e-w <40751091+w-e-w@users.noreply.github.com>
Date:   Sun Apr 21 19:34:11 2024 +0900

    get_crop_region_v2

commit d1998d7
Merge: c0eaeb1 8e1c356
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Sun Apr 21 07:43:19 2024 +0300

    Merge pull request AUTOMATIC1111#15531 from thatfuckingbird/fix-mistyped-function-name

    fix typo in function call (eror -> error)

commit c0eaeb1
Merge: 9bcfb92 a95326b
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Sun Apr 21 07:42:57 2024 +0300

    Merge pull request AUTOMATIC1111#15532 from huchenlei/fix_module

    Fix cls.__module__ value in extension script

commit 9bcfb92
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Sun Apr 21 07:41:28 2024 +0300

    rename logging from textual inversion to not confuse it with global logging module

commit d74fc56
Merge: a44ed23 63fd38a
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Sun Apr 21 07:23:38 2024 +0300

    Merge pull request AUTOMATIC1111#15547 from AUTOMATIC1111/numpy-DeprecationWarning-product---prod

    numpy DeprecationWarning product -> prod

commit a44ed23
Merge: daae178 9d4fdc4
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Sun Apr 21 07:22:58 2024 +0300

    Merge pull request AUTOMATIC1111#15555 from light-and-ray/fix_x1_upscalers

    fix x1 upscalers

commit daae178
Merge: ce19a7b 909c3df
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Sun Apr 21 07:22:30 2024 +0300

    Merge pull request AUTOMATIC1111#15560 from AUTOMATIC1111/api-downscale

    Remove API upscaling factor limits

commit ce19a7b
Merge: 8d6e72d 50190ca
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Sun Apr 21 07:22:04 2024 +0300

    Merge pull request AUTOMATIC1111#15544 from cabelo/master

    Compatibility with Debian 11, Fedora 34+ and openSUSE 15.4+

commit 8d6e72d
Merge: 6f4f6bf ba2a737
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Sun Apr 21 07:21:21 2024 +0300

    Merge pull request AUTOMATIC1111#15561 from speculativemoonstone/fix-launch-git-directories

    Allow webui.sh to be runnable from arbitrary directories containing a .git file

commit 6f4f6bf
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Sun Apr 21 07:18:58 2024 +0300

    add more info to the error message for AUTOMATIC1111#15567

commit 367b823
Merge: c8ac42a d212fb5
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Sun Apr 21 07:09:27 2024 +0300

    Merge pull request AUTOMATIC1111#15567 from AUTOMATIC1111/no-image-data-blocks-debug

    Hide 'No Image data blocks found.' message

commit c8ac42a
Merge: 449bc7b bba306d
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Sun Apr 21 07:07:58 2024 +0300

    Merge pull request AUTOMATIC1111#15533 from travisg/callback-fix

    fix: remove_callbacks_for_function should also remove from the ordered map

commit 449bc7b
Merge: 3810413 71314e4
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Sun Apr 21 07:06:45 2024 +0300

    Merge pull request AUTOMATIC1111#15534 from storyicon/fix-masking

    Fix images do not match / Coordinate 'right' is less than 'left'

commit 3810413
Merge: f8f5d6c b5b1487
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Sun Apr 21 07:00:28 2024 +0300

    Merge pull request AUTOMATIC1111#15581 from AUTOMATIC1111/FilenameGenerator-sampler-scheduler

    FilenameGenerator Sampler Scheduler

commit f8f5d6c
Merge: cde35be 5cb567c
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Sun Apr 21 06:59:56 2024 +0300

    Merge pull request AUTOMATIC1111#15577 from AUTOMATIC1111/api-get-schedulers

    Add schedulers API endpoint

commit cde35be
Merge: ff6f468 49fee7c
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Sun Apr 21 06:59:38 2024 +0300

    Merge pull request AUTOMATIC1111#15582 from kaanyalova/avif-support

    Add avif support

commit 49fee7c
Author: kaanyalova <76952012+kaanyalova@users.noreply.github.com>
Date:   Sat Apr 20 23:18:54 2024 +0300

    Add avif support

commit b5b1487
Author: w-e-w <40751091+w-e-w@users.noreply.github.com>
Date:   Sun Apr 21 02:26:50 2024 +0900

    FilenameGenerator Sampler Scheduler

commit 5cb567c
Author: missionfloyd <missionfloyd@users.noreply.github.com>
Date:   Fri Apr 19 20:29:22 2024 -0600

    Add schedulers API endpoint

commit d212fb5
Author: missionfloyd <missionfloyd@users.noreply.github.com>
Date:   Thu Apr 18 20:56:51 2024 -0600

    Hide 'No Image data blocks found.' message

commit b7c5e60
Author: Seunghoon Lee <lshqqytiger@naver.com>
Date:   Fri Apr 19 10:09:47 2024 +0900

    Fix lshqqytiger#449.

commit 71314e4
Author: storyicon <storyicon@foxmail.com>
Date:   Thu Apr 18 11:59:25 2024 +0000

    feat:compatible with inconsistent/empty mask

    Signed-off-by: storyicon <storyicon@foxmail.com>

commit ba2a737
Author: Speculative Moonstone <167392122+speculativemoonstone@users.noreply.github.com>
Date:   Thu Apr 18 04:25:32 2024 +0000

    Allow webui.sh to be runnable from directories containing a .git file

commit 909c3df
Author: missionfloyd <missionfloyd@users.noreply.github.com>
Date:   Wed Apr 17 21:20:03 2024 -0600

    Remove API upscaling factor limits

commit 9d4fdc4
Author: Andray <light.and.ray@gmail.com>
Date:   Thu Apr 18 01:53:23 2024 +0400

    fix x1 upscalers

commit 63fd38a
Author: w-e-w <40751091+w-e-w@users.noreply.github.com>
Date:   Wed Apr 17 15:44:49 2024 +0900

    numpy DeprecationWarning product -> prod

commit 50190ca
Author: Alessandro de Oliveira Faria (A.K.A. CABELO) <cabelo@opensuse.org>
Date:   Wed Apr 17 00:01:56 2024 -0300

    Compatibility with Debian 11, Fedora 34+ and openSUSE 15.4+

commit 0980fdf
Author: storyicon <storyicon@foxmail.com>
Date:   Tue Apr 16 07:35:33 2024 +0000

    fix: images do not match

    Signed-off-by: storyicon <storyicon@foxmail.com>

commit bba306d
Author: Travis Geiselbrecht <geist@foobox.com>
Date:   Mon Apr 15 21:10:11 2024 -0700

    fix: remove callbacks properly in remove_callbacks_for_function()

    Like remove_current_script_callback just before, also remove from the
    ordered_callbacks_map to keep the callback map and ordered callback map
    in sync.

commit a95326b
Author: huchenlei <chenlei.hu@mail.utoronto.ca>
Date:   Mon Apr 15 22:34:01 2024 -0400

    nit

commit 0f82948
Author: huchenlei <chenlei.hu@mail.utoronto.ca>
Date:   Mon Apr 15 22:14:19 2024 -0400

    Fix cls.__module__

commit 8e1c356
Author: thatfuckingbird <67429906+thatfuckingbird@users.noreply.github.com>
Date:   Mon Apr 15 21:17:24 2024 +0200

    fix typo in function call (eror -> error)

commit ff6f468
Merge: 3fadb4f adadb4e
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Sat Apr 13 06:38:58 2024 +0300

    Merge branch 'master' into dev

commit 3fadb4f
Merge: ac8ffb3 592e40e
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Thu Apr 11 19:33:55 2024 +0300

    Merge pull request AUTOMATIC1111#15492 from w-e-w/update-restricted_opts

    update restricted_opts

commit 592e40e
Author: w-e-w <40751091+w-e-w@users.noreply.github.com>
Date:   Thu Apr 11 22:51:29 2024 +0900

    update restricted_opts

commit 4068429
Author: storyicon <storyicon@foxmail.com>
Date:   Wed Apr 10 10:53:25 2024 +0000

    fix: Coordinate 'right' is less than 'left'

    Signed-off-by: storyicon <storyicon@foxmail.com>

commit ac8ffb3
Merge: a976f4d ef83f68
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Tue Apr 9 16:00:56 2024 +0300

    Merge pull request AUTOMATIC1111#15470 from AUTOMATIC1111/read-infotext-Script-not-found

    error handling paste_field callables

commit ef83f68
Author: w-e-w <40751091+w-e-w@users.noreply.github.com>
Date:   Tue Apr 9 21:28:44 2024 +0900

    catch exception for all paste_fields callable

commit 600f339
Author: w-e-w <40751091+w-e-w@users.noreply.github.com>
Date:   Tue Apr 9 20:59:04 2024 +0900

    Warning when Script is not found

commit a976f4d
Merge: c48b6bf e3aabe6
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Tue Apr 9 12:05:02 2024 +0300

    Merge pull request AUTOMATIC1111#15460 from AUTOMATIC1111/create_infotext-index-and-callable

    create_infotext allow index and callable, re-work Hires prompt infotext

commit c48b6bf
Merge: d9708c9 2580235
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Tue Apr 9 11:00:30 2024 +0300

    Merge pull request AUTOMATIC1111#15465 from jordenyt/fix-extras-api-upscale-enabled

    Fix extra-single-image API not doing upscale failed

commit 2580235
Author: Jorden Tse <jordenyt@gmail.com>
Date:   Tue Apr 9 11:13:47 2024 +0800

    Fix extra-single-image API not doing upscale failed

commit d9708c9
Author: AUTOMATIC1111 <16777216c@gmail.com>
Date:   Mon Apr 8 16:15:25 2024 +0300

    fix limited file write (thanks, Sylwia)

commit e3aabe6
Author: w-e-w <40751091+w-e-w@users.noreply.github.com>
Date:   Mon Apr 8 19:48:38 2024 +0900

    add documentation for create_infotext

commit 1e1176b
Author: w-e-w <40751091+w-e-w@users.noreply.github.com>
Date:   Mon Apr 8 18:18:33 2024 +0900

    non-serializable as None

commit 219e644
Author: w-e-w <40751091+w-e-w@users.noreply.github.com>
Date:   Mon Apr 8 01:41:52 2024 +0900

    re-work extra_generation_params for Hires prompt

commit 47ed9b2
Author: w-e-w <40751091+w-e-w@users.noreply.github.com>
Date:   Mon Apr 8 01:39:31 2024 +0900

    allow list or callables in generation_params

commit 6efdfe3
Author: w-e-w <40751091+w-e-w@users.noreply.github.com>
Date:   Sun Apr 7 22:58:12 2024 +0900

    if use use_main_prompt index = 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants