Interpause / auto-sd-paint-ext

Extension for AUTOMATIC1111 to add custom backend API for Krita Plugin & more
MIT License
478 stars 41 forks source link

bug on krita app at startup after install krita extension in A1111 #162

Open ammondenno opened 1 year ago

ammondenno commented 1 year ago

Hello, i have installed krita extension to A1111, follow the process the link krita extension to the krita desktop app. everything looks fine on A1111 side : i have no message error on launch in the terminal. When i try to launch the krita app on my desk i have 3 error messages boxes. I have to close the first one, to see the second and close it to see the third. Here are the messages

1 message : TypeError Python 3.10.7: /Applications/krita.app/Contents/MacOS/krita

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

/Applications/krita.app/Contents/Frameworks/krita-python-libs/krita/dockwidgetfactory.py in createDockWidget(self=) 14 super(DockWidgetFactory, self).init(_id, _dockPosition) 15 self.klass = _klass 16 17 def createDockWidget(self): 18 return self.klass() self = self.klass = <class 'krita_diff.docker.create_docker..Docker'>

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/docker.py in init(self=<krita_diff.docker.create_docker..Docker object>, *args=(), **kwargs={}) 11 self.setWindowTitle(page.name) 12 self.create_interface() 13 self.update_interface() 14 self.connect_interface() 15 self.setWidget(self.widget) self = <krita_diff.docker.create_docker..Docker object> self.update_interface = <bound method create_docker..Docker.upda...iff.docker.create_docker..Docker object>>

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/docker.py in update_interface(self=<krita_diff.docker.create_docker..Docker object>) 23 24 def update_interface(self): 25 self.page_widget.cfg_init() 26 27 def connect_interface(self): self = <krita_diff.docker.create_docker..Docker object> self.page_widget = self.page_widget.cfg_init = <bound method Img2ImgPage.cfg_init of >

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/img2img.py in cfg_init(self=) 23 24 def cfg_init(self): 25 super(Img2ImgPage, self).cfg_init() 26 27 self.tips.setVisible(not script.cfg("minimize_ui", bool)) builtinsuper = <class 'super'> global Img2ImgPage = <class 'krita_diff.pages.img2img.Img2ImgPage'> self = ).cfg_init = <bound method Img2ImgPage.cfg_init of >

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/img_base.py in cfg_init(self=) 71 72 def cfg_init(self): 73 self.ext_layout.cfg_init() 74 self.prompt_layout.cfg_init() 75 self.seed_layout.cfg_init() self = self.ext_layout = self.ext_layout.cfg_init = <bound method ExtSectionLayout.cfg_init of >

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py in cfg_init(self=) 116 self.dropdown.cfg_init() 117 if set(self.ext_names()) != set(self.ext_widgets.keys()): 118 self._init_ext_widgets() 119 for widget in self.ext_widgets.values(): 120 widget.cfg_init() self = self._init_ext_widgets = >

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py in _init_ext_widgets(self=) 107 self._clear_ext_widgets() 108 for ext_name in self.ext_names(): 109 widget = ExtWidget(script.ext_cfg, self.ext_type, ext_name) 110 widget.setVisible(False) 111 self.addWidget(widget) widget = global ExtWidget = <class 'krita_diff.pages.extension.ExtWidget'> global script = script.ext_cfg = self = self.ext_type = 'scripts_img2img' ext_name = 'Outpainting mk2'

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py in init(self=, ext_cfg=, ext_type='scripts_img2img', ext_name='Outpainting mk2', *args=(), **kwargs={}) 57 w = QCheckBox(ext_cfg, k, o["label"]) 58 elif o["type"] == "multiselect": 59 w = QMultiCheckBoxLayout(ext_cfg, o["opts"], k, o["label"]) 60 else: 61 continue w = None global QMultiCheckBoxLayout = <class 'krita_diff.widgets.checkbox.QMultiCheckBoxLayout'> ext_cfg = o = {'is_index': False, 'label': 'Outpainting direction', 'opts': [['left', 'left'], ['right', 'right'], ['up', 'up'], ['down', 'down']], 'type': 'multiselect', 'val': ['left', 'right', 'up', 'down']} k = 'scripts_img2img_outpaintingmk2_3'

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/widgets/checkbox.py in init(self=, cfg=, options_cfg=[['left', 'left'], ['right', 'right'], ['up', 'up'], ['down', 'down']], selected_cfg='scripts_img2img_outpaintingmk2_3', label='Outpainting direction', *args=(), **kwargs={}) 61 self.qcheckboxes = [] 62 for opt in self.options_cfg: 63 checkbox = _QCheckBox(opt) 64 self.qcheckboxes.append(checkbox) 65 self.row.addWidget(checkbox) checkbox undefined global _QCheckBox = <class 'PyQt5.QtWidgets.QCheckBox'> opt = ['left', 'left'] TypeError: arguments did not match any overloaded call: QCheckBox(parent: typing.Optional[QWidget] = None): argument 1 has unexpected type 'list' QCheckBox(text: str, parent: typing.Optional[QWidget] = None): argument 1 has unexpected type 'list' cause = None class = <class 'TypeError'> context = None delattr = <method-wrapper 'delattr' of TypeError object> dict = {} dir = doc = 'Inappropriate argument type.' eq = <method-wrapper 'eq' of TypeError object> format = ge = <method-wrapper 'ge' of TypeError object> getattribute = <method-wrapper 'getattribute' of TypeError object> gt = <method-wrapper 'gt' of TypeError object> hash = <method-wrapper 'hash' of TypeError object> init = <method-wrapper 'init' of TypeError object> init_subclass = <built-in method init_subclass of type object> le = <method-wrapper 'le' of TypeError object> lt = <method-wrapper 'lt' of TypeError object> ne = <method-wrapper 'ne' of TypeError object> new = reduce = reduce_ex = <built-in method reduce_ex of TypeError object> repr = <method-wrapper 'repr' of TypeError object> setattr = <method-wrapper 'setattr' of TypeError object> setstate = sizeof = str = <method-wrapper 'str' of TypeError object> subclasshook = __suppress_context = False traceback__ = args = ("arguments did not match any overloaded call:\n Q...t] = None): argument 1 has unexpected type 'list'",) with_traceback =

