CivArchive
    SDXL QR Code Art Generator - v2.0
    Preview 3826815
    Preview 3826285
    Preview 3826284

    I'm thrilled to introduce the Stable Diffusion XL QR Code Art Generator, a creative tool that leverages cutting-edge Stable Diffusion techniques like SDXL and FreeU. This generator is built on the SDXL QR Pattern Controlnet model by Nacholmo, but it's versatile and compatible with SD 1.5 models and the QR_Monster ControlNet as well. However, I've achieved the best results with SDXL.

    Here's how it works:

    1. Enter your QR code text in the QR_Text field.

    2. If the QR code isn't centered, you can align it using X and Y offsets.

    3. If, for example, you want to create a business card, you can adjust the canvas resolution with width and height and position the code using X and Y offsets.

    Next, enter your prompt or choose a pre-saved style from the Styler, or combine your prompt with a style.

    Now, you're ready to generate your QR code. The workflow includes an automatic QR code validation feature. Optionally, you can set it to save only scannable QR codes.

    If your code isn't scannable, try slightly increasing the control net weight. Be cautious, though, and find the right balance, as a too high control net weight can significantly limit the AI's creativity.

    The workflow requires various custom nodes, which you can easily install via the Comfyui manager.

    You can download the Styler here.

    Find the Controlnet model here.

    Enjoy the process of creating your unique QR codes, and don't hesitate to reach out if you have any questions. 🎉

    Description

    Patch notes:

    1. fixed the FreeU bug

    2. Reduced the number of custom nodes

    3. Replaced Mile High Styler with SDXL Styler due to version issues. However, I find the Mile High generally more successful and therefore can only recommend using it.

    FAQ

    Comments (11)

    kpizzleNov 22, 2023
    CivitAI

    Is that Dog scannable? got anymore examples?

    opensourcefanNov 23, 2023· 2 reactions
    CivitAI

    Works great once you figure out a routine. Anyone having difficulties try starting with the following:

    Separation Step / ControlNet(Combined) strength

    4 / 1.05

    5 / 1.09

    6 / 1.13 < hit and miss but the best IMO

    6 / 1.14

    If you're not able to get a scan, then increase by .01 and try again.

    gfabrot829Jan 5, 2024

    just in case you see this 1 month later, where in the workflows are these values?

    I only see ControlNet(Combined)

    what does the 4/ 5/ 6/ 6/ refer to in your example?

    PostposMar 7, 2024
    CivitAI

    Why do you start at step 4 for pre-sampling Function Layer? Is it the reason to split generation into two stages?

    yofoton174609Mar 9, 2024
    CivitAI

    Is it possible to make a step to "verify" that it actually works? sometimes its only a few pixels that make it stop working..

    gicashutMar 31, 2024
    CivitAI

    getting this error:

    Error occurred when executing Image Input Switch: WAS_Image_Input_Switch.image_input_switch() got an unexpected keyword argument 'boolean_number' File "D:\comfyui\ComfyUI_windows_portable\ComfyUI\execution.py", line 151, in recursive_execute output_data, output_ui = get_output_data(obj, input_data_all) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\comfyui\ComfyUI_windows_portable\ComfyUI\execution.py", line 81, in get_output_data return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\comfyui\ComfyUI_windows_portable\ComfyUI\execution.py", line 74, in map_node_over_list results.append(getattr(obj, func)(**slice_dict(input_data_all, i))) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    any idea what's up?

    tazztoneJun 18, 2024

    same :(

    xiaobao33May 22, 2024· 1 reaction
    CivitAI

    Error occurred when executing Image Input Switch: WAS_Image_Input_Switch.image_input_switch() got an unexpected keyword argument 'boolean_number' File "G:\ComfyUI\ComfyUI-aki-v1.3\execution.py", line 151, in recursive_execute output_data, output_ui = get_output_data(obj, input_data_all) File "G:\ComfyUI\ComfyUI-aki-v1.3\execution.py", line 81, in get_output_data return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True) File "G:\ComfyUI\ComfyUI-aki-v1.3\execution.py", line 74, in map_node_over_list results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))

    denrakeiw
    Author
    May 22, 2024· 1 reaction

    Yes, the WAS nodes are no longer being updated as WAS is no longer developing them. Therefore, there are now errors. When I have more time again, I'll try to rebuild the workflow with other nodes.

    zackzachzaczakMay 8, 2025
    CivitAI

    Would love a new iteration! I'm using Monster chkpt, not sure if that's the issue, but I keep getting outputs with just the 3 squares and the generated image. None of the QR code middle squigglies and such which means none of the QRs are scannable.

    Though I think I'll figure it out with some number changes! If anything I'd really like to see an I2I version. There isn't a single workflow for that. Not sure if it is just so unreliable no one bothers. People talk about it being feasible.

    The boolean_number issue is very easily fixable, just need to disconnect it from the position on/off node.

    denrakeiw
    Author
    May 18, 2025

    Maby I make a new version when there is a qr controlnet for flux or hidream.

    Workflows
    SDXL 1.0

    Details

    Downloads
    1,031
    Platform
    CivitAI
    Platform Status
    Available
    Created
    11/22/2023
    Updated
    5/21/2026
    Deleted
    -

    Files

    sdxlQRCodeArt_v20.zip

    Mirrors

    CivitAI (1 mirrors)