AD Per Block+ (SD1.5) ππ π
One control per SD1.5 UNet stage, instead of 21
- down_0
- down_1
- down_2
- down_3
- mid
- up_0
- up_1
- up_2
- up_3
- PER_BLOCK
Displayed as AD Per Block+ (SD1.5), this sits between the two ends of this pack's per-block tuning ladder. The plain AD Per Block node gives you three knobs - down, mid, up - for the whole UNet at once. AD Per Block++ goes all the way to 21, one per individual sub-block. This one lands in the middle: nine knobs, one per structural stage, without splitting each stage into its individual sub-blocks.
Why the middle level exists
SD 1.5's UNet has four down (encoder) stages, one mid (bottleneck) block, and four up (decoder) stages, and each of the down/up stages is itself made of two or three sub-blocks - that finer split is what ADE_PerBlock_SD15_LowLevel exposes as down_0__0/down_0__1 and so on. Most of the time you don't need that level of resolution. If a motion artifact traces to "somewhere deep in the decoder" rather than one specific sub-block within it, targeting up_2 and up_3 directly here is faster and more legible than deciding between two or three sub-block sockets each. This node is that stage-level granularity: nine addressable slots instead of three or 21.
Each slot takes an AD_BLOCK value, built elsewhere with ADE_ADBlockCombo (one effect, one scale) or ADE_ADBlockIndiv (effect plus split scale_0/scale_1) - the same builder nodes the low-level and high-level per-block nodes use, since AD_BLOCK is a shared type across the whole family.
Inputs and output
All nine optional and independent, type AD_BLOCK each:
down_0,down_1,down_2,down_3- one per encoder stage.mid- the bottleneck.up_0,up_1,up_2,up_3- one per decoder stage.
Leave any unwired and that stage keeps its default, unmodified motion behavior. Output is a single PER_BLOCK, which feeds an Apply node's per_block input, or a keyframe's per_block_replace if you want the configuration to change partway through the clip rather than staying static.
How to install it
ComfyUI Manager: search AnimateDiff Evolved, confirm the author is Kosinkadink, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved
No model download for this node itself - a configuration layer on top of a motion module you've already loaded.
Common issues & troubleshooting
Not sure whether this or the low-level node is the right pick. Start here. If a stage-level adjustment (say, dampening up_2 and up_3) gets you the result you're after, you're done - there's no need to descend to the 21-socket version. Only drop to ADE_PerBlock_SD15_LowLevel if you need to separate the sub-blocks within one stage specifically.
No documented mapping from "my problem" to "which stage to touch." Fair warning, and true of this whole per-block system - neither the README nor the wider community documents a clean symptom-to-stage table. Down stages tend to affect broader, lower-resolution structure; up stages tend to affect finer detail; mid sits in between. Treat that as a starting hypothesis, change one stage at a time, and compare renders - there's no shortcut to testing here.
Wired stages and generation looks unchanged. Confirm the PER_BLOCK output is actually reaching your Apply node's per_block input or a keyframe's per_block_replace slot - a disconnected configuration, however many stages you've filled in, does nothing.
Even nine knobs feels like more than you need. It might be. Try the plain AD Per Block node (down/mid/up, three total) first - for most "motion is too strong/weak in a general area" adjustments, three coarse knobs are enough, and per-block tuning at any level is a deliberate escalation, not a default.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| down_0opt | AD_BLOCK | β | |
| down_1opt | AD_BLOCK | β | |
| down_2opt | AD_BLOCK | β | |
| down_3opt | AD_BLOCK | β | |
| midopt | AD_BLOCK | β | |
| up_0opt | AD_BLOCK | β | |
| up_1opt | AD_BLOCK | β | |
| up_2opt | AD_BLOCK | β | |
| up_3opt | AD_BLOCK | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| PER_BLOCK | PER_BLOCK | β |