Nodes/LCM_Inpaint_Outpaint_Comfy/LCMLoader_controlnet
ComfyUI Node

LCMLoader_controlnet

An LCM pipeline with ControlNet bolted in

By taabata·Created 3 years ago·Updated 2 years ago· 259
LCMLoader_controlnet
    • class
    device
    model_path
    tomesd_value0.6
    mode

    LCMLoader_controlnet is the ControlNet variant of LCMLoader - same job, one extra piece. It builds the LCM_Dreamshaper_v7 diffusers pipeline, then loads a ControlNet model into it, so you can steer the fast 4-step generation with edges, depth, pose, or whatever condition you have. The result is the pipe input for LCMGenerate_img2img_controlnet (and the inpaintv2/v3 nodes).

    Why a separate loader

    ControlNet works by feeding a conditioning image through a trainable copy of the UNet encoder whose outputs get injected into the frozen model. In this pack, that means the ControlNet has to be loaded with the pipeline - you can't attach it later like a LoRA. So the loader takes one extra input: mode, a dropdown built from the folders in ComfyUI/models/controlnet. Pick the ControlNet you want, and ControlNetModel.from_pretrained loads it as part of the pipe.

    Everything else is LCMLoader with a ControlNet in it:

    • device - GPU/CPU. GPU enables xformers and sequential CPU offload. Note this loader also flips on TF32 matmul (torch.backends.cuda.matmul.allow_tf32 = True), which is the author's idea of a free speed boost on Ampere+ cards.
    • model_path - blank by default, resolves to ComfyUI/models/diffusers/LCM_Dreamshaper_v7.
    • tomesd_value - token merging, default 0.6.
    • mode - the ControlNet folder dropdown. This is the one that bites people: it lists folders, so your ControlNet files need to live in their own subfolder under models/controlnet, not loose in the directory.

    Setup

    Same pack install as every node here - ComfyUI Manager (search LCM_Inpaint-Outpaint_Comfy) or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/taabata/LCM_Inpaint-Outpaint_Comfy
    cd LCM_Inpaint-Outpaint_Comfy
    pip install -r requirements.txt
    

    Then the two model drops: LCM_Dreamshaper_v7 diffusers in ComfyUI/models/diffusers/, and your ControlNet in a subfolder under ComfyUI/models/controlnet/ (the README points you there too).

    The gotcha

    Two things to know before you wire it up. First, this is a diffusers-style ControlNet, not necessarily the .safetensors you've already got for native ComfyUI nodes - if the loader errors out on the mode folder, check that what you downloaded is a diffusers-format ControlNet directory with its own config.json. Second, ControlNet on a 4-step LCM model is a balancing act: the condition needs enough weight to actually steer, but the low-step pipeline has little room to reconcile conflicts with the prompt. Start control_weight around 0.6–0.8 rather than 1.0, and keep CFG low (the distillation playbook says 1–2). Crank everything to maximum and you get the classic oversaturated, detail-clobbered mess.

    This is 2023 code from the pack's author (taabata, posting as Sensitive-Paper6812 on Reddit). It works, it's fast, and it's honestly a neat historical artifact of the early LCM wave - but if ControlNet + real-time iteration is your actual goal, the native ComfyUI path with an LCM-sampler checkpoint is the more maintained route today.

    CategoryLCM_Nodes/nodes

    Inputs (4)

    NameTypeDefaultDescription
    deviceCOMBO2 options: GPU, CPU
    model_pathSTRING
    tomesd_valueFLOAT0.60–1
    modeCOMBO0 options:

    Outputs (1)

    NameTypeDescription
    classclass