FL MiniMax H3 Parallax Prompts
One Scene In, Four Locked-Camera Plates Out
- background
- midground
- near_objects
- foreground_frame
Most prompt nodes in this ecosystem are just a text box. This one is a small opinionated prompt compiler: you describe a scene once, and it hands you four prompts for four separate generations - a distant background, a midground cluster, near-camera props, and foreground framing elements - each written so the result can be layered into a 2.5D parallax shot. The node's own one-liner is the whole design brief: "Four locked-camera plate prompts from shared role templates. The compositor supplies camera movement."
What it's for
If you've ever tried to get parallax out of a single generated frame, you know the failure: cut the image into depth bands and the revealed areas behind the cutouts are a smear. The robust way is to generate the layers separately - an opaque full-frame background, then objects isolated on clean white so they can be keyed - and let a compositor (or a depth-warp node downstream) supply the camera move. That's a boring, reliable pipeline. This node automates the tedious half: writing four prompts that actually agree with each other.
It also leans on the fact that H3 is LLM-encoded, where cleanly separated fields do real work and syntax tricks don't - you get distinct role blocks rather than one crammed sentence, which is what keeps a "background" plate from quietly becoming a cutout.
Inputs and outputs
One input: scene. Multiline, and it ships with a default example (a Japanese lakeside village at golden hour) so you can see what the author means by "scene" - environment, palette, mood, objects. It is deliberately not a composition brief; the shared text tells the model to use it "for selecting the objects, palette and lighting ONLY."
Four outputs, all strings: background, midground, near_objects, foreground_frame. Wire each into its own generation pass. With H3 they're already in the model's prompt envelope - each output opens with integrated_multimodal_description: [Shot 1] and closes with overall_soundscape and non_diegetic_music lines - so they drop straight into an H3 conditioning node. Nothing stops you using them with an image model that ignores that structure, either; it just reads as prose with a header.
What the four prompts actually enforce
Every output gets the same backbone: a fixed-camera instruction (stable framing, gentle local motion only, no pan/zoom/orbit/cuts), a style line, and a ban on text, captions, logos and contact sheets. Then the roles diverge:
background- the distant environment filling the entire frame, opaque and complete edge to edge, with an explicit warning never to use a white studio backdrop. That's the plate everything else sits on, and a background that comes back partly white ruins the composite.midground- one coherent cluster of the scene's principal mid-distance landmarks (buildings, a shrine, larger structures), isolated on perfectly uniform pure white, sitting in the lower-middle of the canvas with its base near 85% of image height. No sky, no horizon, no ground plane, no shadows on the white.near_objects- a few near-camera details in two asymmetrical groups, lower-left and lower-right, separated by a broad empty middle, in the lower 40% of the canvas, again on uniform white. It's told not to redraw the central landmark, which is what keeps this layer from duplicating the midground.foreground_frame- one or two large decorative elements (overhanging branch, awning edge, hanging details) near the upper corners curving inward, with at least 70% of the canvas left empty white.
The three cutout prompts also carry a trailing line reinforcing that the white background occupies most of the image. It's the kind of redundancy you only add after watching a model ignore the instruction once.
The node is pure string templating - deterministic, instant, no model, no VRAM, no dependencies. The only error it can raise is on an empty scene (Describe the scene for the parallax plates.).
Install
ComfyUI Manager, search FL MiniMax H3, or:
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI-FL-MiniMaxH3.git
Restart ComfyUI. It's part of the same pack as the MiniMax H3 sampler and refinement nodes, but this one needs none of them - no H3 model, no MAINodes, no VAEs. If you used to get it through ComfyUI_Fill-Nodes, update Fill Nodes to a build where the MiniMax nodes have been removed first, or you'll register the same node twice.
Where people get burned
White is not a neutral background in your scene. If your world has snow, white walls, paper screens or a bright overcast sky, models put them in the cutout plates and your key has holes. Pick scenes with colour where the layers will be.
The plates don't line up by themselves. Nothing here does depth estimation, warping, or inpainting; you still need a compositor, and you'll still need to fill whatever the camera move reveals behind each cutout. The template just guarantees the layer prompts describe compatible framing.
Don't add camera motion to the plate prompts. "Slow push in" in a plate prompt gives you a plate with baked-in perspective drift, and then the compositor adds another move on top. Locked camera on the plates, motion in the comp - that's the deal the node is built around.
Expect to iterate on background first. Every other layer is keyed against it, so get an opaque, complete, well-lit backdrop before you spend generations on cutouts.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| scene | STRING | A peaceful Japanese lakeside village at golden hour, blue mountains, warm wooden houses and a small shrine by the water, flowering cherry branches and reeds. No people. | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| background | STRING | — |
| midground | STRING | — |
| near_objects | STRING | — |
| foreground_frame | STRING | — |