ComfyUI Node

weight3Text

Three prompt blocks, three weight sliders, one CLIP-weighted prompt

By sp8999·Created 6 months ago·Updated 6 months ago· 8
weight3Text
    • text
    text_1
    weight_11.00
    text_2
    weight_21.00
    text_3
    weight_31.00

    weight3Text is the pack's fixed-format combiner: exactly three text blocks, each with its own weight slider, merged into one prompt where each block gets wrapped in the emphasis syntax (text:weight) automatically. If you've ever typed (detailed face:1.3), (studio lighting:1.2), (blue dress:1.1) by hand and then had to edit three separate places, this node is you. You set the slider, it does the wrapping.

    How it works

    Each of the three inputs is a pair: a multiline text box and a weight float. The weight range is 0 to 1.95 in steps of 0.05, defaulting to 1. When the node runs, it applies the emphasis rule from the pack's utils.py:

    • weight exactly 1 → the text passes through unwrapped (no syntax noise when you don't need emphasis)
    • any other weight → wrapped as (your text:1.35)
    • empty text, or a weight of 0 → skipped entirely

    The surviving blocks are joined with ", " and come out as one string. So you end up with something like character, (detailed face:1.4), (dark background:0.8) - and if you drop a weight to 0, that block simply vanishes from the output, which is a neat way to A/B-test a fragment without deleting it.

    The inputs that matter:

    • text_1 / text_2 / text_3 - the three multiline blocks.
    • weight_1 / weight_2 / weight_3 - per-block emphasis, 0–1.95.
    • text - the output string, ready for a CLIP Text Encode.

    The honest caveat about emphasis

    The (text:weight) syntax is CLIP attention weighting, and it only works on models whose text encoder actually parses it - SD 1.5, SDXL, and their derivatives. On LLM-encoded models (Anima, Chroma, and the newer instruction-following text encoders), that syntax is not a control signal; it's fed to the encoder as literal punctuation inside your prompt, which is worse than nothing. So this node is genuinely useful on a Pony or Illustrious workflow, and actively counterproductive on an LLM-encoded one - there you'd just write your emphasis in words. The knowledge base's prompt-engineering doc is blunt about this, and it's the biggest "gotcha" on the page. Also note the cap: 1.95, not 2.0, which is this author's choice and honestly a fine one - past ~1.5 you're mostly buying oversaturation anyway.

    When to pick it vs. the siblings

    Three fixed blocks is a small, honest surface - no dynamic slots, no JS magic beyond the weight display. If your prompt has a stable structure (subject / style / quality tags), weight3Text is the least surprising node in the family. If you need more than three fragments or variable counts, go weightMultiText, which is this same mechanism with up to 20 dynamic pairs.

    Installation

    No dependencies, no downloads. Install once via ComfyUI Manager (search ComfyUI-Text-Utils-sp) or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/sp8999/ComfyUI-Text-Utils-sp.git
    

    Restart ComfyUI, find it under text_utils_sp. Per the README it's tuned for the Nodes 2.0 frontend - on the older v1 renderer the widgets work but can render at the wrong size.

    Categorytext_utils_sp

    Inputs (6)

    NameTypeDefaultDescription
    text_1STRING
    weight_1FLOAT1.000–1.95
    text_2STRING
    weight_2FLOAT1.000–1.95
    text_3STRING
    weight_3FLOAT1.000–1.95

    Outputs (1)

    NameTypeDescription
    textSTRING