It already does that on the new version but that is not released yet. The means to have done that were not that straightforward. Also will be a while before I release it.
Update:
- New Features
- Polish
- Manual
Preview Animation
Better animation playback. Frame back and forward now work fully. Displays frame count on the UI and not as print statement now.
Preview Color Picker
Now the color picker uses Pigment.O as a module but pigmento is still not out and has no release date set. Regardless Imagine work still works without it just as before it is just fancier. I I speak of this now because it will be marked as “Pick Color [OFF]” but it works, just RGB only.
Preview Rotate
This will rotate the image and open a prompt right away if you want to save the image right away. This option is only open to static images.
Preview and Grid Navigation
Changed the basic camera navigation shortcuts order to make it more easy to use with less modifier key inputs. Check the Wiki for more info there.
Reference Mode
The Reference mode was fully re worked even though it is still missing image packing but now it should prove much more stable to use moving forward. Even if it happens to mess up you can just undo or redo according to your needs. Wiki has all the info there. Reference mode can now receive clipped images.
Pins can now:
- Move (auto snap)
- Scale (to snap make cursor near node)
- Rotate (no snap and shows mark to zero degrees)
- Clip (left, right, top, bot) (no snap)
- Edit (greyscale, flip horizontal and flip vertical)

Folder Change
Right click the folder icon on Preview or Grid mode to quickly be able to move up or down the folder tree with little effort.
Display
- Transparent display works smoother
- Preview and Grid now work with lists (Folder, Recent Documents and Reference)
- Grid section now has a smooth scaling option
- Reference section has a check to import images with the original size limited by a maximum size and it also has a undo history step size adjustable.
Sync
File watcher now displays all folder and files under watch. This list is dynamic so it changes considering the situation. The basic premise is that all things that are being watched have a icon attached to it (Folder or File icons) while things that are not being watched loose their type icon and become a dot icon. Beyond that there is not much else here beyond the order. Please note that individual files do not update as fast as files inside a folder for the Reference mode where you have individual files not updating right away press “Rebase” to update manually or just wait until the next update cycle.
Information
The information tab from timer watch is here and I added something extra I needed the other day. The “COST” section has the hourly rate section and the total price section and this section takes the time from “EDIT-TIME” and considering if you edit the rate or total it will calculate the entry automatically doing all the time conversion stuff.
Function
- New operations : “rename_age”, “save_original”
- Improvements to “search_copy” as it tries to verify pixel information also to be sure it is the same image however if one of the images is compressed and the other one is not it will still not detect but if they are different formats but same pixels it will be sure it is the same.
Manual
Just created the wiki manual and I will keep improving it there. Also the settings dialog has “working” links to press unlike the local python manual. This is the start of the “it’s in the Manual” era.
I’m getting an error and Krita refuses to start after enabling this addon. Here’s the error:
AttributeError
Python 3.8.1: C:\Program Files\Krita (x64)\bin\krita.exe
Wed Aug 24 14:47:26 2022
A problem occurred in a Python script. Here is the sequence of
function calls leading up to the error, in the order they occurred.
C:\Program Files\Krita (x64)\lib\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 'imagine_board.imagine_board_docker.ImagineBoard_Docker'>
C:\Users\32496\AppData\Roaming\krita\pykrita\imagine_board\imagine_board_docker.py in __init__(self=<imagine_board.imagine_board_docker.ImagineBoard_Docker object>)
142 self.Variables()
143 self.User_Interface()
144 self.Connections()
145 self.Modules()
146 self.Style()
self = <imagine_board.imagine_board_docker.ImagineBoard_Docker object>
self.Connections = <bound method ImagineBoard_Docker.Connections of...imagine_board_docker.ImagineBoard_Docker object>>
C:\Users\32496\AppData\Roaming\krita\pykrita\imagine_board\imagine_board_docker.py in Connections(self=<imagine_board.imagine_board_docker.ImagineBoard_Docker object>)
312 # Copyright
313 self.dialog.manual.clicked.connect(self.Menu_Manual)
314 self.dialog.copyright.clicked.connect(self.Menu_Copyright)
315 def Modules(self):
316 #\\ System
self = <imagine_board.imagine_board_docker.ImagineBoard_Docker object>
self.dialog = <imagine_board.imagine_board_modulo.Dialog_UI object>
self.dialog.copyright undefined
self.Menu_Copyright = <bound method ImagineBoard_Docker.Menu_Copyright...imagine_board_docker.ImagineBoard_Docker object>>
AttributeError: 'Dialog_UI' object has no attribute 'copyright'
__cause__ = None
__class__ = <class 'AttributeError'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of AttributeError object>
__dict__ = {}
__dir__ = <built-in method __dir__ of AttributeError object>
__doc__ = 'Attribute not found.'
__eq__ = <method-wrapper '__eq__' of AttributeError object>
__format__ = <built-in method __format__ of AttributeError object>
__ge__ = <method-wrapper '__ge__' of AttributeError object>
__getattribute__ = <method-wrapper '__getattribute__' of AttributeError object>
__gt__ = <method-wrapper '__gt__' of AttributeError object>
__hash__ = <method-wrapper '__hash__' of AttributeError object>
__init__ = <method-wrapper '__init__' of AttributeError object>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of AttributeError object>
__lt__ = <method-wrapper '__lt__' of AttributeError object>
__ne__ = <method-wrapper '__ne__' of AttributeError object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of AttributeError object>
__reduce_ex__ = <built-in method __reduce_ex__ of AttributeError object>
__repr__ = <method-wrapper '__repr__' of AttributeError object>
__setattr__ = <method-wrapper '__setattr__' of AttributeError object>
__setstate__ = <built-in method __setstate__ of AttributeError object>
__sizeof__ = <built-in method __sizeof__ of AttributeError object>
__str__ = <method-wrapper '__str__' of AttributeError object>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
args = ("'Dialog_UI' object has no attribute 'copyright'",)
with_traceback = <built-in method with_traceback of AttributeError object>
The above is a description of an error in a Python program. Here is
the original traceback:
Traceback (most recent call last):
File "C:\Program Files\Krita (x64)\lib\krita-python-libs\krita\dockwidgetfactory.py", line 18, in createDockWidget
return self.klass()
File "C:\Users\32496\AppData\Roaming\krita\pykrita\imagine_board\imagine_board_docker.py", line 144, in __init__
self.Connections()
File "C:\Users\32496\AppData\Roaming\krita\pykrita\imagine_board\imagine_board_docker.py", line 314, in Connections
self.dialog.copyright.clicked.connect(self.Menu_Copyright)
AttributeError: 'Dialog_UI' object has no attribute 'copyright'
To get Krita running again, it should be usually enough to delete the file “imagine_board.desktop” and the folder “imagine_board” in the folder “c:\Users\YOUR_WINDOWS_USERNAME\AppData\Roaming\krita\pykrita\”, where you have to replace “YOUR_WINDOWS_USERNAME” with your Windows username.
This will not make the plugin work, but you will be able to use Krita again.
Michelist
@MichaelKnubben I reuploaded everything again and so try downloading and installing it fresh again. if it keep giving issues.
It does seem that the manual method is better! It works now, thanks a lot for the help
tiny update: Imagine board now has compatibility with zip files so you can inspect a zip file as it is. however I am still thinking a better way to navigate inside the zip file. I accept suggestions as I have no idea what to do there.

