DiffusionGemma MiniMax-H3 Target Profile
Mode, shots, dialogue, and audio in one config
- target_profile_config
- target_profile_json
MiniMax H3 is the omni model that renders a video and its audio in one pass - but its prompt format is brutal to hand-write. It wants a strict [Shot N] timeline, soundscape and score separated into their own sections, and for Ref2VA a six-section reference contract with <Subject N> semantics. DiffusionGemma exists to translate your rough brief into exactly that structure. DiffusionGemma MiniMax-H3 Target Profile is the node where you tell the translator which H3 dialect you're speaking and how much of it you want: T2VA or Ref2VA, duration, shot count, dialogue rules, audio policy.
It's one of the three "choose exactly one" Target Profiles (LTX-2.5, H3, Ideogram 4). In the H3 wiring, its target_profile_config output feeds both the CoT Generator and the JSON Splitter - the splitter needs it too, because it decides how to unpack Director's JSON into the H3-native prompt.
The inputs that decide your prompt
generation_mode-t2vawrites H3's canonical three-field text-to-video prompt (integrated_multimodal_description,overall_soundscape,non_diegetic_music).ref2vawrites MiniMax's full six-section reference contract (subject_definitions,summary,retention_analysis,detailed_description,overall_soundscape,non_diegetic_music) forMiniMaxH3ReferenceToVideo. Ref2VA needs the H3 Reference Context upstream with a real image/video manifest.target_duration_seconds-0auto-resolves from source media, then a duration in the brief, then a 5-second default. MiniMax documents 4–15s as H3's happy range, and the README treats that as quality guidance, not a clamp - you can request 20s and let your VRAM, sampler, and render time decide whether it survives.shot_count-autohonors an exact count written in your brief, otherwise Director picks the fewest useful shots. Or pick1–12, orcustomwith a value up to99incustom_shot_count. A shot is a camera/cut segment, not a generation pass - several native[Shot N]blocks can live inside one valid 4–15s H3 clip. Don't confuse this with a Project Master generation-lane count; that's a separate thing.dialogue_mode-autopreserves speech you explicitly asked for but never invents it;requiredauthorizes Director to write dialogue and enforces the exact block count;offbans speech, narration, and singing while keeping ambience and music.dialogue_line_count(1–12, default 2) anddialogue_guidanceonly matter inrequiredmode.audio_mode/audio_guidance- scene audio policy (auto_scene_audio,explicit_sound_design,visual_only) and direction for ambience, effects, music, or quoted speech. Noterequireddialogue is incompatible withvisual_onlyand gets rejected before generation.negative_prompt_mode/negative_prompt_guidance- H3 has no separate negative-conditioning channel through its local text encoder.auto/customfold relevant exclusions into the integrated description as natural language;emptyignores the guidance while preserving exclusions written in the brief.
How Director turns those into H3 prose
Every H3 shot carries one explicit camera-behavior sentence. Moving-shot prose names the motion type, speed/amplitude, direction, subject relationship, and ending frame; a locked-off sentence is only the deterministic last resort for a genuinely unspecified shot. Dialogue gets real markup - the speaker ID sits outside the block, language and words inside:
The protagonist (S1) says: <d>[English] We made it this far.</d>
The hard gate is structural: it verifies dialogue presence, exact block count, speaker cues, and native markup. It does not claim to prove your free-form dialogue guidance was semantically obeyed - so if you need exact lines, put them in dialogue_guidance as quoted wording.
Installing it
Part of exportAnything/ComfyUI-DiffusionGemmaPromptBuilder:
cd ComfyUI/custom_nodes
git clone https://github.com/exportAnything/ComfyUI-DiffusionGemmaPromptBuilder
or ComfyUI Manager → DiffusionGemma Prompt Builder → restart. The config node itself is lightweight; what's not is the DiffusionGemma model folder at ComfyUI/models/LLM/diffusiongemma-26B-A4B-it-NVFP4 and, if you actually render, the H3 weights (pruned INT8/ConvRot Ref2VA diffusion model, Qwen3-VL text encoder, video + audio VAEs, Turbo LoRA) listed in the README.
Common issues
- Wrong shot count keeps blocking. An explicit
shot_countrequires exactly that many consecutive[Shot N]sections; Director repairs once, then the gate blocks. Counts above ~12 generally need more duration and output-token budget. - Dialogue that doesn't fit. Twelve shots in 15 seconds is 1.25s per shot - no line survives that. Reduce shot count, dialogue count, or raise duration instead of forcing speech across rapid cuts.
- Ref2VA validation spam. Strict Grounding Guard demands
[dg:...]annotations on every connected Picture/Video role in the manifest; without them, role validation fails deterministically. Annotate the manifest or run audit mode. - Don't wire the Project Master's lane recommendation into
shot_count. Native storyboard count and generation lanes are different axes; mixing them up is the most common wiring mistake on this node.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| generation_mode | COMBO | t2va | t2va writes the three-field text-to-video prompt. ref2va writes MiniMax's six-section full-reference prompt for MiniMaxH3ReferenceToVideo. |
| target_duration_seconds | FLOAT | 0.0 | At 0, use media duration, then an explicit duration in the brief, then a 5-second planning default. This sets H3 timeline and complexity budgets. |
| audio_mode | COMBO | auto_scene_audio | 3 options: auto_scene_audio, explicit_sound_design, visual_only |
| audio_guidance | STRING | Optional ambience, effects, music, speaker, language, delivery, or exact quoted wording. | |
| shot_count | COMBO | auto | Auto honors an exact shot count written in the brief. Select 1 to 12, or choose custom and type a count below. |
| custom_shot_count | INT | 121–99 | Used only when shot_count is custom. |
| dialogue_mode | COMBO | auto | Auto preserves requested speech without inventing it. Required authorizes dialogue and enforces the exact line count. Off prohibits dialogue. |
| dialogue_line_count | INT | 21–12 | Used only when dialogue_mode is required. One line is one complete <d>[Language] ...</d> utterance with a numbered cue such as (S1). |
| dialogue_guidance | STRING | Optional speaker, language, delivery, story purpose, or exact quoted wording. | |
| negative_prompt_mode | COMBO | auto | H3 has no separate negative-conditioning channel. Auto/custom fold relevant exclusions into the integrated H3 description; empty ignores this guidance while preserving exclusions written in the creative brief. |
| negative_prompt_guidance | STRING | Unwanted elements or behaviors to express as concise natural-language exclusions inside the H3 prompt, not as a separate negative prompt. | |
| shot_count_overrideopt | INT | 00–99 | 0 keeps the visible native [Shot N] selector. A positive value overrides only Director's native storyboard/cut count; never connect a Project Master generation-lane count here. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| target_profile_config | DG_TARGET_PROFILE_CONFIG | — |
| target_profile_json | STRING | — |