Nodes/ComfyUI-Text-Utility/Parse Prompt (Full)
ComfyUI Node

Parse Prompt (Full)

The A1111-style parser with all 23 outputs on the table at once

By watarika·Created 2 years ago·Updated 10 months ago· 3
Parse Prompt (Full)
    • prompt (STRING)
    • negative_prompt (STRING)
    • seed (INT)
    • steps (INT)
    • width (INT)
    • height (INT)
    • cfg_scale (FLOAT)
    • batch_size (INT)
    • outpath_samples (STRING)
    • outpath_grids (STRING)
    • prompt_for_display (STRING)
    • styles (STRING)
    • sampler_name (STRING)
    • subseed (INT)
    • seed_resize_from_h (INT)
    • seed_resize_from_w (INT)
    • sampler_index (INT)
    • n_iter (INT)
    • subseed_strength (FLOAT)
    • restore_faces (BOOLEAN)
    • tiling (BOOLEAN)
    • do_not_save_samples (BOOLEAN)
    • do_not_save_grid (BOOLEAN)
    ◄text►

    Parse Prompt (Full) is the sibling of the pack's Parse Prompt (Custom) node: same parser, but instead of letting you pick which outputs exist, it exposes every supported field as a fixed pin. Twenty-three of them. prompt, negative_prompt, seed, steps, width, height, cfg_scale, batch_size, outpath_samples, outpath_grids, prompt_for_display, styles, sampler_name, subseed, seed_resize_from_h, seed_resize_from_w, sampler_index, n_iter, subseed_strength, restore_faces, tiling, do_not_save_samples, do_not_save_grid.

    Honest take: you usually don't want this one. A 23-pin node turns a readable workflow into spaghetti, and Parse Prompt (Custom) gives you the exact same parse with only the pins you're actually using. Reach for Full when you're porting an A1111 workflow wholesale and genuinely need most of those fields, or when you're building a template that should always carry every value. Otherwise grab Custom and add three pins.

    How it works

    Identical engine to Custom - which makes sense, they share the same PromptParser in the source. Text before the first -- becomes the main prompt; each --tag value is type-converted (ints, floats, booleans, strings). If a value can't be converted, it's ignored and the default stands. Defaults are the A1111-ish values: seed and subseed -1, steps 20, width/height 512, cfg 7.0, n_iter 1, batch_size 1. If the input has no -- at all, the whole string is treated as the prompt. A missing value prints "Tag '--xyz' is missing a value" to the console rather than crashing.

    Inputs and outputs

    • text (STRING, forceInput, multiline) - the prompt string. As with Custom, forceInput means it's built to be fed from another node.
    • The 23 outputs, each correctly typed (INT / FLOAT / BOOLEAN / STRING), in the order above.

    The typing matters: because each pin is the right type, they plug straight into their matching inputs. width/height into Empty Latent Image, seed/steps/cfg into the KSampler, negative_prompt into the negative CLIP Text Encode. No conversion nodes in the middle.

    Troubleshooting

    • -- is the parse trigger, so prompt text containing a literal double hyphen gets re-parsed rather than treated as text.
    • Multi-word values need quotes (shell-style tokenization), except for --prompt and --negative_prompt, which swallow tokens until the next --.
    • Unused fields just sit there with defaults - that's fine, but it's another reason the custom variant tends to win for day-to-day use.

    Installing

    Ships with watarika/ComfyUI-Text-Utility. ComfyUI Manager → search "ComfyUI-Text-Utility" → Install → restart, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/watarika/ComfyUI-Text-Utility
    

    No pip requirements, no models. Pure Python parsing, so nothing else to install.

    Categorytext

    Inputs (1)

    NameTypeDefaultDescription
    textSTRING—

    Outputs (23)

    NameTypeDescription
    prompt (STRING)STRING—
    negative_prompt (STRING)STRING—
    seed (INT)INT—
    steps (INT)INT—
    width (INT)INT—
    height (INT)INT—
    cfg_scale (FLOAT)FLOAT—
    batch_size (INT)INT—
    outpath_samples (STRING)STRING—
    outpath_grids (STRING)STRING—
    prompt_for_display (STRING)STRING—
    styles (STRING)STRING—
    sampler_name (STRING)STRING—
    subseed (INT)INT—
    seed_resize_from_h (INT)INT—
    seed_resize_from_w (INT)INT—
    sampler_index (INT)INT—
    n_iter (INT)INT—
    subseed_strength (FLOAT)FLOAT—
    restore_faces (BOOLEAN)BOOLEAN—
    tiling (BOOLEAN)BOOLEAN—
    do_not_save_samples (BOOLEAN)BOOLEAN—
    do_not_save_grid (BOOLEAN)BOOLEAN—