ComfyUI Node

RL Set ControlNet

Tell the AI Render plugin how hard to hold the pose

By reallusion·Created about a year ago·Updated about a year ago· 12
RL Set ControlNet
    • control_net_path
    • control_net_state
    • control_net_strength
    • control_net_start_percent
    • control_net_end_percent
    control_net_type
    control_net_path
    control_net_statefalse
    control_net_strength0.00
    control_net_start_percent0.00
    control_net_end_percent1.00

    RL Set ControlNet is the settings card for ControlNet guidance in Reallusion's AI Render workflow. It doesn't run a ControlNet - it carries the spec for one: which condition type, which image file, how strong, and during which slice of denoising. The actual conditioning happens downstream in your graph, where an Apply ControlNet node does the real work.

    The nice part, and the reason this node exists, is that the condition image basically falls out of your 3D scene for free. Reallusion's tools already know the geometry, so depth, normal, and pose maps come straight from iClone or Character Creator - no fiddling with preprocessors. The node supports exactly four types, matching what the plugin can generate: normal, depth, canny, and open_pose (the README calls the last one "Pose").

    Inputs and outputs

    • control_net_type - one of the four above. Curious quirk: this is not echoed in the outputs. The plugin tracks which type it generated; your workflow just needs the path, state, and strength.
    • control_net_path - where the condition image lives. Relative to ComfyUI's input folder.
    • control_net_strength - 0 to 1, how hard the condition pulls. The KB's standing advice: around 0.3–0.7 for loose guidance, 0.8–1.2 for strict adherence, and start low if your render is already close to what you want.
    • control_net_start_percent / control_net_end_percent - the slice of denoising the condition applies to. This is the most underrated pair in ControlNet land: holding the condition for the whole sample can fight the sampler's detail phase. Releasing it once composition has formed (say, 0 to 0.6) is the classic trick for structure you want but detail you don't.
    • control_net_state - a boolean on/off switch, so you can keep a configured node in the graph and mute it without deleting it.

    The outputs are control_net_path (resolved to an absolute path), state, strength, start_percent, end_percent. Feed the path into an image loader and then into Apply ControlNet, with the ControlNet model that matches the condition type. Match the model to the type: a canny edge map fed into a depth ControlNet produces garbage, and this node won't stop you.

    One behavior worth crediting the author for: if control_net_strength is above 0 and the image file doesn't exist, the node raises FileNotFoundError instead of silently running unguided. Fail-fast beats a quiet job that ignored your pose.

    Install

    It ships in the same four-node pack as the rest of Reallusion's nodes, with no dependencies:

    cd ComfyUI/custom_nodes
    git clone https://github.com/reallusion/ComfyUI-Reallusion
    

    Restart ComfyUI and the nodes appear under Reallusion; ComfyUI Manager users can search "Reallusion" instead. No requirements.txt, no model downloads - the ControlNet models themselves are still on you, the usual Hugging Face / civitai downloads.

    Common pitfalls

    • Type isn't in the outputs. If you're building a workflow by hand and you forget which type a given node represents, the graph won't tell you. Keep the node labeled.
    • Strength 0 with state off is a valid, harmless config - it's how you leave a condition node in place without using it.
    • Wrong ControlNet model for the type. Depth maps need a depth ControlNet, pose maps need an OpenPose ControlNet, and so on. The node hands you the map; you have to hand the model.
    • Missing file at strength > 0 raises the error above - double-check the file landed in ComfyUI's input directory if the node throws.
    CategoryReallusion

    Inputs (6)

    NameTypeDefaultDescription
    control_net_typeCOMBO4 options: normal, depth, canny, open_pose
    control_net_pathSTRING
    control_net_stateBOOLEANfalse
    control_net_strengthFLOAT0.000–1
    control_net_start_percentFLOAT0.000–1
    control_net_end_percentFLOAT1.000–1

    Outputs (5)

    NameTypeDescription
    control_net_pathSTRING
    control_net_stateBOOLEAN
    control_net_strengthFLOAT
    control_net_start_percentFLOAT
    control_net_end_percentFLOAT