Nodes/ComfyUI-IcyHider/Icy ControlNetApplyAdvanced
ComfyUI Node

Icy ControlNetApplyAdvanced

The 'Icy' ControlNet Apply — same node, hidden preview, zero surprises

By icekiub-ai·Created 9 months ago·Updated 9 months ago· 31
Icy ControlNetApplyAdvanced
  • positive
  • negative
  • control_net
  • image
  • vae
  • positive
  • negative
strength1.00
start_percent0.000
end_percent1.000

First, the thing you're probably confused about: this node is just ComfyUI's ControlNetApplyAdvanced wearing a different name. IcyHider (by acekiube / IceKiub, released late 2025) works by cloning every core node at startup - same Python class, same inputs, same outputs - and giving the clone an Icy prefix plus a spot in the "IcyHider Comfy Core" category. A bit of frontend JavaScript then hides those nodes' image previews until you hover or select them. There's no ControlNet model to download and no extra dependency; if you installed the pack, you already have this node.

One honest caveat before you get excited: this specific node outputs CONDITIONING, not an image, so it has no canvas preview for IcyHider to hide. If you don't care about preview privacy, the core ControlNetApplyAdvanced is functionally identical. The wrapper is the point only for nodes that actually show pictures.

What ControlNetApplyAdvanced actually does

ControlNet is how you steer where things go - pose, edges, depth, layout - instead of just describing them in words. It does this by injecting the structure of a conditioning image into the model's layers as it denoises. This node applies a loaded ControlNet to both your positive and negative conditionings at once, and that "Advanced" in the name is the payoff: it gives you separate start_percent and end_percent controls plus an optional VAE, which the plain ControlNetApply doesn't offer.

The inputs that matter:

  • control_net - from a ControlNetLoader; the actual model.
  • image - your condition: a canny edge map, a depth map, a pose skeleton, whatever your preprocessor produced. Garbage in, garbage out here.
  • positive / negative - the two conditionings from your CLIPTextEncode nodes.
  • strength - how hard the condition pulls. The slider goes up to 10, but realistically you live between 0.3 and 1.5. Start around 1.0 and drop it if the model is fighting your prompt.
  • start_percent / end_percent - fractions of the denoising run, 0.0 to 1.0, not raw step numbers. The community's standing advice for structure-heavy work: hold the condition while composition forms, then let it go once detail starts, so a common recipe is 0.0 → 0.6 or 0.7.

It outputs positive and negative conditionings that feed straight into the sampler.

Where people get burned

The biggest beginner trap is treating start_percent/end_percent as absolute steps. They're normalized. 0.3 doesn't mean "step 3," it means "after 30% of the sample." Second trap: on modern architectures the old ControlNet files don't carry over - an SD 1.5 model won't load on Flux, and the unions of 2026 cover fewer condition types than the SDXL-era menu did. Pick a ControlNet trained for the exact checkpoint family you're running.

Install and the IcyHider side

Via ComfyUI Manager, search "IcyHider" and install, then restart. Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/icekiub-ai/ComfyUI-IcyHider.git

Restart ComfyUI after cloning - the pack's pyproject.toml declares zero Python dependencies, so there's no pip install and no model file to fetch. The Icy nodes appear under IcyHider Comfy Core in the node menu. If you don't see them, you haven't restarted since installing. If a preview-hiding behavior ever looks broken, remember the wrapper is pure frontend: the underlying math here is exactly the core node's, so debug the ControlNet the same way you would with ControlNetApplyAdvanced.

CategoryIcyHider Comfy Core

Inputs (8)

NameTypeDefaultDescription
positiveCONDITIONING
negativeCONDITIONING
control_netCONTROL_NET
imageIMAGE
strengthFLOAT1.000–10
start_percentFLOAT0.0000–1
end_percentFLOAT1.0000–1
vaeoptVAE

Outputs (2)

NameTypeDescription
positiveCONDITIONING
negativeCONDITIONING