Ps - now it has new UI and mouse interface. Also it uses threading so it does not lock the UI while it is loading.
Ctrl + LMB (drag) - changes folder file
Ctrl + Shift + LMB (drag) - changes zip file

Wishing this could be adapted for the Android version of Krita. Looks fascinating!
This is like what I was needing, and it’s here. Huge thank you!
Is there any way I can donate £5? Do you own a buy me a coffee link or anything?
At the bottom of the GitHub-Page of this project, you’ll find a PayPal badge, there you can donate.
Michelist
Nice one!
This is one hell of a plugin! Better than I wanted, works flawless (well, so far).
Keep cool and, keep up the good work!
Update:
- New Features
- Polish (UI, Interaction)
- Bug Fixes
- Refactoring
This one does some big changes to the plugin been working on this for quite a long while but I hope this is good to celebrate the new year. If any problem arises just clean your kritarc file and restart Krita again. This will happen because the Reference mode so do not expect to reload previously made boards. So now the stuffs.
Insert Notifications
Placing layers or Reference images give a warning.

Sync
The Sync tab now has relocated options and the better thing about this is that you can see immediately the changes of the files being synced if you change the list.
Full Screen
Now you can toggle view into a full screen with a single action.
When in full screen mode (just stretched to fit not really full screen) you can press on the lower right button that appears to shrink it back to docked.
Export
Now on the Settings mode you have a extra tab that allows you to export quickly into the folder you have open with Preview and Grid mode. You have 2 modes to do this : Clipboard and Canvas as the source. When this is activated it will use the settings to export and you can define a default that will have a version number and also you can constrict to a pixel size or a percentage. This also has actions that can be activated with shortcuts.
File Format
So as before you can save into the KRA files but now you also have the ability to save into a file on your system. This will create a *.imagine_board.eo file. You can set it to auto save as it will use the active document path to save into or to save alongside it. Changing active document will deactivate the autosave. I created a custom file extension just to be identifiable and not get mixed up.
As a side note : I was able to also register the file type on the windows system and link it to the Krita application but of course Krita does not recognize it so I ended up trashing that idea out ![]()
Now for the Meat and Potatoes of this update ![]()
Reference Mode
The reference mode was fully refactored into a better design which allowed to create more stuff that was lacking to be a better image board.
Ref : Mid Point Offset
Now all board transforms affect the mid point of the widget instead of the x=zero and y=zero corner of the widget. This make the scaling transformations much more natural for a human.
Ref : Undo and Redo
Making changes to the Board creates a history of the changes. the limit of possible entries is 100 and can be adjusted according the needs. click on the little arrows or use the Browse Minus/Plus shortcuts to change back and forth.

