bug on krita app at startup after install krita extension in A1111
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=<krita.dockwidgetfactory.DockWidgetFactory object>)
14 super(DockWidgetFactory, self).init(_id, _dockPosition)
15 self.klass = _klass
16
17 def createDockWidget(self):
18 return self.klass()
self = <krita.dockwidgetfactory.DockWidgetFactory object>
self.klass = <class 'krita_diff.docker.create_docker.
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/docker.py in init(self=<krita_diff.docker.create_docker.
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/docker.py in update_interface(self=<krita_diff.docker.create_docker.
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/img2img.py in cfg_init(self=<krita_diff.pages.img2img.Img2ImgPage object>) 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 = <krita_diff.pages.img2img.Img2ImgPage object> ).cfg_init = <bound method Img2ImgPage.cfg_init of <krita_diff.pages.img2img.Img2ImgPage object>>
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/img_base.py in cfg_init(self=<krita_diff.pages.img2img.Img2ImgPage object>) 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 = <krita_diff.pages.img2img.Img2ImgPage object> self.ext_layout = <krita_diff.pages.extension.ExtSectionLayout object> self.ext_layout.cfg_init = <bound method ExtSectionLayout.cfg_init of <krita_diff.pages.extension.ExtSectionLayout object>>
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py in cfg_init(self=<krita_diff.pages.extension.ExtSectionLayout object>) 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 = <krita_diff.pages.extension.ExtSectionLayout object> self._init_ext_widgets = <bound method ExtSectionLayout._init_ext_widgets...ta_diff.pages.extension.ExtSectionLayout object>>
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py in _init_ext_widgets(self=<krita_diff.pages.extension.ExtSectionLayout object>) 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 = <krita_diff.pages.extension.ExtWidget object> global ExtWidget = <class 'krita_diff.pages.extension.ExtWidget'> global script = <krita_diff.script.Script object> script.ext_cfg = <krita_diff.config.Config object> self = <krita_diff.pages.extension.ExtSectionLayout object> self.ext_type = 'scripts_img2img' ext_name = 'Outpainting mk2'
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py in init(self=<krita_diff.pages.extension.ExtWidget object>, ext_cfg=<krita_diff.config.Config object>, 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 = <krita_diff.config.Config object> 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=<krita_diff.widgets.checkbox.QMultiCheckBoxLayout object>, cfg=<krita_diff.config.Config object>, 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 = <built-in method dir of TypeError object>
doc = 'Inappropriate argument type.'
eq = <method-wrapper 'eq' of TypeError object>
format = <built-in method format of TypeError object>
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 =
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=<krita.dockwidgetfactory.DockWidgetFactory object>)
14 super(DockWidgetFactory, self).init(_id, _dockPosition)
15 self.klass = _klass
16
17 def createDockWidget(self):
18 return self.klass()
self = <krita.dockwidgetfactory.DockWidgetFactory object>
self.klass = <class 'krita_diff.docker.create_docker.
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/docker.py in init(self=<krita_diff.docker.create_docker.
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/docker.py in update_interface(self=<krita_diff.docker.create_docker.
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/txt2img.py in cfg_init(self=<krita_diff.pages.txt2img.Txt2ImgPage object>) 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 = <krita_diff.pages.txt2img.Txt2ImgPage object> ).cfg_init = <bound method Txt2ImgPage.cfg_init of <krita_diff.pages.txt2img.Txt2ImgPage object>>
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/img_base.py in cfg_init(self=<krita_diff.pages.txt2img.Txt2ImgPage object>) 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 = <krita_diff.pages.txt2img.Txt2ImgPage object> self.ext_layout = <krita_diff.pages.extension.ExtSectionLayout object> self.ext_layout.cfg_init = <bound method ExtSectionLayout.cfg_init of <krita_diff.pages.extension.ExtSectionLayout object>>
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py in cfg_init(self=<krita_diff.pages.extension.ExtSectionLayout object>) 118 self._init_ext_widgets() 119 for widget in self.ext_widgets.values(): 120 widget.cfg_init() 121 122 def cfg_connect(self): widget = <krita_diff.pages.extension.ExtWidget object> widget.cfg_init = <bound method ExtWidget.cfg_init of <krita_diff.pages.extension.ExtWidget object>>
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py in cfg_init(self=<krita_diff.pages.extension.ExtWidget object>) 69 def cfg_init(self): 70 for w in self.widgets: 71 w.cfg_init() 72 73 def cfg_connect(self): w = <krita_diff.widgets.combo_box.QComboBoxLayout object> w.cfg_init = <bound method QComboBoxLayout.cfg_init of <krita_diff.widgets.combo_box.QComboBoxLayout object>>
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/widgets/combo_box.py in cfg_init(self=<krita_diff.widgets.combo_box.QComboBoxLayout object>)
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 = <krita_diff.widgets.combo_box.QComboBoxLayout object>
self.cfg = <krita_diff.config.Config object>
self.options_cfg = [['positive', 'positive'], ['negative', 'negative']]
builtinisinstance =
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=<krita.dockwidgetfactory.DockWidgetFactory object>)
14 super(DockWidgetFactory, self).init(_id, _dockPosition)
15 self.klass = _klass
16
17 def createDockWidget(self):
18 return self.klass()
self = <krita.dockwidgetfactory.DockWidgetFactory object>
self.klass = <class 'krita_diff.docker.create_docker.
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/docker.py in init(self=<krita_diff.docker.create_docker.
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/docker.py in update_interface(self=<krita_diff.docker.create_docker.
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/inpaint.py in cfg_init(self=<krita_diff.pages.inpaint.InpaintPage object>) 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 = <krita_diff.pages.inpaint.InpaintPage object> ).cfg_init = <bound method InpaintPage.cfg_init of <krita_diff.pages.inpaint.InpaintPage object>>
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/img_base.py in cfg_init(self=<krita_diff.pages.inpaint.InpaintPage object>) 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 = <krita_diff.pages.inpaint.InpaintPage object> self.ext_layout = <krita_diff.pages.extension.ExtSectionLayout object> self.ext_layout.cfg_init = <bound method ExtSectionLayout.cfg_init of <krita_diff.pages.extension.ExtSectionLayout object>>
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py in cfg_init(self=<krita_diff.pages.extension.ExtSectionLayout object>) 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 = <krita_diff.pages.extension.ExtSectionLayout object> self._init_ext_widgets = <bound method ExtSectionLayout._init_ext_widgets...ta_diff.pages.extension.ExtSectionLayout object>>
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py in _init_ext_widgets(self=<krita_diff.pages.extension.ExtSectionLayout object>) 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 = <krita_diff.pages.extension.ExtWidget object> global ExtWidget = <class 'krita_diff.pages.extension.ExtWidget'> global script = <krita_diff.script.Script object> script.ext_cfg = <krita_diff.config.Config object> self = <krita_diff.pages.extension.ExtSectionLayout object> self.ext_type = 'scripts_inpaint' ext_name = 'Outpainting mk2'
/Users/deno/Library/Application Support/krita/pykrita/krita_diff/pages/extension.py in init(self=<krita_diff.pages.extension.ExtWidget object>, ext_cfg=<krita_diff.config.Config object>, 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 = <krita_diff.config.Config object> 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=<krita_diff.widgets.checkbox.QMultiCheckBoxLayout object>, cfg=<krita_diff.config.Config object>, 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 = <built-in method dir of TypeError object>
doc = 'Inappropriate argument type.'
eq = <method-wrapper 'eq' of TypeError object>
format = <built-in method format of TypeError object>
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 =
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 ?
i am having the same issue on windows
Looks like the same issue for me. Win11 23H2 build 22631.3155 Krita 5.2.2 Automatic1111 v1.7.0 Python 3.10.11
Same issue for me. Windows 10 Home 22H2 Krita 5.2.2 Automatic1111 v1.8.0 Python 3.10.7
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.