Nodes/Comfy-UmiAI/Umi Prompt Preset
ComfyUI Node

Umi Prompt Preset

Your Best Prompt Fragment, Written Once

By Tinuva88·Created 10 months ago·Updated 12 days ago· 28
Umi Prompt Preset
    • prompt
    • negative_prompt
    • notes
    ◄presetanime portrait base►
    ◄placementappend►
    ◄prompt►
    ◄negative_prompt►

    Umi Prompt Preset applies one named fragment from prompt_presets.yaml to a prompt and a negative prompt, and hands both back. That's it. The reason to care is that your lighting boilerplate, your portrait scaffold, your negative defaults are all things you've typed forty times and edited into three slightly different versions. A preset file means there's one copy.

    How the merge works

    Two required inputs, preset and placement, plus optional prompt and negative_prompt (both text, so you can type into them or wire from elsewhere).

    placement decides what happens to your positive prompt:

    • append - your prompt, then the preset text (the default)
    • prepend - preset text first, then yours
    • replace - your prompt is thrown away and the preset is the whole positive

    One rule that surprises people: the preset's negative is always appended to the incoming negative, whatever placement says. Placement only governs the positive half. If a preset carries worst quality, low quality, bad anatomy as its negative, that lands on top of whatever you typed.

    The third output, notes, is a one-line confirmation - literally Preset applied: <name>. Wire it to a preview node if you want proof the widget is pointing where you think it is. If the preset name doesn't resolve, the node passes prompt and negative through untouched and notes comes back empty; it doesn't raise, which is exactly why that output is worth watching.

    What ships in the file

    Three presets out of the box, all modest on purpose: anime portrait base (1girl, solo, upper body, looking at viewer, detailed eyes with a small negative), studio lighting (soft studio lighting, clean background, balanced composition), and background detail (detailed background, environmental storytelling, coherent perspective, negative empty background, inconsistent perspective). Adding your own is the intended workflow:

    # prompt_presets.yaml in the Comfy-UmiAI folder
    night rain:
      prompt: "rain-slicked street, neon reflections, night"
      negative: "flat lighting"
      description: "Wet neon night scene."
    

    Restart ComfyUI (or reload the page) after editing - the dropdown is built when the node definition is read, so new names don't appear mid-session.

    When to use this node instead of the widget

    The Wildcard Processor already has prompt_preset and preset_placement widgets, and there's inline [preset:studio lighting] syntax you can drop anywhere in a prompt. So what's the standalone node for?

    • Workflows without the processor. You're on a plain text-encode graph and still want managed fragments.
    • Routing. Because placement is a widget, you can drive it from upstream logic - one branch prepends a style, another replaces the prompt outright.
    • Preset chaining. Run two preset nodes in series when you want a base scaffold plus a lighting layer, rather than maintaining a preset that's the union of both.

    The inline form is nicer inside a complex template, and it also supports [preset:name | include=negative] when you want only the negative half. The standalone node is the one to reach for when the preset choice itself needs to be a decision in the graph.

    Install

    No separate install - it's core, and the presets file ships with it. ComfyUI Manager (search the pack title) or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Tinuva88/Comfy-UmiAI
    cd Comfy-UmiAI && pip install -r requirements.txt
    

    pyyaml is mandatory; without it the YAML file doesn't parse and the preset list comes up empty, which looks exactly like "my presets vanished." Restart, then find the node under UmiAI/prompt.

    Where people get burned

    replace is destructive. It doesn't merge, it substitutes. If your prompt comes back as just soft studio lighting, clean background with your carefully built scene gone, that widget is why.

    Preset negatives on distilled models. Appending worst quality, low quality is harmless but pointless at CFG 1, where the negative pass isn't computed at all. Don't spend time tuning preset negatives on a Turbo-style checkpoint; put the constraint in the positive instead.

    A silently unknown name. Rename a preset in the YAML and the saved dropdown value from an old workflow no longer resolves. Nothing errors, the fragment just stops appearing - check notes.

    CategoryUmiAI/prompt

    Inputs (4)

    NameTypeDefaultDescription
    presetCOMBOanime portrait base3 options: anime portrait base, background detail, studio lighting
    placementCOMBOappend3 options: append, prepend, replace
    promptoptSTRING—
    negative_promptoptSTRING—

    Outputs (3)

    NameTypeDescription
    promptSTRING—
    negative_promptSTRING—
    notesSTRING—