PVL FluxPro1.1 Ultra (fal.ai)
Flux Pro 1.1 Ultra with parallel requests and per-item retries built in
- IMAGE
Flux Pro 1.1 Ultra is BFL's flagship API tier - the high-detail end of the Pro line, served only in the cloud, which is exactly why this node exists. PVL FluxPro1.1 Ultra wraps fal-ai/flux-pro/v1.1-ultra and, unusually for this pack, it's the wrapper that has clearly been used hard: it does parallel multi-image generation, per-request retries that respect the API's no-retry policy violations, aspect-ratio validation, and even sanity-checks its own output for all-black failures. It's the most battle-tested-feeling node in the whole pack.
It's part of the ComfyUI Assistant Node pack from pvlprk, and it's the one you'd reach for when a single high-quality render matters more than iteration speed - or when you want several of them at once.
How it works
The workflow is the two-phase fal queue pattern: submit each request, poll until it completes, fetch the image. What makes this node different is what wraps that pattern. You can split one prompt into several on the delimiter (default [++]), and each piece becomes its own API call, run in parallel with a thread pool - so one node can fan out into a batch of Pro renders simultaneously, each with its own retries budget. If a call fails, it retries; if the failure is fal's content_policy_violation error, it does not retry, because retrying a policy rejection just burns money. If a request comes back as an all-black image, it's treated as a failure, not a result.
The aspect_ratio field is a string with forgiving input: 16:9, 16x9, landscape, portrait, square all normalize to the model's allowed set (21:9, 16:9, 4:3, 3:2, 1:1, 2:3, 3:4, 9:16, 9:21). Invalid values raise a clear error instead of silently failing upstream.
The inputs that matter
prompt- split it with the delimiter to fan out parallel renders.aspect_ratio- the shape, as a string; synonyms accepted.raw(optional, default on) - pass through without extra processing. Leave it on.num_images- 1–4. With prompt-splitting, this controls how many parallel calls you get.retries/timeout_sec/debug_log- the reliability trio, and here they're not decorative:retriesgenuinely re-drives failed calls, anddebug_logprints each submit/poll/seed per item.
Output: one IMAGE - a batch tensor if multiple calls succeeded.
Installing it
Part of pvlprk/comfyui-pvl-api-nodes. Install via ComfyUI Manager (search "ComfyUI Assistant Node") or:
cd ComfyUI/custom_nodes
git clone https://github.com/pvlprk/comfyui-pvl-api-nodes
Set your fal.ai key as FAL_KEY (or FAL_API_KEY / FAL_CLIENT_KEY), restart, top up credits.
Where people get burned
This is a Pro-tier node - the most expensive per call in the family - so parallel generation is a fast way to spend credits. The retry logic helps, but a bad batch with retries: 2 means three attempts per item before it gives up. Pre-flight with one image on a cheaper tier, then batch on Ultra. And read the console output with debug_log on before assuming a failure; this node is unusually good at telling you exactly what happened.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| seed | INT | -1-1–4294967295 | — |
| num_images | INT | 11–4 | — |
| output_format | COMBO | png | 2 options: jpeg, png |
| sync_mode | BOOLEAN | false | — |
| safety_tolerance | COMBO | 2 | 6 options: 1, 2, 3, 4, 5, 6 |
| aspect_ratio | STRING | 1:1 | — |
| retries | INT | 20–10 | — |
| timeout_sec | INT | 505–600 | — |
| debug_log | BOOLEAN | false | — |
| delimiteropt | STRING | [++] | — |
| enable_safety_checkeropt | BOOLEAN | false | — |
| rawopt | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |