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

arkennemasis fal · Flux SRPO Image to Image · $0.025/MP

Img2img where the default strength is 0.95, so read it first

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

Classic img2img on the SRPO base: you hand over a picture, set a strength, write a prompt, and get a re-render that starts from your image. $0.025 per megapixel of output.

The thing to know before you run it is in the defaults, because they're the opposite of what most ComfyUI users have in their fingers. strength defaults to 0.95 - a whisper away from "ignore the input entirely" - and the tooltip says outright that higher strengths are better for this model. Pair that with 40 default steps and you should understand this as "loosely seeded generation", not as a gentle liquify. If you want the input to survive, 0.5–0.7 is where you live, and you accept it's a softer result than this endpoint was tuned for.

The second thing is aesthetics, as with the text-to-image SRPO node. Community testing found SRPO's difference from base Flux subtle, but its prompting preference isn't: one to three line prompts, painterly styles handled well, and paragraphs of clause-stacked detail working against you.

Inputs

  • image - the source. One image; connect a batch and the node will tell you to pick a frame.
  • strength - 0.01 to 1, default 0.95. The whole personality of the node is here.
  • prompt - required, which is a useful constraint: the model is being told what to find in your image, not to guess.
  • num_inference_steps - default 40, range 10–50.
  • guidance_scale - default 4.5.
  • acceleration - none / regular / high.
  • num_images (up to 4), seed, output_format, enable_safety_checker.
  • The pack's shared money widgets: max_cost_usd, reuse_identical_run, extra_json, max_concurrent.

Cost

Billed per output megapixel, rounded up, times num_images - the output follows the input image's dimensions, so upscaling your source also multiplies the bill. A source around 1024×1024 with one image is a single megapixel: two and a half cents. Four images at 2 MP is twenty cents. max_cost_usd (default $20) is checked against the estimate before anything is uploaded, so a run you decide against costs nothing, and the price badge on the node follows your settings live.

Outputs

images and image_paths are the pair you wire, with files saved under output/fal/fal-ai_flux_srpo_image-to-image/. Then seed as an INT, prompt, timings, has_nsfw_concepts, and info - JSON with the fal request id, cost estimate, saved files and fal's full response.

Install

ComfyUI Manager → search comfyui-arkennemasis → install, or:

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

Restart, then put the key in the .env next to run_nvidia_gpu.bat:

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

The fal half of this pack uses Python's standard library, so nothing gets installed alongside it - and no key field exists on the node, so a shared workflow can't leak it.

Practical notes

Plan for iterations, not one perfect shot. With strength this close to 1, small changes in the prompt move the output a lot, so the useful loop is: strength 0.6–0.7, one-line prompt, num_images 2, look, adjust. Raise strength when you're happy with the structure you're describing and you want the model to commit.

Also remember that reuse_identical_run is on by default and returns the cached result for identical inputs, restart included - helpful in a batch, deceptive when you're exploring with a fixed seed and wondering why nothing changes. Change the seed, the strength, or turn the switch off. And the safety checker gives you a black image rather than an error when it flags something; disabling it requires account authorisation on fal, and unauthorised requests are checked anyway, so a black frame is a moderation verdict with a bad UI, not a broken node.

Housekeeping you get for free: if a fal node fails, the other fal nodes in that run don't start, so a mid-batch failure doesn't keep spending. Cancel stops the request on fal, not just on your canvas. And after a crash, the free Recover Result node in the same pack collects a finished request by id from output/fal/_requests.jsonl.

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_scaleFLOAT4.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.