Krita Image Layer
Krita Image Layer
- image
- mask
Here's the thing to understand before anything else: this node isn't really meant for you to place by hand. Krita Image Layer is an interop node - it's the seam between Acly's Krita AI Diffusion plugin and the ComfyUI graph running underneath it. When you're painting in Krita and the plugin generates a workflow to send to ComfyUI, this node is how a specific layer from your Krita document gets pulled into that workflow as an image. You look it up by name, and out comes the pixels.
Some context makes the whole "krita" category of this pack click into place. Krita AI Diffusion is one of the more popular ways to run Stable Diffusion inside an application you already paint in - it shows up in the community constantly, and it's built by the same author as this node pack. The plugin doesn't reinvent generation; it exports API-format workflows and drives a ComfyUI backend. That backend needs a vocabulary for "grab this layer," "grab this mask," "send this text back to the UI." These krita-category nodes are that vocabulary. So while you can drop this node into a plain ComfyUI graph, on its own - outside the plugin that populates it - it doesn't have much to grab.
The mechanism is a named lookup. Krita has layers; you reference one by its name, and the node resolves that name to image data at runtime, when the plugin hands ComfyUI the document's contents. That's why the whole configuration is just a name.
The schema is minimal:
- name (STRING, default
"Image") - the name of the Krita layer to fetch. This is the entire input.
And it gives you two outputs:
- image (IMAGE) - the layer's RGB pixels, to use as an init image, a ControlNet input, a reference, whatever the workflow calls for.
- mask (MASK) - the layer's alpha channel as a mask, if it has one. Handy when a layer's transparency defines the region you care about, so you don't need a separate mask layer.
Getting two outputs from one layer - the color and its transparency - is the small convenience that makes it worth a single node instead of two.
Installation is the standard pack install: "ComfyUI Nodes for External Tooling" in ComfyUI Manager, or cd custom_nodes && git clone https://github.com/Acly/comfyui-tooling-nodes.git from your ComfyUI folder, then restart. No extra dependencies, no models. But note the real prerequisite isn't the node - it's the Krita AI Diffusion plugin on the Krita side, which is what actually feeds this node its data. The plugin installs and manages this pack for you as part of its own setup, so in practice most people never install it separately at all.
The most common confusion is exactly that mismatch: someone finds this node in a search, drops it into a browser ComfyUI graph, and gets nothing useful because there's no Krita session sending layer data. That's not a bug - the node is a receiver, and without the plugin driving it there's nothing to receive. If you are running through the plugin and a layer comes back empty, the usual cause is a name mismatch - the name field has to match the Krita layer name exactly, so a rename or a typo on either side breaks the link.
Bottom line: this is plumbing for the Krita workflow, and a good one. If you paint and want AI generation living inside Krita rather than a separate tab, the plugin is genuinely worth trying, and this node is one of the quiet pieces making it work. If you're building ComfyUI graphs from scratch in a browser, though, you want Load Image, not this.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| name | STRING | Image | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| mask | MASK | — |