Motion Ref Setting
Motion Ref Setting, explained
- prev_settings
- MOTION_REF_SETTINGS
The name is a little misleading. Motion Ref Setting doesn't steal anything on its own - it builds a MOTION_REF_SETTINGS object that tells Apply Ref Motion (the pack's one workhorse node) how greedy to be when it transfers a reference video's motion onto your AnimateDiff generation. It's the "just try it" preset of logtd's experimental MotionThief pack, and it's the first node you'll place in the example workflow.
This pack is a hack, in the affectionate sense: the author says it's for experiments only, it's SD 1.5/AnimateDiff territory, and it's been quiet since 2024. What you get is a free, train-free way to make generated videos move like a reference clip. This node is your three-knob remote for how much of that motion you let through.
How it works
The mechanism, from the source: each run of this node creates one RefSetting and appends it to the settings list. That setting enables the normal bank - the reference video's temporal-attention hidden states - and switches on the first N of the 12 output temporal attention layers, where N is your strength. When Apply Ref Motion runs, those layers store the reference's hidden states in a WRITE pass, then your generation's attention reads from them during sampling. It's the video-axis cousin of ControlNet Reference: steer with a reference's attention features instead of training anything.
strength (int, 0–12, default 5) is how many output layers participate. More layers, stronger pull, more risk of the reference's actual content bleeding through. Zero turns the whole thing off.
fidelity (float, 0–1, default 0.5) blends between the reference-steered pass and a re-run of your generation's own attention. Reading the wrapper code, higher fidelity keeps more of your own motion and dials the reference's pull back; lower lets the reference dominate. 0.5 is a sane starting point - go up if the reference is ghosting its subject onto yours, go down if the motion isn't transferring.
enabled (bool, default true) - when off, the node just passes prev_settings through untouched.
There's one optional input worth knowing: prev_settings. Chain multiple settings nodes and each appends its own setting, so you can stack, say, a moderate layer here and a custom one elsewhere. All of them apply.
The output
One thing comes out: MOTION_REF_SETTINGS, which wires into Apply Ref Motion's ref_settings input. That's the entire job - a config object. If you see nothing happening downstream, check this wire first.
Installing it
ComfyUI Manager: search "ComfyUI-MotionThiefExperiment" and install, then restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/logtd/ComfyUI-MotionThiefExperiment
Restart and you're done - no requirements.txt, no pip install, no model files in the pack. The workflow is the real install: it needs ComfyUI-AnimateDiff-Evolved, VideoHelperSuite, an AnimateDiff motion module (v3_sd15_mm.ckpt in models/motion_modules), and an SD 1.5 checkpoint.
Gotchas
- strength = 0 selects no layers, so no transfer happens - it won't error, it just won't do anything. Check it if your motion looks static.
- A disabled node in a chain silently drops itself.
enabled = falsereturnsprev_settingsunchanged, which is handy for A/B tests but confusing when you've stacked three settings nodes. - Fidelity is subtle. You're not setting an opacity mask; you're mixing the reference's temporal features with your own motion. Crank it to 1 and you may as well be driving the generation with the reference clip, content and all.
- This is an SD 1.5/AnimateDiff-only trick. There are no temporal blocks in a plain checkpoint or an SDXL model, so nothing to configure will matter there.
Start at defaults, watch one 16-frame clip, then nudge strength up until the reference's rhythm shows up without dragging its look along. That's the whole game this node is for.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| enabled | BOOLEAN | true | — |
| strength | INT | 50–12 | — |
| fidelity | FLOAT | 0.500–1 | — |
| prev_settingsopt | MOTION_REF_SETTINGS | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MOTION_REF_SETTINGS | MOTION_REF_SETTINGS | — |