Nodes/ComfyUI-Apt_Preset/AD_MinMax_FL2_generate
ComfyUI Node

AD_MinMax_FL2_generate

The H3 video sampler that splits your scene into stages and stitches it back together

By cardenluo·Created 2 years ago·Updated a day ago· 324
AD_MinMax_FL2_generate
  • context
  • model
  • media
  • media_1
  • media_2
  • media_3
  • media_4
  • media_5
  • media_6
  • media_7
  • media_8
  • media_9
  • media_10
  • media_11
  • media_12
  • media_13
  • media_14
  • media_15
  • media_16
  • media_17
  • media_18
  • media_19
  • media_20
  • media_21
  • media_22
  • media_23
  • media_24
  • media_25
  • media_26
  • media_27
  • media_28
  • media_29
  • media_30
  • media_31
  • media_32
  • media_33
  • media_34
  • media_35
  • media_36
  • media_37
  • media_38
  • media_39
  • media_40
  • media_41
  • media_42
  • media_43
  • media_44
  • media_45
  • media_46
  • media_47
  • media_48
  • media_49
  • media_50
  • media_51
  • media_52
  • media_53
  • media_54
  • media_55
  • media_56
  • media_57
  • media_58
  • media_59
  • media_60
  • media_61
  • media_62
  • media_63
  • media_64
  • stage_info
  • stage_data
  • denoise_latent1
  • segment_video
  • merged_video
  • text
prompt
width512
height768
length124
seed0
stage_prompts[]
second_pass_modeNone
refine_modelNone
refine_denoise0.30
refine_steps8
latent_model(place MiniMax H3 3D models in models/latent_upscale_models)
latent_scale1.30
split_step4
fps24
media_type_1
media_type_2
media_type_3
media_type_4
media_type_5
media_type_6
media_type_7
media_type_8
media_type_9
media_type_10
media_type_11
media_type_12
media_type_13
media_type_14
media_type_15
media_type_16
media_type_17
media_type_18
media_type_19
media_type_20
media_type_21
media_type_22
media_type_23
media_type_24
media_type_25
media_type_26
media_type_27
media_type_28
media_type_29
media_type_30
media_type_31
media_type_32
media_type_33
media_type_34
media_type_35
media_type_36
media_type_37
media_type_38
media_type_39
media_type_40
media_type_41
media_type_42
media_type_43
media_type_44
media_type_45
media_type_46
media_type_47
media_type_48
media_type_49
media_type_50
media_type_51
media_type_52
media_type_53
media_type_54
media_type_55
media_type_56
media_type_57
media_type_58
media_type_59
media_type_60
media_type_61
media_type_62
media_type_63
media_type_64
stage_text_1
stage_text_2
stage_text_3
stage_text_4
stage_text_5
stage_text_6
stage_text_7
stage_text_8
stage_text_9
stage_text_10
stage_text_11
stage_text_12
stage_text_13
stage_text_14
stage_text_15
stage_text_16
stage_text_17
stage_text_18
stage_text_19
stage_text_20
stage_text_21
stage_text_22
stage_text_23
stage_text_24
stage_text_25
stage_text_26
stage_text_27
stage_text_28
stage_text_29
stage_text_30
stage_text_31
stage_text_32
stage_text_33
stage_text_34
stage_text_35
stage_text_36
stage_text_37
stage_text_38
stage_text_39
stage_text_40
stage_text_41
stage_text_42
stage_text_43
stage_text_44
stage_text_45
stage_text_46
stage_text_47
stage_text_48
stage_text_49
stage_text_50
stage_text_51
stage_text_52
stage_text_53
stage_text_54
stage_text_55
stage_text_56
stage_text_57
stage_text_58
stage_text_59
stage_text_60
stage_text_61
stage_text_62
stage_text_63
stage_text_64

If you've ever tried to make a longer MiniMax H3 video by chaining clips, you know the pain: each segment drifts, the seams show, and by segment four the thing has forgotten what it was doing. AD_MinMax_FL2_generate is this pack's answer - a H3 (Hailuo) sampler designed around the pack's "flow stage" system, where a long scene is split into N stages, each stage gets its own prompt, and the node generates every segment and merges them into one continuous video. The FL2 part is the conditioning trick: "first/last" reference images, so Picture 1 anchors the 0:00 mark and Picture 2 pins the final frame. That's how you keep a character and a scene stable across segments instead of letting each one reinvent itself.

How it works

It's a "queue-stage FL2VA sampler." It reads the stage_info socket that comes from flow_stage_begin, figures out which segment of the run it's on, samples that segment, and only when the last stage fires does it produce the merged output. Your per-stage prompts go in as a JSON list in stage_prompts (["shot one...", "shot two..."]). Frame count matters: length gets snapped up to the H3 grid of 17k+5, so 124 frames ≈ 5 seconds at the default 24 fps. Don't fight the snap - just treat 124 as "about 5s" and adjust up.

