In this chapter, we will introduce how to use Flux Canny Control to generate images with similar edge structures.

This image is generated by AI

/models/diffusion_models/ folder. However, because this model includes the Flux Dev model, it is quite large, about 24GB. But the good thing is that you only need to load one model when loading the model.models/loras/ folder. This model file is only about 1.24GB.models/controlnet/ folder. Also, note that this file can be renamed when downloading, renamed as instantx_flux_canny.safetensors, for easier subsequent use.models/controlnet/ folder.
InstructPixToConditioning node (Figure ①). It is very similar to the Redux workflow. It is also connected to the CLIP-ed FluxGuidance node. Then this node needs to be connected to a Canny node (Figure ②). Then you need to add a Load Image node (Figure ③), and input the image you need to process into it.
If you want, you can also add a Preview Image node (Figure ④) after the Canny node, for previewing the Canny image.
Finally, input the Prompt, click the Generate button, and generate the image.
Here’s a small tip, if you want to generate an image with a more consistent edge structure than the original image, you can try to set the Low Threshold and High Threshold of the Canny node higher. If you only want the general outline, you can adjust these values smaller, so the Canny image will have fewer edges, and the space for AI to play will naturally be more.
Apply ControlNet with VAE node (Figure ①). Then connect it to the Load VAE, Load ControlNet Model (Figure ②), and any Canny node (Figure ③). There is a small detail to note, if you use Canny, it is best to set the strength to 0.7, the effect will be much better.Load ControlNet Model node selects the downloaded Flux Canny Controlnet model.Get Image Size node (Figure ④), and connected it to the SD3LatentImage node (Figure ⑤). This way, the generated image size will be consistent with the input Canny image size.
Load VAE and DualCLIPLoader nodes, and replace them with the Load Checkpoint node. Then select the FP8 version of the Flux model.

| Figure | Description |
|---|---|
| ① | Replace the KSampler node with the Xlabs Sampler node. You can see that this node has an additional controlnet_condition input. |
| ② | I replaced the CLIPTextEncode node with the CLIPTextEncodeFlux node. You don’t need to modify it. I just want to tell you that there are other Flux CLIP nodes. This node can control Clip l and t5xxl separately. |
| ③ | Replace the Apply ControlNet VAE node with the Apply Flux ControlNet node. |
| ④ | Replace the Load ControlNet Model node with the Load Flux ControlNet node. And select the downloaded Flux Canny Controlnet model. |
| ⑤ | I also used the Empty Latent Image node. This is to show that this node can also use the most basic version besides the SD3 version. |

