Visualizer Agent Prompt Nodes
Build visual prompts: assemble prompt parts, apply styles, finalize prompts and unpack them into compiled positive/negative prompt strings. Generation itself happens through the generation nodes, and ready-made flows live in Visualizer Agent Modules.
Apply Style behavior change in 0.39.0
Apply Style now resolves its template_id directly to a style template. Passing the literal UNSPECIFIED as the template id no longer applies the configured art style — it applies nothing. For configuration-driven styles (the active art style, plus the subject style for a vis_type), use Apply Styles instead.
10 nodes.
| Node | Registry path |
|---|---|
| Apply Style | agents/visual/ApplyStyle |
| Apply Styles | agents/visual/ApplyStyles |
| Visual Enum Values | agents/visual/EnumValues |
| Finalize Prompt | agents/visual/FinalizePrompt |
| Generation Running | agents/visual/GenerationRunning |
| Mark As Reference | agents/visual/MarkAsReference |
| Visual Prompt | agents/visual/Prompt |
| Visual Prompt Part | agents/visual/PromptPart |
| Visual Settings | agents/visual/Settings |
| Unpack Visual Prompt | agents/visual/UnpackPrompt |
Apply Style
agents/visual/ApplyStyle
Applies a specific style template (by template id) to a visual prompt, inserting it at the front of the prompt's part list and modifying the prompt in place.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
The graph state |
prompt |
visual/prompt |
The visual prompt to apply the style to |
template_id |
str |
The id of the style template to apply |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
The graph state, passed through |
prompt |
visual/prompt |
The prompt with the style applied |
template_id |
str |
The template id, passed through |
prompt_part |
visual/prompt_part |
The prompt part created from the style template (None if the template was not found) |
Apply Styles
agents/visual/ApplyStyles
Applies the configured style templates to a visual prompt: the active art style plus the subject style matching the given vis_type. Matching styles are inserted at the front of the prompt's part list, modifying the prompt in place.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
The graph state |
prompt |
visual/prompt |
The visual prompt to apply styles to |
vis_type |
str |
The type of visual to apply styles for (optional) |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
The graph state, passed through |
prompt |
visual/prompt |
The prompt with the styles applied |
vis_type |
str |
The vis_type, passed through |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
vis_type |
str |
"UNSPECIFIED" |
The type of visual to apply styles to. Choices: UNSPECIFIED, CHARACTER_CARD, CHARACTER_PORTRAIT, SCENE_CARD, SCENE_BACKGROUND, SCENE_ILLUSTRATION, OBJECT_ILLUSTRATION. |
Visual Enum Values
agents/visual/EnumValues
Returns the possible values of one of the visual agent's enums (VIS_TYPE, GEN_TYPE, FORMAT_TYPE or PROMPT_TYPE), selected via the enum property.
Outputs
| Output | Type | Description |
|---|---|---|
values |
list |
The list of the enum's values |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
enum |
str |
"VIS_TYPE" |
The enum to get the values of. Choices: VIS_TYPE, GEN_TYPE, FORMAT_TYPE, PROMPT_TYPE. |
Finalize Prompt
agents/visual/FinalizePrompt
Applies the visualizer's prompt finalization (post-processing actions) to a positive / negative prompt string pair.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
graph state (required — wire through any gating switch so the node is skipped when its output would be discarded) |
positive_prompt |
str |
positive prompt string (required) |
negative_prompt |
str |
negative prompt string (optional) |
vis_type |
str |
type of visual the prompts are for (optional) |
character_name |
str |
character the prompts involve, enables character level finalizers (optional) |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
graph state (passed through) |
positive_prompt |
str |
finalized positive prompt |
negative_prompt |
str |
finalized negative prompt |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
vis_type |
str |
"UNSPECIFIED" |
The type of visual the prompts are for. Choices: UNSPECIFIED, CHARACTER_CARD, CHARACTER_PORTRAIT, SCENE_CARD, SCENE_BACKGROUND, SCENE_ILLUSTRATION, OBJECT_ILLUSTRATION. |
Generation Running
agents/visual/GenerationRunning
Whether image generations for a purpose are still running in the active scene. A generation counts from its request until its image is saved, or until it fails or is cancelled. The purpose is the one given to the Visual Generation Request (or to Generate Visual Asset).
Inputs
| Input | Type | Description |
|---|---|---|
purpose |
str |
(optional) The purpose to check |
Outputs
| Output | Type | Description |
|---|---|---|
running |
bool |
True while at least one generation for the purpose runs |
count |
int |
How many generations for the purpose are running |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
purpose |
str |
"" |
The purpose to check |
Mark As Reference
agents/visual/MarkAsReference
Prepares an image as a reference candidate for later generations:
analyses it when a vision backend is available and it has no analysis
yet, tags it from its analysis, and marks it as a reference for the
generation types its own type can serve (a portrait for portraits, cards,
scene cards and scene illustrations, a background for backgrounds, scene
illustrations and character cards). A failed step does not stop the
next. An image without a type is not marked; errors says so.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
graph state (required) |
asset_id |
str |
the image to prepare |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
graph state (passed through) |
asset_id |
str |
the image (passed through) |
marked |
bool |
whether the image is now marked as a reference |
analyzed |
bool |
whether an analysis was added |
tagged |
bool |
whether tags were added |
errors |
list |
the failed steps, each as a dict with step and message |
Visual Prompt
agents/visual/Prompt
Creates a visual prompt from a list of prompt parts. The prompt_type controls how the parts are compiled into the final positive / negative prompt strings (comma-separated keywords or descriptive prose).
Inputs
| Input | Type | Description |
|---|---|---|
prompt_type |
str |
(optional) The type of prompt to create (KEYWORDS or DESCRIPTIVE) |
parts |
list |
(optional) List of visual prompt parts to combine |
Outputs
| Output | Type | Description |
|---|---|---|
prompt |
visual/prompt |
The created visual prompt |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
prompt_type |
str |
"DESCRIPTIVE" |
The type of prompt to create. Choices: KEYWORDS, DESCRIPTIVE. |
Visual Prompt Part
agents/visual/PromptPart
Creates a visual prompt part from instructions, keyword lists and descriptive text. Prompt parts are combined into a visual prompt (via the Prompt node), which compiles the final positive / negative prompts from them. Keyword inputs given as a single string are split on ", ", and positive keywords prefixed with "no " (e.g. "no glasses") are treated as implied negative keywords.
Inputs
| Input | Type | Description |
|---|---|---|
instructions |
str |
(optional) Free-form instructions for the prompt part |
positive_keywords_raw |
list,str |
(optional) Positive keywords as a list or comma-separated string |
negative_keywords_raw |
list,str |
(optional) Negative keywords as a list or comma-separated string |
positive_descriptive |
str |
(optional) Descriptive (prose) positive prompt text |
negative_descriptive |
str |
(optional) Descriptive (prose) negative prompt text |
Outputs
| Output | Type | Description |
|---|---|---|
prompt_part |
visual/prompt_part |
The created visual prompt part |
instructions |
str |
The instructions (passed through) |
positive_keywords_raw |
list |
Raw positive keywords, including any "no ..." entries |
negative_keywords_raw |
list |
Raw negative keywords (passed through) |
implied_negative_keywords |
list |
Keywords derived from "no ..." positive keywords |
positive_keywords |
list |
Positive keywords with "no ..." entries removed |
negative_keywords |
list |
Raw negative keywords plus the implied negative keywords |
positive_descriptive |
str |
Descriptive positive text (passed through) |
negative_descriptive |
str |
Descriptive negative text (passed through) |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
instructions |
text |
"" |
The instructions for the prompt part |
positive_keywords_raw |
list |
[] |
The positive keywords for the prompt part |
negative_keywords_raw |
list |
[] |
The negative keywords for the prompt part |
positive_descriptive |
text |
"" |
The positive descriptive for the prompt part |
negative_descriptive |
text |
"" |
The negative descriptive for the prompt part |
Visual Settings
agents/visual/Settings
Base node to render visual agent settings.
Every setting of the visual agent is exposed as an output socket named after the setting - see the agent's documentation under Agents for what each setting does.
Unpack Visual Prompt
agents/visual/UnpackPrompt
Unpacks a visual prompt into its parts and the compiled prompt strings. Use this to access the final positive / negative prompts (built according to the prompt's prompt_type) or the keyword-only / descriptive-only variants regardless of the prompt type.
Inputs
| Input | Type | Description |
|---|---|---|
prompt |
visual/prompt |
The visual prompt to unpack |
Outputs
| Output | Type | Description |
|---|---|---|
prompt |
visual/prompt |
The visual prompt (passed through) |
parts |
list |
The prompt's list of prompt parts |
prompt_type |
str |
The prompt type (KEYWORDS or DESCRIPTIVE) |
instructions |
str |
Combined instructions from all parts |
positive_prompt |
str |
Positive prompt compiled according to prompt_type |
negative_prompt |
str |
Negative prompt compiled according to prompt_type |
positive_prompt_keywords |
str |
Positive prompt compiled as comma-separated keywords |
negative_prompt_keywords |
str |
Negative prompt compiled as comma-separated keywords |
positive_keywords |
list |
Positive keywords of all parts as a list ("no X" keywords excluded) |
negative_keywords |
list |
Negative keywords of all parts as a list (implied "no X" negatives included) |
positive_prompt_descriptive |
str |
Positive prompt compiled as descriptive text |
negative_prompt_descriptive |
str |
Negative prompt compiled as descriptive text |