πΈ QRCodes (Segno Simple Logo)
Segno's crisp rendering, with a logo in the middle
- image
- IMAGE
- MASK
- INVERTED_MASK
The best of both halves of the pack
ComfyUI-Simple_QR_Codes ships two QR engines. The qrcode family is easy but generates small and resizes up, which softens the modules; the segno family renders at true native resolution, so big codes stay crisp. QRCodes (Segno Simple Logo) is where the pack combines its two selling points: segno's sharp rendering and a logo pasted dead-center. If you want a branded, scannable QR at poster size without the upscale blur, this is the node for it.
How it works
Same shape as the other segno nodes - segno.make(text, version, error) rendered via to_pil at your scale - but with the full region-color control set exposed (data, finder, alignment, timing, format, version, separator, dark module, quiet zone, all as CSS color names; dark/light master defaults are "None", letting segno pick). Then your optional image is resized to width_height_logo pixels and pasted centered on top.
The default width_height_logo here is 256 - four times the 64 that the qrcode-family logo node uses, so the logo starts out aggressively large. Keep in mind that whatever sits in the middle overwrites data modules, and segno's error-correction default is H (30% recovery) - genuinely the right default, and worth keeping when a logo is in play. The qrcode-family logo node, by contrast, defaults to the weakest correction level; this node does not have that trap.
Two quirks to know. First, if you leave image unwired it still needs something to paste, so it builds a placeholder from the light color - but light defaults to "None", which fails the color parse and lands on gray. So a missing image gives you a gray square, not a transparent one; wire in real art or set light to a real color. Second, mask_color (red/green/blue enum) selects which channel feeds the MASK/INVERTED_MASK outputs, same as the rest of the segno family.
Outputs
IMAGE, MASK (the QR pattern), INVERTED_MASK (the background) - the masks being useful if you want to composite the logo'd code over another graphic, or mask it during a ControlNet pass.
Where it bites
- DataOverflowError on the defaults -
versiondefaults to 1 and segno raises if the text doesn't fit. Any URL needs a higher version (2β5 is typical). - Unwired
imageβ gray square - see above. Feed it a real logo. - Too-big logo kills scanability - 256px default is a lot on a 512px canvas; keep the logo under ~15β20% of the code's width, keep error correction at
H, and verify with the pack's QRCodeReader node before you print.
Installing it
Part of ComfyUI-Simple_QR_Codes: ComfyUI Manager β search "Simple QR Codes" β install β restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/zentrocdot/ComfyUI-Simple_QR_Codes
cd ComfyUI-Simple_QR_Codes
pip install -r requirements.txt
Requires segno and segno-pil plus the pack's shared pins (qrcode 8.0, pillow 10.4.0, opencv-python). No model downloads. You'll find it under QR Code Nodes β segno-based after restart.
Inputs (27)
| Name | Type | Default | Description |
|---|---|---|---|
| dark | STRING | None | β |
| light | STRING | None | β |
| text | STRING | β | |
| width | INT | 5121β8192 | β |
| height | INT | 5121β8192 | β |
| scale | INT | 40β1024 | β |
| error_correct | COMBO | 4 options: H, Q, M, L | |
| version | COMBO | 40 options: 1, 2, 3, 4, 5, 6, +34 | |
| border | INT | 40β8192 | β |
| data_dark | STRING | darkorange | β |
| data_light | STRING | yellow | β |
| alignment_dark | STRING | darkgreen | β |
| alignment_light | STRING | palegreen | β |
| version_dark | STRING | peru | β |
| version_light | STRING | tan | β |
| finder_dark | STRING | darkblue | β |
| finder_light | STRING | lightblue | β |
| format_dark | STRING | indigo | β |
| format_light | STRING | magenta | β |
| timing_dark | STRING | mediumvioletred | β |
| timing_light | STRING | pink | β |
| separator | STRING | azure | β |
| dark_module | STRING | black | β |
| quiet_zone | STRING | lightyellow | β |
| width_height_logo | INT | 2560β1024 | β |
| mask_color | COMBO | 3 options: red, green, blue | |
| imageopt | IMAGE | β |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | β |
| MASK | MASK | β |
| INVERTED_MASK | MASK | β |