Multi Text to GPTPrompt 🐼
Multi Text to GPTPrompt 🐼 — ComfyUI Node Guide
- STRING
What it is
The name is a bit misleading - despite "GPTPrompt" in the title, this node doesn't call any API and doesn't run any model at all. Check the inputs: there's no model field anywhere in its schema. What it actually does is pure text formatting: it takes two labeled pieces of text and stitches them into one combined instruction block, wrapped around a prompt template. It's a preparation step, not a generation step - you build the combined text here, then hand it off to whatever LLM node (this pack's Text to Prompt, or an external chat node) is actually going to read it.
The README explains exactly what this is for: combining what a captioner like moondream produces with what a Danbooru tagger like wd-swinv2-tagger-v3 produces, formatted as a single instruction meant for a "7b-level" chat model (the README specifically mentions qwen1.5-7b and deepseek-ai/deepseek-vl-7b-chat) to merge into one clean description. This node builds that merged instruction; it doesn't run the 7B model itself.
How it works
It takes your two text inputs, prefixes each with a label, and assembles everything under a top-level instruction. Nothing more complicated than string concatenation with labels - but the labeling and the instruction wrapper are exactly the structure a downstream chat model needs to reliably treat the two inputs as separate, related pieces of context rather than one run-on block of text.
Inputs and outputs
- prompt - the instruction wrapping the whole thing. Defaults to something like "use the 'Supplementary Description' content to add a more detailed picture description to the 'Picture Description' within 77 words" - telling a downstream model exactly how to combine the two text blocks below.
- text1 - your first text block, typically a caption from Image to Text or Image to Text with Tags.
- text2 - your second text block, typically a tag list or a second description you want folded into the first.
- text1_perfix - defaults to "Picture Description:", the label prepended to
text1. - text2_perfix - defaults to "Supplementary Description:", the label prepended to
text2. - print_output - off by default, echoes the assembled text to console if you turn it on.
Single STRING output - the fully assembled instruction block, ready to hand to whatever LLM you're actually generating with.
Installing it
Ships with the rest of the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/zhongpei/Comfyui_image2prompt
Or search "Comfyui_image2prompt" in ComfyUI Manager. (The README's own clone command is typo'd to a hyphenated URL that 404s - use the underscored one above.) Restart ComfyUI afterward. No model download involved for this node specifically - it's plain text logic.
Common issues
Expecting it to generate anything on its own. Since there's no model input, wiring this node's output straight into a sampler or save node without routing it through an actual text-generation node first will just give you back the labeled template text, unprocessed. It has to feed something like Text to Prompt (or an external LLM call) to actually get merged/rewritten.
The default prompt targets a 77-word limit as an instruction, not an enforced cutoff. Whether the downstream model respects that depends entirely on the model you route this into - this node has no way to enforce it, since it isn't generating anything itself.
Mismatched prefixes and content. If you swap what you feed into text1 and text2 without also swapping the prefix labels, the downstream model gets a "Picture Description" label on what's actually your tag list (or vice versa), which can confuse a smaller model's interpretation of which block is which. Keep the prefix and the content it's describing paired correctly.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | You must use English and use the "Supplementary Description" content to add a more detailed picture description to the "Picture Description" within 77 words. | — |
| text1 | STRING | — | |
| text2 | STRING | — | |
| text1_perfix | STRING | Picture Description: | — |
| text2_perfix | STRING | Supplementary Description: | — |
| print_output | COMBO | disable | 2 options: enable, disable |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |