4 mins read

2 Ways To Generate Invisible Illusions with QRCode Monster XL


This guide will show you how to use the power of Stable Diffusion and ControlNet to create captivating illusions, using the amazing QRCode Monster XL model. The output will be images that look normal at first sight, but if you squint your eyes will reveal a hidden image or figure. It can also generate nice logos if you want to reveal the hidden image. Anyway, let’s get started!

I will show you how to generate images using both Stable Diffusion 1.5 and Stable Diffusion XL; this means that you will have to download two different models. To follow along, I recommend using either Stable Diffusion WebUI or ComfyUI.

Stable Diffusion 1.5

Required Tools

You will also need a ControlNet source image or text that you want to use to create the illusion. It should be of the same dimensions of the generated image. Here an example with an iconic painting 512×5

You will also need a ControlNet source image or text that you want to use to create the illusion. It should be of the same dimensions of the generated image. Here an example with an iconic painting 512×512:

Setting the Stage: Parameters and Prompts

  1. Positive Prompt: Luminous hilly ((Italian Countriside)),(full sharp:1.2), ((photorealistic:1.4)), best quality, masterpiece, (raw photo:1), extremely detailed, CG, unity, 8k wallpaper, high-res, extremely detailed, beautiful detailed.”
  2. Negative Prompt: “grainy, low quality, low res, plastic, Deformed, blurry, cropped, low-res, blur, vignette, out of shot, out of focus, gaussian, monochrome, grainy, noisy, text, writing, watermark, logo, human
  3. Steps: 29 – Sampler: DPM++ 2M Karras – CFG scale: 11 – Seed: 1188685958
  4. Optional Upscaling with Hires: Enable Hires.fix for improved results. Experiment with settings like steps (e.g., 15–30) and denoise strength (e.g., 0.7–0.9) for optimal upscaling results. For this example I used: Hires upscale: 1.5 – Hires steps: 15 – Hires upscaler: Latent

Create Illusions with ControlNet

  1. Open the ControlNet panel (ensure you’ve installed the ControlNet extension) and activate it.
  2. Control Weight: Adjust the Control Weight slider to determine the strength of the hidden figure. Subtlety is key; aim for values between 0.70 and 1 to start. Experiment to find the perfect balance.
  3. ControlNet Source Image: Choose a text or shape for your hidden figure and add it to the ControlNet section. Start with simpler shapes or figures in black and white for better results.
  4. Model Selection: From the dropdown menu, choose “control_v1p_sd15_qrcode_monster.” Ensure you’ve downloaded this model in the correct folder.
  5. Click the “Generate” button to create your illusion. Don’t be discouraged if results aren’t immediate; adjust parameters and try different shapes until you achieve your desired effect.

ControlNet parameters for this: preprocessor: none – model: control_v1p_sd15_qrcode_monster [a6e58995] – weight: 1.3 -starting/ending: (0, 1) – resize mode: Just Resize – pixel perfect: False– control mode: Balanced


After having fun generating illusions with QRCodeMonster and Stable Diffusion 1.5, a new update is available: QRCode Monster for SDXL, the more advanced and powerful version of the Stable Diffusion model. This upgrade means higher quality images and more details, but also more computational power.

QRCode Monster XL

First, you need to get the latest model on Hugging Face: ControlNet SDXL QR Code Monster.

You can then choose your UI of preference to run this model as any other ControlNet model, such as automatic1111 or ComfyUI. By following the workflow at ComfyUI ControlNet Example, you can easily integrate the QR Code Monster ControlNet model with SDXL.

The ControlNet strength and the number of step are the most important parameters for these kind of generations: depending how much visibility you want to give to create the hidden illusion (or the QR code).

I hope it was easy enough for you to follow along. Questions? Just leave a comment below!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.