IAMCCS_LongVid-v1 · Positioned Guides
The Settings Panel That Turns One H3 Clip Into a Sequence
- cine_linx
MiniMax H3 makes 4-to-15-second clips. That's the model. Everything past fifteen seconds is engineering, and this node is where the engineering gets configured.
It's not a generator. It has no prompt field, no media inputs, and it doesn't sample anything. It's a settings surface: you tune it, it publishes one cine_linx output, and the Shotboard-connected H3 branches downstream read that bundle instead of each carrying their own private copy of your choices. The settings node is the technical control room; the Shotboard is the source of truth for the sequence; cine_linx is the wire between them.
This particular one is the narrow surface. The full H3 settings node has dozens more fields; LongVid-v1 publishes only the ones the long-video positioned-guides branch consumes, and hard-pins the rest off - no upscale pass, no RIFE, no face detailer, no secondary LoRA, no ControlNet. Fewer ways to be confused about which panel is lying to you.
The groups that actually matter
Output size and seed. width/height default to 640×384 - low on purpose, because this branch generates small and finishes big. seed plus seed_policy decides repeatability: fixed_per_generation holds one seed for the whole generation, fixed_per_chunk walks it per chunk, and seed_stride sets the step between them.
The sampling core. steps (16), sampler_name (44 options, euler default), scheduler (simple), denoise, and - H3-specific - shift_video (12) and shift_audio (3) as separate values. That's because H3 generates picture and stereo audio as one thing; audio shift is a real dial here, not an afterthought. acceleration is the other big one, 20 choices spanning native, Sage, SLA, Sol, spectrum and low-VRAM profiles. Start at native and only move when you have a reason.
Turbo and PDD. turbo_mode (off, early_8_10, ckpt500_6_8) with turbo_lora_name and turbo_strength; then pdd_lora_name and pdd_strength. Read those two tooltips before you touch them: they want a native Kijai *_Acc-8Step*_comfy LoRA matched to your loaded trunk (FL2VA vs Ref2VA), and the author's instruction on strength is blunt - keep it at 1.0, because a shape-changing PDD head bank needs full trained strength and the node fails clearly rather than quietly substituting a value.
Memory. text_encoder_device (gpu_auto, cpu_direct, auto, cpu_safe_12gb), h3_clipproj_profile (4B v3.1 default, 8B, or off), h3_clipproj_load_mode (dynamic vs streaming), performance_profile (14 presets by card class), and the h3_exact_* group - h3_exact_profile is an editable hardware baseline (xx60 124f/5.17s, xx70 209f/8.71s, xx80 294f/12.25s, xx90 362f/15.08s), h3_exact_chunk_rows (2048 is the conservative 8–12 GB value), h3_exact_precision_mode (default Preserve native, so INT8/W4A8 checkpoints stay in their released precision), plus QKV streaming and attention memory. That last one is worth quoting to yourself: lowering it does extra exact work - a safety fallback, not an approximate attention cache. vram_clean_before_decode frees memory before the VAE runs.
The long-video part. motion_context_window_frames defaults to 362 and the tooltip says why: 362 restores the proven contract, and smaller values are explicit memory trade-offs - you are buying VRAM with continuity. flf_continuity_mode, flf_continuity_tail_frames (22/39/56) and flf_continuity_audio control how first/last-frame continuity is carried. longvid_guide_window_policy picks the windowing strategy: standard_positioned is the ordinary path with positioned guides and no hidden latent-prefix carry, adaptive_latent_tail enables the narrow high-resolution windows with a latent tail, and legacy_auto exists to keep older saves behaving the way they used to.
Then the deep end: longvid_terminal_endpoint_mode offers ten terminal strategies, from hard_image (the legacy exact final-guide behaviour) through various pianosequenza_* latent-closure modes to pianosequenza_hd, a self-contained two-stage 0.5×→1.0× progressive solve. longvid_pianosequenza_2stage_enabled is authoritative one-stage generation when off - off means off, and leftover saved values can't override it. longvid_pianosequenza_stage_profile picks the two- or three-stage shape. And if you enable multi-stage, upscale_link_to_native + upscale_link_factor (default 640×384 → 1280×768) make the low→high pair part of the sample itself rather than a post-pass you bolt on after.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Manager → IAMCCS Nodes does the same thing. Restart, hard-refresh, one copy only. Then expectations: this node does nothing alone. It needs a working H3 setup (model, VAE, text encoder, audio VAE) and the Shotboard branch it feeds, and some acceleration options depend on Sage Attention or the Sol-Attn node being installed - picking one that isn't surfaces as a load-time failure, not a fallback. The pack ships no weights, and H3's own licence excludes the US, EU, UK and South Korea, outputs included.
How to actually use it
Change one group at a time. Set performance_profile and h3_exact_profile for your card, get a short single segment rendering, and only then start moving motion_context_window_frames, flf_continuity_* and the terminal mode. The defaults aren't arbitrary - they're the author's tested contract, and the long-video failures you read about in every community thread (drift, seams, clips that decelerate into their final frame) live in exactly those fields.
Inputs (39)
| Name | Type | Default | Description |
|---|---|---|---|
| width | INT | 640256–5760 | — |
| height | INT | 384256–5760 | — |
| seed | INT | 420–18446744073709550000 | — |
| seed_policy | COMBO | fixed_per_generation | Use the seed's control-after-generate widget to randomize the next generation. |
| seed_stride | INT | 10–18446744073709550000 | — |
| acceleration | COMBO | native | 20 options: low_vram_auto, native, h3_sage, h3_sla, sol_low_vram, sol_adaptive_safe, +14 |
| steps | INT | 161–100 | — |
| sampler_name | COMBO | euler | 44 options: res_multistep, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +38 |
| scheduler | COMBO | simple | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 |
| denoise | FLOAT | 1.000–1 | — |
| shift_video | FLOAT | 12.000.01–100 | — |
| shift_audio | FLOAT | 3.000.01–100 | — |
| turbo_mode | COMBO | off | 3 options: off, early_8_10, ckpt500_6_8 |
| turbo_lora_name | COMBO | 1 options: | |
| turbo_strength | FLOAT | 1.000–4 | — |
| pdd_lora_name | COMBO | Select a native Kijai *_Acc-8Step*_comfy LoRA from models/loras and match FL2VA/Ref2VA to the loaded trunk. Legacy aptech pdd_acc files require their companion loader and are rejected here. | |
| pdd_strength | FLOAT | 1.000–2 | Keep 1.0. Native shape-changing PDD head banks require full trained strength; any different visible Queue-truth value fails clearly instead of being silently replaced. |
| text_encoder_device | COMBO | gpu_auto | 4 options: gpu_auto, cpu_direct, auto, cpu_safe_12gb |
| h3_sla_sparsity | FLOAT | 0.850–0.95 | SLA attention only: fraction of key blocks skipped. LightX2V Turbo SLA training recipe uses 0.85. |
| h3_sla_dense_last_steps | INT | 00–20 | SLA attention only: optional final dense steps for an explicit quality comparison. |
| h3_clipproj_profile | COMBO | 4b_v3.1 | 4B v3.1 is the default lower-memory conditioning encoder. 8B is larger and heavier. Off uses the connected workflow fallback CLIP. This choice does not replace the MiniMax H3 denoiser model. |
| h3_clipproj_load_mode | COMBO | dynamic | Dynamic uses ComfyUI-managed offload. Streaming lowers the peak further at a speed cost. |
| performance_profile | COMBO | low_vram_balanced | 14 options: rtx_xx60_safe, rtx_xx70_balanced, rtx_xx80_quality, rtx_xx90_max, low_vram_draft, low_vram_balanced, +8 |
| h3_exact_profile | COMBO | rtx_xx60_8_12gb_124 | Editable hardware-class baseline: xx60 124f/5.17s, xx70 209f/8.71s, xx80 294f/12.25s, xx90 362f/15.08s. It never overrides the visible window, memory, ClipProj or sampling boxes. |
| h3_exact_chunk_rows | INT | 2048256–65536 | 2048 is the conservative 8–12 GB value. Larger values can be faster but use more activation memory. |
| h3_exact_precision_mode | COMBO | Preserve native | Preserve native keeps INT8/W4A8 checkpoints in their released precision without an implicit conversion. |
| h3_exact_qkv_streaming | COMBO | Auto | Auto preserves the current dense attention backend and adds bounded Q/K/V carriers only where compatible. |
| h3_exact_attention_memory | COMBO | Standard | Lower VRAM performs extra exact attention work. It is a safety fallback, not an approximate cache. |
| vram_clean_before_decode | BOOLEAN | true | — |
| motion_context_window_frames | INT | 36256–362 | Maximum native H3 sample window including the carried AV tail. 362 restores the proven R37/R41/R42 contract. Smaller values are explicit memory trade-offs. |
| flf_continuity_mode | COMBO | stable_keyframes | 2 options: stable_keyframes, longvid_latent_tail_experimental |
| flf_continuity_tail_frames | COMBO | 22 | 3 options: 22, 39, 56 |
| flf_continuity_audio | BOOLEAN | true | — |
| longvid_guide_window_policy | COMBO | standard_positioned | LEGACY AUTO preserves existing saves: the old latent-tail continuity selection enables Adaptive windows. STANDARD POSITIONED uses ordinary H3 technical windows with positioned guides and no hidden latent-prefix carry (362f is the normal macro recipe). ADAPTIVE LATENT TAIL enables the narrow high-resolution 209/124-style windows with the configured latent tail. |
| longvid_terminal_endpoint_mode | COMBO | hard_image | HARD IMAGE = legacy exact final AddGuide. LATENT FREE CLOSURE = soft sampled-latent closure. PIANOSEQUENZA LINEAR = upstream-parity direct latent tail with static linear temporal release. PIANOSEQUENZA DRIFT = upstream-parity frozen prefix plus sigma-matched dynamic release. PIANOSEQUENZA NATIVE = upstream-parity native latent-tail keyframe on a fresh video target. PIANOSEQUENZA PHASE = upstream-parity phase-aligned direct latent step guides. PIANOSEQUENZA FROZEN = upstream-parity exact frozen tail as target prefix. PIANOSEQUENZA 2 STAGE = legacy serialized alias for the separate Multi-Stage Spatial toggle. PIANOSEQUENZA HD = self-contained two-stage 0.5x→1.0x progressive solve: every continuation chunk carries the previous native editorial tail, applies sigma-matched DRIFT on the protected prefix, solves LOW, performs the learned H3 latent lift, then completes the SAME sigma schedule at HIGH. The HD engine owns its two-stage contract; the separate Multi-Stage Spatial toggle is ignored while HD is selected. Existing Pianosequenza modes remain unchanged; IAMCCS AudioCon remains authoritative. |
| longvid_pianosequenza_2stage_enabled | BOOLEAN | false | OFF is authoritative one-stage generation. ON enables the IAMCCS progressive spatial path and reveals one Stage Profile dropdown for 2-stage/3-stage and safe/full behaviour. Legacy endpoint value pianosequenza_2stage is migrated to DRIFT but cannot override an explicit OFF toggle. |
| longvid_pianosequenza_stage_profile | COMBO | 2_stage_full | 2 STAGE FULL = LOW H3 → learned lift → HIGH H3 refine. 2 STAGE SAFE DELIVERY = LOW H3 through the full sigma schedule → learned lift to HIGH, no high-resolution H3 forward. 3 STAGE SAFE MID = LOW H3 → MID H3 → learned lift to HIGH, no final HIGH H3 forward. 3 STAGE FULL = LOW H3 → MID H3 → HIGH H3. |
| upscale_link_to_native | BOOLEAN | false | Pianosequenza multi-stage only. ON makes the selected legal pair authoritative: the first stage starts at LOW and the same LongVid sample finishes at HIGH. Default pair is 640x384 → 1280x768. It does not enable post-delivery upscale. |
| upscale_link_factor | COMBO | 640x384 -> 1280x768 | Linked LOW → HIGH generation pair. 640x384 → 1280x768 is the default. Legacy 2x/3x/4x saved values are accepted and normalized to the default pair. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| cine_linx | IAMCCS_SUPERNODE_LINX | — |