Nodes/ComfyUI EasyUse Anima/Anima Detailer Align Hook
ComfyUI Node

Anima Detailer Align Hook

Stop Impact detailers from producing broken-size crops

By n0va39·Created 3 months ago·Updated a day ago· 24
Anima Detailer Align Hook
  • detailer_hook
  • detailer_hook
alignment32

Face detailers are the standard ComfyUI finishing move: detect a face, crop it, re-sample at proper resolution, paste it back. Impact Pack's FaceDetailer does this brilliantly and does it at whatever size the detector proposes - and that's where the trouble starts. The detected crop size is rarely a clean multiple, and ANIMA/Spectrum workflows want sampling sizes that are. Anima Detailer Align Hook wraps the problem in an Impact Pack-compatible DETAILER_HOOK that rounds the detailer's crop sampling size up to your chosen multiple. Set it to 32 and walk away.

What it is

It's a hook factory, not a detailer. You feed it nothing but an alignment choice - none, 8, 16, 32, or 64 - and it outputs a detailer_hook you plug into an Impact DetailerForEach-compatible node's detailer_hook input. When the detailer samples a crop, the hook bumps the sampling size upward to the nearest multiple of your choice. none leaves the original Impact Pack size untouched, which is the polite way to keep this node wired but inactive.

There's also an optional detailer_hook input: an existing Impact Pack hook. If you chain one in, it runs before the alignment adjustment, so you can stack hooks without the alignment clobbering another hook's work.

Why 32 is the recommendation

The node's own tooltip recommends 32 for ANIMA/Spectrum safety, and it's not cargo-culted: the pack's AiO detailer stage defaults to alignment 32 for the same reason its resize node defaults to multiple 32. Sampling stages that feed latent work on Anima want 32-divisible dimensions, and a detector that proposes a 513-wide crop is one that will quietly produce garbage or a hard error downstream. Rounding up (not down) matters too - rounding down can drop below the detailer's minimum meaningful size, whereas up keeps the detail intact.

How it fits a workflow

The typical graph: an Impact FaceDetailer (or the AiO Detailer flow) with detailer_hook fed by this node. If you use the AiO Generator's built-in detailer, alignment is already handled in its settings; this node is for when you're wiring Impact detailers directly, which is the case in most hand-built Anima workflows - especially since Anima has no ControlNet and the detailer is often doing heavy lifting on faces and eyes.

You can also build chains: hook A (some other Impact hook) → this node → detailer, and both effects apply because the existing hook runs first.

Install and gotchas

Part of the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/n0va39/ComfyUI-EasyUseAnima
cd ComfyUI-EasyUseAnima && pip install -r requirements.txt

Restart ComfyUI; Manager: "ComfyUI EasyUse Anima". Impact Pack must be installed separately - it's a custom-node dependency, not a pip one, and the DETAILER_HOOK type won't exist without it.

The gotchas are few but worth knowing. Rounding up means slightly larger crops and a touch more sampling per detailer pass - negligible unless you're doing hundreds of detections. And the hook only affects sampling size, not the detection bbox itself, so don't expect it to change which faces get detected. If your detailer errors with a dimension message despite this hook, check that the alignment value is actually reaching it - a hook left unconnected is the usual culprit.

CategoryEasyUse Anima/Detailer

Inputs (2)

NameTypeDefaultDescription
alignmentCOMBO32Crop sampling size alignment. 32 is recommended for ANIMA/Spectrum safety; none keeps the original Impact Pack size.
detailer_hookoptDETAILER_HOOKOptional existing Impact Pack detailer hook. It runs before the alignment adjustment.

Outputs (1)

NameTypeDescription
detailer_hookDETAILER_HOOKImpact Pack compatible DETAILER_HOOK. Connect it to an Impact DetailerForEach-compatible detailer_hook input.