Nodes/IAMCCS-nodes/MiniMax H3 Shotboard
ComfyUI Node

MiniMax H3 Shotboard

One node decides how a whole MiniMax H3 shot gets made

By IAMCCS·Created 12 months ago·Updated 6 days ago· 115
MiniMax H3 Shotboard
  • cine_linx
  • cine_linx
◄global_promptone continuous cinematic shot with coherent motion, stable identity, controlled camera and native stereo audio►
◄timeline_data►
◄duration_seconds10.00►
◄task_modeauto_from_timeline►
◄audio_modeh3_native_generated►
◄prompt_mappingglobal_plus_local►
◄upscale_modeoff►
◄width960►
◄height544►
◄frame_rate24►
◄guide_policyevery_checked_row►
◄min_guide_gap_seconds0.00►
◄max_guides50►
◄default_force1.00►
◄promptrelay_epsilon0.0010►
◄ltx_round_modenone►
◄image_paths►
◄image_width960►
◄image_height544►
◄image_resize_methodcrop►
◄image_multiple_of32►
◄img_compression0►
◄accelerationlow_vram_auto►
◄ref_image_sizematch►
◄reference_role_1subject_identity►
◄reference_role_2subject_identity►
◄reference_role_3composition►
◄reference_role_4style►
◄reference_video_roleoff►
◄reference_audio_roleoff►
◄sol_conditioningexact_kv_and_rows►
◄spectrum_profilelow_vram►
◄vram_clean_before_decodetrue►
◄rife_modeoff►
◄upscale_enabledfalse►
◄upscale_width1920►
◄upscale_height1080►
◄upscale_prompt►
◄upscale_sagetrue►
◄upscale_seed_offset10000►
◄wan_upscale_denoise0.20►
◄text_encoder_devicegpu_auto►
◄performance_profilelow_vram_balanced►
◄seed42►
◄seed_stride1►
◄steps16►
◄sampler_nameeuler►
◄schedulersimple►
◄denoise1.00►
◄shift_video12.00►
◄shift_audio3.00►
◄turbo_modeoff►
◄turbo_lora_name►
◄turbo_strength1.00►
◄turbo_sampler_modeaudio_fixed►
◄reference_resize_policyoff►
◄reference_resize_megapixels0.50►
◄reference_resize_filterarea►
◄ltx_detailer_enabledfalse►
◄ltx_detailer_lora_name►
◄ltx_detailer_strength0.60►
◄ltx_4k_enabledfalse►
◄ltx_4k_qualityULTRA►
◄ltx_seam_safetrue►
◄flf_join_modeh3_keyframe_cut►
◄flf_overlap_frames0►
◄ltx_looper_temporal_tile_size80►
◄ltx_looper_temporal_overlap24►
◄ltx_looper_guiding_strength1.00►
◄ltx_looper_overlap_strength0.50►
◄ltx_looper_cond_image_strength1.00►
◄ltx_looper_horizontal_tiles1►
◄ltx_looper_vertical_tiles1►
◄ltx_looper_spatial_overlap1►
◄v2v_guide_moderaw_only►
◄v2v_source_range_policytimeline_segment►
◄v2v_source_offset_seconds0.00►
◄v2v_source_fitcanvas_pad►
◄v2v_source_end_policyhold_last_for_grid►
◄v2v_audio_pairingpair_with_source_video►
◄flf_continuity_modestable_keyframes►
◄flf_continuity_tail_frames22►
◄flf_continuity_audiotrue►
◄voice_reference_picture_index0►
◄face_detailer_enabledfalse►
◄face_detailer_profilebalanced►
◄face_detailer_use_sam_maskfalse►
◄secondary_lora_enabledfalse►
◄secondary_lora_name►
◄secondary_lora_strength0.00►
◄pdd_lora_name►
◄pdd_strength1.00►
◄h3_controlnet_enabledfalse►
◄h3_controlnet_name►
◄h3_controlnet_kindpose_dwpose►
◄h3_controlnet_strength1.00►
◄h3_controlnet_start_percent0.00►
◄h3_controlnet_end_percent1.00►
◄h3_controlnet_frame_scopetimeline_segment►
◄h3_controlnet_end_policystrict_match►
◄fused_turbo_model_name►
◄fused_turbo_sigma_preset4_step►

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_timeline is the default, but the useful choices are t2va (text → video + audio), i2va (image → video + audio), ref2va (reference → video + audio), v2va_object_swap, and ref2vid_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_balanced is the safe start; the rtx3060_* and h3_turbo_* presets trade quality/VRAM for speed.
  • seed, steps, sampler_name, scheduler - the sampling core, matching MiniMax H3's native expectation (res_multistep + simple are moved to the top of the lists for a reason).
  • upscale_mode and the upscale_* 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.

