Live Updated 2026-09

Yoizuki Reference Catalog

A Krita extension for arranging floating reference-image boards that stay with the document instead of taking over the canvas.

Python PyQt5 Krita API Qt Graphics View
yoizuki.dev

Motivation

I wanted a reference workflow in Krita closer to the one I liked in Clip Studio Paint: visual material kept beside the canvas instead of mixed into the artwork. Krita’s canvas-integrated reference-image approach did not quite fit how I wanted to work, and keeping a separate reference app open added another window to manage. So I built the tool I was missing.

Download Yoizuki Reference Catalog 1.1.0.

Floating, Document-Owned Boards

The extension adds lightweight reference boards that can sit beside the canvas or outside Krita’s main window. Each board belongs to the active document, can be moved, resized, named, or hidden independently, and returns with the artwork when the .kra file is reopened.

Multiple boards make it possible to separate references by purpose instead of building one crowded collage. The boards stay above Krita while it is active without floating over unrelated applications.

Fast Reference Handling

Images can be added from files, the clipboard, direct public URLs, or supported Chromium browser drags. Once added, references can be moved, resized, rotated, reordered, duplicated, locked, flipped, or sampled for color without leaving the painting workflow.

Board-level canvas zoom provides a quick way to inspect a collection from 25% to 400% while keeping individual image transforms unchanged. Reference undo and redo are kept separate from Krita’s painting history, so arranging a board does not interfere with brush work.

Native Krita Integration

The plugin uses Krita’s Python extension API and PyQt5 rather than running as a separate companion application. Board state and image data are stored inside the .kra document, and the extension follows Krita’s active document as tabs and windows change.

That integration required careful handling of Krita’s document lifecycle, Qt window ownership, and platform-specific drag data. Supporting image drags from Chromium-based browsers, for example, meant decoding their native pasteboard payload instead of relying only on standard MIME URLs.

Visibility Without Distraction

Auto-hide can be controlled per board. A board may remain visible while browsing for references, or disappear when Krita loses focus so it does not cover other applications. The setting is optional and off by default, keeping the behavior predictable for each workspace.

The auto-hide comparison in the gallery was recorded inside Krita. The arrangement demo uses the plugin’s real widgets in a scripted standalone Qt preview.

Lessons Learned

Desktop plugins sit inside someone else’s lifecycle. A feature can look correct in a standalone Qt preview and still fail around real document switches, wrapper ownership, focus changes, or save and reopen behavior inside Krita. The project reinforced the value of a narrow host boundary and of testing portable logic separately from native integration.

It also showed that a useful creative tool does not need to reproduce every feature of a dedicated reference application. A focused set of interactions, placed directly inside the drawing workflow, can remove more friction than a broader standalone tool.