arkennemasis fal · Flux LoRA · $0.035/MP
Your Civitai LoRAs, on a GPU that isn't yours
- images
- image_paths
- seed
- has_nsfw_concepts
- timings
- prompt
- info
The plain Flux Dev LoRA endpoint, wrapped as a ComfyUI node. $0.035 per megapixel. Same family as the Krea LoRA node but without Krea's aesthetic on top - this is Flux Dev doing its thing, which is worth remembering, because Dev has a slight plastic sheen at stock settings and a lot of the LoRAs people stack on it exist specifically to fix that.
Why you'd use the hosted version
Two honest reasons. You don't want 12GB of weights (plus a T5 encoder) on your disk and in your VRAM, and you want to run a LoRA you don't have locally. Both are the same reason in the end: the model lives on fal's hardware, so your card stays free for whatever else is in the graph.
The cost of that is the standard API cost. Your images get uploaded to fal's CDN before generation, your prompt travels with them, and you pay per megapixel rather than per session. For a fixed style you'll hit hundreds of times locally, local wins on economics. For a LoRA you want to try once, or a machine that can't hold Flux at all, this is the shortcut.
Inputs
prompt- natural sentences. Flux was the model that made natural-language prompting the norm, and tag soup does it no favours.loras- a multiline JSON string: LoRA entries with their weights and a scale, merged together for the final image. Empty leaves them out entirely. These load on fal's side, so it's URLs - not a local file path, and not a dropdown of yourmodels/lorasfolder.guidance_scaledefault 3.5, range 0–35. Lower than the Krea node's 4.5; 3.5 is the Flux Dev convention and it's right where the LoRA recipes usually assume you are.num_inference_stepsdefault 28 (1–50).seed(-1 random),num_images1–4 (the tooltip notes it's forced to 1 for streaming output),enable_safety_checker,output_format(jpeg/png),acceleration.image_sizeplusimage_size_width/image_size_heightforcustom(16–14142, step 16).
Then the pack-wide four, identical on every fal node here: max_cost_usd (default $20, evaluated before upload, 0 = no cap), reuse_identical_run (on by default), extra_json (a JSON object merged into the request last, for any fal field the node has no box for), max_concurrent (default 1 - one paid fal call at a time across the run).
Outputs
images → preview or save. image_paths → where they landed in output/fal/fal-ai_flux-lora/. seed (the seed actually used - write it down when you get a keeper), has_nsfw_concepts, timings, prompt, and info with the request id, the cost estimate and fal's full answer.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
Manager route: search comfyui-arkennemasis, or paste the repo URL into Install via Git URL. Restart ComfyUI afterwards. If you install by hand, there's no pip step needed for this node - the fal provider uses Python's standard library, and the only declared requirement (httpx) belongs to the pack's separate Codex nodes.
The key goes in .env, in the folder that holds run_nvidia_gpu.bat:
FAL_KEY=your-key-from-fal.ai/dashboard/keys
There's no key field on the node, so nothing sensitive ends up saved inside a workflow JSON.
Known snags
A LoRA that "does nothing". On fal the LoRA has to be fetchable by fal. A Civitai download link, a Hugging Face raw file URL, or a file registered on fal's side - a path on your SSD will simply not resolve. The node validates the JSON before uploading, so you'll at least get a clean, free error for malformed syntax rather than a fake result.
Stacking two LoRAs at full scale. Flux Dev takes single-subject LoRAs well; pile three on and you're in the territory where the community's own note is that stacking is where quality goes sideways. Lower the scales and add one at a time.
Re-running for free and not noticing. reuse_identical_run returns the previous files when settings, LoRAs and inputs are byte-identical. That's a feature when ComfyUI crashed mid-run, and a nuisance when you wanted a different sample from the same recipe - flip it off or change the seed.
Cheaper than it looks, or more expensive. $0.035/MP is per megapixel per image. A 1536×1536 generation with num_images 4 is nine megapixels, or about 31 cents. The badge on the node does this maths live; believe it over your own mental arithmetic.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | The prompt to generate an image from. | |
| 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. |
| loras | STRING | The LoRAs to use for the image generation. You can use any number of LoRAs and they will be merged together to generate the final image. JSON. Empty leaves it out. | |
| guidance_scale | FLOAT | 3.500–35 | 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. This is always set to 1 for streaming output. |
| enable_safety_checker | BOOLEAN | true | If set to true, the safety checker will be enabled. |
| output_format | COMBO | jpeg | The format of the generated image. |
| acceleration | COMBO | none | Acceleration level for image generation. 'regular' balances speed and quality. |
| 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 | — |
| timings | STRING | — |
| prompt | STRING | — |
| info | STRING | JSON: request id, cost estimate, saved files and fal's full answer. |