My Prompt π
Click Your Prompt Together Instead of Typing It β My Prompt's Word-Chip Builder
- prompt
My Prompt is exactly what the π in its name promises: a visual prompt builder. Instead of typing soft lighting, golden hour, bokeh from memory for the hundredth time, you open a modal, click chips from categorized tabs, and the node assembles the comma-separated string for you. It's the answer to a specific, common ComfyUI annoyance - the prompt you keep re-typing and mistyping on every workflow.
In plumbing terms, this is a value node wearing a fancy UI. The ComfyUI-ecosystem docs frame those as the fix for repetition and illegibility: one value, defined once, fanned out to every consumer. My Prompt produces a single STRING output you wire straight into your CLIP Text Encode positive - one authoritative prompt source instead of a text box you edit in three places and forget to keep in sync.
How it works
The Python side of this node is almost embarrassingly thin. My_Prompt.run() just takes the prompt string it's handed and passes it through unchanged. All the actual intelligence lives in the frontend, in web/my_prompt.js - a ComfyUI extension, written in vanilla JS with zero dependencies, that adds an βοΈ Open Prompt Builder button to the node and opens the modal.
The word library is stored server-side in my_prompt_data.json, sitting next to the Python file. The frontend loads it over GET /my_prompt/data, and saves your category edits and presets back over POST /my_prompt/data; there's a POST /my_prompt/reset route to restore the built-in defaults. The current prompt is persisted inside the workflow itself via onSerialize/onConfigure, so it survives save and reload like any other widget value.
The inputs and outputs that matter
There's only one of each, and you can't get lost:
prompt(optional, multiline STRING, default"") - the current prompt. The extension disables this widget and uses it as a read-only preview on the node; you edit the real value in the modal and hit β Apply.prompt(output, STRING) - the assembled prompt, ready to plug into a CLIP Text Encode or any node that takes a string. This is not an output node, so you must wire it somewhere or nothing happens.
The interactions are where this node earns its keep. Single-click a chip and it's added with a comma; double-click adds it with a space; click an active chip again to remove it; right-click any word for a weight slider that wraps it as (word:1.30). Hovering a word highlights where it appears in the textarea, search filters across both words and tooltips in real time, and the whole library is alphabetical automatically.
The one thing to know about weights
The token-weight feature is only meaningful on CLIP-encoded models - SDXL, Pony, Illustrious, NoobAI. Our prompt-engineering essay spells out the catch: (word:1.3) attention weights are silently discarded by the LLM-encoded models that dominate new releases. So if you're running Flux 2 Klein, Z-Image, or anything with a Qwen/T5-style encoder, the weight slider is decorative. The chip-clicking and presets still work fine - the weight just won't change anything.
Installing it
No dependencies, no model downloads, no API key. Clone and restart:
cd ComfyUI/custom_nodes
git clone https://github.com/fabricemantion-wq/comfy-my-prompt
Restart ComfyUI and the node appears under My_Nodes β text β My Prompt π. It's registered on comfy.icu so it should also turn up in ComfyUI Manager's search, but the README only guarantees the clone route.
Gotchas worth knowing
- The word library is global, not per-workflow. Every My Prompt node everywhere shares the same
my_prompt_data.json- same for presets. Edit a category and every workflow sees it. - You can hand-edit that JSON in a text editor to bulk-load words (words are plain strings or objects with an
enkey plus a tooltip key), but it must stay valid JSON or the node stops loading it. The in-modal sidebar is the safer path. - The Reset button nukes your custom library back to the defaults, so export a JSON backup first if you've built something you care about.
It's a niche tool - if you paste the same three prompts everywhere, the value is real; if you write a novel every generation, it's overhead. For the tag-tweaker crowd, the click-to-assemble flow plus hover highlighting makes it the friendliest prompt editor ComfyUI has right now.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| promptopt | STRING | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | β |