arkennemasis fal · Flux Pro v1.1 Redux · $0.05/MP
One image, optionally a few words, and the premium stack's opinion
- image
- images
- image_paths
- seed
- has_nsfw_concepts
- prompt
- timings
- info
Redux is BFL's image-variation adapter - it encodes a picture with SigLIP and conditions generation on that instead of (or alongside) text. This node runs it on the FLUX1.1 [pro] endpoint, the closed premium tier, at $0.05 per megapixel. Same idea as the Krea Redux node, but here the prompt box exists and can be left empty: the tooltip says so plainly.
What you're actually doing with it
Two patterns, and neither is editing. First, variation: feed it a picture, get back something recognisably of that picture - same subject, same palette, new composition. Second, style transfer: use the reference purely to carry a look into whatever the prompt describes, which is the use the community rated most highly for Redux in the local Flux Tools era.
If you want a targeted change - remove the hat, fix the hand - Redux is the wrong tool and always will be. It doesn't follow instructions about parts of an image; it absorbs the whole thing. The Kontext nodes are for that.
One number worth carrying over from the local Redux experience: in a ComfyUI graph where Redux and a prompt both feed the sampler, the community found anything much above a tiny weight makes Redux overwhelm the text and hand you a straight variation. That dial doesn't exist on this node - the tradeoff between image and text is decided by the endpoint - so if your prompt seems ignored, you're seeing the model's own weighting, not a setting you misconfigured.
Inputs
image- the reference. Its tooltip mentions matching the dimensions of a mask, which is leftover schema text on fal's side; there is no mask socket on this node.prompt- optional. "Empty leaves it out" is the tooltip's own wording, so pure variation means leaving it blank.image_size, defaultlandscape_4_3, withimage_size_width/image_size_heightforcustom(16–14142, step 16).num_inference_steps28 (1–50),guidance_scale3.5 (1–20),seed(-1 random),num_images1–4.output_format(jpeg/png),safety_tolerancedefault2(1 strictest, 6 most permissive),enhance_promptoff by default.
The shared four on every fal node here: max_cost_usd (default $20, blocks the run before upload, 0 = off), reuse_identical_run (on - identical pixels and settings come back from output/fal/ instead of billing again), extra_json, max_concurrent.
Outputs
images → preview/save; image_paths → output/fal/fal-ai_flux-pro_v1.1_redux/; seed, prompt, has_nsfw_concepts, timings, and info with the request id and cost estimate.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
ComfyUI-Manager alternative: search comfyui-arkennemasis. Restart ComfyUI, then find it under arkennemasis/fal/Image/Flux.
# .env, in the folder holding run_nvidia_gpu.bat
FAL_KEY=your-key-from-fal.ai/dashboard/keys
The honest caveats
$0.05/MP is the priciest per-megapixel node in this Flux batch and Redux is a variation tool, not a problem solver - it's easy to spend a surprising amount the first evening just seeing what it does with an image. Keep num_images at 1 while you explore.
Pro is closed weights. There's no local Redux-on-Pro equivalent, which is the whole reason an API node is the only route.
The output is a new image, not your image, recoloured. Unmasked pixels are not preserved - that's the difference between this and the masked inpaint nodes, and it's why you shouldn't use Redux where the original has to survive untouched.
Nothing happens on a re-run? That's reuse_identical_run. Nothing changed, so nothing was billed, and the same files came back.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | The prompt to generate an image from. Empty leaves it out. | |
| image_size | COMBO | landscape_4_3 | The size of the generated image. 'custom' uses the width and height below. |
| image_size_width | INT | 102416–14142 | Width in pixels when image_size is 'custom'. |
| image_size_height | INT | 102416–14142 | Height in pixels when image_size is 'custom'. |
| num_inference_steps | INT | 281–50 | The number of inference steps to perform. |
| 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. |
| image | IMAGE | The image URL to generate an image from. Needs to match the dimensions of the mask. | |
| 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. |