text_interPrompt
Text_interPrompt
- image
- light3d_prompt
- camera_prompt
- color_prompt
- light2d_prompt
- position_prompt
Good video prompting isn't one sentence, it's several dimensions working at once: lighting, camera movement, color, 2D effects, subject position. People end up cramming all of it into one prompt box and letting the model sort it out - which works about as well as you'd expect. text_interPrompt is the pack's answer: five separate prompt channels - lighting_prompt, camera_prompt, color_prompt, light2d_prompt, position_prompt - each a multiline box where every line becomes one entry in that channel's list. Feed it five channels of per-frame prompts and it hands you back five lists, aligned by line number, ready for a scheduling stack.
The README's update log calls it a "prompt visualization tool" and notes the 2026.4.27 update brought it to four modes. The idea is simple: instead of one giant text blob, you keep the dimensions visually separate so you can actually see - and edit - what the lighting is doing separately from what the camera is doing.
What it actually does
Mechanically it's almost embarrassingly simple, and that's the point. Each multiline input is split on newlines into a list; each line that's non-empty becomes an entry. The five inputs produce five outputs - light3d_prompt, camera_prompt, color_prompt, light2d_prompt, position_prompt - each a list (the node marks every output is_list), so the nth line of every box corresponds to the nth frame or nth segment of your video. You can also connect an optional image, and the node's IS_CHANGED hook keys on the prompt text so it re-runs only when your text actually changes.
The names tell you the intended split: 3D lighting, camera moves, color grade, 2D effects (the light2d channel is for the flat, screen-space stuff), and subject position. How you use the five channels is up to you - the value is that they're channels, not one box.
The inputs that matter
- lighting_prompt / camera_prompt / color_prompt / light2d_prompt / position_prompt - all required (they default to empty), all multiline. One line per frame/segment per channel.
- image - optional; present for previewing contexts but not required for the text conversion.
The outputs that matter
The five lists, wired to the pack's scheduling nodes (prompt-schedule stacks, text_filter-style per-frame selection, or text_converter to rejoin per channel). Each list is is_list: true, so a downstream node expecting a list gets exactly that.
Wiring it in
For a video workflow: fill each channel's lines to match your segments, take the lists into the pack's scheduling machinery, then merge per frame and encode. For a static image it's still useful - one line per channel, then text_converter to join.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/cardenluo/ComfyUI-Apt_Preset.git
cd ComfyUI-Apt_Preset
pip install -r requirements.txt # Windows: double-click install.bat
Or ComfyUI Manager → ComfyUI-Apt_Preset.
Common issues
Alignment is the trap: the five channels are only useful if line n of each box covers the same frame/segment. If you add a line to the camera box but not the lighting box, the channels silently drift out of sync and your "lighting" for segment 3 lands on segment 4. Keep the line counts equal, or at least deliberate. Second, empty lines are dropped (each box's list contains only non-empty lines), so you can't use blank lines as alignment spacers - use a placeholder like - instead. And this node is a text-list factory, not a scheduler: it emits lists; the actual per-frame selection happens elsewhere. If you wire its output straight into a single-prompt encoder, you'll get a list where a string was expected.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| lighting_prompt | STRING | — | |
| camera_prompt | STRING | — | |
| color_prompt | STRING | — | |
| light2d_prompt | STRING | — | |
| position_prompt | STRING | — | |
| imageopt | IMAGE | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| light3d_prompt | STRING | — |
| camera_prompt | STRING | — |
| color_prompt | STRING | — |
| light2d_prompt | STRING | — |
| position_prompt | STRING | — |