Nodes/GENKAI Nodes/H3 Prompt Studio (genkai)
ComfyUI Node

H3 Prompt Studio (genkai)

A form editor for a prompt format that's basically a form

By GENKAIx·Created about a month ago·Updated 4 days ago· 9
H3 Prompt Studio (genkai)
  • references
  • text
◄prompt►

If you've written a MiniMax H3 reference-to-video prompt by hand, you know the shape of the problem: it isn't a paragraph, it's a document. Named sections, timed shot lines, <Picture 1> labels that have to match the slots you filled, plus audio and music sections in a particular order. H3 Prompt Studio is a text editor with opinions about that format - and the opinions are the whole value. Underneath, it's just a string.

What it is, in context

H3 is MiniMax's 33B omni-modal video model - unified text/image/video/audio context, 4–15 second clips with native stereo audio, opened in August 2026 under a community licence with a territory carve-out (model panel). What matters here: H3 takes structured, time-coded instruction sets, not tag soup - the same shift the prompt-engineering doc tracks for LLM-encoded models, where your prompt is a message rather than a bag of tokens.

So you hand-maintain something like this, the pack's own text-to-video template:

integrated_multimodal_description:

overall_soundscape:

non_diegetic_music:

Reference-to-video mode uses a longer set - subject_definitions, summary, retention_analysis, detailed_description, then the audio sections - and no editor in ComfyUI knows those words mean anything.

How it works (the honest version)

The Python node is a pass-through, deliberately and completely. run() returns the prompt unchanged, and check_lazy_status returns an empty list so the optional references link never makes the graph execute the media loader behind it. The comments in h3_prompt_studio.py say so: the editor reads the loader's saved state in the browser, so decoding the referenced media isn't needed to pass text along. The link is raw and lazy and stays out of execution.

Everything you see - section bands, timing markers, highlighted <Picture N> tokens, the outline, film-term tooltips - is decoration drawn over an ordinary text field by web/h3_prompt_studio.js. None of it reaches the model.

The inputs and output that matter

  • prompt (STRING, multiline) - the editor's content. Saved, then sent.
  • references (optional H3_REFS) - connect it straight from H3 Media Loader in the same pack. You get thumbnails for the media your text actually mentions, and the References menu offers correct labels instead of making you remember whether the second video is <Video 1> or <Video 2>.
  • text (STRING) - the output. Wire it into your H3 prompt input, or any node that takes text.

There's also a mode selector: Free, T2VA, I2VA, FL2VA, L2VA and Ref2VA. The mode tells the editor which section set to expect and turns on diagnostics - it flags sections you're missing and sections out of order. Free is plain text with the checks off. The image-conditioned modes also prepend the sentence telling H3 what the pictures are for ("use <Picture 1> as the opening-frame reference"), which is the bit everyone forgets.

Install

Same pack, same two lines, and this node needs no dependencies of its own - pure text plus a frontend script:

cd ComfyUI/custom_nodes
git clone https://github.com/GENKAIx/Genkai-ComfyUI-Nodes.git

Restart, then Ctrl+F5. Find it under GENKAI/Text. You don't need the H3 Media Loader unless you want the reference sidebar, the original H3 Prompt Builder pack this was inspired by isn't required, and the editor needs no models.

One pack-level caveat, since it applies to all three nodes here: __init__.py imports the video modules too, and waveform.py does import av / import aiohttp unconditionally. Dependencies are declared nowhere, so if PyAV is absent the whole pack refuses to import and this node vanishes with it. pip install av aiohttp in ComfyUI's environment fixes it.

Where people get burned

Reference numbers are positional, and disabled slots are skipped. The labels the editor inserts are <Picture 1> … <Picture 9>, following the loader's enabled slots in visual order. Drag slot 3 into slot 1 and every label after it shifts meaning. Add a reference, disable one, reorder anything - re-read your prompt. The editor does flag tokens that no longer point at an active reference, which is the one mercy here.

The Template button replaces what you've written. It asks first, but it asks once, and the answer is destructive. Use ↶ if you misclick; undo goes back 100 steps and Ctrl+Z works inside the editor.

Diagnostics are regex, not a parser. They look for lines matching ^[a-z][a-z0-9_]*: - lowercase heading, trailing colon. Write Overall Soundscape: and the checker reports it missing. That's a checker quirk, not a broken node, but it'll waste ten minutes if you don't know.

And it won't fix a bad prompt. What it does is let you see your own structure while you're still writing, which on a 200-word time-coded script is most of the battle.

On trusting it

It's a one-person pack by GENKAI, distributed mainly through a Telegram channel, with essentially no Reddit footprint - no community consensus to search when something looks off. Custom nodes get no code review and no sandbox, so the ecosystem rule applies: read the source. It's short, and for a node that only touches a string, thirty seconds confirms nothing else is going on.

CategoryGENKAI/Text

Inputs (2)

NameTypeDefaultDescription
promptSTRING—
referencesoptH3_REFS—

Outputs (1)

NameTypeDescription
textSTRING—