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
Hand-Tie music video: 12x15s, one take, the song locked

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. Tiled Upsampler (upsample: on) & Standalone Node

Enlarges the finished film to 1.5–2.0 MP in latent chunks and runs the original MMH3 Ultimate Upscale recipe: one tiled re-draw step from sigma 0.75 (upsample_denoise 0.2), 102-frame chunks with 17 shared, 70000-token tiles with 128 px overlap. An optional HTC Upsample Settings node on the upsample_settings socket exposes every one of those numbers. 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. upsample_dit wire (optional): a separate model for the re-draw, e.g. a plain H3 UNETLoader with no LoRAs. No upscale LoRA is needed: upsample_lora is retired and ignored.

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: sandpies/ComfyUI-H3-Video-Upsampler.

Quick Start (60 Seconds)

cd ComfyUI/custom_nodes
git clone https://github.com/sandpies/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