Flux 3 Openrouter Prompt
Stop hand-writing FLUX 3 prompts — let a router LLM do it for you
- images
- prompt
FLUX 3 video wants structured prompts - camera vocabulary, timing, segment structure - and that syntax is a lot to carry around in your head while you're trying to describe an idea in plain words. Flux3Prompter is the blank-page killer from the same pack as the Flux 3 Video node: you type "a seed grows into a tree through the seasons," it calls an OpenRouter LLM, and hands back a ready-to-paste FLUX 3 prompt. No local model, no VRAM, nothing to fine-tune. Just an OpenRouter key and a vague idea.
This is the API flavor of the LLM-prompt-helper pattern, and it solves the exact two problems that make prompt enhancers annoying. First, dirty output: a chat model will happily wrap its answer in "Here is your enhanced prompt:" and markdown scaffolding, and all of that bleeds straight into your video generation. This node hard-codes a system frame that demands the entire output be the prompt and nothing else - no variants, no preamble, no commentary. Second, structure: it loads a prompting skill file (there are two bundled) that teaches the model FLUX 3's section format, tag system and timing rules, so the output actually fits what the Video node expects.
The inputs that matter
Three fields run the show. idea is your plain-words description - the only thing you really must write. model is the OpenRouter model slug, and the dropdown is filled live from OpenRouter's model list (default anthropic/claude-sonnet-4.5), so new models show up without a node update; refresh ComfyUI if you don't see one. skill picks the prompting guide - none for freeform, or Flux3Director / Flux3Director4Discord (the Discord variant is compressed to fit the FLUX3 bot's 2,000-character limit).
The rest is optional but worth knowing. images lets you attach reference images for vision-capable models (GPT-4o, Claude Sonnet, Gemini) - the node warns you if the selected model probably can't see them. extra_instructions appends directives to the skill, which is handy for things like "make it 10s, 2 segments, dialogue in German." temperature (default 0.7), max_tokens, timeout_seconds, api_key, and model_custom (any slug not in the dropdown) round it out.
The single output is prompt, a STRING - wire it straight into the Flux 3 Video node's prompt input and you have an idea-to-video pipeline with no typing in between.
Skills: the part you can extend
Skills are just .md files in the pack's skills/ folder, and the dropdown scans that folder at load. Drop in your own file - a house style guide, a tuned-down version of Flux3Director, whatever - refresh ComfyUI, and it appears as a choice. That's the whole extensibility story, and it's refreshingly simple.
Install and keys
Same pack, same step as the Video nodes - ComfyUI Manager → "Flux 3 API", or clone into custom_nodes and restart. It needs an OpenRouter key, not a BFL one:
cd ComfyUI/custom_nodes/flux_3_api
# add to .env:
OPENROUTER_API_KEY=sk-or-...
Empty api_key field → .env → environment variable, in that order.
Where people get burned
The classic failure is no key at all - the node dies with a clear "no OpenRouter API key" error, so check .env before anything else. The model dropdown is fetched once per ComfyUI process (with a six-hour TTL), so a brand-new model won't appear until you restart. And two honest caveats from how this category works: the LLM is an API call, so it costs a little per run and your idea leaves the machine - and since the whole pack reaches out to the network carrying credentials, it's worth a skim of what it does before you first run it. That's the standard security posture for API nodes, not a knock on this one.
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 | — |