⧉ IsulionOverlay
The QR-code stamping node (yes, that's what it's for)
- base_image
- qr_code_image
- IMAGE
Despite the bare name, ⧉ IsulionOverlay is a QR-code watermarker. It's the companion to the 🧩 IsulionQRCode node in the same pack: one generates the code, this one stamps it onto an image. If you've been making AI images to share online and wanted a scannable link in the corner - or you're generating product shots that need a code embedded - this is the node.
It's the least "prompt generator" thing in the Isulion pack, but it's genuinely useful for a specific job: putting a QR code on a generated image without ever leaving ComfyUI.
How it works
You feed it two images - a base_image and a qr_code_image - and it composites the second onto the first with full control over size, opacity, rotation, and position. Under the hood it resizes the QR tile, rotates it with an affine grid sample if you ask for an angle, and alpha-composites it onto the base. It handles both RGB and RGBA inputs and always outputs RGBA.
Two modes, controlled by one toggle:
- Single placement (default): one QR code stamped at a corner. Alignment and margin apply here.
- Repeat pattern: the QR tile is tiled across the whole image, like a wallpaper. Rotation applies to the overall pattern. This is the "subtle watermark everywhere" trick - and honestly the cooler mode, because the code is readable across the whole surface.
The inputs that matter
- base_image / qr_code_image - the two IMAGE inputs. Second one typically comes from the IsulionQRCode node.
- size_percent - how big the stamp is relative to the shorter side of the base (default 20).
- opacity - 0 to 1 (default 1). Turn it down for a faint watermark.
- rotation_angle - −360 to 360 degrees. A little tilt looks intentional.
- repeat_pattern - the mode switch above.
- vertical_align / horizontal_align / margin_percent (optional) - corner placement for single mode: top/bottom/center, left/right/center, and a margin as a percentage of the base.
Output
A single IMAGE (RGBA) - the composite, ready to save.
Installing it
Same one-pack story:
- ComfyUI Manager → Custom Nodes Manager → search Isulion → Install → Restart.
- Or clone it manually:
cd "your_ComfyUI_install_dir/custom_nodes"
git clone https://github.com/Isulion/ComfyUI_Isulion
No requirements.txt, no models. It's torch + numpy under the hood, both already in ComfyUI.
Common issues
The big gotcha is transparency: the node outputs RGBA, and ComfyUI's in-canvas preview doesn't always show alpha correctly. Save with a SaveImage node (PNG) and check the file, not the preview. Second: in repeat-pattern mode, the alignment and margin inputs do nothing - they're single-placement controls, and people waste time wondering why their tiled pattern isn't obeying them. Third: if you feed it a bad input (wrong tensor rank, missing image), it doesn't crash the queue - it prints an error to the console and returns either the untouched base image or a black dummy tensor. That's friendlier than a hard crash, but it's also easy to miss the console message and think the node "just didn't work." Also worth knowing: it's called "Overlay" but it'll stamp anything, not just QR codes - logos and signatures work exactly the same.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| base_image | IMAGE | — | |
| qr_code_image | IMAGE | — | |
| size_percent | FLOAT | 20.01–100 | — |
| opacity | FLOAT | 1.000–1 | — |
| rotation_angle | FLOAT | 0.0-360–360 | — |
| repeat_pattern | BOOLEAN | false | — |
| vertical_alignopt | COMBO | bottom | 3 options: top, bottom, center |
| horizontal_alignopt | COMBO | right | 3 options: left, right, center |
| margin_percentopt | FLOAT | 2.00–50 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |