Nodes/Prompt Factory/🎬 Composition
ComfyUI Node

🎬 Composition

The node that frames the shot — and quietly writes your quality tags

By satche·Created 2 years ago·Updated about a year ago· 5
🎬 Composition
    • STRING
    prefixscore_9, score_8_up, score_7_up
    camera_framerandom
    camera_anglerandom
    effectstrue
    seed0

    Meet the node

    🎬 Composition is the cinematographer of Prompt Factory. It decides how the camera sees the scene: camera_frame (close-up, upper body, full body), camera_angle (straight-on, from above, from below, from side, from behind), and a prefix that defaults to score_9, score_8_up, score_7_up.

    That prefix is the sneaky valuable part, and it's why I'd reach for this node even if I skipped the rest of the pack. Those score tags are the quality formula for the Pony family and, by inheritance, a lot of Illustrious/NoobAI derivatives - models trained on quality-rated data genuinely respond to them. And because earlier keywords get stronger attention on these encoders, a quality prefix leading the prompt is worth real points. So this node is quietly doing your quality boilerplate, and the prefix is editable right in the node if your checkpoint wants a different incantation - masterpiece, best quality, very aesthetic is the Illustrious-style alternative.

    effects is a plain boolean toggle, on by default. Leave it alone unless you're deliberately stripping the output down.

    How it behaves

    Same config-driven, seed-driven tag selection as the rest of the pack. camera_frame and camera_angle default to random; set either to a concrete value to pin the shot, or none to drop it. Output is a single STRING - the prefix plus the framing and angle tags - which you merge with the Character, Clothes and Environment fragments via MergeStrings, then feed to CLIPTextEncode.

    One gotcha worth knowing if you edit the prefix: these tag models are trained on spaces, and the community rule is "replace underscores with spaces" (score_7 is the one accepted exception). The pack's outputs are already space-separated, so you're fine out of the box - but if you hand-edit, write straight on, not straight_on.

    Install

    Pack-level: ComfyUI Manager → search "Prompt Factory", or by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/satche/comfyui-prompt-factory
    pip install -r requirements.txt
    

    No models, just dpath and numpy; restart after install. If the clone 404s, Manager or comfy node registry-install comfyui-prompt-factory both work.

    Troubleshooting

    • No framing tags in the output: camera_frame and camera_angle are probably set to none. Set them back to random or a concrete value.
    • Quality looks off for your checkpoint: edit the prefix. If your model is Illustrious-flavored rather than Pony-flavored, try the masterpiece, best quality family.
    • Want the same framing across a batch: keep the seed fixed - a locked seed gives you a reproducible shot.
    Category⚙️ Prompt Factory/⭐️ My Nodes

    Inputs (5)

    NameTypeDefaultDescription
    prefixSTRINGscore_9, score_8_up, score_7_up
    camera_frameCOMBOrandom5 options: random, close-up, upper body, full body, none
    camera_angleCOMBOrandom7 options: random, straight-on, from above, from below, from side, from behind, +1
    effectsBOOLEANtrue
    seedINT00–18446744073709550000

    Outputs (1)

    NameTypeDescription
    STRINGSTRING