Nodes/comfyui-art-venture/QR Code Generator
ComfyUI Node Runs on cloud

QR Code Generator

Make a scannable QR image for QR art

By sipherxyz·Created 3 years ago·Updated 5 months ago· 353
QR Code Generator
    • IMAGE
    text
    size512
    qr_version1
    error_correctionH
    box_size10
    border4

    This node makes a plain QR code as an image, right inside your graph. Type in the text or URL, get a black-and-white QR back. On its own that's mundane - but the reason it lives in an image-generation pack is QR art: that viral trick where a picture is also a working scannable code. This node produces the raw QR that a QR-Monster-style ControlNet then bends into a landscape, a portrait, a logo, whatever, while keeping it scannable. Generate the code here, condition on it there.

    Set expectations up front, because this is where people get burned. The artistic scannable-QR effect leans on the QR-code / brightness ControlNet, and that condition only ever existed for SD 1.5 and SDXL - nobody has rebuilt it for Flux, Z-Image, or the other modern bases. It's the single most-missed ControlNet on newer models. So if you want the classic QR art look, do that pass on an SD 1.5 or SDXL model. This node makes the code on any workflow; the art half is base-model-limited.

    How it works

    It encodes your text into a QR matrix and renders it to an image at the size and styling you set. The knobs are standard QR parameters: error-correction level, module (box) size, quiet-zone border, and the QR version that controls how much data the code holds. Higher error correction is what lets a heavily stylized code still scan, which is exactly why it matters for QR art.

    Inputs and outputs

    Six required inputs:

    • text - the content to encode (a URL, usually). Multiline.
    • size - output image size in pixels, default 512.
    • qr_version - 1 to 40, controlling the code's data capacity and density. Higher versions pack more data into a denser grid. Default 1; leave it low unless you're encoding a lot.
    • error_correction - L, M, Q, or H, default H (highest). H is the one you want for QR art - it tolerates the most distortion from the ControlNet and still scans.
    • box_size - pixels per QR module, default 10.
    • border - the quiet-zone margin in modules, default 4. Don't drop this to 0 for art; scanners need the margin.

    The output is a single IMAGE - the QR code. Feed it into a ControlNet Apply (with a QR/brightness ControlNet) as the control image, or use it as a latent starting point.

    Installing it

    Comes with the ArtVenture pack. ComfyUI Manager: search comfyui-art-venture, install, restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/sipherxyz/comfyui-art-venture
    

    Restart ComfyUI. No model download for the generator itself. The QR-Monster / brightness ControlNet you pair it with is a separate download, and an SD 1.5 or SDXL one.

    Common issues

    The final art won't scan. The usual trade-off: push the ControlNet strength too low and the code gets too stylized to read, too high and it looks like a flat QR. Keep error_correction at H here, keep a real border, and tune the ControlNet weight until it both looks good and scans. Test with an actual phone, not just your eye.

    No QR ControlNet for your base. Right - the brightness/QR condition is SD 1.5 and SDXL only, and never got rebuilt for Flux or the 2026 bases. If you're on a modern model, run the QR-art pass on SDXL and carry the result forward.

    Encoded too much data. A long URL at a low qr_version makes a cramped, hard-to-scan grid. Shorten the URL (use a link shortener) or let the version climb so the modules stay legible.

    Border set to 0 and now nothing reads it. QR scanners need the quiet zone. Keep border at 4 or so; zero margin breaks scanning even on a clean code.

    CategoryArtVenture/Utils

    Inputs (6)

    NameTypeDefaultDescription
    textSTRING
    sizeINT51264–4096
    qr_versionINT11–40
    error_correctionCOMBOH4 options: L, M, Q, H
    box_sizeINT101–100
    borderINT40–100

    Outputs (1)

    NameTypeDescription
    IMAGEIMAGE