Nodes/ComfyUI Impact Pack/DenoiseSchedulerDetailerHookProvider
ComfyUI Node Runs on cloud

DenoiseSchedulerDetailerHookProvider

Ramp denoise across a detailer's refine cycles

By ltdrdata·Created 3 years ago·Updated 4 months ago· 3,242
DenoiseSchedulerDetailerHookProvider
    • DETAILER_HOOK
    schedule_for_cycle
    target_denoise0.30

    Detailer nodes have a cycle setting - how many refine passes to run on the same detected region before moving on. Run several cycles at a fixed denoise and you can either under-cook it (barely changes after the first pass) or over-cook it (each cycle keeps regenerating as hard as the first). DenoiseSchedulerDetailerHookProvider fixes that by building a DETAILER_HOOK that changes the denoise as the cycle count progresses, per the README: "During the progress of the cycle, the detailer's denoise is altered up to the target_denoise."

    Think of it as the same idea as DenoiseScheduleHookProvider (its PK_HOOK sibling for Iterative Upscale), but scoped to a single detailer region's repeated cycles instead of an upscale's repeated steps.

    How it works

    Set a target_denoise and the hook shifts denoise toward it across however many cycles the detailer runs on that region. The intent is to let an early cycle do the heavy lifting at a higher denoise and later cycles settle into finer, lower-denoise touch-ups - rather than every cycle hammering the region with the same strength, which tends to either drift the result further each pass or waste cycles once it's already converged.

    The inputs and output

    • schedule_for_cycle - currently a single choice, simple. Selects the interpolation used to move from the detailer's current denoise toward target_denoise across the cycle count; simple is the only option exposed right now.
    • target_denoise (FLOAT, default 0.3, range 0–1, step 0.01) - the denoise value the schedule eases toward by the final cycle. A default in the 0.3 range sits in the same conservative band the pack recommends for detail passes generally, which tells you this hook is built to land on a light finishing touch rather than a heavy regeneration.

    Output is a single DETAILER_HOOK - wire it into a detailer's detailer_hook input. Combine with other hooks (a preview hook, noise injection) via DetailerHookCombine if you need more than one behavior at once, since most detailers only expose a single hook slot.

    How to install it

    Ships with the Impact Pack. ComfyUI Manager: search ComfyUI Impact Pack, install, restart. Manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack comfyui-impact-pack
    cd comfyui-impact-pack
    python -m pip install -r requirements.txt   # ComfyUI's python; python_embeded on portable
    

    then restart. No models needed - pure scheduling logic layered on top of whatever detailer you attach it to.

    Common issues & troubleshooting

    No visible effect. Check two things: the detailer's cycle value is actually greater than 1 (a schedule across one cycle has nothing to ramp between), and the hook is genuinely wired into detailer_hook, not left dangling.

    Later cycles look flat or barely different. If target_denoise is set well below your starting denoise, later cycles will intentionally make smaller and smaller changes - that's the schedule working as intended, not a bug. Raise the target if you want later cycles to still contribute meaningfully.

    Region drifts more than expected across cycles. The inverse case - target_denoise set too high relative to where the region already is can keep regenerating aggressively instead of settling. Lower the target, or drop cycle back down if multiple passes aren't buying you anything on this particular detector.

    Not sure you need this over a fixed denoise. Most single-cycle detail passes don't need it at all - this hook only matters once you're running multiple cycles on the same region and want the denoise to taper rather than stay flat across all of them.

    CategoryImpactPack/Detailer

    Inputs (2)

    NameTypeDefaultDescription
    schedule_for_cycleCOMBO1 options: simple
    target_denoiseFLOAT0.300–1

    Outputs (1)

    NameTypeDescription
    DETAILER_HOOKDETAILER_HOOK