The above is a description of an error in a Python program. Here is the original traceback:

Traceback (most recent call last): File "/Applications/krita.app/Contents/Frameworks/krita-python-libs/krita/dockwidgetfactory.py", line 18, in createDockWidget return self.klass() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/docker.py", line 13, in init self.update_interface() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/docker.py", line 25, in update_interface self.page_widget.cfg_init() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/img2img.py", line 25, in cfg_init super(Img2ImgPage, self).cfg_init() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/img_base.py", line 73, in cfg_init self.ext_layout.cfg_init() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py", line 118, in cfg_init self._init_ext_widgets() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py", line 109, in _init_ext_widgets widget = ExtWidget(script.ext_cfg, self.ext_type, ext_name) File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py", line 59, in init w = QMultiCheckBoxLayout(ext_cfg, o["opts"], k, o["label"]) File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/widgets/checkbox.py", line 63, in init checkbox = _QCheckBox(opt) TypeError: arguments did not match any overloaded call: QCheckBox(parent: typing.Optional[QWidget] = None): argument 1 has unexpected type 'list' QCheckBox(text: str, parent: typing.Optional[QWidget] = None): argument 1 has unexpected type 'list'


2nd message : TypeError: unhashable type: 'list'

TypeError Python 3.10.7: /Applications/krita.app/Contents/MacOS/krita Mon Sep 25 17:29:39 2023

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

