Nodes/DiffusionGemma Prompt Builder/DiffusionGemma Target Profile (Legacy — all models)
ComfyUI Node

DiffusionGemma Target Profile (Legacy — all models)

A settings envelope with strong opinions about how your video should sound

By exportAnything·Created 2 months ago·Updated 4 days ago· 44
DiffusionGemma Target Profile (Legacy — all models)
    • target_profile_config
    • target_profile_json
    target_profileltx
    audio_modeauto_scene_audio
    audio_guidance
    target_duration_seconds0.0
    ltx_style
    ideogram_aspect_ratio1:1
    ideogram_render_style
    ideogram_exact_text
    ideogram_json_outputtrue
    negative_prompt_modeauto
    negative_prompt_guidance
    minimax_h3_modet2va
    minimax_h3_shot_countauto
    minimax_h3_custom_shot_count12
    minimax_h3_dialogue_modeauto
    minimax_h3_dialogue_line_count2
    minimax_h3_dialogue_guidance
    ltx_generation_modeAuto (recommended)
    ltx_long_horizon_modeOff
    ltx_camera_capabilityStable / base model

    Every node in the DiffusionGemma Prompt Builder pack has a job, and this one is the quietest: it's a settings envelope. You tell it what you're generating for - an LTX video or an Ideogram 4 image, with sound design, duration, style, and negative-prompt policy - and it hands that contract to the CoT Generator so the model writes to the right target. No model inference, no pixels, no drama. It's the node you configure once and forget.

    That's not to say it's dumb. The interesting part is how opinionated it is. Pick ltx and the model is instructed to return an empty Ideogram prompt; pick ideogram4 and the LTX prompt comes back empty, with scene segments collapsed to an empty list. Each profile gets its own output shape, and this node decides which shape.

    How it works

    Building the profile produces a DG_TARGET_PROFILE_CONFIG object that gets serialized into the model's prompt as "target controls." In the source that means a strict contract: target profile, audio mode, duration, style strings, aspect ratio, negative-prompt mode, and guidance all get embedded into the generation prompt, so DiffusionGemma knows the rules before it writes a word.

    The negative-prompt policy is worth calling out because it's enforced twice - once in the prompt instructions, once after generation in the post-processor. auto tells the model to write a short negative only when it'll actually help; empty forces an empty string; custom returns your negative_prompt_guidance text verbatim and forbids the model from adding to it. So "trust me, this model wrote a weird negative" isn't a thing that happens here - the policy is a contract, not a suggestion.

    The inputs that matter

    • target_profile - ltx (default) or ideogram4. This is the big switch. Everything else on the node is profile-specific and ignored when it doesn't apply.
    • audio_mode - auto_scene_audio (default) weaves one scene-specific sound cue into the LTX prompt when useful; explicit_sound_design tells the model to invent concrete diegetic sound from the visible action; visual_only bans audio cues entirely. LTX 2.3 generates synchronized audio, so this actually lands in your final video.
    • target_duration_seconds - leave at 0 and the model uses the source video's duration (read from the Context Hub). Set it explicitly when you're generating from scratch or want a different pacing.
    • ideogram_exact_text - for the ideogram4 profile only: literal text that must render verbatim. This is the field that makes Ideogram worth using over a generic image model.
    • negative_prompt_mode - see above. Default auto is right for most people.

    There's also ltx_style (a style hint prepended to the LTX prompt), ideogram_aspect_ratio (1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3), ideogram_render_style, ideogram_json_output (whether Ideogram prompts come back as structured caption JSON), and audio_guidance.

    Outputs are target_profile_config (the DG_TARGET_PROFILE_CONFIG you wire into the CoT Generator) and target_profile_json - a pretty-printed string if you want to see exactly what contract you just signed.

    Install

    Standard pack install: ComfyUI Manager (search DiffusionGemma Prompt Builder) or

    cd ComfyUI/custom_nodes
    git clone https://github.com/exportAnything/ComfyUI-DiffusionGemmaPromptBuilder
    

    then restart. This node needs the same dependencies as the rest of the pack (transformers>=5.12.1, comfy-kitchen, accelerate) and the DiffusionGemma NVFP4 model in ComfyUI/models/LLM/ before the pipeline does anything useful. Worth remembering while you're configuring: LTX 2.3 and Ideogram 4 are both community-licensed with real restrictions - LTX-2's license has a $10M revenue gate, and Ideogram 4's non-commercial agreement even reaches the outputs you generate. If commercial use matters to you, read those before you build a business on this.

    Common issues

    Honestly, the usual failure here is subtle and self-inflicted: forgetting you switched profiles. You tuned the Ideogram fields, left target_profile on ltx, and the model dutifully returns an empty Ideogram prompt because the contract told it to. If a target's outputs come back blank, check the profile switch first - and remember the splitter downstream blanks everything if ready_for_generation is false anyway.

    Categoryprompt/diffusiongemma

    Inputs (20)

    NameTypeDefaultDescription
    target_profileCOMBOltx3 options: ltx, ideogram4, minimax_h3
    audio_modeCOMBOauto_scene_audio3 options: auto_scene_audio, explicit_sound_design, visual_only
    audio_guidanceSTRING
    target_duration_secondsFLOAT0.0User-selected target duration. At 0, LTX-2.5 and H3 use media duration, then an explicit duration in the brief, then a 5-second planning default. Director uses this value to cap shots, action beats, sound layers, and spoken words; LTX camera-motion phase density is advisory rather than a hard cap.
    ltx_styleSTRING
    ideogram_aspect_ratioCOMBO1:18 options: 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, +2
    ideogram_render_styleSTRING
    ideogram_exact_textSTRING
    ideogram_json_outputBOOLEANtrue
    negative_prompt_modeCOMBOauto3 options: auto, empty, custom
    negative_prompt_guidanceSTRING
    minimax_h3_modeoptCOMBOt2vat2va writes the three-field text-to-video prompt. ref2va writes MiniMax's six-section full-reference prompt for MiniMaxH3ReferenceToVideo.
    minimax_h3_shot_countoptCOMBOautoAuto honors an exact shot count written in the brief. Select 1 to 12, or choose custom and type a count below. An explicit value requires exactly that many consecutive H3 shots and overrides conflicting wording in the brief.
    minimax_h3_custom_shot_countoptINT121–99Used only when shot_count is custom. Type any count from 1 to 99; counts above 12 usually need more duration and Director output-token budget.
    minimax_h3_dialogue_modeoptCOMBOautoAuto preserves speech requested in the brief but does not invent it. Required authorizes Director to create dialogue and enforces the exact line count below. Off prohibits dialogue while leaving other enabled audio available.
    minimax_h3_dialogue_line_countoptINT21–12Used only when dialogue_mode is required. One line is one complete <d>[Language] ...</d> utterance with a numbered cue such as (S1).
    minimax_h3_dialogue_guidanceoptSTRINGOptional speaker, language, delivery, story-purpose, or exact quoted wording. In required mode, blank guidance lets Director author concise lines.
    ltx_generation_modeoptCOMBOAuto (recommended)Auto selects text-to-video when Context Hub has no frame, image-to-video from its first-frame image socket, and first+last-frame only when both dedicated frame sockets are connected. Override only for unusual graph wiring.
    ltx_long_horizon_modeoptCOMBOOffCompatibility control for LTX only. Auto activates the experimental long-horizon compiler above 20 seconds; Off preserves prior behavior.
    ltx_camera_capabilityoptCOMBOStable / base modelCompatibility control for LTX only. Stable avoids camera paths that normally require dedicated motion control or a camera LoRA; Advanced preserves the prior ambitious camera policy.

    Outputs (2)

    NameTypeDescription
    target_profile_configDG_TARGET_PROFILE_CONFIG
    target_profile_jsonSTRING