matlod commited on
Commit
7d8c909
·
verified ·
1 Parent(s): de9fbde

Motion adapter pilot r16: weights, model card, ComfyUI graph

Browse files
LICENSE ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2026 MatlowAI (Dylan Matlow)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
README.md ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ base_model: MiniMaxAI/MiniMax-H3
4
+ tags:
5
+ - minimax-h3
6
+ - lora
7
+ - video
8
+ - comfyui
9
+ - motion
10
+ library_name: diffusers
11
+ pipeline_tag: image-to-video
12
+ ---
13
+
14
+ # MiniMax-H3 motion adapter (pilot, r16)
15
+
16
+ A small LoRA for MiniMax-H3 that makes the de-rope pass in
17
+ [ComfyUI-MAINodes](https://github.com/matlowai/ComfyUI-MAINodes) behave
18
+ better on fast motion. It is a pilot: rank 16, trained for a few hours on
19
+ 38 clips we generated ourselves. It works, it is measurable, and it has
20
+ clear rough edges listed below. We are publishing it as an intermediate
21
+ release while we try something considerably more ambitious that may or may
22
+ not work (an all-in-one adapter that internalises the whole two-pass
23
+ pipeline). If that lands it will replace this file; if it does not, this
24
+ one still does a useful job.
25
+
26
+ ## What it does
27
+
28
+ MAINodes' Motion Lab regenerates the fast span of a clip on a stretched
29
+ clock (the "de-rope") and recovers it back to real time. That pass has a
30
+ known bad habit: on very fast motion the base model over-produces, and the
31
+ result alternates between advance and snap frame to frame. This adapter
32
+ was trained on that exact task (frames held out of the middle of a burst,
33
+ the model asked to fill them back in), and it teaches the base model to
34
+ spend the extra clock on smoothness instead of invention.
35
+
36
+ Measured on four clips the adapter never saw during training (a fight,
37
+ an anime sword ring, a character swap, a dialogue close-up), against the
38
+ same graph without the adapter and against a same-seed noise floor:
39
+
40
+ - advance/snap alternation improved on 4 of 4 clips (4.6 to 6.1 times the
41
+ floor)
42
+ - frame-to-frame over-production dropped from 1.76 to 2.93 down to 1.09
43
+ to 1.23 on all four
44
+ - blind operator picks, adapter vs no adapter, same seed: 7 for, 0
45
+ against, 1 no preference
46
+ - it transfers to the Ref2VA checkpoint (same wins on both), so one file
47
+ serves both fl2va and ref2va graphs
48
+
49
+ Where it is not great (also measured):
50
+
51
+ - it costs about 1 dB of anchor fidelity on native keyframes and it
52
+ over-corrects calm chains (it smooths things that did not need
53
+ smoothing); keep it off on calm content
54
+ - on the Ref2VA checkpoint it mutes colour. A prismatic creature came out
55
+ as a plain calico; mean saturation dropped 46 to 38 at denoise 0.40 and
56
+ 54 to 40 at 0.70. If your reference has strong colour, either lower the
57
+ strength or accept the trade
58
+ - it is anime-heavy in effect: on very fast anime it wins by a mile at
59
+ every setting; on live-action character work it needs the lower inject
60
+ values below
61
+
62
+ ## Settings that work
63
+
64
+ - Strength 1.0. Strength and inject turned out to be the same dial, and
65
+ 1.0 wins on alternation in every paired cell we ran; 0.75 was
66
+ in-distribution tuning on one fight plate and does not hold elsewhere.
67
+ - Inject is the dial. Starting points: 0.45 for character or dialogue
68
+ where the base model over-produces hard; 0.30 where identity or props
69
+ are the deliverable and the base is only mildly inflated; on very fast
70
+ anime it does not matter (every setting wins).
71
+ - Keep the tail guide on. Turning it off costs identity about 3 times the
72
+ floor across seeds and checkpoints, adapter or not.
73
+ - Apply it to the de-rope pass only, not to the first (text-to-video)
74
+ pass.
75
+
76
+ ## Use in ComfyUI
77
+
78
+ Put the file in `models/loras/minimax_h3/`. Load it with a stock
79
+ `LoraLoaderModelOnly` at strength 1.0 on the model that feeds the de-rope
80
+ pass. A ready graph is in ComfyUI-MAINodes:
81
+ `examples/motion_pipeline_adapter_api.json` (API format, loads through the
82
+ API and through the frontend's API import). The stock
83
+ `LoraLoaderModelOnly` is fine for this file; the key mismatch that bites
84
+ turbo LoRAs does not apply here.
85
+
86
+ ## Training facts
87
+
88
+ - Base: MiniMax-H3 (fl2va), rank 16, alpha 16, 375 steps, lr 1e-4,
89
+ adamw8bit, bf16, about 4.6 h on one GPU
90
+ - Data: 38 holdout-infilling items cut from 15 clips we generated with
91
+ MiniMax-H3 (physics scenes, fights, chains, a dialogue plate); no real
92
+ footage, no third-party footage
93
+ - Task: hold out the frames inside a motion burst, keep the rest as clean
94
+ context (kept_label 1.0), predict the held tokens
95
+ - Trainer: our ai-toolkit extension for H3 (span-aware packing verified
96
+ bit-exact against ComfyUI)
97
+
98
+ ## Files
99
+
100
+ - `minimax_h3_motion_adapter_pilot_r16.safetensors` (63 MB)
101
+ - `motion_pipeline_adapter_api.json` (the same graph as in the node pack)
102
+
103
+ Examples, before/after clips and the measurement write-up live on the
104
+ [ComfyUI-MAINodes page](https://matlowai.github.io/ComfyUI-MAINodes/).
minimax_h3_motion_adapter_pilot_r16.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2b31e67d0399eab21ae45fadddcefe82293b1c6cf677b87f8f19bcc745d02fe4
3
+ size 63103768
motion_pipeline_adapter_api.json ADDED
@@ -0,0 +1,543 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "119": {
3
+ "class_type": "VAELoader",
4
+ "inputs": {
5
+ "vae_name": "minimax_h3/minimax_h3_video_vae_fp16.safetensors"
6
+ },
7
+ "_meta": {
8
+ "title": "VAELoader"
9
+ }
10
+ },
11
+ "120": {
12
+ "class_type": "VAELoader",
13
+ "inputs": {
14
+ "vae_name": "minimax_h3/minimax_h3_audio_vae_fp32.safetensors"
15
+ },
16
+ "_meta": {
17
+ "title": "VAELoader"
18
+ }
19
+ },
20
+ "121": {
21
+ "class_type": "VAEDecodeAudio",
22
+ "inputs": {
23
+ "samples": [
24
+ "125",
25
+ 0
26
+ ],
27
+ "vae": [
28
+ "120",
29
+ 0
30
+ ]
31
+ },
32
+ "_meta": {
33
+ "title": "VAEDecodeAudio"
34
+ }
35
+ },
36
+ "122": {
37
+ "class_type": "VAEDecode",
38
+ "inputs": {
39
+ "samples": [
40
+ "125",
41
+ 0
42
+ ],
43
+ "vae": [
44
+ "119",
45
+ 0
46
+ ]
47
+ },
48
+ "_meta": {
49
+ "title": "VAEDecode"
50
+ }
51
+ },
52
+ "125": {
53
+ "class_type": "SamplerCustomAdvanced",
54
+ "inputs": {
55
+ "noise": [
56
+ "129",
57
+ 0
58
+ ],
59
+ "guider": [
60
+ "126",
61
+ 0
62
+ ],
63
+ "sampler": [
64
+ "135",
65
+ 0
66
+ ],
67
+ "sigmas": [
68
+ "124",
69
+ 0
70
+ ],
71
+ "latent_image": [
72
+ "131",
73
+ 1
74
+ ]
75
+ },
76
+ "_meta": {
77
+ "title": "SamplerCustomAdvanced"
78
+ }
79
+ },
80
+ "126": {
81
+ "class_type": "BasicGuider",
82
+ "inputs": {
83
+ "model": [
84
+ "127",
85
+ 0
86
+ ],
87
+ "conditioning": [
88
+ "131",
89
+ 0
90
+ ]
91
+ },
92
+ "_meta": {
93
+ "title": "BasicGuider"
94
+ }
95
+ },
96
+ "129": {
97
+ "class_type": "RandomNoise",
98
+ "inputs": {
99
+ "noise_seed": 20260813
100
+ },
101
+ "_meta": {
102
+ "title": "RandomNoise"
103
+ }
104
+ },
105
+ "128": {
106
+ "class_type": "CLIPLoader",
107
+ "inputs": {
108
+ "clip_name": "minimax_h3/qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors",
109
+ "type": "minimax",
110
+ "device": "default"
111
+ },
112
+ "_meta": {
113
+ "title": "CLIPLoader"
114
+ }
115
+ },
116
+ "127": {
117
+ "class_type": "UNETLoader",
118
+ "inputs": {
119
+ "unet_name": "minimax_h3/minimax_h3_fl2va_pruned_int8_convrot.safetensors",
120
+ "weight_dtype": "default"
121
+ },
122
+ "_meta": {
123
+ "title": "UNETLoader"
124
+ }
125
+ },
126
+ "130": {
127
+ "class_type": "CreateVideo",
128
+ "inputs": {
129
+ "fps": 24,
130
+ "bit_depth": 8,
131
+ "images": [
132
+ "122",
133
+ 0
134
+ ],
135
+ "audio": [
136
+ "121",
137
+ 0
138
+ ]
139
+ },
140
+ "_meta": {
141
+ "title": "CreateVideo"
142
+ }
143
+ },
144
+ "92": {
145
+ "class_type": "SaveVideo",
146
+ "inputs": {
147
+ "filename_prefix": "video/mainodes_adapter_baseline",
148
+ "format": "auto",
149
+ "codec": "auto",
150
+ "video": [
151
+ "130",
152
+ 0
153
+ ]
154
+ },
155
+ "_meta": {
156
+ "title": "SaveVideo"
157
+ }
158
+ },
159
+ "131": {
160
+ "class_type": "MiniMaxH3ImageToVideo",
161
+ "inputs": {
162
+ "prompt": "integrated_multimodal_description: [Shot 1] 2D anime, cel-shaded, cinematic, a medium-wide shot frames a young battle-mage swordswoman alone on a stone platform before a great vermilion torii gate at a cliff edge above a rolling sea of dawn clouds, warm gold light breaking across the platform, small white seabirds far below. She has raven-black hair in two long twin-tails tied with white ribbons that hang to her waist. She wears a sleeveless crimson and white shrine-battle outfit with a bare back and shoulders, a short pleated white skirt with a long open crimson half-skirt trailing behind her knees, white ribbon tassels at both hips, fingerless long black gloves, and lace-topped white thigh-high stockings with red cord ties; she carries a curved crimson-lacquered blade trailing two long white streamers from its hilt. She snaps her free hand up and four translucent spectral swords of pale golden light materialize around her, orbiting her body in a fast level ring at waist height, each trailing thin light. As the ring spins she launches sideways into a one-handed cartwheel directly through the orbit, her legs sweeping overhead in turn, twin-tails, ribbons, half-skirt and streamers whipping through the gaps between the circling spectral blades, and lands back on both feet without breaking the ring's spin. She then drops low and whirls her real blade in a rising diagonal cut; the four spectral swords break from their orbit, streak outward away from her in four directions, and shatter against the stone floor of the platform into brief showers of golden petals of light that fade where they fall. She finishes upright with the blade raised before the torii gate, streamers and twin-tails swinging once and settling. The camera holds a Static Shot at chest height for the whole clip; the platform and gate stay fixed while only the swordswoman, her blade, the spectral swords, her hair, ribbons, skirts and streamers, and the golden petals move. Every frame is crisp and sharp as if shot at a very high shutter speed, her limbs, each ribbon, streamer and skirt pleat held in fine clean detail through every instant of the motion, deep depth of field front to back.\n\noverall_soundscape: A bright ringing shimmer as the four spectral swords materialize and orbit with a low circling hum, the sharp rustle and snap of ribbons, pleats and streamers through the cartwheel, both soles landing on stone with a clean double tap, a hard whoosh with the rising cut, four quick glassy bursts as the spectral blades shatter into petals, and a soft high wind over the sea of clouds with distant seabird cries.\n\nnon_diegetic_music: N/A",
163
+ "width": [
164
+ "115",
165
+ 0
166
+ ],
167
+ "height": [
168
+ "115",
169
+ 1
170
+ ],
171
+ "length": [
172
+ "132",
173
+ 1
174
+ ],
175
+ "clip": [
176
+ "128",
177
+ 0
178
+ ],
179
+ "vae": [
180
+ "119",
181
+ 0
182
+ ]
183
+ },
184
+ "_meta": {
185
+ "title": "MiniMaxH3ImageToVideo"
186
+ }
187
+ },
188
+ "124": {
189
+ "class_type": "BasicScheduler",
190
+ "inputs": {
191
+ "scheduler": "simple",
192
+ "steps": 25,
193
+ "denoise": 1,
194
+ "model": [
195
+ "127",
196
+ 0
197
+ ]
198
+ },
199
+ "_meta": {
200
+ "title": "BasicScheduler"
201
+ }
202
+ },
203
+ "133": {
204
+ "class_type": "PrimitiveFloat",
205
+ "inputs": {
206
+ "value": 5.0
207
+ },
208
+ "_meta": {
209
+ "title": "Float (duration)"
210
+ }
211
+ },
212
+ "132": {
213
+ "class_type": "ComfyMathExpression",
214
+ "inputs": {
215
+ "expression": "max(5, round(a * 24)) + (5 - (max(5, round(a * 24)) % 17)) % 17",
216
+ "values.a": [
217
+ "133",
218
+ 0
219
+ ]
220
+ },
221
+ "_meta": {
222
+ "title": "ComfyMathExpression"
223
+ }
224
+ },
225
+ "115": {
226
+ "class_type": "ResolutionSelector",
227
+ "inputs": {
228
+ "aspect_ratio": "1:1 (Square)",
229
+ "megapixels": 1.0,
230
+ "multiple": 32
231
+ },
232
+ "_meta": {
233
+ "title": "ResolutionSelector"
234
+ }
235
+ },
236
+ "135": {
237
+ "class_type": "KSamplerSelect",
238
+ "inputs": {
239
+ "sampler_name": "res_multistep"
240
+ },
241
+ "_meta": {
242
+ "title": "KSamplerSelect"
243
+ }
244
+ },
245
+ "200": {
246
+ "class_type": "H3JerkOracle",
247
+ "inputs": {
248
+ "samples": [
249
+ "125",
250
+ 0
251
+ ],
252
+ "length": [
253
+ "132",
254
+ 1
255
+ ],
256
+ "q": 0.75,
257
+ "d_max": 4,
258
+ "ramp": true
259
+ }
260
+ },
261
+ "201": {
262
+ "class_type": "H3TimeSmear",
263
+ "inputs": {
264
+ "images": [
265
+ "122",
266
+ 0
267
+ ],
268
+ "dilation": 4,
269
+ "hold_map": [
270
+ "200",
271
+ 0
272
+ ]
273
+ }
274
+ },
275
+ "202": {
276
+ "class_type": "VAEEncode",
277
+ "inputs": {
278
+ "pixels": [
279
+ "201",
280
+ 0
281
+ ],
282
+ "vae": [
283
+ "119",
284
+ 0
285
+ ]
286
+ }
287
+ },
288
+ "203": {
289
+ "class_type": "H3V2VInit",
290
+ "inputs": {
291
+ "samples": [
292
+ "202",
293
+ 0
294
+ ]
295
+ }
296
+ },
297
+ "204": {
298
+ "class_type": "H3InjectSchedule",
299
+ "inputs": {
300
+ "model": [
301
+ "600",
302
+ 0
303
+ ],
304
+ "scheduler": "simple",
305
+ "total_steps": 25,
306
+ "inject": 0.45
307
+ }
308
+ },
309
+ "205": {
310
+ "class_type": "RandomNoise",
311
+ "inputs": {
312
+ "noise_seed": 20260899
313
+ }
314
+ },
315
+ "206": {
316
+ "class_type": "MiniMaxH3ImageToVideo",
317
+ "inputs": {
318
+ "prompt": "integrated_multimodal_description: [Shot 1] 2D anime, cel-shaded, cinematic, a medium-wide shot frames a young battle-mage swordswoman alone on a stone platform before a great vermilion torii gate at a cliff edge above a rolling sea of dawn clouds, warm gold light breaking across the platform, small white seabirds far below. She has raven-black hair in two long twin-tails tied with white ribbons that hang to her waist. She wears a sleeveless crimson and white shrine-battle outfit with a bare back and shoulders, a short pleated white skirt with a long open crimson half-skirt trailing behind her knees, white ribbon tassels at both hips, fingerless long black gloves, and lace-topped white thigh-high stockings with red cord ties; she carries a curved crimson-lacquered blade trailing two long white streamers from its hilt. She snaps her free hand up and four translucent spectral swords of pale golden light materialize around her, orbiting her body in a fast level ring at waist height, each trailing thin light. As the ring spins she launches sideways into a one-handed cartwheel directly through the orbit, her legs sweeping overhead in turn, twin-tails, ribbons, half-skirt and streamers whipping through the gaps between the circling spectral blades, and lands back on both feet without breaking the ring's spin. She then drops low and whirls her real blade in a rising diagonal cut; the four spectral swords break from their orbit, streak outward away from her in four directions, and shatter against the stone floor of the platform into brief showers of golden petals of light that fade where they fall. She finishes upright with the blade raised before the torii gate, streamers and twin-tails swinging once and settling. The camera holds a Static Shot at chest height for the whole clip; the platform and gate stay fixed while only the swordswoman, her blade, the spectral swords, her hair, ribbons, skirts and streamers, and the golden petals move. Every frame is crisp and sharp as if shot at a very high shutter speed, her limbs, each ribbon, streamer and skirt pleat held in fine clean detail through every instant of the motion, deep depth of field front to back.\n\noverall_soundscape: A bright ringing shimmer as the four spectral swords materialize and orbit with a low circling hum, the sharp rustle and snap of ribbons, pleats and streamers through the cartwheel, both soles landing on stone with a clean double tap, a hard whoosh with the rising cut, four quick glassy bursts as the spectral blades shatter into petals, and a soft high wind over the sea of clouds with distant seabird cries.\n\nnon_diegetic_music: N/A",
319
+ "width": [
320
+ "115",
321
+ 0
322
+ ],
323
+ "height": [
324
+ "115",
325
+ 1
326
+ ],
327
+ "length": [
328
+ "201",
329
+ 2
330
+ ],
331
+ "clip": [
332
+ "128",
333
+ 0
334
+ ],
335
+ "vae": [
336
+ "119",
337
+ 0
338
+ ]
339
+ }
340
+ },
341
+ "207": {
342
+ "class_type": "BasicGuider",
343
+ "inputs": {
344
+ "model": [
345
+ "600",
346
+ 0
347
+ ],
348
+ "conditioning": [
349
+ "206",
350
+ 0
351
+ ]
352
+ }
353
+ },
354
+ "208": {
355
+ "class_type": "SamplerCustomAdvanced",
356
+ "inputs": {
357
+ "noise": [
358
+ "205",
359
+ 0
360
+ ],
361
+ "guider": [
362
+ "207",
363
+ 0
364
+ ],
365
+ "sampler": [
366
+ "135",
367
+ 0
368
+ ],
369
+ "sigmas": [
370
+ "204",
371
+ 0
372
+ ],
373
+ "latent_image": [
374
+ "203",
375
+ 0
376
+ ]
377
+ }
378
+ },
379
+ "209": {
380
+ "class_type": "VAEDecode",
381
+ "inputs": {
382
+ "samples": [
383
+ "208",
384
+ 0
385
+ ],
386
+ "vae": [
387
+ "119",
388
+ 0
389
+ ]
390
+ }
391
+ },
392
+ "210": {
393
+ "class_type": "VAEDecodeAudio",
394
+ "inputs": {
395
+ "samples": [
396
+ "208",
397
+ 0
398
+ ],
399
+ "vae": [
400
+ "120",
401
+ 0
402
+ ]
403
+ }
404
+ },
405
+ "211": {
406
+ "class_type": "CreateVideo",
407
+ "inputs": {
408
+ "images": [
409
+ "209",
410
+ 0
411
+ ],
412
+ "audio": [
413
+ "210",
414
+ 0
415
+ ],
416
+ "fps": 24,
417
+ "bit_depth": 8
418
+ }
419
+ },
420
+ "212": {
421
+ "class_type": "SaveVideo",
422
+ "inputs": {
423
+ "video": [
424
+ "211",
425
+ 0
426
+ ],
427
+ "filename_prefix": "video/mainodes_adapter_dilated",
428
+ "format": "auto",
429
+ "codec": "auto"
430
+ }
431
+ },
432
+ "213": {
433
+ "class_type": "H3ExactRecover",
434
+ "inputs": {
435
+ "images": [
436
+ "209",
437
+ 0
438
+ ],
439
+ "hold_map": [
440
+ "201",
441
+ 1
442
+ ]
443
+ }
444
+ },
445
+ "214": {
446
+ "class_type": "CreateVideo",
447
+ "inputs": {
448
+ "images": [
449
+ "213",
450
+ 0
451
+ ],
452
+ "fps": 24,
453
+ "bit_depth": 8,
454
+ "audio": [
455
+ "219",
456
+ 0
457
+ ]
458
+ }
459
+ },
460
+ "215": {
461
+ "class_type": "SaveVideo",
462
+ "inputs": {
463
+ "video": [
464
+ "214",
465
+ 0
466
+ ],
467
+ "filename_prefix": "video/mainodes_adapter_recovered",
468
+ "format": "auto",
469
+ "codec": "auto"
470
+ }
471
+ },
472
+ "216": {
473
+ "class_type": "H3JerkHeatmap",
474
+ "inputs": {
475
+ "images": [
476
+ "122",
477
+ 0
478
+ ],
479
+ "samples": [
480
+ "125",
481
+ 0
482
+ ],
483
+ "alpha": 0.55,
484
+ "strip_height": 96
485
+ }
486
+ },
487
+ "217": {
488
+ "class_type": "CreateVideo",
489
+ "inputs": {
490
+ "images": [
491
+ "216",
492
+ 0
493
+ ],
494
+ "fps": 24,
495
+ "bit_depth": 8
496
+ }
497
+ },
498
+ "218": {
499
+ "class_type": "SaveVideo",
500
+ "inputs": {
501
+ "video": [
502
+ "217",
503
+ 0
504
+ ],
505
+ "filename_prefix": "video/mainodes_adapter_oraclemap",
506
+ "format": "auto",
507
+ "codec": "auto"
508
+ }
509
+ },
510
+ "219": {
511
+ "class_type": "H3AudioRecover",
512
+ "inputs": {
513
+ "audio": [
514
+ "210",
515
+ 0
516
+ ],
517
+ "hold_map": [
518
+ "201",
519
+ 1
520
+ ],
521
+ "fps": 24,
522
+ "reference": [
523
+ "121",
524
+ 0
525
+ ],
526
+ "reference_mix": 0.0
527
+ }
528
+ },
529
+ "600": {
530
+ "class_type": "LoraLoaderModelOnly",
531
+ "inputs": {
532
+ "model": [
533
+ "127",
534
+ 0
535
+ ],
536
+ "lora_name": "minimax_h3/minimax_h3_motion_adapter_pilot_r16.safetensors",
537
+ "strength_model": 1.0
538
+ },
539
+ "_meta": {
540
+ "title": "Motion adapter (de-rope pass only)"
541
+ }
542
+ }
543
+ }