arkennemasis fal · Flux Pro Kontext Max Multi · $0.08/image
The expensive one — six references, best instruction-following
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- images
- image_paths
- seed
- has_nsfw_concepts
- prompt
- timings
- info
This is the top of the Kontext ladder and the most expensive node in this batch of Flux image nodes: Max's prompt adherence and typography, with multi-image handling on top, at $0.08 per image. If you were hoping for a single node that does everything - compose from several references and get the lettering right - this is the stack someone put together for that. Whether it earns double Pro is something you should find out with two test generations rather than take on faith.
The sockets are the story
image_1 is required and image_2 to image_6 are optional. All six carry the same tooltip, and the second sentence is the one that bites: each socket may carry a batch, and the pictures go out in socket order with the first picture of socket 1 as number 1. So a prompt that says "the woman in image 3" is indexing a flattened list, not a socket. If you connect a four-image batch to image_1, your "image 3" is the third picture of that batch. Keep batches off these sockets unless you're doing that arithmetic on purpose.
The rest: prompt (the edit instruction), aspect_ratio defaulting to (not set) (options 21:9 through 9:21), guidance_scale 3.5 (1–20), seed, num_images 1–4, output_format, enhance_prompt (off - fal rewrites your text when it's on), and safety_tolerance default 2 with 1–6 where 1 is strictest. That last one is a moderation dial, not a quality dial.
And the four widgets shared by every fal node in the pack: max_cost_usd (default $20; the estimate is checked before upload, so nothing is billed when it trips - 0 removes the cap), reuse_identical_run (on; a byte-identical request returns the cached files, and that includes the reference pixels), extra_json (JSON merged into the request last, for any fal field with no box), max_concurrent (default 1, one paid fal call at a time across the run).
Outputs
images for preview/save, image_paths under output/fal/fal-ai_flux-pro_kontext_max_multi/, then seed, prompt, has_nsfw_concepts, timings and info (request id, cost estimate, fal's full answer).
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
ComfyUI-Manager users can search comfyui-arkennemasis and let it install. Restart ComfyUI; the node appears under arkennemasis/fal/Image/Flux. There are no model files, and the fal provider needs no pip packages.
# .env, in the folder that holds run_nvidia_gpu.bat
FAL_KEY=your-key-from-fal.ai/dashboard/keys
Cost discipline, since this one is priced like the premium tier
Every reference you connect is context the model reconciles. Unused or redundant sockets make output worse, not better, and the good compositing results come from two or three references with a clear role each.
Four images is 32 cents per queue click. While you're learning how the sockets behave, keep num_images at 1 and iterate on one variable at a time. Then raise it once you have a prompt that works.
reuse_identical_run will hide your own changes from you - it hashes settings and the connected media, so re-running without touching anything is free and looks like nothing happened. That's correct behaviour; just know what you're looking at.
Experimental, per fal's own description of the endpoint. Expect behaviour to drift between visits to fal's docs. Seed pinning plus saved outputs is how you keep a result reproducible.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | The prompt to generate an image from. | |
| seed | INT | -1-1–2147483647 | The same seed and the same prompt given to the same version of the model will output the same image every time. -1 leaves it to the model. |
| guidance_scale | FLOAT | 3.501–20 | The CFG (Classifier Free Guidance) scale is a measure of how close you want the model to stick to your prompt when looking for a related image to show you. |
| num_images | INT | 11–4 | The number of images to generate. |
| output_format | COMBO | jpeg | The format of the generated image. |
| safety_tolerance | COMBO | 2 | The safety tolerance level for the generated image. 1 being the most strict and 5 being the most permissive. |
| enhance_prompt | BOOLEAN | false | Whether to enhance the prompt for better results. |
| aspect_ratio | COMBO | (not set) | The aspect ratio of the generated image. '(not set)' leaves it to the model. |
| image_1 | IMAGE | Image prompt for the omni model. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| image_2opt | IMAGE | Image prompt for the omni model. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| image_3opt | IMAGE | Image prompt for the omni model. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| image_4opt | IMAGE | Image prompt for the omni model. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| image_5opt | IMAGE | Image prompt for the omni model. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| image_6opt | IMAGE | Image prompt for the omni model. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| max_cost_usdopt | FLOAT | 20.00–100000 | Safety cap. If the estimated cost of this run is above this many US dollars the node stops BEFORE sending anything to fal. 0 = no cap. |
| reuse_identical_runopt | BOOLEAN | true | If these exact inputs (the settings AND the same pictures/clips/audio) were already paid for and the files are still in output/fal, return them instead of paying again - also after a ComfyUI restart. Turn off for a fresh take with the same settings. |
| extra_jsonopt | STRING | Advanced: a JSON object merged into the request last, for any fal field this node has no box for. Example: {"seed": 7}. Leave empty normally. | |
| max_concurrentopt | INT | 11–32 | How many paid fal calls may run at the same time in one run, across every fal node. 1 (default) = one after another. This node starts its paid part only while fewer than this many fal calls are running. Once any fal node fails, the ones still waiting are not started, so nothing more is billed. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| image_paths | STRING | — |
| seed | INT | — |
| has_nsfw_concepts | STRING | — |
| prompt | STRING | — |
| timings | STRING | — |
| info | STRING | JSON: request id, cost estimate, saved files and fal's full answer. |