- Async node execution: on ComfyUI with native async support (detected
via comfy_execution.utils, added in the same commit as async nodes),
all dynamic nodes and Fal Any Endpoint run as coroutines — independent
graph branches execute fal calls concurrently with no Submit/Collect
required. Uploads/downloads/preflight run off-loop; older ComfyUI
versions keep byte-identical sync behavior. Live-verified: two
concurrent generations in 2.5s total.
- Typed builder nodes (FAL/Utils/Builders): 8 chainable builders
(LoRA, embedding, ControlNet, IP-Adapter, reference image/element,
multi-prompt shot, key-value, JSON merge) replacing JSON-by-hand for
the 467 object-typed inputs across the catalog; shapes validated
against live OpenAPI schemas.
- Discovery: FAL/Featured tier (data/featured_models.json, 26 flagship
endpoints with display-name overrides), 434 models flagged as
superseded within their family in node help, thumbnails in the
endpoint picker.
- Registry freshness: startup delta check against the live catalog
(logs how many models are newer than the snapshot), sidebar Registry
section with one-click refresh (atomic registry write; restart note).
- Docs: README 1,946 → 327 lines; model tables moved to MODELS.md
(generator retargeted; weekly refresh workflow now regenerates it);
CONTRIBUTING.md redirects hand-written-node PRs to the registry and
featured-list workflow.
Review fixes: spend-guard preflight moved off the event loop in the
async path; registry writes atomically via temp+rename; freshness
daemon gated off in tests; non-finite numbers rejected in FalKeyValue;
sidebar poll budget aligned with the server timeout.
- Durable Job Inbox: every async submit is journaled to the shared
sqlite store and survives ComfyUI restarts; the Fal Job Inbox node
lists pending/collected jobs and outputs the newest pending
request_id/endpoint for one-wire recovery via Result by Request ID.
- Provenance: Fal Save Media from URL writes a <file>.fal.json sidecar
and embeds a fal_provenance PNG text chunk (preserving existing text
chunks and ICC profiles), returning the request_id as a second output;
new Fal Provenance from File node reads saved files back into
endpoint_id + request_id for free re-materialization.
- First web extension (web/ + /fal_api server routes): per-node cost
pills rendered above every priced fal node (live estimates on
free-typed endpoint fields), a fal sidebar tab with session spend,
account balance and a job list with copy/cancel, and in-canvas
endpoint search with price labels. All features degrade silently on
older frontends; routes are exception-guarded and cached.
Review fixes: PNG provenance embed preserves source text chunks and ICC
profile; jobs route limit clamped.
15 new tests (91 total).