Unified Autoprompter X
One node that writes the prompt your target model actually wants
- image
- prompt
- positive
- negative
The hardest part of prompting in 2026 isn't coming up with ideas - it's that every model wants a different dialect. Flux wants natural prose. SDXL finetunes want tags. Ideogram, Qwen image, Wan, LTX and the rest each have their own conventions, and a prompt that sings on one will flop on another. Unified Autoprompter X is WorkflowX's shot at retiring that problem: you pick your target_model from a 13-way list (ideogram4, sdxl, qwen_image, flux1_dev, flux2_dev, flux_klein, z_image, wan2_2, ltx_2_3, krea2, minimax_h3 variants, and one more), and the node generates a prompt in the format that model's ecosystem expects.
The flow is: give it a rough idea or a reference image, hit generate, and it produces a prompt tailored to the target model's conventions, in your chosen prompt_format - natural, tags, or json. The backend is a menu, like the rest of this pack's prompting layer: Gemini, OpenAI-compatible, Ollama, or a local GGUF model. So it can run offline with a local LLM, or lean on an API. Everything you generate lands in UI-managed fields (generated_positive, generated_negative, final_prompt) that you can edit by hand before it runs.
Outputs and what to do with them
prompt(STRING) - the final selected-format prompt.positive(STRING) - the positive channel, straight into a CLIP Text Encode.negative(STRING) - the negative channel, whennegative_enabledis on.
Optional inputs add range: image (IMAGE) gives the generator a visual reference to describe; bbox_json (STRING) feeds a bounding-box layout into the frontend's BBox Layout tool for targets that support layout-aware prompting; raw_prompt_text (STRING) lets you supply your own source text when enable_text_input is on.
The two toggles worth reading before you use it: refresh_vram unloads ComfyUI models and clears cache before generation (useful when you're juggling a local LLM and a diffusion model on one card), and disable_color_palette strips color_palette blocks from JSON output without touching the stored model response.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/haroonaslam/WorkflowX-Configurator
or search WorkflowX Configurator in ComfyUI Manager, restart, hard-refresh the browser. No hard pip deps, but the generation backend is on you - configure a Gemini key, an OpenAI-compatible endpoint, an Ollama server, or a local GGUF.
Where it bites
- Prompt-format discipline is the point. The whole value is the target-specific rewrite. If you're on a tag-based SDXL finetune and the output comes back as natural prose, check
prompt_format- the node picks a sensible default per target but won't stop you from overriding it badly. - "Generated" is not "curated." An LLM that adds detail will occasionally invent detail you didn't ask for. The UI-managed text fields exist so you can edit before it hits the encoder - use them.
- Local backends need VRAM headroom. That's what
refresh_vramis for, but if your card is already full, generating locally can thrash. The API backends sidestep it entirely. - Model names move.
target_modeltracks the current crop of image models, and the list will age. If your model isn't listed, pick the closest dialect and hand-edit.
The one-stop prompt lab for people who bounce between model families and want a starting prompt in the right dialect every time. It won't replace taste - it replaces the blank page.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| target_model | COMBO | ideogram4 | 14 options: general, ideogram4, sdxl, qwen_image, flux1_dev, flux2_dev, +8 |
| prompt_format | COMBO | json | 3 options: natural, tags, json |
| negative_enabled | BOOLEAN | false | — |
| generation_type | COMBO | text_to_image | 8 options: text_to_image, image_to_image, text_to_video, first_frame_to_video, first_last_frame_to_video, last_frame_to_video, +2 |
| nsfw_enabled | BOOLEAN | false | UI-managed toggle for generation-path-specific NSFW prompt rules. |
| enable_bbox_json_input | BOOLEAN | false | UI-managed toggle for syncing a connected bbox_json STRING into BBox Layout. |
| enable_text_input | BOOLEAN | false | UI-managed toggle for using raw_prompt_text as the prompt source during generation. |
| refresh_vram | BOOLEAN | false | UI-managed toggle to unload ComfyUI models and clear cache before prompt generation. |
| disable_color_palette | BOOLEAN | false | UI-managed toggle to strip color_palette blocks from JSON outputs without changing the stored model response. |
| generated_positive | STRING | Managed by the WorkflowX UI. | |
| generated_negative | STRING | Managed by the WorkflowX UI. | |
| final_prompt | STRING | Managed by the WorkflowX UI. | |
| imageopt | IMAGE | — | |
| bbox_jsonopt | STRING | Optional connected raw bbox layout JSON for the frontend BBox Layout Sync action. | |
| raw_prompt_textopt | STRING | Optional connected raw prompt text used during generation when enabled in the UI. | |
| ui_stateopt | STRING | {} | Managed by the WorkflowX UI. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| positive | STRING | — |
| negative | STRING | — |