Nodes/LF Nodes/MiniMax H3 prompt maker
ComfyUI Node

MiniMax H3 prompt maker

A local LLM writing video prompts for you

By lucafoscili·Created 2 years ago·Updated 22 days ago· 36
MiniMax H3 prompt maker
  • image
  • ui_widget
  • image_2
  • image_3
  • image_4
  • image_5
  • image_6
  • image_7
  • image_8
  • image_9
  • prompt
  • validation_report
  • visual_inventory
◄intent►
◄modeauto►
◄duration_seconds6.000►
◄urlhttp://127.0.0.1:1234/api/v1/chat►
◄model►
◄temperature0.2►
◄reasoningvision►
◄reviewtrue►
◄instructions►

MiniMax H3 generates video with native stereo audio - dialogue, sound effects, room tone - which means the prompt isn't a tag soup, it's a scene description with speaker turns and timing. That's a writing job, not a keyword job, and it's the one thing a language model in your graph is genuinely good for.

LF_H3PromptMaker does exactly that: you type a short idea, it asks a local LLM (LM Studio's native chat API) to write the H3 prompt, optionally has a second pass review that draft against your idea and images, and hands you the prose. No cloud, no API key, no per-call cost.

If you're in the US, EU, UK or Korea, read the licence before you get attached. H3's open weights are excluded from those territories - the hosted API is global, the downloadable weights aren't. The node works fine; the model does not, legally, for everyone.

How it works

It's deliberately prose-only. Earlier versions compiled a structured schema with planning steps, inventory passes and repair loops; those are gone. What runs now is one provider call when review is off, two when it's on: a writer stage, then a review stage that gets your original idea and the draft as plain text and returns a revised (or unchanged) complete prompt. The system prompt carries the H3 writing guidance - section order, reference-role labels, fixed-frame alignment wording, mode-specific teaching examples - and the model's final text comes back unchanged. No JSON parsing, no schema validation, no format-repair loop. Fewer places to fail, and the two-call shape is why it's cheap enough to iterate on.

Two stages show up as progress in the node, so a long thinking model doesn't look hung.

The inputs and outputs that matter

  • intent - your idea in ordinary words. "Walking from behind in a medieval town" is a complete input; add reference roles or constraints only when you want to override what it picks.
  • mode - auto (the default, and the right answer most of the time: text-only without images, reference generation with them), then explicit t2va, i2va, fl2va, l2va, ref2va for when you genuinely want fixed first/last frames.
  • duration_seconds - exact target length, default 6.
  • url - the LM Studio native chat endpoint, http://127.0.0.1:1234/api/v1/chat. This is the part people skip; the native route is what gives you blank-model discovery and vision.
  • image through image_9 - up to nine ordered references, flattened in socket order then batch order. Different sizes are fine, and an image is a reusable identity/content reference by default, not an opening frame.
  • review - default on. Turn it off if you'd rather have the writer's single pass.
  • Also worth knowing: temperature (0–1, default 0.2) and reasoning (vision by default - it reasons while actually looking at your pixels).

Outputs: prompt (the prose - feed it to your H3 sampler), validation_report, and visual_inventory. Both JSON sockets are kept for saved-workflow compatibility and both tell you the same thing: validation is not_performed and inventoryPerformed is false. Don't read a clean run as "the prompt is valid"; nothing validated it.

How to install it

ComfyUI Manager → search LF Nodes → install → restart, or manually clone and run the pack's requirements with ComfyUI's own Python. The old lucafoscili/comfyui-lf repo is archived; use lf-nodes.

This node needs a running LM Studio server with a model loaded. Load the model key, then hand that same key to LF_LMSLoadModel and wire the nodes up:

git clone https://github.com/lucafoscili/lf-nodes
cd ComfyUI/custom_nodes && python -m pip install -r lf-nodes/requirements.txt

Common issues & troubleshooting

Connection refused. LM Studio's server isn't started, or it's on another port, or the url still points at a friend's machine. Check the "Start server" toggle before touching the node.

Temperature above 1 gets rejected. That's the native endpoint's limit, not the pack being fussy.

"ref2va requires between 1 and 9 reference images." You picked an explicit reference mode with no references, or an explicit fixed-frame mode with images attached. Set mode back to auto and let it decide.

It's slow. Two calls through a local model, with thinking enabled, plus a review pass over the whole draft. Drop reasoning to off for a fast first look, and turn review off while you're iterating on the idea.

An empty model field. That's the designed behavior on LM Studio's native route - it resolves whatever LLM instance is currently loaded. If you have two loaded, specify one.

The prompt is good and the video isn't. That's the usual ceiling, and it's worth internalizing before you spend an evening on it: a passing prompt review proves nothing about the render. Identity drifts between shots even when the prompt holds. Review catches lazy writing, not bad video.

Category✨ LF Nodes/LLM

Inputs (19)

NameTypeDefaultDescription
intentSTRINGA short idea is enough, e.g. walking from behind in a medieval town. Add reference roles or constraints only when you want to override the automatic choices.
modeCOMBOautoAuto uses text generation without images and reusable references with images. Choose i2va/fl2va/l2va only for fixed first/last frames.
duration_secondsFLOAT6.0000.001–5999.999Exact target video duration in seconds.
urlSTRINGhttp://127.0.0.1:1234/api/v1/chatLM Studio native /api/v1/chat endpoint. This route supports blank-model discovery, vision, and the pipeline reasoning profiles.
imageoptIMAGEPicture 1 (or an ordered image list). Connect more references below; different sizes are preserved.
modeloptSTRINGOptional model identifier. A blank native LM Studio request uses its sole loaded LLM instance.
temperatureoptFLOAT0.20–1Response randomness shared by every stage.
reasoningoptCOMBOvisionVision reasons while inspecting or reviewing pixels; other profiles apply to every stage.
ui_widgetoptLF_CODE—
reviewoptBOOLEANtrueReview the completed prompt against your idea and images. Off returns the writer's prose directly.
image_2optIMAGENext ordered Picture reference; no shared size required.
image_3optIMAGENext ordered Picture reference; no shared size required.
image_4optIMAGENext ordered Picture reference; no shared size required.
image_5optIMAGENext ordered Picture reference; no shared size required.
image_6optIMAGENext ordered Picture reference; no shared size required.
image_7optIMAGENext ordered Picture reference; no shared size required.
image_8optIMAGENext ordered Picture reference; no shared size required.
image_9optIMAGENext ordered Picture reference; no shared size required.
instructionsoptSTRINGOptional authoring direction alongside the H3 writing guidance.

Outputs (3)

NameTypeDescription
promptSTRINGPrompt prose returned by the writer or optional reviewer, without schema compilation.
validation_reportJSONAuthoring status on the legacy report socket; no format validation is performed.
visual_inventoryJSONOrdered reference receipt; images are read directly without an intermediate facts ledger.