๐งชInject PIA into AnimateDiff Model ๐ญ๐ ๐ โก
Turning a motion module into an image animator
- motion_model
- ad_settings
- MOTION_MODEL
The pack's own menu tags this one ๐งช experimental, and that's honest labeling, not decoration. PIA - Personalized Image Animator - is a separate small model that bolts onto an AnimateDiff motion module so it animates a specific image you give it instead of whatever the checkpoint would have generated from noise. This node is the "bolt on" step: it takes a motion model you've already loaded and merges the PIA weights into it, handing back a motion model that's now PIA-capable.
It's a real, published technique (the PIA paper is from open-mmlab, December 2023), but a genuinely obscure corner even inside an already-niche pack - mentions of it in the wild are close to nonexistent these days. If you're not specifically chasing image-conditioned motion, you can skip this node entirely and never miss it.
How it fits together
This isn't the node that takes your reference image - it's the step before that. You load a motion model with a normal Gen2 loader, feed it here along with the PIA checkpoint, and get back a MOTION_MODEL_ADE that's ready for the actual image input, which happens on a separate downstream node (Apply AnimateDiff-PIA Model, covered elsewhere in this pack's node list) that takes the image, a VAE, and a PIA_INPUT - built by either PIA Input [Multival] or PIA Input [Paper Presets], both also covered separately.
Think of the three-node chain as: load model โ inject PIA (this node) โ apply with your actual image and motion-strength input. Skip this step and the downstream Apply node has no PIA behavior to work with, just a plain motion model.
The inputs and outputs that matter
Required: model_name, a dropdown for the PIA checkpoint file - the pack's README points at pia.ckpt from Leoxing's HuggingFace repo, and motion_model (MOTION_MODEL_ADE), the already-loaded motion model this gets injected into. Optional: ad_settings (AD_SETTINGS), the same advanced motion-model settings bundle used elsewhere in the Gen2 family, if you're already tuning those.
Output is a single MOTION_MODEL_ADE - same type as the input, just now carrying the PIA weights, ready for the Apply node.
How to install it
ComfyUI Manager: search AnimateDiff Evolved, confirm the author is Kosinkadink, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved
then restart. You'll need a standard motion module in ComfyUI/models/animatediff_models regardless (mm_sd_v15_v2, v3_sd15_mm, and friends, per the README's Model Setup section). PIA specifically needs pia.ckpt on top of that - the README doesn't spell out a dedicated folder for it beyond the general motion-model locations, so the safest bet is dropping it alongside your other motion modules and seeing if the dropdown here picks it up.
Common issues & troubleshooting
The whole thing looks broken, not just "off." The README is explicit that PIA needs the autoselect or sqrt_linear (AnimateDiff) beta_schedule specifically, set on your sampling settings elsewhere in the graph. The wrong schedule is the single most likely reason a PIA pipeline falls apart end to end rather than just looking a bit off.
You built this node but nothing downstream seems to use the image you're providing. That's expected - this node doesn't take an image at all. Confirm you're also wiring the Apply node afterward with your actual image and vae inputs; this node only prepares the motion model to accept them.
You can't find much written up about this online. That tracks - PIA support inside AnimateDiff-Evolved barely registers in community discussion even relative to the rest of this pack's less mainstream corners. You're working mostly from the README and direct experimentation here, not a stack of existing troubleshooting threads. If image-conditioned animation is what you actually need and this feels like more setup than it's worth, it's worth checking whether a newer video model's native image-to-video mode gets you there with less ceremony.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | 0 options: | |
| motion_model | MOTION_MODEL_ADE | โ | |
| ad_settingsopt | AD_SETTINGS | โ |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MOTION_MODEL | MOTION_MODEL_ADE | โ |