Nodes/ComfyUI-YogurtNodes/ControlNet Selector (Yogurt Nodes)
ComfyUI Node

ControlNet Selector (Yogurt Nodes)

Pick a ControlNet by name without a second loader in sight

By yogurt7771·Created 2 years ago·Updated 4 days ago· 1
ControlNet Selector (Yogurt Nodes)
    • controlnet
    • name
    • stem
    • strength
    • start_percent
    • end_percent
    • absolute_path
    controlnetNone
    strength1.0
    start_percent0.0
    end_percent1.0

    The name is a small lie, and it's worth knowing before you wire it in: this node doesn't load a ControlNet. It picks one out of your models/controlnet folder and hands you its name, path, and the strength/timing settings you dialed in, all as plain outputs you feed into whatever actually applies the ControlNet downstream. It's a selector, not a loader - think of it as a single, reusable "which ControlNet + how strong" control surface for workflows that juggle several of them.

    Why bother? ControlNet is how you tell a diffusion model where things go instead of just what they are - edges, depth, pose, all steered by a reference image while the prompt decides the content (the KB's ControlNet panel calls it "the biggest control unlock since SD itself"). The catch in ComfyUI is that model files and their settings end up scattered across loader nodes. If you're building a workflow where you swap ControlNets a lot, or drive strength from a scheduler or a batch node, this selector lets you keep the pick and the dials in one place and route them as data.

    How it works

    On the back end it's almost embarrassingly simple: the dropdown is populated from ComfyUI's own ControlNet file list (folder_paths), and the node resolves the file's absolute path for you. Nothing gets loaded into VRAM, no tensors move - which is exactly why it's fast and why it plays nice inside loops.

    Inputs that matter

    • controlnet - dropdown of every .safetensors in models/controlnet, default None.
    • strength - how hard the condition bites, default 1.0.
    • start_percent / end_percent - the sampling window the ControlNet is active for, both 0–1.

    Outputs

    • controlnet - a filename string, not a loaded model. This is the trap: it won't plug into a ControlNet Apply's model port. Feed it to something that takes a ControlNet by name, or use absolute_path/stem with a node that loads from path.
    • name / stem - full filename and filename without extension.
    • strength, start_percent, end_percent - your dialed-in values, echoed through so you can wire them straight into the apply node and keep one source of truth.
    • absolute_path - resolved full path to the file (empty when set to None).

    Install

    It ships in ComfyUI-YogurtNodes, so install the pack once and you get all 152 nodes:

    cd ComfyUI/custom_nodes
    git clone https://github.com/yogurt7771/ComfyUI-YogurtNodes.git
    cd ComfyUI-YogurtNodes
    pip install -r requirements.txt
    

    Or search "YogurtNodes" in ComfyUI Manager and restart. You'll find this node under the "Yogurt Nodes" → Models category.

    Common issues

    • Dropdown is empty - you have no ControlNets in ComfyUI/models/controlnet. Drop the files there and restart; the list is read at node load.
    • Nothing happens when you run - expected, because the selector doesn't apply anything. Check what's consuming its outputs; the node is just plumbing.
    • Strength percent confusion - start_percent/end_percent are fractions (0–1), not steps. If you want ControlNet on for the first half of sampling, that's 0 to 0.5.

    For a beginner's first workflow, honestly, the built-in ControlNetLoader is fine. Reach for this one when you start automating or juggling multiple ControlNets and want the pick + settings in one spot.

    CategoryYogurtNodes/Models

    Inputs (4)

    NameTypeDefaultDescription
    controlnetCOMBONoneControlNet to use.
    strengthFLOAT1.0
    start_percentFLOAT0.00–1
    end_percentFLOAT1.00–1

    Outputs (7)

    NameTypeDescription
    controlnet
    nameSTRING
    stemSTRING
    strengthFLOAT
    start_percentFLOAT
    end_percentFLOAT
    absolute_pathSTRING