LayerFilter: WaterColor
Watercolor (Layer Style)
- image
- image
Watercolor gives a photo or render that soft, painted, bleeding-edge look of a watercolor painting - pooled color, softened detail, loose boundaries. It's a stylistic post-filter, the kind of thing you drop on at the end of a workflow to move an image away from crisp-digital toward hand-painted. No model, no prompt engineering; it's an image-processing effect you dial in with two sliders.
The mechanism is an edge-and-region simplification: the filter softens fine detail and lets areas of color pool and bleed the way pigment does on wet paper, while preserving enough of the linework to keep the image readable. The result reads as "painted" rather than "blurred" because it keeps structure at the boundaries even as it smooths the interiors.
Two controls, and that's the whole node:
line_density- how much of the image's edge/line structure survives the effect, 1 to 100 (default 50). Lower leans softer and more abstract, letting color dominate; higher keeps more defined lines and detail, closer to the original. This is the main character knob - sweep it to find the balance between "loose wash" and "detailed illustration."opacity- how strongly the effect is mixed over the original, 0 to 100 (default 100). At 100 you get the full watercolor look; dial it down to blend the effect back toward the source image for a subtler, semi-stylized result. This is your "too much" rescue slider.
One output, image, the stylized picture, ready to save or feed onward.
Where it fits: turning a photoreal render into an illustration, softening a portrait into something painterly, or generating stylized assets and backgrounds. Because opacity lets you blend it partway back, it's flexible - full strength for a committed art style, half strength to just take the digital hardness off an image. It also stacks interestingly with other filters in the pack; a light watercolor under a subtle paper texture sells the medium.
Set expectations honestly: this is a procedural filter, not a diffusion restyle, so it won't invent brushstrokes or reinterpret the content the way an img2img pass with a watercolor LoRA would. It softens and pools what's already there. That's a feature when you want to preserve the exact composition and just change its finish, and a limitation if you wanted the image genuinely repainted. For the former, this is faster and more predictable than a model pass; for the latter, run it through a sampler instead.
Install is via the ComfyUI Layer Style pack. ComfyUI Manager: search "ComfyUI Layer Style," install, restart. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/chflame163/ComfyUI_LayerStyle, then pip install -r requirements.txt in the ComfyUI environment and restart. No model to download.
The pack-wide gotcha applies here too: Layer Style is large and dependency-heavy, and its most common failure is the whole pack showing "import failed" in the Manager (usually a transformers version clash), which makes every node - Watercolor included - vanish from your menu at once. If it's missing, the pack didn't import: reinstall it, use the Manager's "Try Fix," and reinstall the requirements into ComfyUI's real Python environment if it persists.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| line_density | INT | 501–100 | — |
| opacity | INT | 1000–100 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |