Video Prompt Pixaroma
Stop hand-writing MiniMax H3 prompts
- first_frame
- last_frame
- clip
- text
- frames
- seconds
Video Prompt Pixaroma is the "type it in plain English, get a finished MiniMax H3 prompt" node. H3 wants its prompts in a particular shape - named sections, a soundscape, music, and a strict way of writing anything a person says out loud - and getting that shape wrong quietly spoils the clip. This node does all of it from a sentence like "a blacksmith hammers glowing steel in a dark forge", on your own machine, through a vision language model in your text_encoders folder. No account, nothing sent anywhere.
What makes it more than a prompt formatter is the frames output. H3 accepts durations on a specific frame pattern, and the node hands back a frame count already snapped to it - so the video is exactly as long as the prompt was written for. Getting those two out of step is the easiest way to waste a render, and this kills the whole class of bug.
You don't pick a mode - the wires do
- Wire nothing and it writes text-to-video.
- Wire one picture and it looks at it and animates it (first-frame mode).
- Wire two pictures and it writes the journey between them, joining them for you so they can't end up the wrong way round (first-and-last mode).
Inputs
first_frame(IMAGE, optional) - the picture the video starts on; connecting it switches to first-frame mode.last_frame(IMAGE, optional) - the picture the video ends on; connecting this as well switches to first-and-last mode.clip(optional) - wire a CLIP Loader here to use that model instead of the one chosen in settings. Handy for sharing a single loaded model between several of these nodes.
Outputs
text- the finished H3 prompt; wire it into the prompt/text input of your H3 node.frames(INT) - how many frames to render, already adjusted to H3's pattern; wire it into the length input.seconds(FLOAT) - the real duration (frames ÷ frame rate), for anything that has to line up with the video, like the length of an audio track.
Everything the node says is editable: the wording it follows lives in the settings, kept outside the plugin folder so updates never overwrite your edits, and you can switch the length instructions off entirely and use your own for any video model you like. A Free VRAM switch hands memory back to your video model once the prompt is written.
The model it needs
Because it has to see pictures, it needs a vision model: the reference is qwen3-vl-8b-heretic-1.3.0_fp8_e4m3fn.safetensors (about 10 GB, 12 GB+ cards) with a 4B build for 8 GB. Drop it in ComfyUI/models/text_encoders/; the node finds a suitable model by itself if you have one.
Install
Pixaroma pack, standard drill: ComfyUI Manager → search Pixaroma → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://gitlab.com/pixaroma/comfyui-pixaroma.git
The honest note: this node writes the prompt; it doesn't run H3. Pair it with your H3 sampler workflow, and give the vision model and the video model separate VRAM headroom - running a 10 GB vision encoder and H3 on the same card is where memory errors come from. And after an update, hard-refresh the tab (Ctrl+Shift+R / Cmd+Shift+R) if a node looks stale.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| first_frameopt | IMAGE | The picture the video starts on. Connecting this switches the node to first-frame mode, so it describes what it sees and animates it. Leave it empty for text to video. | |
| last_frameopt | IMAGE | The picture the video ends on. Connecting this as well as a first frame switches the node to first-and-last mode, where it writes the movement from one picture to the other. On its own, with no first frame, it is treated the SAME as a first frame: the node describes that picture and animates FROM it, not towards it. There is no last-frame-only mode, so wire a first frame too if you want the movement to end on this picture. | |
| clipopt | CLIP | Optional. Wire a CLIP Loader here to use that model instead of the one chosen in the node's settings. Handy for sharing a single loaded model between several of these nodes. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| text | STRING | The finished MiniMax H3 prompt. Wire it into the prompt or text input of your H3 node. |
| frames | INT | How many frames to render, already adjusted to the pattern H3 accepts. Wire this into the length input of your H3 node so the video is exactly as long as the prompt was written for. |
| seconds | FLOAT | How long the video will really be in seconds, which is the frame count divided by the frame rate. Use it for anything that has to line up with the video, such as the length of an audio track. |