Image 1 — Flux.2 ControlNet
Image 2 — Flux.2 ControlNet
▲ 19 r/comfyui

Flux.2 ControlNet

This workflow demonstrates new ComfyUI custom nodes I developed to implement ControlNet for FLUX.2-dev.

Workflow: JSON | Drag-and-drop PNG

JLC Flux2 ControlNet provides, to the best of my knowledge, the first complete, validated ComfyUI implementation of Alibaba PAI's FLUX.2-dev-Fun-Controlnet-Union-2602.

This implementation is for the FLUX.2-dev ControlNet path built around that Union model. It is not for FLUX.2 Klein or the lightweight Klein-style variants; I am currently working on a separate strategy to extend this functionality to those models.

This loads and runs Alibaba PAI's FLUX.2 ControlNet model, not reference images. Reference images are not ControlNet. There are workflows that feed pose maps, depth maps, edges, or other ControlNet-style hint images into FLUX.2's native reference-image system. Those images can certainly influence composition and structure, and they can often produce a usable approximation, but this is still reference-image conditioning, which is a completely different conditioning mechanism.

The two JLC nodes that enable that path are the FLUX.2 ControlNet Loader and the ControlNet Orchestrator. This is not simply a repackaging of existing ControlNet nodes. The contribution here is making this capability available as a complete ComfyUI implementation of Alibaba PAI's actual FLUX.2 ControlNet model. The Orchestrator provides practical multi-control composition where a finished implementation was previously missing.

The Orchestrator also leverages the non-recursive composition method that I introduced in a previous post, which lets several control types share a single loaded Union model instead of building a conventional chain of ControlNet applications.

The example shown here uses three controls generated from the same source image:

  • DWPose
  • Depth Anything
  • Color

Some of the other nodes shown are from my JLC ComfyUI Nodes package and are there mainly for convenience with loading, resizing, preprocessing, LoRAs, and general workflow ergonomics. You can replace those with your preferred ComfyUI nodes.

All of the JLC nodes can be installed through the ComfyUI Custom Node Manager, and the repositories contain the documentation and explanation of the implementation.

I hope a few of you find them useful, and I'd be very interested to see what people build with them!a

u/jessidollPix — 7 days ago

# ControlNet for FLUX.2

This workflow demonstrates the new ComfyUI custom nodes I developed to implement ControlNet for FLUX.2-dev.

Workflow: JSON | Drag-and-drop PNG

JLC Flux2 ControlNet provides, to the best of my knowledge, the first complete, validated ComfyUI implementation of Alibaba PAI's FLUX.2-dev-Fun-Controlnet-Union-2602.

This implementation is for the FLUX.2-dev ControlNet path built around that Union model. It is not for FLUX.2 Klein or the lightweight Klein-style variants many people currently use; I am currently working on a separate strategy to extend this functionality to those models.

It is also worth making an important distinction: reference images are not ControlNet. There are workflows that feed pose maps, depth maps, edges, or other ControlNet-style hint images into FLUX.2's native reference-image system. Those images can certainly influence composition and structure, and they can often produce a usable approximation, but this is still reference-image conditioning, which is a completely different conditioning mechanism. It does not load a ControlNet model, does not execute a ControlNet branch, and should not be confused with one.

This workflow actually loads and runs Alibaba PAI's FLUX.2 ControlNet model.

The two JLC nodes that enable that path are the FLUX.2 ControlNet Loader and the ControlNet Orchestrator.

The Orchestrator also introduces a non-recursive composition method that lets several control types share a single loaded Union model instead of building a conventional chain of ControlNet applications.

The example shown here uses three controls generated from the same source image:

  • DWPose
  • Depth Anything
  • Color

That is really the point of this workflow: there are very few special pieces required to add actual ControlNet capability to FLUX.2-dev.

Some of the other nodes shown are from my JLC ComfyUI Nodes package and are there mainly for convenience—loading, resizing, preprocessing, LoRAs, and general workflow ergonomics. You can replace those with your preferred ComfyUI nodes.

This is not simply a repackaging of existing ControlNet nodes. The contribution here is making this capability available as a complete ComfyUI implementation of Alibaba PAI's actual FLUX.2 ControlNet model. The Orchestrator also provides practical multi-control composition where a finished implementation was previously missing.

All of the JLC nodes can be installed through the ComfyUI Custom Node Manager, and the repositories contain the documentation and explanation of the implementation.

I hope you find them useful, and I'd be very interested to see what people build with them!

u/jessidollPix — 10 days ago
▲ 61 r/comfyui+1 crossposts

I released JLC Flux2 ControlNet v1.0.0 for ComfyUI — non-recursive multi-ControlNet, reference images, caching, and experimental in/out-painting

After considerably more work than I originally expected, I have released JLC Flux2 ControlNet v1.0.0 for ComfyUI.

This project grew directly out of my earlier work on non-recursive ControlNet composition for Flux.1. When the FLUX.2-dev Fun ControlNet Union model became available, I wanted to see whether the same general design principles could be carried forward without replacing ComfyUI’s native FLUX.2 model, sampler, or model-management system.

The result is now a complete ComfyUI-native FLUX.2 ControlNet toolchain.

The central idea remains the same:

Instead of treating multiple ControlNets as a recursive chain,

A(B(C(x)))

the Orchestrator evaluates them independently and combines their residuals:

A(x) + B(x) + C(x)

Each branch has its own control image, strength, and start/end range, while all branches share one loaded ControlNet model.

Release 1.0.0 includes

  • Single-ControlNet Apply and Apply Advanced nodes
  • Flat non-recursive orchestration of up to four ControlNet branches
  • Independent strength and timestep ranges for every branch
  • Reference Image Orchestrator with up to ten reference images
  • ControlNet hint-latent caching
  • Reference-image latent caching
  • Dynamic slot interfaces
  • DynamicVRAM-compatible loading and offloading
  • Included example workflows
  • Full installation, workflow, node, architecture, and validation documentation

There is also an Experimental In/Out-Paint Adapter and an Experimental Inpaint Context Cache.

The inpaint adapter uses the FLUX.2-dev Fun ControlNet Union mask-aware path:

  • White mask = regenerate/edit
  • Black mask = preserve
  • Image, mask, and sampling canvas must match exactly
  • The first active ControlNet carries the shared inpaint context
  • Additional ControlNets remain ordinary full-frame controls

The new Inpaint Context Cache prepares the packed mask context and masked-source VAE latent before sampling. This removes that work from the first sampling step and makes warmed inpaint workflows dramatically more practical.

The inpaint path is still explicitly experimental. Hard mask boundaries can produce seed-variable edge artifacts, and dense controls such as luminance, depth, or color can compete with the requested edit. In my testing, OpenPose/DWPose works best as the host control, with dense auxiliary controls kept weaker and active for shorter ranges.

Validated configurations include 1024×1536 output, three reduced-size reference images, multiple active ControlNets, and warmed ControlNet, reference-image, and inpaint-context caches.

The package does not include pose, depth, edge, luminance, color, or other preprocessors. Those can come from existing ComfyUI preprocessor packages or from my optional companion JLC ComfyUI Nodes project.

The new package is now available through the ComfyUI Registry as:

JLC Flux2 ControlNet

GitHub, documentation, downloadable workflows, and release:

https://github.com/Damkohler/JLC-Flux2-ControlNet

Companion utility-node package:

https://github.com/Damkohler/jlc-comfyui-nodes

The supported ControlNet model is the FLUX.2-dev Fun ControlNet Union checkpoint. Model weights are not included.

This was a fairly massive development and validation effort, particularly getting multi-ControlNet execution, reference images, DynamicVRAM behavior, and the three cache systems to coexist cleanly.

If anyone tries it, feedback, bug reports, workflow variations, and results on different hardware would be greatly appreciated.

u/jessidollPix — 1 month ago