arkennemasis fal · Flux Pro Kontext Multi · $0.04/image
Six image sockets, one instruction that can reference them
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- images
- image_paths
- seed
- has_nsfw_concepts
- prompt
- timings
- info
The regular Kontext Pro node takes one reference image. This one takes up to six, numbered, and lets your instruction talk about them - "put the person from image 1 into the room from image 2, wearing the jacket from image 3". It's fal's own description that calls it experimental, so treat it that way, and it's priced like Pro at $0.04 per image.
When you want it
The obvious case is compositing references: subject from one shot, background from another, a prop from a third. The second case is consistency across a set - feed the same reference into the same socket for every generation in a run and you get the model's in-context identity handling applied to the whole series rather than a single picture. Kontext's structural advantage is that reference images go into the model's context instead of arriving as adapter embeddings, which is why it holds a subject better than the IP-Adapter school does.
The costs of that: six images is a lot of pixels for the model to reconcile, and cross-referencing instructions get less reliable the more sockets you fill. Two or three references with a clear division of labour works. Six competing ones gives you mush and a bill.
The six sockets
image_1 is required; image_2 through image_6 are optional. The tooltip for all of them is the same, and it's worth reading: each socket may carry a batch, and the pictures are sent in socket order, with the first picture of socket 1 counting as number 1. So "image 2" in your prompt refers to a position in the flattened list, not to a socket number - connect a batch of four to image_1 and your "image 3" is the third picture of that batch.
The rest of the node is Kontext Pro's shape: prompt (the instruction), aspect_ratio ((not set) by default, or 21:9 through 9:21), guidance_scale 3.5 (1–20), seed, num_images 1–4, output_format, enhance_prompt (off by default), and safety_tolerance default 2 (1 strictest, 6 most permissive).
The shared four sit at the bottom as they do on every fal node here: max_cost_usd (default 20, evaluated before upload), reuse_identical_run (on - same settings and same pixels returns the cached result rather than billing again), extra_json, max_concurrent (default 1 across the whole run).
Outputs
images, image_paths into output/fal/fal-ai_flux-pro_kontext_multi/, plus seed, prompt, has_nsfw_concepts, timings and info.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
Or ComfyUI-Manager → comfyui-arkennemasis. Restart after. The node lands under arkennemasis/fal/Image/Flux, and the key is one line in .env next to run_nvidia_gpu.bat:
FAL_KEY=your-key-from-fal.ai/dashboard/keys
Practical warnings
Numbering surprises. Because batches flatten into the list, the picture the model thinks is "number 2" may not be the one you meant. Keep batches out of these sockets unless you're deliberately indexing into them.
Unused sockets still count. A reference you connected but never referenced in the prompt still occupies a slot in the model's context and can bleed into the output. Disconnect what you don't need.
Experimental means experimental. fal labels this endpoint experimental, so its behaviour can change underneath you. Pin your expectations with seed and keep a copy of anything you rely on.
Paying per image, per take. Four images at $0.04 is 16 cents a queue click. Drop to one while you're working out which socket is which.
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. |