Nodes/arkennemasis - ChatGPT / Codex / fal AI nodes/arkennemasis fal · Flux Dev Image to Image · $0.03/MP
ComfyUI Node

arkennemasis fal · Flux Dev Image to Image · $0.03/MP

The default is 0.95, and that's not a typo

By Hishamahmer·Created 3 months ago·Updated 10 days ago· 11
arkennemasis fal · Flux Dev Image to Image · $0.03/MP
  • image
  • images
  • image_paths
  • timings
  • seed
  • prompt
  • has_nsfw_concepts
  • info
◄strength0.95►
◄num_inference_steps40►
◄prompt►
◄seed-1►
◄guidance_scale3.50►
◄num_images1►
◄enable_safety_checkertrue►
◄output_formatjpeg►
◄accelerationnone►
◄max_cost_usd20.0►
◄reuse_identical_runtrue►
◄extra_json►
◄max_concurrent1►

Open this node and the first thing you'll do is stare at strength = 0.95 and think it's set wrong. It isn't. The tooltip says it plainly: higher strength values are better for this model. BFL's Flux img2img degrades when you cling to the source, so the recommended posture is to barely hold on.

This is the general-purpose restyle node: source photo in, prompt out, get the same image reinterpreted. $0.03 per megapixel - a hair more than text-to-image, because the initial image is doing real work.

What strength means here

It's a denoise dial: 1.0 completely remakes the image, 0.0 preserves the original. So the default 0.95 isn't "gentle" - it's "the source contributes its layout and colour and then gets out of the way".

That inverts the usual img2img instinct. On SDXL you'd sit at 0.4–0.6 to keep an image recognisable. Here, dropping to 0.4 means the model barely departs from the source, and the output tends to look like a soft, slightly-off version of your input rather than anything new - which is precisely the "low strength degrades" behaviour the default exists to avoid. If you want subtlety from Flux, the better move is usually high strength plus a prompt that describes what you want to keep.

Where the bands land in practice:

  • 0.4–0.6 - small corrections. Expect mild mutation rather than a clean fix.
  • 0.6–0.8 - restyle while holding subject identity. The compromise zone.
  • 0.85–1.0 - the model's own recommended range. Composition and palette in, everything else regenerated.

The other inputs

image is required - one picture, not a batch; the node stops with a clear message if you connect several frames. prompt drives the restyle. num_inference_steps defaults to 40 here rather than 28, which is worth noticing: img2img from a real photograph benefits from the extra passes.

guidance_scale is 3.5 and means Flux guidance, not SDXL CFG. seed at -1 for random; pin it to compare prompt variants against one composition. There's no image_size field on this endpoint - output dimensions follow the input, so you don't have the aspect-ratio trap that the Flux 2 edit nodes have. num_images up to 4, enable_safety_checker on, output_format defaulting to jpeg. acceleration at none is the speed lever.

Outputs

images for the graph and image_paths for the files under output/fal/fal-ai_flux_dev_image-to-image/, plus timings, seed, prompt, has_nsfw_concepts, and info (request id, cost estimate, saved files, fal's raw answer).

Install

cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis

Restart ComfyUI, or ComfyUI-Manager → Install via Git URL. The pack's only declared dependency is httpx, for its Codex nodes; the fal nodes use the Python standard library. No local weights, no VRAM, no checkpoint download.

FAL_KEY=your-key-from-fal.ai/dashboard/keys

in the .env next to run_nvidia_gpu.bat in the portable build (or your ComfyUI folder). The key is never a node widget - that's an intentional design choice so it can't leak into a workflow file.

Cost and the cap

$0.03 per megapixel of output: 1024×1024 ≈ 3¢, 1536×1536 ≈ 7¢, a four-image batch at 1024 ≈ 12¢. max_cost_usd defaults to $20 and stops the node before upload if the estimate is over it; 0 removes the cap entirely. The node also carries a live price badge that follows image_size, num_images and the rest.

max_concurrent (default 1) is worth knowing about if you're batching: it's the number of paid fal calls allowed to run at once across every fal node in the run, so twenty fal nodes on one canvas still go one at a time until you raise it (up to 32). And once any fal node fails, the ones still waiting aren't started - nothing more gets billed.

Where people get burned

Treating 0.95 as a bug and setting it to 0.5, then wondering why nothing changed. It's the model's recommended value. Change it deliberately.

Clipping detail you wanted. Wire a save node before this one if you need an untouched copy of the source. At 0.95 you're not getting it back.

Re-queueing for a new take with reuse_identical_run on. Same inputs → the cached file, unbilled, and identical. Turn the toggle off when you want a fresh roll.

Connecting a batch. One image per socket, and the node tells you so rather than picking a frame for you.

Categoryarkennemasis/fal/Image/Flux

Inputs (14)

NameTypeDefaultDescription
imageIMAGEThe URL of the image to generate an image from.
strengthFLOAT0.950.01–1The strength of the initial image. Higher strength values are better for this model.
num_inference_stepsINT4010–50The number of inference steps to perform.
promptSTRINGThe prompt to generate an image from.
seedINT-1-1–2147483647The 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_scaleFLOAT3.501–20The 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_imagesINT11–4The number of images to generate.
enable_safety_checkerBOOLEANtrueIf 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_formatCOMBOjpegThe format of the generated image.
accelerationCOMBOnoneThe speed of the generation. The higher the speed, the faster the generation.
max_cost_usdoptFLOAT20.00–100000Safety 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_runoptBOOLEANtrueIf 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_jsonoptSTRINGAdvanced: 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_concurrentoptINT11–32How 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)

NameTypeDescription
imagesIMAGE—
image_pathsSTRING—
timingsSTRING—
seedINT—
promptSTRING—
has_nsfw_conceptsSTRING—
infoSTRINGJSON: request id, cost estimate, saved files and fal's full answer.