CategoryIAMCCS/MiniMax H3

Inputs (103)

NameTypeDefaultDescription
global_promptSTRINGone continuous cinematic shot with coherent motion, stable identity, controlled camera and native stereo audio—
timeline_dataSTRING—
duration_secondsFLOAT10.000.01–36000—
task_modeCOMBOauto_from_timeline18 options: auto_from_timeline, t2va, i2va, fl2va, ref2va, v2va_controlnet, +12
audio_modeCOMBOh3_native_generated4 options: h3_native_generated, h3_ref2va_audio, h3_custom_audio_drive, external_audio_post
prompt_mappingCOMBOglobal_plus_local3 options: global_plus_local, local_only, global_only
upscale_modeCOMBOoff10 options: off, rtx_final, pixel_tiled_low_vram, h3_fast_latent_2pass, h3_pixel_refine, h3_ultimate_tiled, +4
widthINT960256–5760—
heightINT544256–5760—
frame_rateINT2424–24—
guide_policyCOMBOevery_checked_row1 options: every_checked_row
min_guide_gap_secondsFLOAT0.000–0—
max_guidesINT5050–50—
default_forceFLOAT1.001–1—
promptrelay_epsilonFLOAT0.00100.001–0.001—
ltx_round_modeCOMBOnone1 options: none
image_pathsSTRING—
image_widthINT960256–5760—
image_heightINT544256–5760—
image_resize_methodCOMBOcrop5 options: crop, pad, keep proportion, stretch,
image_multiple_ofINT3232–32—
img_compressionINT00–100—
accelerationCOMBOlow_vram_auto21 options: low_vram_auto, native, h3_sage, h3_sla, sol_low_vram, sol_adaptive_safe, +15
ref_image_sizeCOMBOmatch2 options: match, max
reference_role_1COMBOsubject_identity5 options: subject_identity, keyframe, composition, style, disabled
reference_role_2COMBOsubject_identity5 options: subject_identity, keyframe, composition, style, disabled
reference_role_3COMBOcomposition5 options: subject_identity, keyframe, composition, style, disabled
reference_role_4COMBOstyle5 options: subject_identity, keyframe, composition, style, disabled
reference_video_roleCOMBOoff5 options: off, motion_camera, temporal_structure, video_edit, continuation
reference_audio_roleCOMBOoff5 options: off, voice_timbre, rhythm_timing, audio_reuse, sound_reference
sol_conditioningCOMBOexact_kv_and_rows2 options: exact_kv_and_rows, exact_kv
spectrum_profileCOMBOlow_vram5 options: low_vram, quality, aggressive, conservative_3060, conservative_quality
vram_clean_before_decodeBOOLEANtrue—
rife_modeCOMBOoff3 options: off, rife_48fps, rife_60fps
upscale_enabledBOOLEANfalse—
upscale_widthINT1920256–7680—
upscale_heightINT1080256–4320—
upscale_promptSTRING—
upscale_sageBOOLEANtrue—
upscale_seed_offsetINT100000–18446744073709550000—
wan_upscale_denoiseFLOAT0.200–1—
text_encoder_deviceCOMBOgpu_auto4 options: gpu_auto, cpu_direct, auto, cpu_safe_12gb
performance_profileCOMBOlow_vram_balanced14 options: rtx_xx60_safe, rtx_xx70_balanced, rtx_xx80_quality, rtx_xx90_max, low_vram_draft, low_vram_balanced, +8
seedINT420–18446744073709550000—
seed_strideINT10–18446744073709550000—
stepsINT161–100—
sampler_nameCOMBOeuler44 options: res_multistep, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +38
schedulerCOMBOsimple9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
denoiseFLOAT1.000–1—
shift_videoFLOAT12.000.01–100—
shift_audioFLOAT3.000.01–100—
turbo_modeCOMBOoff3 options: off, early_8_10, ckpt500_6_8
turbo_lora_nameCOMBO1 options:
turbo_strengthFLOAT1.000–4—
turbo_sampler_modeCOMBOaudio_fixed2 options: audio_fixed, res_multistep_stock
reference_resize_policyCOMBOoff4 options: canvas_crop, canvas_pad, total_pixels, off
reference_resize_megapixelsFLOAT0.500.1–2—
reference_resize_filterCOMBOarea4 options: area, bilinear, bicubic, nearest-exact
ltx_detailer_enabledBOOLEANfalse—
ltx_detailer_lora_nameCOMBO1 options:
ltx_detailer_strengthFLOAT0.600–2—
ltx_4k_enabledBOOLEANfalse—
ltx_4k_qualityCOMBOULTRA4 options: ULTRA, HIGH, MEDIUM, LOW
ltx_seam_safeBOOLEANtrue—
flf_join_modeCOMBOh3_keyframe_cut2 options: h3_keyframe_cut, wan_overlap_blend
flf_overlap_framesINT00–24—
ltx_looper_temporal_tile_sizeINT8024–1000—
ltx_looper_temporal_overlapINT2416–80—
ltx_looper_guiding_strengthFLOAT1.000–1—
ltx_looper_overlap_strengthFLOAT0.500–1—
ltx_looper_cond_image_strengthFLOAT1.000–1—
ltx_looper_horizontal_tilesINT11–6—
ltx_looper_vertical_tilesINT11–6—
ltx_looper_spatial_overlapINT11–8—
v2v_guide_modeCOMBOraw_only5 options: , raw_only, raw_pose, raw_depth, raw_depth_pose
v2v_source_range_policyCOMBOtimeline_segment4 options: , timeline_segment, sequential_requested, repeat_from_offset
v2v_source_offset_secondsFLOAT0.000–86400—
v2v_source_fitCOMBOcanvas_pad5 options: , native_adapt, canvas_pad, canvas_crop, stretch
v2v_source_end_policyCOMBOhold_last_for_gridHOLD LAST FOR GRID requires the complete visible source and freezes only H3's hidden 17k+5 tail (recommended). HOLD LAST VISIBLE also extends a genuinely short source with its final frame and silence; continuity survives but lip-sync cannot continue beyond the real source. ERROR requires real source frames even for the technical tail.
v2v_audio_pairingCOMBOpair_with_source_video4 options: , pair_with_source_video, standalone_reference, off
flf_continuity_modeCOMBOstable_keyframes3 options: stable_keyframes, native_av_context, longvid_latent_tail_experimental
flf_continuity_tail_framesCOMBO223 options: 22, 39, 56
flf_continuity_audioBOOLEANtrue—
voice_reference_picture_indexINT00–4—
face_detailer_enabledBOOLEANfalse—
face_detailer_profileCOMBObalanced5 options: balanced, small_faces, gentle, sam_face_mask, wide_character_12gb
face_detailer_use_sam_maskBOOLEANfalse—
secondary_lora_enabledBOOLEANfalse—
secondary_lora_nameCOMBO1 options:
secondary_lora_strengthFLOAT0.00-2–2—
pdd_lora_nameCOMBO1 options:
pdd_strengthFLOAT1.000–2—
h3_controlnet_enabledBOOLEANfalse—
h3_controlnet_nameCOMBO1 options:
h3_controlnet_kindCOMBOpose_dwpose6 options: pose_dwpose, depth, canny, hed, mlsd, inpaint
h3_controlnet_strengthFLOAT1.000–2—
h3_controlnet_start_percentFLOAT0.000–1—
h3_controlnet_end_percentFLOAT1.000–1—
h3_controlnet_frame_scopeCOMBOtimeline_segment2 options: timeline_segment, repeat_each_chunk
h3_controlnet_end_policyCOMBOstrict_match2 options: strict_match, hold_last
fused_turbo_model_nameCOMBO1 options:
fused_turbo_sigma_presetCOMBO4_step3 options: 4_step, 6_step, 8_step
cine_linxoptIAMCCS_SUPERNODE_LINXConnect IAMCCS CineH3Input here to combine Settings, Prompter, Dialogue Tag Editor, AudioBoard Arranger and other CineLinX modules through the historical single input.

Outputs (1)

NameTypeDescription
cine_linxIAMCCS_SUPERNODE_LINX—