Nodes/arkennemasis - ChatGPT / Codex / fal AI nodes/arkennemasis fal · Flux 2 Flex · $0.05/MP
ComfyUI Node

arkennemasis fal · Flux 2 Flex · $0.05/MP

The expensive Flux 2 that's actually about the text in your image

By Hishamahmer·Created 3 months ago·Updated 9 days ago· 11
arkennemasis fal · Flux 2 Flex · $0.05/MP
    • images
    • image_paths
    • seed
    • info
    ◄prompt►
    ◄image_sizelandscape_4_3►
    ◄image_size_width1024►
    ◄image_size_height1024►
    ◄seed-1►
    ◄safety_tolerance2►
    ◄enable_safety_checkertrue►
    ◄output_formatjpeg►
    ◄guidance_scale3.50►
    ◄num_inference_steps28►
    ◄max_cost_usd20.0►
    ◄reuse_identical_runtrue►
    ◄extra_json►
    ◄max_concurrent1►

    At $0.05 per megapixel, Flex is four times the price of the plain Flux 2 node - and rounded up to the nearest megapixel, so even a 512×512 test renders as a full dollar-cent amount. That's not a bargain, and it isn't meant to be. Flex is the tier where Black Forest Labs exposes the control knobs and pushes typography: real inference steps you can raise, a guidance value you can dial, and a safety tolerance slider. If you want the model to render a poster that says exactly what you typed, this is the endpoint that's built for it.

    What's different from the other Flux 2 nodes

    The full Flux 2 node gives you steps and an acceleration dial but no safety tolerance. Flash gives you neither. Flex gives you num_inference_steps, guidance_scale and safety_tolerance on a 1-5 scale - and it's the branch of the family whose pitch is text rendering: signs, labels, packaging, typographic layouts.

    It also returns fewer outputs than its siblings. There's no timing blob and no NSFW-concepts field on this node - just the images, their paths, the seed and the info JSON. Nothing lost that matters, but don't go looking for a port that isn't there.

    The inputs

    prompt - sentences. This model's text encoder reads your prompt as an instruction, not a bag of tags, and prompt weighting syntax is a no-op. For typographic work, say the words you want on the sign explicitly and in order.

    num_inference_steps - 28. Fal bills per megapixel, not per step, so raising this costs you seconds, not dollars. On a $0.05/MP endpoint, that's a good deal and you should use it.

    guidance_scale - 3.5 here, higher than the 2.5 the plain Flux 2 node ships with.

    safety_tolerance - 2 by default, 1 strictest through 5 most permissive. Separate from enable_safety_checker, which is the blunt on/off. If a legitimate render keeps coming back refused and you have the account authorisation to loosen things, this is the dial that actually moves.

    image_size - presets with landscape_4_3 as the default, or custom plus image_size_width / image_size_height.

    output_format - defaults to jpeg here, not png. Change it if you're going to keep editing the result.

    seed (-1), plus the pack's usual max_cost_usd, reuse_identical_run, extra_json and max_concurrent.

    Outputs

    images is the IMAGE output - batch if num_images is above 1. image_paths is a STRING giving you where they were written, seed is an INT you can lock, and info is a JSON string holding the request id, the cost estimate, the saved files and fal's raw answer.

    Install

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

    Restart ComfyUI; the node appears under arkennemasis → fal → Image → Flux. ComfyUI-Manager → Install via Git URL does the same. The pack pins one dependency, httpx, for its ChatGPT/Codex nodes - fal needs nothing beyond the standard library, so your Python environment is untouched.

    Then, in the .env alongside run_nvidia_gpu.bat:

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

    Where people get burned

    The rounding. Billing rounds up to the nearest megapixel on both sides, so a 0.26MP test render costs the same as a 1MP one. Do your prompt-dialling on the cheap nodes; spend Flex's money on the render you're actually shipping.

    Expecting CFG behaviour. Do not port your SDXL habits over. Guidance here is in the 3-ish range, not 7, and on this flow-matching family wild CFG values don't sharpen adherence so much as cook the image.

    Assuming more references means more cost - that's Flex Edit's territory, and there the input side is capped at 1MP regardless of how many pictures you attach.

    Repeated runs returning identical files. reuse_identical_run defaults on, so an identical rerun is served from output/fal instead of billed. That's your safety net against paying twice; flip it off when you want a new take from the same prompt. And if a run stops before anything uploads, check max_cost_usd - the estimate is compared to the cap before the paid call, so tripping it is free.

    Categoryarkennemasis/fal/Image/Flux

    Inputs (14)

    NameTypeDefaultDescription
    promptSTRINGThe prompt to generate an image from.
    image_sizeCOMBOlandscape_4_3The size of the generated image. 'custom' uses the width and height below.
    image_size_widthINT102416–14142Width in pixels when image_size is 'custom'.
    image_size_heightINT102416–14142Height in pixels when image_size is 'custom'.
    seedINT-1-1–2147483647The seed to use for the generation. -1 leaves it to the model.
    safety_toleranceCOMBO2The safety tolerance level for the generated image. 1 being the most strict and 5 being the most permissive.
    enable_safety_checkerBOOLEANtrueWhether to enable the safety checker. Disabling it requires account authorization; unauthorized requests are always checked.
    output_formatCOMBOjpegThe format of the generated image.
    guidance_scaleFLOAT3.501.5–10The guidance scale to use for the generation.
    num_inference_stepsINT282–50The number of inference steps to perform.
    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 (4)

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