Nodes/IAMCCS-nodes/MiniMax H3 Lumos Prompt Enhancer
ComfyUI Node

MiniMax H3 Lumos Prompt Enhancer

Use H3's own text encoder to rewrite H3 prompts

By IAMCCS·Created 11 months ago·Updated 5 days ago· 113
MiniMax H3 Lumos Prompt Enhancer
  • clip
  • cine_linx
  • reference_image
  • enhanced_prompt
  • report
segment_index0
instructionRewrite the shot as a precise MiniMax H3 prompt. Preserve intent. Include camera, motion, continuity and audio timing. Return only the final prompt.
max_new_tokens768
temperature0.30
seed42

MiniMax H3 ships with a Qwen3-VL text encoder that's a real multimodal LLM - not a passive tokenizer. The Lumos Prompt Enhancer exploits exactly that: it feeds your shot's plain-language prompt to that same clip model and asks it to rewrite it into a sharper, H3-native prompt, then hands the result back as a string you can condition on. It's prompt engineering as a node, and it costs you nothing extra because the encoder is already loaded.

How it works

The node pulls the current segment's source prompt out of the shot plan (cine_linx + segment_index), builds a request from your instruction text plus the source prompt, and calls clip.generate() - the text-generation path on the H3 CLIP object - with your max_new_tokens, temperature, seed, and some sensible decoding defaults (top_k 50, top_p 0.92, repetition penalty 1.05). It then strips and returns the generated string as enhanced_prompt.

The default instruction is worth reading, because it's the whole philosophy in one sentence: "Rewrite the shot as a precise MiniMax H3 prompt. Preserve intent. Include camera, motion, continuity and audio timing. Return only the final prompt." H3 responds well to explicit camera language and audio timing cues, so the default prompt is nudging the model to add exactly those.

The optional reference_image input is the interesting one: Qwen3-VL is vision-capable, so if you connect a frame (say, the segment's keyframe), the rewrite can see the scene rather than only reading the text. Same for how it's tokenized - images get passed into clip.tokenize() alongside the text.

The knobs that matter

  • instruction - the rewrite directive. Tune this rather than fighting the defaults; "make it more cinematic" and "keep it dead literal" are legitimate different instructions.
  • temperature - default 0.3. Low, deliberately. This is a rewrite task, not creative writing; crank it only if the output is coming out robotic.
  • max_new_tokens - default 768, up to 4096. Generous, but the default instruction demands "only the final prompt", so long outputs are usually a sign the instruction wasn't followed.
  • seed - reproducibility for the generation.

Outputs

enhanced_prompt (STRING) and report. The output plugs into a conditioning backend's prompt_override, or anywhere a prompt string is expected - you can even chain it into a text preview to eyeball the rewrite before you render.

Installing it

ComfyUI Manager (search "IAMCCS") or git clone https://github.com/IAMCCS/IAMCCS-nodes.git into custom_nodes, restart. No extra packs - the LLM is the H3 clip itself, which is the entire trick.

Where people get burned

The number one mistake is expecting this to work without the H3 CLIP connected - the node requires a clip input, and a generic text encoder won't have a generate path. Second, the rewrite inherits the plan's source prompt, so if the plan is empty, the model is rewriting a blank line. Check that the Shotboard plan actually has prompts before blaming Lumos. And remember this is a string transformer - it doesn't touch your conditioning; wire its output where you want the new prompt to actually take effect.

CategoryIAMCCS/MiniMax H3

Inputs (8)

NameTypeDefaultDescription
clipCLIP
cine_linxIAMCCS_SUPERNODE_LINX
segment_indexINT00–1000000
instructionSTRINGRewrite the shot as a precise MiniMax H3 prompt. Preserve intent. Include camera, motion, continuity and audio timing. Return only the final prompt.
max_new_tokensINT76864–4096
temperatureFLOAT0.300–2
seedINT420–18446744073709550000
reference_imageoptIMAGE

Outputs (2)

NameTypeDescription
enhanced_promptSTRING
reportSTRING