Files
Gokay Aydogan eac683ddcc feat: v2.3.0 — durable job inbox, provenance, in-canvas cost UI
- 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).
2026-07-02 15:17:25 +03:00

34 lines
906 B
TOML

[project]
name = "fal-api"
description = "Custom nodes for using fal API with auto-generated full-catalog coverage of fal.ai models. Video generation with Kling, Runway, Luma. Image generation with Flux. LLMs and VLMs OpenAI, Claude, Llama and Gemini."
version = "2.3.0"
license = {file = "LICENSE"}
requires-python = ">=3.9"
dependencies = [
"fal-client>=1.0,<2",
"torch",
"opencv-python",
"numpy",
"pillow",
"requests",
]
[project.urls]
Repository = "https://github.com/gokayfem/ComfyUI-fal-API"
# Used by Comfy Registry https://comfyregistry.org
[tool.comfy]
PublisherId = "gokayfem"
DisplayName = "ComfyUI-fal-API"
Icon = ""
[tool.ruff]
target-version = "py39"
line-length = 120
exclude = ["example_workflows"]
[tool.ruff.lint]
select = ["E", "F", "W", "I", "B", "UP"]
# E501: legacy long lines throughout the codebase; revisit once files are refactored.
ignore = ["E501"]