MiniMax H3 Shotboard
One node decides how a whole MiniMax H3 shot gets made
- cine_linx
- cine_linx
Most video nodes are a single job: load a model, condition, sample. The IAMCCS_MiniMaxH3ShotPlanner - displayed as "MiniMax H3 Shotboard" - is the opposite. It's the editorial brain of the IAMCCS MiniMax H3 pipeline, a single node that decides everything about how a shot gets made: which task mode, what resolution, which sampler, whether a turbo LoRA or LTX detailer gets applied, how the audio behaves, how reference images are used, and what the upscale/delivery path is. Every downstream node in the H3 workflow reads its decisions through one contract output.
If you're coming from a plain KSampler habit, this looks overwhelming - it has dozens of widgets, and most of them you should touch rarely. The design philosophy is that a shot plan is a persisted object, not a set of loose constants: you save a board once and it reproduces its VRAM strategy, its LoRA choices and its audio policy every time.
What to actually set
global_prompt- your master shot description. It's the anchor that the local timeline rows refine.timeline_data- the shot's timeline (segments, timings), usually filled by the Shotboard UI rather than typed by hand.task_mode- the big one.auto_from_timelineis the default, but the useful choices aret2va(text → video + audio),i2va(image → video + audio),ref2va(reference → video + audio),v2va_object_swap, andref2vid_lipsync. Getting this wrong sends your references to the wrong conditioning path.duration_seconds- shot length; the planner splits it into the chunked segments the renderer can actually produce.width/height- 960×544 is the proven low-VRAM default (roughly 0.5MP, 16:9). Raise it only if you have the VRAM to burn.performance_profile-low_vram_balancedis the safe start; thertx3060_*andh3_turbo_*presets trade quality/VRAM for speed.seed,steps,sampler_name,scheduler- the sampling core, matching MiniMax H3's native expectation (res_multistep+simpleare moved to the top of the lists for a reason).upscale_modeand theupscale_*block - whether the shot gets an LTX 2.3 or Wan 2.2 5B finishing pass; the Shotboard decides, the actual model branches stay lazy in the workflow.
There's also a full reference layer: reference_role_1..4 (subject identity / keyframe / composition / style) and reference_video_role / reference_audio_role, plus turbo_mode with turbo_lora_name, ltx_detailer_enabled, and the whole LTX temporal-looper block for long masters. You don't need all of it on day one.
The contract
The single output is cine_linx - a structured payload that bundles the shotplan, the timeline, and a report string. Everything downstream (IAMCCS_MiniMaxH3Backend, the generation nodes, the upscale router, even the Prompter) reads this instead of duplicating your settings. That's the whole trick of the pack: one authority, many readers.
Install and gotchas
Install via ComfyUI Manager (search "IAMCCS") or cd ComfyUI/custom_nodes && git clone https://github.com/IAMCCS/IAMCCS-nodes.git, then restart. The H3 graphs themselves need a current ComfyUI with native MiniMax H3 support, ComfyUI-GGUF if you load H3 or the Qwen text encoder from GGUF, and KJNodes for the Sage/low-VRAM patches. Keep a single copy of the pack - the docs are explicit that duplicate/backup copies in custom_nodes register stale classes and cause import failures. And note this planner only plans: it doesn't load or sample anything. Wire its cine_linx into the Shotboard backend nodes that do the actual work.
Inputs (101)
| Name | Type | Default | Description |
|---|---|---|---|
| global_prompt | STRING | one continuous cinematic shot with coherent motion, stable identity, controlled camera and native stereo audio | — |
| timeline_data | STRING | — | |
| duration_seconds | FLOAT | 10.000.01–36000 | — |
| task_mode | COMBO | auto_from_timeline | 11 options: auto_from_timeline, t2va, i2va, fl2va, ref2va, v2va_object_swap, +5 |
| 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 |
| upscale_mode | COMBO | off | 8 options: off, rtx_final, h3_fast_latent_2pass, h3_pixel_refine, h3_latent_upres, ltx23, +2 |
| width | INT | 960256–5760 | — |
| height | INT | 544256–5760 | — |
| 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 |
| image_paths | STRING | — | |
| 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 | — |
| acceleration | COMBO | low_vram_auto | 19 options: low_vram_auto, native, h3_sage, sol_low_vram, sol_adaptive_safe, sol_adaptive_balanced, +13 |
| ref_image_size | COMBO | match | 2 options: match, max |
| 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 |
| 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 |
| 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 | — |
| text_encoder_device | COMBO | gpu_auto | 4 options: gpu_auto, cpu_direct, auto, cpu_safe_12gb |
| performance_profile | COMBO | low_vram_balanced | 13 options: rtx_xx60_safe, rtx_xx70_balanced, rtx_xx80_quality, rtx_xx90_max, low_vram_draft, low_vram_balanced, +7 |
| seed | INT | 420–18446744073709550000 | — |
| 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 |
| 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_seam_safe | BOOLEAN | true | — |
| flf_join_mode | COMBO | h3_keyframe_cut | 2 options: h3_keyframe_cut, wan_overlap_blend |
| flf_overlap_frames | INT | 91–24 | — |
| 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 | — |
| 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_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 | — |
| voice_reference_picture_index | INT | 00–4 | — |
| face_detailer_enabled | BOOLEAN | false | — |
| face_detailer_profile | COMBO | balanced | 4 options: balanced, small_faces, gentle, sam_face_mask |
| face_detailer_use_sam_mask | BOOLEAN | false | — |
| secondary_lora_enabled | BOOLEAN | false | — |
| secondary_lora_name | COMBO | 1 options: | |
| secondary_lora_strength | FLOAT | 0.00-2–2 | — |
| pdd_lora_name | COMBO | 1 options: | |
| pdd_strength | FLOAT | 1.000–2 | — |
| h3_controlnet_enabled | BOOLEAN | false | — |
| h3_controlnet_name | COMBO | 1 options: | |
| h3_controlnet_kind | COMBO | pose_dwpose | 6 options: pose_dwpose, depth, canny, hed, mlsd, inpaint |
| h3_controlnet_strength | FLOAT | 1.000–2 | — |
| h3_controlnet_start_percent | FLOAT | 0.000–1 | — |
| h3_controlnet_end_percent | FLOAT | 1.000–1 | — |
| h3_controlnet_frame_scope | COMBO | timeline_segment | 2 options: timeline_segment, repeat_each_chunk |
| h3_controlnet_end_policy | COMBO | strict_match | 2 options: strict_match, hold_last |
| cine_linxopt | IAMCCS_SUPERNODE_LINX | Connect IAMCCS CineH3Input here to combine Settings, Prompter, Dialogue Tag Editor, AudioBoard Arranger and other CineLinX modules through the historical single input. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| cine_linx | IAMCCS_SUPERNODE_LINX | — |