Interactive Node Preview Built Right In: Try clicking through Script · Refs · Timeline · Media · Write · Swap · ⚙ RUN in the live node below! You can toggle shot locks, solo a shot, switch join modes (`motion_context` vs `hand_tie`), test the Swap modes, or open `⚙ RUN` and watch the node's status bar & retake forecast react in real time.

Hand Tie Clips — Multi-Shot Studio for MiniMax H3

Multi-hop MiniMax H3 video from one ComfyUI node. Author shot cards, manage reference stills and voices on a visual rail, lock or solo-retake individual hops from a lossless cache, run guided character/head swaps, and upscale to 2 MP.

✓ Zero Pip Dependencies ✓ Built-In Motion-Context & Hand-Tie ✓ Classic LiteGraph & Nodes 2.0 ✓ Lossless Hop Cache & Solo Retake
Six consecutive frames across a join
Six consecutive frames crossing the join between Hop 1 and Hop 2 — no cut, flash, or identity jump.
Hand-Tie 10x8s example

Interactive Node Preview — Click the Tabs & ⚙ RUN

H3 Ref2VA Chain (HandTieClips)
✨ Interactive Demo — Click any tab, lock button, or ⚙ RUN
model clip vae audio_vae refine_model upsample_dit audio_model
images audio info contact_sheet
768×1344 (9:16) · 8s ×4 (29.2s) · 8 steps euler/simple · pin: motion_context · cache on ● Ready
SCRIPT 10 shots · 71.8s master
NEXT QUEUE re-renders none · 10 cached
JSON

            
REFERENCE REGISTER · STABLE @TAGS & PER-REF PIXEL BUDGETS
<Pic 1>
<Pic 2>
<Pic 3>
✓ NEXT QUEUE: 0 of 4 hops will re-render — all 4 hops served from lossless FFV1 + safetensors cache.
START IMAGE & MASTER AUDIO LOCK
REFERENCE CLIPS (1–3) & VOICES (1–3)
WRITE — LOCAL AI PLAN DRAFTING ASSISTANT (WIP) ● nInfer · Qwen3.8-27B — Ready
Drafts cards + reference descriptions. Always review generated beats before rendering.
GUIDED VIDEO SWAP — STANDALONE ONE-HOP IDENTITY / HEAD SWAP Auto-loads Character Swap + Head Swap LoRAs
RUN 48 dials · 9 groups (obsolete v1 band-aids removed)
output & sampling
join & pin (cleaned — 5 essential controls)
refine · realism boost · upsample · soundtrack (audio refine)
Simple Mode (15s · Realism Boost + 2 MP Upsample) example

Two Ways to Join Shots (pin_mech)

Mode Status & Best Use Case How It Works & Honest Tradeoffs
motion_context
(Default — Built-In)
Stable
Continuous relays (~5–6 hops on Turbo, ~7–8 hops on non-Turbo with Refine) & multi-scene restart cuts
Built directly into Hand Tie Clips (no external custom node needed; credit to NikoDemon80's ComfyUI-H3-Motion-Context for the latent-slice + end-aligned audio timeline concept). Relays the previous hop's sampler AV latent into the next hop with in-latent head inpainting and distribution locking — and resets cleanly on restart cuts.
hand_tie
(Single-Take Previs)
Public Experimental
Continuous one-location walking vlogs & tracking shots
Renders one low-res single-take bridge previs first and ties each full-res hop's opening and closing 0.9 s to those clean windows so hops never copy texture from each other.

Previs Compiler Model (Recommended in ComfyUI/models/text_encoders/):
Drop any qwen3vl_4b*.safetensors or qwen3vl_8b*.safetensors into models/text_encoders/ — e.g. qwen3vl_4b_fp8_scaled.safetensors (Comfy-Org), qwen3vl_4b (silveroxides/K2Q), or qwen3vl_8b_int8_convrot.safetensors (Comfy-Org). It loads at the start of the run to compile your beats into continuous bridge moments and unloads from VRAM before H3 starts.

Caveat: Because every hop must meet its bridge window, beats that ask for a sudden location change, hard camera angle jump, or fast prop action across a join can cause the previs to cut or morph. It works very well when the camera and subject flow continuously in one setting, and may occasionally need a seed re-roll if a beat moves too far.

Built-In Finishing (⚙ RUN Page)

1. Realism Boost + Audio Refine (Built for Simple Mode / 1–2 Hop Hero Clips)

2. Refine Pass (hop_refine: full) — Honest Limitations

3. Guided Tiled Upsampler (upsample: on) & Standalone Node

Enlarges the finished film to 1.5–2.0 MP in latent chunks and runs a 2-step tiled redraw. With the h3upscale x2 LoRA, the redraw is guided by your actual canvas frames at half the output size so it restores real detail instead of inventing texture. Toggling upsample on a cached chain skips hop generation and runs only the upscaler.

Required Files for Upsampling:
  1. Latent Upscaler (`ComfyUI/models/latent_upscale_models/`):
    Download minimax_h3_latent_upscaler_3d_bf16.safetensors from LBH-123-AI/Minimax_h3_latent_Upscaler (or h3_upscaler_lms_v0.1.safetensors).
  2. Guided Upscale LoRA (`ComfyUI/models/loras/`):
    Download h3upscale_v2_x2.safetensors from sandpies/ComfyUI-H3-Video-Upsampler (Hugging Face).
  3. upsample_dit wire: When using h3upscale_v2_x2, wire a plain, unpatched H3 UNETLoader into upsample_dit (the LoRA was trained on the bare DiT without turbo/realism LoRAs underneath).

Want to upscale any existing video outside a chain? Use the included H3 Video Upsampler (finished clip) node (workflows/HandTieClips_Upsample_Video.json) or the standalone repo: dntpi/ComfyUI-H3-Video-Upsampler.

Quick Start (60 Seconds)

cd ComfyUI/custom_nodes
git clone https://github.com/dntpi/ComfyUI-Hand-Tie-Clips.git
  1. Restart ComfyUI and hard-refresh your browser (Ctrl+Shift+R). Zero pip dependencies.
  2. Drag workflows/HandTieClips_Starter.json onto ComfyUI and point the loaders at your MiniMax H3 ref2va checkpoint, text encoder, and VAEs.
  3. In REFS, drop your character photo onto Row 1 and give it a tag like @maya.
  4. In SCRIPT, write one beat per shot card and press Queue.

Prompting Cheat-Sheet (The 5 Golden Rules)

MiniMax H3 samples at CFG 1.0 with no negative prompt — every word you write is added to the scene.

❌ Don't Write ✅ Write Instead
"She stops talking." (Names talking → keeps her talking) "She smiles with her lips closed. The low hum of the refrigerator."
"No background music, silent room." (Silence = model invents speech) Always name a specific room tone: "Soft rain on the windowpane, distant traffic hum."
Re-describing hair, face, and clothes on Shots 2, 3, 4 Describe only the new action on Shots 2+ — the reference rail and join pin carry her look.
Ending Shot 2 mid-sentence when Shot 3 should be quiet Finish the action/sentence at the end of Shot 2 so Shot 3 inherits a settled state.
Leaving the final shot's tail on ongoing Set the last shot's tail to settle or hold so the film lands cleanly.

📖 Full authoring guide: PROMPTING.md · Release history: CHANGELOG.md · Credits & Notices: THIRD_PARTY_NOTICES.md