/Applications/krita.app/Contents/Frameworks/krita-python-libs/krita/dockwidgetfactory.py in createDockWidget(self=) 14 super(DockWidgetFactory, self).init(_id, _dockPosition) 15 self.klass = _klass 16 17 def createDockWidget(self): 18 return self.klass() self = self.klass = <class 'krita_diff.docker.create_docker..Docker'>

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/docker.py in init(self=<krita_diff.docker.create_docker..Docker object>, *args=(), **kwargs={}) 11 self.setWindowTitle(page.name) 12 self.create_interface() 13 self.update_interface() 14 self.connect_interface() 15 self.setWidget(self.widget) self = <krita_diff.docker.create_docker..Docker object> self.update_interface = <bound method create_docker..Docker.upda...iff.docker.create_docker..Docker object>>

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/docker.py in update_interface(self=<krita_diff.docker.create_docker..Docker object>) 23 24 def update_interface(self): 25 self.page_widget.cfg_init() 26 27 def connect_interface(self): self = <krita_diff.docker.create_docker..Docker object> self.page_widget = self.page_widget.cfg_init = <bound method Txt2ImgPage.cfg_init of >

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/txt2img.py in cfg_init(self=) 30 31 def cfg_init(self): 32 super(Txt2ImgPage, self).cfg_init() 33 self.highres.cfg_init() 34 builtinsuper = <class 'super'> global Txt2ImgPage = <class 'krita_diff.pages.txt2img.Txt2ImgPage'> self = ).cfg_init = <bound method Txt2ImgPage.cfg_init of >

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/img_base.py in cfg_init(self=) 71 72 def cfg_init(self): 73 self.ext_layout.cfg_init() 74 self.prompt_layout.cfg_init() 75 self.seed_layout.cfg_init() self = self.ext_layout = self.ext_layout.cfg_init = <bound method ExtSectionLayout.cfg_init of >

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py in cfg_init(self=) 118 self._init_ext_widgets() 119 for widget in self.ext_widgets.values(): 120 widget.cfg_init() 121 122 def cfg_connect(self): widget = widget.cfg_init = <bound method ExtWidget.cfg_init of >

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py in cfg_init(self=) 69 def cfg_init(self): 70 for w in self.widgets: 71 w.cfg_init() 72 73 def cfg_connect(self): w = w.cfg_init = <bound method QComboBoxLayout.cfg_init of >

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/widgets/combo_box.py in cfg_init(self=) 68 def cfg_init(self): 69 opts = sorted( 70 set( 71 self.cfg(self.options_cfg, "QStringList") 72 if isinstance(self.options_cfg, str) builtinset = <class 'set'> self = self.cfg = self.options_cfg = [['positive', 'positive'], ['negative', 'negative']] builtinisinstance = builtinstr = <class 'str'> TypeError: unhashable type: 'list' cause = None class = <class 'TypeError'> context = None delattr = <method-wrapper 'delattr' of TypeError object> dict = {} dir = doc = 'Inappropriate argument type.' eq = <method-wrapper 'eq' of TypeError object> format = ge = <method-wrapper 'ge' of TypeError object> getattribute = <method-wrapper 'getattribute' of TypeError object> gt = <method-wrapper 'gt' of TypeError object> hash = <method-wrapper 'hash' of TypeError object> init = <method-wrapper 'init' of TypeError object> init_subclass = <built-in method init_subclass of type object> le = <method-wrapper 'le' of TypeError object> lt = <method-wrapper 'lt' of TypeError object> ne = <method-wrapper 'ne' of TypeError object> new = reduce = reduce_ex = <built-in method reduce_ex of TypeError object> repr = <method-wrapper 'repr' of TypeError object> setattr = <method-wrapper 'setattr' of TypeError object> setstate = sizeof = str = <method-wrapper 'str' of TypeError object> subclasshook = __suppress_context = False traceback__ = args = ("unhashable type: 'list'",) with_traceback =

The above is a description of an error in a Python program. Here is the original traceback:

Traceback (most recent call last): File "/Applications/krita.app/Contents/Frameworks/krita-python-libs/krita/dockwidgetfactory.py", line 18, in createDockWidget return self.klass() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/docker.py", line 13, in init self.update_interface() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/docker.py", line 25, in update_interface self.page_widget.cfg_init() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/txt2img.py", line 32, in cfg_init super(Txt2ImgPage, self).cfg_init() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/img_base.py", line 73, in cfg_init self.ext_layout.cfg_init() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py", line 120, in cfg_init widget.cfg_init() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py", line 71, in cfg_init w.cfg_init() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/widgets/combo_box.py", line 70, in cfg_init set( TypeError: unhashable type: 'list'


Third message : 3rd error :

TypeError: arguments did not match any overloaded call: QCheckBox(parent: typing.Optional[QWidget] = None): argument 1 has unexpected type 'list' QCheckBox(text: str, parent: typing.Optional[QWidget] = None): argument 1 has unexpected type 'list'

TypeError Python 3.10.7: /Applications/krita.app/Contents/MacOS/krita Mon Sep 25 17:31:17 2023

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

/Applications/krita.app/Contents/Frameworks/krita-python-libs/krita/dockwidgetfactory.py in createDockWidget(self=) 14 super(DockWidgetFactory, self).init(_id, _dockPosition) 15 self.klass = _klass 16 17 def createDockWidget(self): 18 return self.klass() self = self.klass = <class 'krita_diff.docker.create_docker..Docker'>

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/docker.py in init(self=<krita_diff.docker.create_docker..Docker object>, *args=(), **kwargs={}) 11 self.setWindowTitle(page.name) 12 self.create_interface() 13 self.update_interface() 14 self.connect_interface() 15 self.setWidget(self.widget) self = <krita_diff.docker.create_docker..Docker object> self.update_interface = <bound method create_docker..Docker.upda...iff.docker.create_docker..Docker object>>

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/docker.py in update_interface(self=<krita_diff.docker.create_docker..Docker object>) 23 24 def update_interface(self): 25 self.page_widget.cfg_init() 26 27 def connect_interface(self): self = <krita_diff.docker.create_docker..Docker object> self.page_widget = self.page_widget.cfg_init = <bound method InpaintPage.cfg_init of >

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/inpaint.py in cfg_init(self=) 67 68 def cfg_init(self): 69 super(InpaintPage, self).cfg_init() 70 # self.mask_blur_layout.cfg_init() 71 self.fill_layout.cfg_init() builtinsuper = <class 'super'> global InpaintPage = <class 'krita_diff.pages.inpaint.InpaintPage'> self = ).cfg_init = <bound method InpaintPage.cfg_init of >

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/img_base.py in cfg_init(self=) 71 72 def cfg_init(self): 73 self.ext_layout.cfg_init() 74 self.prompt_layout.cfg_init() 75 self.seed_layout.cfg_init() self = self.ext_layout = self.ext_layout.cfg_init = <bound method ExtSectionLayout.cfg_init of >

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py in cfg_init(self=) 116 self.dropdown.cfg_init() 117 if set(self.ext_names()) != set(self.ext_widgets.keys()): 118 self._init_ext_widgets() 119 for widget in self.ext_widgets.values(): 120 widget.cfg_init() self = self._init_ext_widgets = >

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py in _init_ext_widgets(self=) 107 self._clear_ext_widgets() 108 for ext_name in self.ext_names(): 109 widget = ExtWidget(script.ext_cfg, self.ext_type, ext_name) 110 widget.setVisible(False) 111 self.addWidget(widget) widget = global ExtWidget = <class 'krita_diff.pages.extension.ExtWidget'> global script = script.ext_cfg = self = self.ext_type = 'scripts_inpaint' ext_name = 'Outpainting mk2'

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py in init(self=, ext_cfg=, ext_type='scripts_inpaint', ext_name='Outpainting mk2', *args=(), **kwargs={}) 57 w = QCheckBox(ext_cfg, k, o["label"]) 58 elif o["type"] == "multiselect": 59 w = QMultiCheckBoxLayout(ext_cfg, o["opts"], k, o["label"]) 60 else: 61 continue w = None global QMultiCheckBoxLayout = <class 'krita_diff.widgets.checkbox.QMultiCheckBoxLayout'> ext_cfg = o = {'is_index': False, 'label': 'Outpainting direction', 'opts': [['left', 'left'], ['right', 'right'], ['up', 'up'], ['down', 'down']], 'type': 'multiselect', 'val': ['left', 'right', 'up', 'down']} k = 'scripts_inpaint_outpaintingmk2_3'

/Users/deno/Library/Application Support/krita/pykrita/krita_diff/widgets/checkbox.py in init(self=, cfg=, options_cfg=[['left', 'left'], ['right', 'right'], ['up', 'up'], ['down', 'down']], selected_cfg='scripts_inpaint_outpaintingmk2_3', label='Outpainting direction', *args=(), **kwargs={}) 61 self.qcheckboxes = [] 62 for opt in self.options_cfg: 63 checkbox = _QCheckBox(opt) 64 self.qcheckboxes.append(checkbox) 65 self.row.addWidget(checkbox) checkbox undefined global _QCheckBox = <class 'PyQt5.QtWidgets.QCheckBox'> opt = ['left', 'left'] TypeError: arguments did not match any overloaded call: QCheckBox(parent: typing.Optional[QWidget] = None): argument 1 has unexpected type 'list' QCheckBox(text: str, parent: typing.Optional[QWidget] = None): argument 1 has unexpected type 'list' cause = None class = <class 'TypeError'> context = None delattr = <method-wrapper 'delattr' of TypeError object> dict = {} dir = doc = 'Inappropriate argument type.' eq = <method-wrapper 'eq' of TypeError object> format = ge = <method-wrapper 'ge' of TypeError object> getattribute = <method-wrapper 'getattribute' of TypeError object> gt = <method-wrapper 'gt' of TypeError object> hash = <method-wrapper 'hash' of TypeError object> init = <method-wrapper 'init' of TypeError object> init_subclass = <built-in method init_subclass of type object> le = <method-wrapper 'le' of TypeError object> lt = <method-wrapper 'lt' of TypeError object> ne = <method-wrapper 'ne' of TypeError object> new = reduce = reduce_ex = <built-in method reduce_ex of TypeError object> repr = <method-wrapper 'repr' of TypeError object> setattr = <method-wrapper 'setattr' of TypeError object> setstate = sizeof = str = <method-wrapper 'str' of TypeError object> subclasshook = __suppress_context = False traceback__ = args = ("arguments did not match any overloaded call:\n Q...t] = None): argument 1 has unexpected type 'list'",) with_traceback =

The above is a description of an error in a Python program. Here is the original traceback:

Traceback (most recent call last): File "/Applications/krita.app/Contents/Frameworks/krita-python-libs/krita/dockwidgetfactory.py", line 18, in createDockWidget return self.klass() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/docker.py", line 13, in init self.update_interface() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/docker.py", line 25, in update_interface self.page_widget.cfg_init() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/inpaint.py", line 69, in cfg_init super(InpaintPage, self).cfg_init() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/img_base.py", line 73, in cfg_init self.ext_layout.cfg_init() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py", line 118, in cfg_init self._init_ext_widgets() File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py", line 109, in _init_ext_widgets widget = ExtWidget(script.ext_cfg, self.ext_type, ext_name) File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py", line 59, in init w = QMultiCheckBoxLayout(ext_cfg, o["opts"], k, o["label"]) File "/Users/deno/Library/Application Support/krita/pykrita/krita_diff/widgets/checkbox.py", line 63, in init checkbox = _QCheckBox(opt) TypeError: arguments did not match any overloaded call: QCheckBox(parent: typing.Optional[QWidget] = None): argument 1 has unexpected type 'list' QCheckBox(text: str, parent: typing.Optional[QWidget] = None): argument 1 has unexpected type 'list'

config : Mac book pro M1, osx 13.6, Krita 5.2.

can someone help ?

dangerweenie commented 1 year ago

i am having the same issue on windows

image

joshua-russell commented 9 months ago

Looks like the same issue for me. Win11 23H2 build 22631.3155 Krita 5.2.2 Automatic1111 v1.7.0 Python 3.10.11

SombraMagic commented 7 months ago

Same issue for me. Windows 10 Home 22H2 Krita 5.2.2 Automatic1111 v1.8.0 Python 3.10.7

Duodecimus commented 5 months ago

I believe this is caused by a formatting error in krita_diff_plugin_scripts.ini

Combobox dropdown lists are being stored as [[\"left\", \"left\"], [\"right\", \"right\"], [\"up\", \"up\"], [\"down\", \"down\"]] In python, this is a list of lists, which is bad for reasons.

What they should be getting stored as is [{\"left\", \"left\"}, {\"right\", \"right\"}, {\"up\", \"up\"}, {\"down\", \"down\"}] In python, this is a list of tuples, which is fine for reasons.

Attached is a edited krita_diff_plugin_scripts.ini that will allow people encountering this issue to at least launch Krita. (rename to .ini and replace the file in AppData\Roaming\krita) krita_diff_plugin_scripts.txt

Unfortunately, this is not a permanent solution, as each time Krita closes it will save the current state of the plugin and return all combo box lists to the broken format.