Prompt Text (Lumina 2)
The <Prompt Start> sandwich Lumina 2 needs
- combined_prompt
Some models expect your prompt in a very particular envelope. Lumina 2 is one of them: it wants a system prompt, then a literal <Prompt Start> marker, then your actual prompt. Get the envelope wrong - forget the marker, put it in the wrong place - and the model reads your words as instructions about instructions instead of a request to draw.
Prompt Text (Lumina 2) assembles that envelope for you. Two text boxes in, one correctly-formed prompt out.
How it works
Two multiline inputs:
system- the system prompt portion.prompt- your actual user prompt / image request.
The output combined_prompt is built as system + the marker + prompt, where the marker is a newline, <Prompt Start>, and another newline:
<system prompt text>
<Prompt Start>
<user prompt text>
That's the whole job - and it's exactly the kind of thing that's trivial to get subtly wrong by hand, because the marker has to sit on its own line in a precise spot.
The natural pairing
This node sits in the lumina2 category of the pack for a reason: Sage Utils also ships a System Prompt (Lumina 2) node (Sage_SystemPrompt) that picks from a set of Lumina 2 system prompts - "superior (lumina)", "alignment (lumina)", and a few others - with full text baked in. The intended flow is:
- System Prompt (Lumina 2) →
systeminput here - your prompt text →
promptinput here combined_prompt→ the CLIP text encode / conditioning node for your Lumina 2 model
If you don't have a system prompt handy, the pack's system-prompt node is where you get one without pasting a paragraph from a model card.
Why the envelope matters
Lumina 2 is one of the models in the "your prompt is a chat turn, not a token bag" camp - the encoder reads the prompt like an instruction. When the system/user split isn't marked, the model has to guess which part is context and which part is the request, and guessing is where "draw a red car" becomes "talk about drawing a red car." The marker is how the model knows the instruction has started. This node removes that ambiguity from your workflow instead of leaving it to your typing.
Installation
Sage Utils install - ComfyUI Manager, search "Sage Utils", or:
cd ComfyUI/custom_nodes
git clone https://github.com/arcum42/ComfyUI_SageUtils
cd ComfyUI_SageUtils
pip install -r requirements.txt
Restart ComfyUI. Only dependency is dynamicprompts; no models to download.
The honest take
It's a string formatter with one formatting rule, and if you're not using Lumina 2 you'll never touch it. But when you are, it's the difference between guessing the <Prompt Start> placement on a model whose quirks you're still learning, and having the format handled correctly every single time. Paired with the pack's system-prompt node, it makes the whole Lumina 2 prompt path a two-node setup.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| system | STRING | The system prompt portion for Lumina 2. | |
| prompt | STRING | The user prompt portion for Lumina 2. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| combined_prompt | STRING | The combined system and user prompt for Lumina 2. |