Nodes/JLC Flux2 ControlNet/ JLC Flux2 ControlNet Loader
ComfyUI Node

 JLC Flux2 ControlNet Loader

One loader for every FLUX.2 Fun ControlNet you'll actually run

By Damkohler·Created 2 months ago·Updated 26 days ago· 20
 JLC Flux2 ControlNet Loader
    • controlnet
    controlnet_name

    If you've spent time with FLUX.2, you know the awkward part: ComfyUI core doesn't ship a native ControlNet node for it. The support came from third-party packs, and the Alibaba PAI Fun ControlNet Union checkpoint is what they all load. JLC Flux2 ControlNet Loader is the front door of this pack's toolchain - one node that reads a compact FLUX.2-dev-Fun-Controlnet-Union checkpoint and hands you a reusable ControlNet handle with zero precision guesswork.

    What makes it different

    Two checkpoints exist for this architecture, and this loader treats both as one thing. The original Alibaba PAI dense BF16 checkpoint (FLUX.2-dev-Fun-Controlnet-Union), and the JLC mixed FP8/BF16 derivative (FLUX.2-dev-Fun-Controlnet-Union-2602-JLC-FP8), which slashes the side model's footprint the way fp8 always does - half the bytes, near-invisible quality cost for inference. In most packs you'd get a separate "FP8 loader" and a precision dropdown to trip over. Here the loader inspects the checkpoint's safetensors metadata and tensors at load time and picks the dense path or ComfyUI's native mixed-precision path automatically. No selector, no second node family, no way to get it wrong.

    It's also genuinely native. The backend registers a lightweight JLC_FLUX2_CONTROLNET handle and defers materializing weights until the sampler actually needs them, which keeps everything under ComfyUI's own model-management lifecycle - DynamicVRAM, offloading, cleanup all behave like you expect. No monkey-patching of the FLUX.2 transformer.

    The inputs that matter

    Just one: controlnet_name. The dropdown is pre-filtered - it only lists safetensors in ComfyUI/models/controlnet/ whose header matches the supported Fun ControlNet architecture, so you can't fat-finger a SDXL ControlNet into a FLUX.2 pipeline. Output is a single controlnet socket of the pack's custom JLC_FLUX2_CONTROLNET type, which feeds straight into the Apply, Apply Advanced, or Orchestrator nodes.

    Installing it and getting a checkpoint

    cd ComfyUI/custom_nodes
    git clone https://github.com/Damkohler/JLC-Flux2-ControlNet.git
    

    Restart ComfyUI (or install "JLC Flux2 ControlNet" via Manager). Then get weights - the repo doesn't bundle them:

    Drop the file in ComfyUI/models/controlnet/ and restart. If the file is small and the card says FP8, that's the one to pick on limited VRAM.

    Where people get burned

    The empty dropdown reading "[No compatible FLUX.2 Fun ControlNet checkpoints found]" is the number-one symptom: the checkpoint isn't in models/controlnet, hasn't been picked up since restart, or is a different architecture. The loader validates against the FLUX.2 base at runtime too - if you attach it to a non-FLUX.2 model you'll get a clear error about global modulation or patch size, not silent garbage. And a note on licensing: the dense checkpoint carries the FLUX.2 non-commercial terms, so read the model card before you ship anything commercial on top of it.

    CategoryFlux2 Controlnet

    Inputs (1)

    NameTypeDefaultDescription
    controlnet_nameCOMBOOnly safetensors checkpoints whose header matches the supported FLUX.2 Fun ControlNet architecture are shown. Dense BF16 and supported mixed FP8/BF16 representations are both accepted automatically.

    Outputs (1)

    NameTypeDescription
    controlnetJLC_FLUX2_CONTROLNET