Ref : Lost Board
Reference mode will always display the area that the board is taking up with a nice square around it but if you loose track of it there will be a line pointing to where it is at.

Ref : Text String
Now you can create a Text object. This object can the Renamed or changed the Highlight color with a Hex code. Color changes can be used on selections. The text object acts just like any other pin and can be rotated and clipped but has no image information so it can’t be edited to be flipped or set in monochrome.

Image Packing
Make a Selection of Images and select a packing mode and organize the images with it. Different sets of image sizes give different packing efficiencies on how you organize them. At the end of the packing process in the Log Viewer a efficiency percentage will be given to give a guideline. I created my own custom packing algorithm for the Optimal solution that is a mix of various pre existing solutions. Currently there are 6 packing solutions to choose from that roughly are separated in 2 classes : optimal solutions (4) and linear solutions (2). Do mind that sometimes a simple change after can pack it even better as this is a guess more than the best possible solution. Packing solutions will take in account rotation and clipping, however they might miss the mark if any of these are involved on occasion.

Various
Overall stuff moved around and I corrected some stuff so it should feel better to use over all. Enjoy and have fun.
Incredibly impressive! Thank you for your amazing work on this!
Running the plugin takes less than a second - (I have less than 30 images in it in all tabs) - and this is NOT a problem, as there is usually no need to enable/disable the plugin.
A similar time delay occurs when trying to use Krita’s built-in “canvas only” (tab) mode. I don’t know how it actually works, but it seemed to me that the plugin restarts, maybe that’s the reason for the delay? Is it possible for the plugin to have a hidden/background mode so it doesn’t affect canvas switching? Or is this directly an issue with the Krita interface restarting?
Well I was investigating what you said and I did a change to it to see and it is changing much faster @Andreich_DMBL , however I had to change the behavior a bit. I will let it be like this for a while.
Now you need to hover the mouse over the Preview/Grid to open the directory. Download again to see the changes on the load.

Great! Now the use of Tab feels free, and I also forgot to write that earlier there was a similar delay when switching presets of the workspace - now there is no delay either. Thank you, I really feel more comfortable!
Loader
So considering the previous situation of being slow to dock and undock it kinda affects directly on how the loader acts, because Krita does not seem to run threads when starting up or something. Soooo I made a balancing act to improve it that kinda made me move stuff around to suit it. Now you have 2 moments where it loads after you turn on Krita:
- waiting 2 seconds for auto load
- hover your mouse over to manually load (if timer does not work)
By cleaning all unnecessary calls it should be lighter to dock and undock it now. If something happens with it not remembering a settings when loading tell me about it
Progress Bar
Because of these changes I did some extra connections and now you can see how long a list takes to load with the help of the progress bar. This reflects the compressed files check behaviour
Demo

Did a small update the fixed a couple of bugs especially those for Linux.
If Imagine Board did not boot up for you it should work now in theory it needs testing though.
How well does it handle large boards ?
Pureref Takes 12 gb memory and load time is significant. About 800 images and 4gb files.
I would say your a better judge for that. But on my side I would say you better off with PureRef if you use it like that a 800 image board is costly.



















