💬 Prompt Director
Restyle a prompt you already like without losing the subject
- config
- prompt
You've got a prompt you spent real time on. The problem is it's written for the wrong style - anime when the brief said photorealistic, moody-lit when it needs to be a clean product shot. Retyping it by hand means rebuilding the whole composition from memory. FiL Prompt Director exists for exactly that: you hand it a prompt and a free-form instruction ("make it look like a real photo"), and an LLM rewrites the prompt to obey the instruction while holding the subject, composition and every detail you didn't ask to change.
It's the "restyle, don't reinvent" tool in the FiL_Design_ImageMind pack, and it's unambiguously an LLM bolted onto the graph - a separate model running before generation, not the frozen encoder inside your checkpoint. Unlike a raw chat box, it ships a strict rewrite contract: preserve the core, don't invent a new scene, no "masterpiece / highly detailed / 4K" meta-noise, no hedging. That last part matters more than it sounds. On the LLM-encoded models this pack targets - Z-Image, FLUX.2, Qwen-Image, Krea 2 - quality tags like masterpiece are inert vocabulary that was never trained in, and weight syntax like (word:1.4) passes through as literal punctuation. A rewriter that strips that junk for you is doing real work, not decoration.
How it works
The node is one-shot: it builds a system prompt (uncensored, DiT-density rules, output-language rule) plus a user message of your instruction + source prompt, and fires a single LLM call. No chained agents, no multi-pass. seed controls whether that call even happens: a fixed seed reuses the cached answer instantly with no API call, and bumping the seed asks the model for a fresh variant. That's the trick that makes iterating free - you tweak the instruction, change the seed, compare takes.
The inputs that matter
config- from the pack's 🔌 Provider Loader node. This is where provider, model, temperature, max tokens and rate limit actually live; the Director just reads them off it. Required, and the most common thing to miss.instruction- free-form, e.g.make it photorealistic, like a real photo shot on a 50mm.source_prompt- the prompt to rewrite. Type it, or wire a STRING link in; a link overrides the widget.language- language of the finished prompt (en / ru / zh).seed- as above: cache key, not a style dial.
One output, prompt, which you wire straight into your pipeline's CLIP Text Encode. That's the whole node - thin by design, which is the pack's stated philosophy.
Getting a provider in front of it
Because this is an LLM node, it needs a real model behind the config. Cloud providers (OpenAI, Google, Groq, OpenRouter, Cloudflare) want an API key pasted into the FiL Providers sidebar tab (the 🔑 icon) in ComfyUI. Local ones - Ollama or LM Studio - work with zero keys: just run the server and pick it in Provider Loader. Use the Probe button on that tab to verify the connection before you build a whole workflow on it.
Installing FiL_Design_ImageMind
The pack targets ComfyUI 0.3.60+ (V3 node API) - on anything older the nodes won't load. Easiest route: ComfyUI Manager → search FiL_Design_ImageMind → install → restart.
cd ComfyUI/custom_nodes
git clone https://github.com/FiL-Design-Ai/FiL_Design_ImageMind.git
pip install -r FiL_Design_ImageMind/requirements.txt
Windows portable installs: run install_requirements.bat in the pack folder - it finds python_embeded and installs into it for you. Dependencies are light (requests, aiohttp, PyYAML, Pillow, numpy, pydantic) and the pack downloads no model weights. Restart, and the nodes appear under the 🎨 FiL Design menu.
Troubleshooting
- Error text comes back in Russian. Yes, even with
language: en. The node's error paths return strings likeОшибка: ...while the actual rewritten prompt obeys your chosen language. Confusing at first, harmless - it's just the author's native-language error handling leaking through. - Empty or boilerplate output - the model returned only scaffolding or nothing. Usually a weak model or a bad provider choice in Provider Loader; the node tells you so in that error string.
- Same answer every run - that's the seed cache doing its job. Change the seed.
- Nothing happens when you queue - you didn't wire
config, or the Provider Loader model field still says(loading...). Hit refresh and pick a real model.
FiL_Design_ImageMind is a young, small pack (the author's been around as an SD prompt-writer since the SD1.5 era, but there's no big install base or community lore behind it yet). Code is MIT and open, which for an LLM node that reaches the network is exactly what you want to be able to read before trusting it.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| config | FIL_PROVIDER_CONFIG | Config from Provider Loader node. | |
| instruction | STRING | What to do with the prompt, in free form — e.g. 'make it photorealistic, like a real photo'. | |
| source_prompt | STRING | The existing prompt to rewrite. Type it in or connect a STRING link — a link overrides the widget. | |
| language | COMBO | en | Language of the finished prompt. |
| seed | INT | 00–18446744073709550000 | Fixed seed reuses the cached answer (instant, no API call); a new seed asks the model for a fresh variant. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | The rewritten prompt — wire it into your generation pipeline. |