π¬ Flux 3 Openrouter Prompt *DRE
Make an LLM write your FLUX 3 video prompt so you don't have to
- images
- prompt
The name is a little misleading: this node doesn't call BFL or Flux at all. It's a prompt-enhancer that sits in front of the pack's Flux3VideoDRE node. You type a rough idea in plain words, it pays an OpenRouter LLM to turn that into a structured FLUX 3 video prompt, and the single prompt output is exactly what the video node expects. No variants, no metadata, just the prompt string. It's the "LLM rewrites your idea into a structured prompt" pattern from the modidex LLM-in-ComfyUI knowledge base, aimed specifically at BFL's prompt format.
Why you'd reach for it
FLUX 3 video prompts are pickier than image prompts - BFL's docs lean on timing, camera vocabulary, segment structure. If you've ever stared at a blank prompt box trying to remember what a "dolly-in with parallax" is called, this is the node that removes the blank-page problem. The bundled prompting skills do the heavy lifting: Flux3Director is a full structured-prompting skill covering all four video modes, and Flux3Director4Discord is the compressed version for the FLUX3 Discord bot's 2,000-character limit. You can even drop your own .md skills into the pack's skills/ folder and they show up in the dropdown after you refresh ComfyUI.
How it works
The model dropdown is loaded live from the OpenRouter API - that's why it has a few hundred entries and why the tooltip tells you to refresh ComfyUI to see new models. The node reads your idea, appends the chosen skill, and calls OpenRouter with the usual knobs: temperature (0.7 default, lower = more deterministic), max_tokens (4096), and timeout_seconds (120). If you pass images and pick a vision-capable model (GPT-4o, Claude Sonnet, Gemini), it sends them base64 alongside your idea so the LLM can describe what it sees into the prompt. extra_instructions lets you append directives like "make it 10s, two segments, dialogue in German."
Inputs that matter
idea(STRING, required) - your plain-words description. This is the whole input.model- OpenRouter model slug, live list.model_customoverrides it with any slug not in the dropdown.skill-none,Flux3Director, orFlux3Director4Discord. Start with Flux3Director.images- optional reference images, only for vision models.
Output: prompt (STRING) - wire it into Flux3VideoDRE's prompt input.
Setup
You need an OpenRouter key. Add it to a .env file in your ComfyUI root or next to the pack, or set the OPENROUTER_API_KEY environment variable; the api_key input on the node is the escape hatch if you don't want either:
OPENROUTER_API_KEY=sk-or-...
The install is the pack install - ComfyUI Manager, search "DenRakEiw Nodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/DenRakEiw/DenRakEiw_Nodes
cd DenRakEiw_Nodes && pip install -r requirements.txt
then restart.
Gotchas
Two things. First, this is a paid API call per generation - an LLM writes your prompt, and OpenRouter meters that. Second, the LLM can absolutely hallucinate FLUX 3 syntax even with the skill loaded; treat its output as a strong draft, not scripture. And remember the security note that applies to every API node: this thing ships a key and makes network calls by design, so you want it from a repo you trust. This one is a small, mostly-silent author's pack, which is fine for a personal workflow - just don't blind-install random packs that paste-your-key-and-call-home.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| idea | STRING | Describe your video idea in plain words. The LLM turns it into a structured FLUX 3 prompt. | |
| model | COMBO | anthropic/claude-sonnet-4.5 | OpenRouter model slug. The list is loaded live from the OpenRouter API (text-only models). Refresh ComfyUI to pick up newly added models. |
| skill | COMBO | none | Prompting skill that steers the LLM. 'none' = freeform. Bundled: Flux3Director, Flux3Director4Discord. Drop extra .md files into the skills/ folder and refresh ComfyUI to add your own. |
| imagesopt | IMAGE | Optional reference image(s) for the LLM to see β the model must be vision-capable (e.g. GPT-4o, Claude Sonnet, Gemini). The image is sent as base64 alongside your idea; describe it in the idea text. | |
| model_customopt | STRING | Optional: any OpenRouter model slug that is not in the dropdown. Takes precedence over the model dropdown. | |
| api_keyopt | STRING | Leave empty to read it from .env or the OPENROUTER_API_KEY environment variable. | |
| extra_instructionsopt | STRING | Optional: extra directives appended to the skill (z.B. 'make it 10s, 2 segments, dialogue in German'). | |
| temperatureopt | FLOAT | 0.700β2 | LLM sampling temperature. Lower = deterministic, higher = creative. |
| max_tokensopt | INT | 4096256β32000 | Max output tokens. |
| timeout_secondsopt | INT | 12010β600 | How long the node waits for the LLM response. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | β |