IAMCCS H3 Settings PRO → CineLinX
The node that decides what your MiniMax H3 Shotboard actually renders
- cine_linx
The short version
Configuration panel with a cable. Nothing goes in - no image, no latent, no model - and one thing comes out: cine_linx. It's the single source of truth for MiniMax H3 generation settings in IAMCCS-nodes' Shotboard workflows, so the Shotboard stays a planner and your settings live in one place. If it looks like a cockpit, that's on purpose.
Why it exists at all
MiniMax H3 is the 33B omni-modal model that makes 4–15 second clips at 24fps with native synced stereo audio (sampled in the same pass, not bolted on) and day-one ComfyUI support. What it doesn't do is long video: its native sample window tops out at 362 frames, the 15-second-class ceiling the pack hard-codes. Anything longer is the Shotboard's job: plan a timeline, cut it into legal chunks, carry the AV tail between them.
All of those knobs inside the planner node would be miserable, so they live here instead - hence no inputs, one output. One caveat before you commit a weekend: the H3 Community License excludes the US, EU, UK and South Korea, outputs included.
How it works
On execute, every widget not on an internal omit list gets packed into a named dict under the schema iamccs.minimax_h3.settings_cine_linx, wrapped in a CineLinX stage payload, and returned as cine_linx (type IAMCCS_SUPERNODE_LINX). Two fields are dropped on purpose: duration_seconds and audio_mode. Those are authored Shotboard facts, and a stale settings payload must never flip native H3 audio back into a previously published soundtrack.
The planner reads the dict off the cable, ignores those two, and stamps its plan's settings source as IAMCCS_ShotboardH3Settings - versus r38_defaults when nothing's connected. That log string is proof the cable is live. Missing fields are deliberately not backfilled from the Shotboard's saved snapshot, so a field you never set stays unset.
PRO versus the plain Settings node
Same backend - INPUT_TYPES is a deep copy of the standard node and export just delegates. The separate class exists so the frontend can mount a different panel: a tabbed rail, a Mode Assistant that writes your chosen mode onto the Shotboard, one-click VRAM and accelerator recipes, a Queue Truth readout, and health lines that flag incoherent combos before you queue. Pick PRO for the UI; nothing here is exclusive to it.
The inputs that matter
- task_mode - 18 modes,
auto_from_timelineby default: i2va, fl2va, ref2va, the longvid family, control video, object and face swap. PRO mirrors this plusduration_seconds,frame_rateandaudio_modefrom the Shotboard, so set the mode there and let this follow. - performance_profile - default
low_vram_balanced, ladder fromrtx_xx60_safetortx_xx90_max. Pair it withmotion_context_window_frames(max and default 362 - the trained window including the carried AV tail; smaller is an explicit memory trade-off) andh3_exact_chunk_rows(2048 is the conservative 8–12GB value).h3_exact_profileis only a label preset, 124 frames on a xx60 up to 362 on a xx90, and it never overrides the boxes below it. - steps / sampler_name / scheduler / denoise - 16 steps, euler, simple by default. Alongside sit
shift_video(12) andshift_audio(3): H3 shifts video and audio sigmas separately because the two are sampled jointly. Not decoration. - acceleration - 21 entries: exact attention, low-VRAM fallbacks, PDD's 8-step recipe, FastH3 at 6, SLA at 4, a fused INT8 trunk. Each needs its LoRA or model actually installed.
Install
ComfyUI Manager, search IAMCCS (publisher iamccs), or:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Restart ComfyUI. The pack wants ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8 (CUDA 12.6 or 12.8). No requirements.txt, so no separate pip step - it rides on ComfyUI's own deps and wires up an ffmpeg shim via imageio-ffmpeg at import. Nothing downloads itself either: the H3 trunk and text encoder, a 3D latent upscaler in latent_upscale_models, the Fun Union patch in model_patches, accelerator LoRAs in loras, SAM3 and BiRefNet for face swap are yours to source.
Where people get burned
The health line already tells you the usual one: connect Settings PRO to Cine H3 Input, then Cine H3 Input to the Shotboard. The cable doesn't reach the planner directly.
The rest fail before sampling rather than during it: Fused Fast without T2VA, with a secondary style LoRA, or alongside Turbo (they can't both run); Turbo or PDD enabled with its adapter missing ("H3 turbo: missing adapter" - the PDD picker rejects old aptech files and wants native *_Acc-8Step*_comfy LoRAs); a FL2V LoRA left on a Ref2VA mode; ControlNet enabled without the Fun Union checkpoint or its branch connected; Face Swap without BiRefNet in background_removal. And "VRAM preset is partially overridden" just means you edited one box out of the contract - reapply the recipe.
One annoyance: the README points at docs/MINIMAX_H3_WORKFLOW_REQUIREMENTS.md, which isn't in the 1.5.4 checkout. The tooltips are this node's real docs.
Inputs (160)
| Name | Type | Default | Description |
|---|---|---|---|
| duration_seconds | FLOAT | 10.000.01–36000 | — |
| frame_rate | INT | 2424–24 | — |
| guide_policy | COMBO | every_checked_row | 1 options: every_checked_row |
| min_guide_gap_seconds | FLOAT | 0.000–0 | — |
| max_guides | INT | 5050–50 | — |
| default_force | FLOAT | 1.001–1 | — |
| promptrelay_epsilon | FLOAT | 0.00100.001–0.001 | — |
| ltx_round_mode | COMBO | none | 1 options: none |
| width | INT | 960256–5760 | — |
| height | INT | 544256–5760 | — |
| image_width | INT | 960256–5760 | — |
| image_height | INT | 544256–5760 | — |
| image_resize_method | COMBO | crop | 5 options: crop, pad, keep proportion, stretch, |
| image_multiple_of | INT | 3232–32 | — |
| img_compression | INT | 00–100 | — |
| task_mode | COMBO | auto_from_timeline | 18 options: auto_from_timeline, t2va, i2va, fl2va, ref2va, v2va_controlnet, +12 |
| audio_mode | COMBO | h3_native_generated | 4 options: h3_native_generated, h3_ref2va_audio, h3_custom_audio_drive, external_audio_post |
| prompt_mapping | COMBO | global_plus_local | 3 options: global_plus_local, local_only, global_only |
| 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 |
| text_encoder_device | COMBO | gpu_auto | 4 options: gpu_auto, cpu_direct, auto, cpu_safe_12gb |
| seed | INT | 420–18446744073709550000 | — |
| seed_control_after_generate_compat | STRING | fixed | — |
| seed_stride | INT | 10–18446744073709550000 | — |
| 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 | — |
| turbo_sampler_mode | COMBO | audio_fixed | 2 options: audio_fixed, res_multistep_stock |
| reference_resize_policy | COMBO | off | 4 options: canvas_crop, canvas_pad, total_pixels, off |
| reference_resize_megapixels | FLOAT | 0.500.1–2 | — |
| reference_resize_filter | COMBO | area | 4 options: area, bilinear, bicubic, nearest-exact |
| acceleration | COMBO | low_vram_auto | 21 options: low_vram_auto, native, h3_sage, h3_sla, sol_low_vram, sol_adaptive_safe, +15 |
| ref_image_size | COMBO | match | 2 options: match, max |
| sol_conditioning | COMBO | exact_kv_and_rows | 2 options: exact_kv_and_rows, exact_kv |
| spectrum_profile | COMBO | low_vram | 5 options: low_vram, quality, aggressive, conservative_3060, conservative_quality |
| vram_clean_before_decode | BOOLEAN | true | — |
| rife_mode | COMBO | off | 3 options: off, rife_48fps, rife_60fps |
| reference_role_1 | COMBO | subject_identity | 5 options: subject_identity, keyframe, composition, style, disabled |
| reference_role_2 | COMBO | subject_identity | 5 options: subject_identity, keyframe, composition, style, disabled |
| reference_role_3 | COMBO | composition | 5 options: subject_identity, keyframe, composition, style, disabled |
| reference_role_4 | COMBO | style | 5 options: subject_identity, keyframe, composition, style, disabled |
| reference_video_role | COMBO | off | 5 options: off, motion_camera, temporal_structure, video_edit, continuation |
| reference_audio_role | COMBO | off | 5 options: off, voice_timbre, rhythm_timing, audio_reuse, sound_reference |
| voice_reference_picture_index | INT | 00–4 | — |
| v2v_guide_mode | COMBO | raw_only | 5 options: , raw_only, raw_pose, raw_depth, raw_depth_pose |
| v2v_source_range_policy | COMBO | timeline_segment | 4 options: , timeline_segment, sequential_requested, repeat_from_offset |
| v2v_source_offset_seconds | FLOAT | 0.000–86400 | — |
| v2v_source_fit | COMBO | canvas_pad | 5 options: , native_adapt, canvas_pad, canvas_crop, stretch |
| v2v_source_end_policy | COMBO | hold_last_for_grid | 3 options: , hold_last_for_grid, error |
| v2v_audio_pairing | COMBO | pair_with_source_video | 4 options: , pair_with_source_video, standalone_reference, off |
| flf_join_mode | COMBO | h3_keyframe_cut | 2 options: h3_keyframe_cut, wan_overlap_blend |
| flf_overlap_frames | INT | 00–24 | — |
| flf_continuity_mode | COMBO | stable_keyframes | 2 options: stable_keyframes, native_av_context |
| flf_continuity_tail_frames | COMBO | 22 | 3 options: 22, 39, 56 |
| flf_continuity_audio | BOOLEAN | true | — |
| upscale_mode | COMBO | off | 9 options: off, rtx_final, h3_fast_latent_2pass, h3_pixel_refine, h3_ultimate_tiled, h3_latent_upres, +3 |
| upscale_enabled | BOOLEAN | false | — |
| upscale_width | INT | 1920256–7680 | — |
| upscale_height | INT | 1080256–4320 | — |
| upscale_prompt | STRING | — | |
| upscale_sage | BOOLEAN | true | — |
| upscale_seed_offset | INT | 100000–18446744073709550000 | — |
| wan_upscale_denoise | FLOAT | 0.200–1 | — |
| ltx_seam_safe | BOOLEAN | true | — |
| ltx_detailer_enabled | BOOLEAN | false | — |
| ltx_detailer_lora_name | COMBO | 1 options: | |
| ltx_detailer_strength | FLOAT | 0.600–2 | — |
| ltx_4k_enabled | BOOLEAN | false | — |
| ltx_4k_quality | COMBO | ULTRA | 4 options: ULTRA, HIGH, MEDIUM, LOW |
| ltx_looper_temporal_tile_size | INT | 8024–1000 | — |
| ltx_looper_temporal_overlap | INT | 2416–80 | — |
| ltx_looper_guiding_strength | FLOAT | 1.000–1 | — |
| ltx_looper_overlap_strength | FLOAT | 0.500–1 | — |
| ltx_looper_cond_image_strength | FLOAT | 1.000–1 | — |
| ltx_looper_horizontal_tiles | INT | 11–6 | — |
| ltx_looper_vertical_tiles | INT | 11–6 | — |
| ltx_looper_spatial_overlap | INT | 11–8 | — |
| face_detailer_enabled | BOOLEAN | false | — |
| face_detailer_profile | COMBO | balanced | 5 options: balanced, small_faces, gentle, sam_face_mask, wide_character_12gb |
| face_detailer_use_sam_mask | BOOLEAN | false | — |
| h3_upres_model_name | COMBO | Choose an installed H3 3D latent upscaler. Auto uses an installed FP16 checkpoint first; no model is downloaded. | |
| h3_upres_precision | COMBO | fp16 | 3 options: fp16, bf16, fp32 |
| h3_upres_device | COMBO | cuda | 2 options: cuda, cpu |
| h3_upres_keep_models_resident | BOOLEAN | false | — |
| h3_upres_steps | INT | 11–20 | — |
| h3_upres_denoise | FLOAT | 0.200–1 | — |
| h3_upres_sampler | COMBO | sa_solver | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| h3_upres_scheduler | COMBO | simple | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 |
| h3_upres_temporal_chunk | INT | 8517–1700 | — |
| h3_upres_temporal_overlap | INT | 170–850 | — |
| h3_upres_anchor_strength | FLOAT | 0.9990–1 | — |
| h3_upres_tile_width | INT | 86432–4096 | — |
| h3_upres_tile_height | INT | 48032–4096 | — |
| h3_upres_overlap_width | INT | 1280–2048 | — |
| h3_upres_overlap_height | INT | 1280–2048 | — |
| h3_upres_fade_width | INT | 320–2048 | — |
| h3_upres_fade_height | INT | 320–2048 | — |
| h3_upres_min_tile_size | INT | 2560–4096 | — |
| h3_upres_overlap_mode | COMBO | earlier | 2 options: earlier, later |
| h3_upres_overlap_blend | COMBO | linear | 4 options: linear, smoothstep, overwrite, midpoint |
| h3_upres_rtx_enabled | BOOLEAN | false | — |
| h3_upres_rtx_quality | COMBO | ULTRA | 4 options: ULTRA, HIGH, MEDIUM, LOW |
| h3_upres_pixel_groups | INT | 11–16 | — |
| h3_upres_window_frames | INT | 13634–510 | — |
| h3_upres_window_overlap | INT | 220–170 | — |
| h3_upres_pixel_method | COMBO | rtx_vsr | 4 options: rtx_vsr, lanczos-ish bicubic, bilinear, nearest-exact |
| secondary_lora_enabled | BOOLEAN | false | — |
| secondary_lora_name | COMBO | 1 options: | |
| secondary_lora_strength | FLOAT | 0.00-2–2 | — |
| 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. |
| 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. |
| 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. |
| h3_r40_seed_scout_enabled | BOOLEAN | false | Candidate-scout workflows only. Samples low-resolution candidates before one selected take enters delivery; ordinary generation workflows ignore this field. |
| h3_r40_candidate_count | INT | 31–4 | 1 keeps normal cost; 2-4 create independent cacheable seed candidates. Use 3 for hero-shot scouting, not for every automatic LongVid chunk. |
| h3_r40_seed_stride | INT | 10000031–18446744073709550000 | Candidate N uses base seed + N × stride. 1,000,003 provides widely separated deterministic candidates without a hidden prompt or model override. |
| h3_r40_preview_max_frames | INT | 491–209 | Limits each candidate preview batch only; it never shortens or changes the generated AV latent. |
| h3_r40_sparse_enabled | BOOLEAN | false | Optional current H3SparseAttention. Faster/lower VRAM can change motion, detail or prompt adherence; Off is the quality-safe default. |
| h3_r40_sparse_video_budget | FLOAT | 0.300.05–1 | Fraction of video KV attention retained. 1.0 is dense-equivalent routing; 0.30 is faster but is not lossless. |
| h3_r40_sparse_denser_edges | BOOLEAN | true | Adds attention budget to the first and last sampling steps to protect layout, prompt adherence and final detail. |
| 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. |
| h3_controlnet_enabled | BOOLEAN | false | OFF preserves the standard generation path exactly. ON requires a preprocessed control-video CineLinX module and an installed H3 Fun ControlNet. |
| h3_controlnet_name | COMBO | Select the MiniMax H3 Fun Union checkpoint from models/model_patches. Existing IAMCCS installs in models/controlnet remain compatible. | |
| h3_controlnet_kind | COMBO | pose_dwpose | Declare the already-preprocessed input: DWPose, depth, Canny, HED, MLSD or inpaint. This does not run a hidden preprocessor. |
| h3_controlnet_strength | FLOAT | 1.000–2 | 1.0 is the reference pose-control baseline. Lower values release structure; higher values can over-constrain identity and texture. |
| h3_controlnet_start_percent | FLOAT | 0.000–1 | Sampling interval start. 0.0 applies control from the first denoise step. |
| h3_controlnet_end_percent | FLOAT | 1.000–1 | Sampling interval end. 1.0 applies control throughout; earlier release can preserve more natural detail. |
| h3_controlnet_frame_scope | COMBO | timeline_segment | Timeline segment slices the full source by each Shotboard chunk start. Repeat each chunk restarts from source frame zero. |
| h3_controlnet_end_policy | COMBO | strict_match | Strict match hard-fails before sampling if the source cannot cover the chunk. Hold last repeats the final control frame. |
| fused_turbo_model_name | COMBO | Select the installed MATLOWAI/Kijai fused MiniMax H3 INT8 ConvRot model from diffusion_models. This is a full model, not a LoRA, and is restricted to T2VA. | |
| fused_turbo_sigma_preset | COMBO | 4_step | 4, 6 or 8 exact manual-sigma steps. The Fast Preview button sets Euler, 12/3 shifts, denoise 1 and turns other acceleration LoRAs off. |
| h3_faceswap_sam_modelopt | COMBO | Installed SAM3 checkpoint. Required only when no source mask is connected. | |
| h3_faceswap_birefnet_modelopt | COMBO | BiRefNet model used by FACE SWAP v1 to place both identity views on white before stitching them. | |
| h3_faceswap_mask_promptopt | STRING | head | Tracked identity region. Keep head for hair, ears, jaw and profile stability. |
| h3_faceswap_thresholdopt | FLOAT | 0.500–1 | Production default for complete-head tracking. |
| h3_faceswap_objectsopt | STRING | Leave empty for one subject. For multi-person footage, enter the intended tracked-object index explicitly. | |
| h3_faceswap_cleanup_thresholdopt | FLOAT | 0.300–1 | — |
| h3_faceswap_cleanup_shrinkopt | INT | 121–128 | — |
| h3_faceswap_cleanup_min_framesopt | INT | 41–64 | — |
| h3_faceswap_cleanup_edge_growopt | INT | 160–128 | — |
| h3_faceswap_crop_scaleopt | FLOAT | 1.751–4 | — |
| h3_faceswap_crop_megapixelsopt | FLOAT | 0.500–4 | Minimum crop sampling area; 0 preserves the tracked crop size. Editable workload, not a GPU guarantee. |
| h3_faceswap_grow_spatialopt | INT | 360–256 | — |
| h3_faceswap_grow_temporalopt | INT | 10–64 | — |
| h3_faceswap_featheropt | INT | 160–256 | — |
| h3_sla_sparsityopt | 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_stepsopt | INT | 00–20 | SLA attention only: optional final dense steps for an explicit quality comparison. |
| h3_advisor_stateopt | STRING | {} | Per-mode local advisor state. Proposals apply only after acceptance. |
| seed_policyopt | COMBO | fixed_per_generation | Fixed/random per generation: one seed for all chunks. Fixed per chunk: base + index × stride. Random per chunk: independent seeds derived from the randomized queue seed. Random policies choose a new base when you press Queue in Settings Pro; API clients must supply their base seed. |
| keyframe_joint_latent_newopt | BOOLEAN | false | Keyframe Joint only: chain original generated AV latent tails through the LatentGoAhead branch. Destination images remain guides. OFF keeps one joint sample. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| cine_linx | IAMCCS_SUPERNODE_LINX | — |