The second pass is where this node earns its keep. second_pass_mode gives you three mutually exclusive options:

  • None - single pass, fastest, usually enough for drafts.
  • refine - a low-denoise second sampling pass (refine_denoise 0.3, refine_steps 8 by default) to clean up the image. The tooltip on refine_model is the important bit: leave it on None, because "None or a 1x model" is what preserves latent continuity across stages.
  • latent_scale - upscale between two sigma ranges. split_step is the SplitSigmas point: high-sigma steps run before the latent scaling, low-sigma steps after, and latent_scale (default 1.3) is the multiplier. This needs the MiniMax H3 3D upscaler, selected in latent_model.

Inputs and outputs that matter

You'll actually set prompt, width/height (512×768 default), length, seed, and stage_prompts. Everything else has sane defaults. Optional inputs worth knowing: context (the pack's RUN_CONTEXT bus - if you use the loader/controller stack, wire it), model to override the sampler's model, and the media/media_1…64 inputs. FL2 mode is strict about media: at most two ordered images (first frame + last frame) and one context latent - video or audio references will error.

Outputs: denoise_latent1 (this stage's LATENT - decode it to see where you are), segment_video (the current stage's clip), merged_video (the full stitched run, populated on the last stage), and text.

Install and the gotchas

Install the pack (ComfyUI Manager, search "ComfyUI-Apt_Preset", or git clone https://github.com/cardenluo/ComfyUI-Apt_Preset into custom_nodes), then run install.bat and restart ComfyUI. You also need MiniMax H3's weights on the machine plus a ComfyUI build that includes H3 support - if you hit the error "This ComfyUI build does not provide MiniMax H3 support," that's your ComfyUI being too old, not the node.

The big one people forget: the MiniMax H3 Community License geofences the weights out of the US, EU, UK and South Korea - running local H3 in those regions isn't licensed, full stop. And the latent_scale path silently needs the minimax_h3_latent_upscaler_3d models in ComfyUI/models/latent_upscale_models; the dropdown placeholder literally tells you where to put them.

CategoryApt_Preset/AD

Inputs (211)

NameTypeDefaultDescription
promptSTRING
widthINT51232–4096
heightINT76832–4096
lengthINT1245–3600
seedINT00–18446744073709550000
stage_promptsSTRING[]
second_pass_modeCOMBONoneSelect one mutually exclusive second-pass workflow.
refine_modelCOMBONoneOptional image upscaler before the second pass. None resamples the first-pass latent directly. Use None or a 1x model for multi-stage latent continuity.
refine_denoiseFLOAT0.300–1Denoise strength for the second sampling pass.
refine_stepsINT81–10000Number of steps for the second sampling pass.
latent_modelCOMBO(place MiniMax H3 3D models in models/latent_upscale_models)1 options: (place MiniMax H3 3D models in models/latent_upscale_models)
latent_scaleFLOAT1.301–4MiniMax H3 latent upscale multiplier between the two sigma ranges.
split_stepINT40–10000SplitSigmas step: high sigmas run before latent scaling and low sigmas run after it.
contextoptRUN_CONTEXT
modeloptMODEL
fpsoptFLOAT241–120
mediaoptIMAGE,LATENT,STRING
media_1optIMAGE,LATENT
media_type_1optSTRING
media_2optIMAGE,LATENT
media_type_2optSTRING
media_3optIMAGE,LATENT
media_type_3optSTRING
media_4optIMAGE,LATENT
media_type_4optSTRING
media_5optIMAGE,LATENT
media_type_5optSTRING
media_6optIMAGE,LATENT
media_type_6optSTRING
media_7optIMAGE,LATENT
media_type_7optSTRING
media_8optIMAGE,LATENT
media_type_8optSTRING
media_9optIMAGE,LATENT
media_type_9optSTRING
media_10optIMAGE,LATENT
media_type_10optSTRING
media_11optIMAGE,LATENT
media_type_11optSTRING
media_12optIMAGE,LATENT
media_type_12optSTRING
media_13optIMAGE,LATENT
media_type_13optSTRING
media_14optIMAGE,LATENT
media_type_14optSTRING
media_15optIMAGE,LATENT
media_type_15optSTRING
media_16optIMAGE,LATENT
media_type_16optSTRING
media_17optIMAGE,LATENT
media_type_17optSTRING
media_18optIMAGE,LATENT
media_type_18optSTRING
media_19optIMAGE,LATENT
media_type_19optSTRING
media_20optIMAGE,LATENT
media_type_20optSTRING
media_21optIMAGE,LATENT
media_type_21optSTRING
media_22optIMAGE,LATENT
media_type_22optSTRING
media_23optIMAGE,LATENT
media_type_23optSTRING
media_24optIMAGE,LATENT
media_type_24optSTRING
media_25optIMAGE,LATENT
media_type_25optSTRING
media_26optIMAGE,LATENT
media_type_26optSTRING
media_27optIMAGE,LATENT
media_type_27optSTRING
media_28optIMAGE,LATENT
media_type_28optSTRING
media_29optIMAGE,LATENT
media_type_29optSTRING
media_30optIMAGE,LATENT
media_type_30optSTRING
media_31optIMAGE,LATENT
media_type_31optSTRING
media_32optIMAGE,LATENT
media_type_32optSTRING
media_33optIMAGE,LATENT
media_type_33optSTRING
media_34optIMAGE,LATENT
media_type_34optSTRING
media_35optIMAGE,LATENT
media_type_35optSTRING
media_36optIMAGE,LATENT
media_type_36optSTRING
media_37optIMAGE,LATENT
media_type_37optSTRING
media_38optIMAGE,LATENT
media_type_38optSTRING
media_39optIMAGE,LATENT
media_type_39optSTRING
media_40optIMAGE,LATENT
media_type_40optSTRING
media_41optIMAGE,LATENT
media_type_41optSTRING
media_42optIMAGE,LATENT
media_type_42optSTRING
media_43optIMAGE,LATENT
media_type_43optSTRING
media_44optIMAGE,LATENT
media_type_44optSTRING
media_45optIMAGE,LATENT
media_type_45optSTRING
media_46optIMAGE,LATENT
media_type_46optSTRING
media_47optIMAGE,LATENT
media_type_47optSTRING
media_48optIMAGE,LATENT
media_type_48optSTRING
media_49optIMAGE,LATENT
media_type_49optSTRING
media_50optIMAGE,LATENT
media_type_50optSTRING
media_51optIMAGE,LATENT
media_type_51optSTRING
media_52optIMAGE,LATENT
media_type_52optSTRING
media_53optIMAGE,LATENT
media_type_53optSTRING
media_54optIMAGE,LATENT
media_type_54optSTRING
media_55optIMAGE,LATENT
media_type_55optSTRING
media_56optIMAGE,LATENT
media_type_56optSTRING
media_57optIMAGE,LATENT
media_type_57optSTRING
media_58optIMAGE,LATENT
media_type_58optSTRING
media_59optIMAGE,LATENT
media_type_59optSTRING
media_60optIMAGE,LATENT
media_type_60optSTRING
media_61optIMAGE,LATENT
media_type_61optSTRING
media_62optIMAGE,LATENT
media_type_62optSTRING
media_63optIMAGE,LATENT
media_type_63optSTRING
media_64optIMAGE,LATENT
media_type_64optSTRING
stage_infooptFLOW_STAGE_INFO
stage_dataoptIMAGE,VIDEO,LATENT
stage_text_1optSTRING
stage_text_2optSTRING
stage_text_3optSTRING
stage_text_4optSTRING
stage_text_5optSTRING
stage_text_6optSTRING
stage_text_7optSTRING
stage_text_8optSTRING
stage_text_9optSTRING
stage_text_10optSTRING
stage_text_11optSTRING
stage_text_12optSTRING
stage_text_13optSTRING
stage_text_14optSTRING
stage_text_15optSTRING
stage_text_16optSTRING
stage_text_17optSTRING
stage_text_18optSTRING
stage_text_19optSTRING
stage_text_20optSTRING
stage_text_21optSTRING
stage_text_22optSTRING
stage_text_23optSTRING
stage_text_24optSTRING
stage_text_25optSTRING
stage_text_26optSTRING
stage_text_27optSTRING
stage_text_28optSTRING
stage_text_29optSTRING
stage_text_30optSTRING
stage_text_31optSTRING
stage_text_32optSTRING
stage_text_33optSTRING
stage_text_34optSTRING
stage_text_35optSTRING
stage_text_36optSTRING
stage_text_37optSTRING
stage_text_38optSTRING
stage_text_39optSTRING
stage_text_40optSTRING
stage_text_41optSTRING
stage_text_42optSTRING
stage_text_43optSTRING
stage_text_44optSTRING
stage_text_45optSTRING
stage_text_46optSTRING
stage_text_47optSTRING
stage_text_48optSTRING
stage_text_49optSTRING
stage_text_50optSTRING
stage_text_51optSTRING
stage_text_52optSTRING
stage_text_53optSTRING
stage_text_54optSTRING
stage_text_55optSTRING
stage_text_56optSTRING
stage_text_57optSTRING
stage_text_58optSTRING
stage_text_59optSTRING
stage_text_60optSTRING
stage_text_61optSTRING
stage_text_62optSTRING
stage_text_63optSTRING
stage_text_64optSTRING

Outputs (4)

NameTypeDescription
denoise_latent1LATENT
segment_videoVIDEO
merged_videoVIDEO
textSTRING