DiffusionGemma SplatStage Planner (Experimental)
A whole show, planned and validated before one frame renders
- model_config
- gemma_context
- blueprint_json
- is_valid
- validation_errors_json
- raw_response
Most DiffusionGemma nodes write a prompt. DiffusionGemma SplatStage Planner writes a show - a strict creative blueprint that some downstream SplatStage renderer can execute - and then validates that blueprint against a JSON schema before you've rendered a single frame. Read the "(Experimental)" in the display name as a real warning: this node is opt-in work for the SplatStage motion system, it is explicitly not part of the stable Director surface or the pack's primary LTX workflow, and it makes no attempt to render anything itself. Executing the resulting show still requires the appropriate downstream SplatStage workflow and nodes, which are not bundled here.
What it needs - and what that costs
Unlike the pack's lightweight control nodes, this one sits at the top of the stack: it needs a model_config from the DiffusionGemma Model Loader and a gemma_context from the Context Hub, and it will refuse to run without them (the source type-checks both sockets). That means the full local model story applies - NVIDIA's DiffusionGemma 26B-A4B NVFP4 checkpoint in ComfyUI/models/LLM/diffusiongemma-26B-A4B-it-NVFP4. NVFP4 is Blackwell-optimized; on older GPUs it runs slow and can OOM, and the pack's practical floor is roughly 18GB of VRAM. This is not a node you reach for on a laptop.
How it works
You feed it your creative brief through the Context Hub (same image and brief the video Director uses, since the planner can co-author song, lyrics, performer, environment, palette, and effects from the same evidence) plus a production_mode. DiffusionGemma generates a blueprint against the strict shipped schema, the node pulls the JSON out, normalizes identity and lane cardinality, validates it, and if it's invalid makes a bounded repair call before reporting. Seeding is explicit - the root_seed is applied to torch before generation, so the same seed reproduces the same blueprint.
Inputs: model_config, gemma_context, root_seed, duration_seconds (any positive finite value - no preset ceiling here; the downstream generator may have its own), aspect_ratio (a free string accepting 9:16, 1:1, or 1920x1080-style expressions), temperature (0.35), max_new_tokens (2048), and production_mode (Source passthrough, Joint video-safe plan, or Audition and select - mirroring the shared DiffusionGemmaMusicProductionConcept). Outputs are blueprint_json, is_valid, validation_errors_json, and raw_response, and the node is an output node that displays the blueprint for inspection.
The one thing not to do
Don't treat duration_seconds or aspect_ratio as renderer commands. The tooltips and README are emphatic: these are creative framing context only. They guide the blueprint; they do not override a downstream renderer's frame clock or raster - the synchronized LTX + ACE workflow supplies those settings independently. If you want the blueprint to match your actual render, set them to match the render anyway - but know that this node is a planner, not a controller.
Install via ComfyUI Manager (search "DiffusionGemma Prompt Builder") or git clone https://github.com/exportAnything/ComfyUI-DiffusionGemmaPromptBuilder into custom_nodes. If the SplatStage ecosystem isn't already part of your workflow, this is the node to circle back to later, not the one to start with.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model_config | DG_MODEL_CONFIG | — | |
| gemma_context | DG_CONTEXT | — | |
| root_seed | INT | 00–9223372036854776000 | — |
| duration_seconds | FLOAT | 20.00 | Any positive finite planning duration. This node does not impose an upper preset; the downstream audio/video generator may still have its own limit. |
| aspect_ratio | STRING | 16:9 | Creative framing context only. Enter any positive W:H ratio or WxH resolution, for example 9:16, 1:1, or 1920x1080. Downstream width and height remain authoritative. |
| temperature | FLOAT | 0.350–1 | — |
| max_new_tokens | INT | 2048768–3072 | — |
| production_mode | COMBO | Source passthrough | Source passthrough sends one coherent song plan unchanged. Joint video-safe plan reduces transient, tempo, tonal, and lyric pressure before ACE-Step composes. Audition and select prepares one contract for several song seeds and a decoded-waveform quality gate. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| blueprint_json | STRING | — |
| is_valid | BOOLEAN | — |
| validation_errors_json | STRING | — |
| raw_response | STRING | — |