arkennemasis fal · Flux Schnell Redux · $0.025/MP
No prompt box, and that's the entire point
- image
- images
- image_paths
- timings
- seed
- prompt
- has_nsfw_concepts
- info
If you open this node and start looking for the prompt field, stop - there isn't one. fal-ai/flux/schnell/redux takes an image and nothing else. It's the Redux adapter on the Schnell base: hand it a picture and it generates variations of that picture's style and content, at Schnell's speed, for $0.025 per megapixel.
That's a different job from text-to-image, and once it clicks it's a nice one. Soup up a low-res mockup into variations. Take a photo you like the look of and re-roll the composition. Give a client eight versions of the same mood board panel without writing a single prompt. The Schnell base means it's fast, and the distilling that makes it fast also means it won't be as faithful as the Ultra Redux endpoint - this is the cheap one. Eight times the price of plain Schnell per megapixel, near a fifth of Ultra Redux's, and the sensible use is exploration rather than delivery.
Inputs
- image - required, one image. Connect a batch and the node refuses with a "pick one frame first" message rather than silently using the first tile.
- image_size - presets (
landscape_4_3default,square_hd,square, portrait presets) orcustomwithimage_size_width/image_size_height. Since you're billed per output megapixel, this is the cost dial, and there's no prompt to redirect the model if you pick a shape it doesn't like. - num_inference_steps - default
4, up to 12. - acceleration -
none/regular/high. - num_images (up to 4), seed, output_format, enable_safety_checker.
- The pack's shared four: max_cost_usd (default $20, checked before upload), reuse_identical_run, extra_json, max_concurrent (default 1, the run-wide cap on simultaneous paid fal calls).
Outputs
images for the graph, image_paths for the file on disk (output/fal/fal-ai_flux_schnell_redux/), seed as an integer you can pin, plus prompt, timings, has_nsfw_concepts and info - JSON containing the fal request id, the cost estimate, the saved files and fal's full response.
One subtlety on seed: with no prompt in the request, the seed plus the reference image is all the variation control you have. If you're hunting for a look, set num_images to 2 or 4 and re-roll seeds rather than re-running one at a time.
Install
ComfyUI Manager → search comfyui-arkennemasis → install. Or the shell route:
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
Restart, then one line in the .env file in the folder with run_nvidia_gpu.bat:
FAL_KEY=your-key-from-fal.ai/dashboard/keys
Nothing else - no model downloads for this node, and no Python packages beyond what ComfyUI already has.
Where it bites
The most common complaint about this node isn't a bug: people expect to steer the variation with words and there's nowhere to type. If your workflow needs guidance, this is the wrong Redux - use the Ultra Redux node, which has a prompt field (optional, but present).
Second, repeated runs. reuse_identical_run defaults to on, so identical inputs give you back the file already in output/fal instead of a new charge - genuinely handy, and confusing if you didn't notice that the node is showing you a cached result rather than a fresh one. Change the image, the seed or turn it off.
Third, the safety checker returns black images rather than errors when it flags something, and switching it off requires authorisation on your fal account - unauthorised requests get checked either way. A black output at $0.025/MP is not "the node is broken"; it's moderation with bad manners.
And the pack-level safety net: no FAL_KEY means the node stops before anything leaves your machine, an exhausted fal balance just stops generating, and if ComfyUI dies mid-job, the free Recover Result node picks the finished request up from output/fal/_requests.jsonl without a second bill.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | The URL of the image to generate an image from. | |
| num_inference_steps | INT | 41–12 | The number of inference steps to perform. |
| 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'. |
| 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. |
| num_images | INT | 11–4 | The number of images to generate. |
| enable_safety_checker | BOOLEAN | true | If set to true, the safety checker will be enabled. Disabling it requires account authorization; unauthorized requests are always checked, and images flagged as unsafe are returned as black images. |
| output_format | COMBO | jpeg | The format of the generated image. |
| acceleration | COMBO | none | The speed of the generation. The higher the speed, the faster the generation. |
| 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 | — |
| timings | STRING | — |
| seed | INT | — |
| prompt | STRING | — |
| has_nsfw_concepts | STRING | — |
| info | STRING | JSON: request id, cost estimate, saved files and fal's full answer. |