Commit Graph
120 Commits
Author SHA1 Message Date
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
Gökay Aydoğan 75a4ce6324 Platform pack (#76)
* feat: v2.1.0 — fal platform utilities (async fan-out, cost tools, recovery)

Six new nodes under FAL/Platform, built on fal's queue/request-id/pricing
primitives:

- Fal Submit + Fal Collect: queue jobs without blocking and collect
  results later — N generations run in parallel inside one graph
- Fal Result by Request ID: re-fetch any past generation from fal's
  queue without re-generating or re-billing
- Fal Cost Estimator: per-run cost report parsed from registry pricing
  before anything is queued
- Fal Session Costs: in-memory ledger of every fal call this session
  (endpoint, duration, request id, est. cost) with running total
- Fal Save Media from URL: persist expiring CDN results into the
  ComfyUI output directory

Core: utils/pricing.py (pricing-text parser + registry lookup),
utils/ledger.py (thread-safe session ledger), api.py gains submit_only,
result_from_request_id, request-id capture via on_enqueue, and
automatic ledger recording; any_endpoint helpers extracted for reuse.

16 new tests (61 total).

* feat: v2.2.0 — persistent result cache, spend guard, URL passthrough

Three fal-platform features on top of the 2.1 platform pack:

- Persistent result cache (sqlite, [cache] config): identical fal calls
  are served free from disk across ComfyUI restarts; uploads are
  deduplicated by content hash so identical inputs upload once. Bypass
  per node via force_rerun. Cache hits are never blocked by the spend
  guard and never recorded as spend.
- Spend Guard + billing ([spend_guard] config): preflight refuses to
  submit once the session's estimated spend reaches session_budget_usd
  or the account balance (fal Billing API) falls below min_balance_usd.
  New Fal Account Balance node; ledger reconciliation against the
  aggregated usage API (fal exposes no per-request billed amounts).
- fal-CDN URL passthrough: every dynamic node's media inputs gain
  optional *_direct_url twins (URL sent directly, no download/re-upload;
  1,405 twins across 992 nodes) and image-kind nodes output image_urls
  alongside IMAGE — fal→fal chains with zero local I/O.

Review fixes: path traversal blocked in FalSaveMediaURL (confined to the
output dir, atomic O_EXCL filename claim), FalAnyEndpoint force_rerun now
bypasses the cache, cache lookup ordered before spend-guard preflight,
result recovery no longer counts as new session spend.

14 new tests (76 total).
2026-07-02 14:54:07 +03:00
Gökay Aydoğan b75f731abf feat: v2.0.0 — full fal catalog coverage, dynamic nodes, core rewrite (#75)
Auto-generated nodes for the entire live fal catalog (1,391 models →
1,482 total nodes) built at startup from a committed registry, plus a
full rewrite of the core layer. All 87 v1 node keys, inputs and outputs
are preserved — existing workflows load and run unchanged.

New:
- data/fal_registry.json + scripts/build_registry.py: distills fal's
  catalog and per-endpoint OpenAPI schemas into a deterministic registry
- nodes/dynamic/: schema→node factory (typed widgets, tooltips, pricing
  in node help, IMAGE/VIDEO/AUDIO auto-upload, native VIDEO/AUDIO
  outputs, seed -1=random, force_rerun), plus a generic Fal Any Endpoint
  node for arbitrary endpoints
- nodes/utils/: rewritten core — FalApiError surfacing fal's real error
  payloads, queue progress logs, ComfyUI cancel support, retries and
  timeouts everywhere, parallel uploads/downloads, structured logging
- tests/ (45 tests incl. a legacy-key snapshot lock), CI lint+test
  workflow, weekly registry-refresh workflow that opens a PR on changes
- README regenerated from the registry (scripts/build_readme.py)

Fixed:
- GPTImage2 / GPTImage2Edit were defined but never registered
- Topaz video upscale sent a nonexistent API field (desired_increase)
- SeedVR video upscaler had its error handling commented out + wrong
  model label; ProRes enum value mismatch translated at argument level
- 10x `is ""` comparisons, bare excepts, missing HTTP timeouts,
  temp-file leaks, fps=0 crash in LoadVideoURL, duplicate enum entry
- opencv-python & friends missing from pyproject (Registry installs)
- API failures now raise visible errors instead of silently returning
  blank images or "Error:" strings that downstream nodes tried to load

BREAKING (behavioral only): failed API calls raise instead of returning
blank/black images or error strings. Node signatures are unchanged.
2026-07-02 12:46:22 +03:00
Kozatiju 1b14ab3164 Update image_node.py (#71) 2026-05-05 20:43:46 +03:00
Rodolfo FantiandClaude Opus 4.6 a728d7e3ba Add Kling 3.0 (V3 + O3) and Nano Banana 2 model support (#66)
Add 7 new node classes covering 12 fal.ai endpoints:

Kling V3 (4 nodes):
- V3 Standard/Pro unified T2V/I2V with 3-15s duration, native audio, end frame control
- V3 Standard/Pro Motion Control for character animation via motion transfer

Kling O3 (2 nodes):
- O3 Standard/Pro unified T2V/I2V with 3-15s duration and native audio

Nano Banana 2 (1 node):
- Unified T2I/Edit with multi-resolution (0.5K-4K), web search grounding, and seed support

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 21:58:56 +03:00
648d4b5ab2 Added Wan 2.6 Unified I2V/T2V and Reference to Video Nodes. Added GPT Image 1.5 (#62)
* Add new video generation nodes and URL loader

- Added Kling v2.1 Pro and v2.5 Turbo Pro image-to-video nodes
- Added Sora 2 Pro image-to-video node
- Added Veo 3.1 and Veo 3.1 Fast first-last-frame-to-video nodes
- Added FalVideoURLLoader for converting video URLs to VideoHelperSuite-compatible IMAGE tensors
- FalVideoURLLoader includes automatic FPS detection with override option

* Update VLM and LLM nodes to OpenRouter API

- Migrated VLM node to openrouter/router/vision endpoint
- Migrated LLM node to openrouter/router endpoint
- Updated to latest model versions (Gemini 2.5, Claude Sonnet 4.5, GPT-4.1, etc.)
- Added multi-image support for VLM node
- Added temperature, max_tokens, and reasoning parameters
- Added custom model name support for both nodes
- Added reasoning output for LLM node
- Disabled streaming for consistent response handling

* Update README.md

* Removed redundant node that i created by accident

* Fix Veo 3.1 endpoint routing with conditional logic

- Added conditional routing to Veo 3.1 Standard node
- Added conditional routing to Veo 3.1 Fast node
- When last_frame is not provided, routes to image-to-video endpoints
- When last_frame is provided, routes to first-last-frame-to-video endpoints
- All parameters (duration, aspect_ratio, resolution, audio) work with both modes

* add nano banana pro

* Update README with Nano Banana Pro node

* change nano banana image input to accept batch tensor (14 images) and add example workflow

* Add Kling v2.6 Pro unified T2V/I2V node

* Add Wan 2.6 and GPT-Image 1.5 nodes

Video nodes:
- Wan 2.6 Video Generation: Unified T2V/I2V with conditional routing
- Wan 2.6 Reference-to-Video: Subject consistency with up to 3 reference videos

Image nodes:
- GPT-Image 1.5: High-fidelity text-to-image generation
- GPT-Image 1.5 Edit: Batch image editing (up to 16 images) with optional mask

---------

Co-authored-by: ShadowxShinigamI <shadowshingami123@gmail.com>
Co-authored-by: ShadoWxShinigamI <116374738+ShadoWxShinigamI@users.noreply.github.com>
2025-12-19 22:54:53 +03:00
Caitlyn E. Clabaugh 809cf424b4 Adjusted parameters of Wan2214bAnimate nodes (#59) 2025-12-10 00:44:38 +03:00
Caitlyn E. ClabaughandCaitlyn Clabaugh 56ac5e9613 Add nodes for Kling Omni endpoints & support multiple concurrent requests (#54)
* Made vace_mask_video argument optional in DYWanFun22Node

* Add nodes for Kling Omni endpoints: KlingO1ImageToVideoNode, KlingO1ReferenceToVideoNode, KlingO1VideoToVideoEditNode, and KlingO1VideoToVideoReferenceNode

* Added option to submit multiple requests asynchronously and get a list of results back

---------

Co-authored-by: Caitlyn Clabaugh <caitlyn.clabaugh.-nd@disney.com>
2025-12-02 10:58:20 +03:00
Caitlyn E. ClabaughandCaitlyn Clabaugh 492a963bd4 Add nodes for Qwen-Image-Edit-Plus with LoRA support, Seedance Pro image-to-video, Wan 2.2 VACE Fun 14b pose and depth, and custom DY endpoints (#53)
* Add Seedance Pro node with start/end frame support

* Wan 22 VACE Fun a14b (#3)

Added node for wan-22-vace-fun-a14b endpoints (depth, pose, etc.) with multi-control support

Simplified uploade of ref_images in Wan22VACEFun14bNode using fal utils

Limit Wan 2.2 VACE Fun 14b to pose and depth because will need aditional inputs for outpainting, inpainting, and reframe

* DY Custom Wan Fun 22 Node (#4)

Add custom DY Wan 2.2 Fun endpoint for complex video-to-video

Standardized default seed to be -1 and only set seed if not -1

Added optional mask video for DYWanFun22Node

* Dy Wan Upscaler (#5)

* Updated DYWanFun22Node to always set control strengths.
* Added custom DYWanUpscalerNode.

* Added node for Qwen Image Edit Plus with LoRAs support (#6)

* Updated README

---------

Co-authored-by: Caitlyn Clabaugh <caitlyn.clabaugh.-nd@disney.com>
2025-11-22 13:38:54 +03:00
Harsha B SubramanyamandShadowxShinigamI 57b78dcca3 Add Nano Banana Pro (#52)
* Add new video generation nodes and URL loader

- Added Kling v2.1 Pro and v2.5 Turbo Pro image-to-video nodes
- Added Sora 2 Pro image-to-video node
- Added Veo 3.1 and Veo 3.1 Fast first-last-frame-to-video nodes
- Added FalVideoURLLoader for converting video URLs to VideoHelperSuite-compatible IMAGE tensors
- FalVideoURLLoader includes automatic FPS detection with override option

* Update VLM and LLM nodes to OpenRouter API

- Migrated VLM node to openrouter/router/vision endpoint
- Migrated LLM node to openrouter/router endpoint
- Updated to latest model versions (Gemini 2.5, Claude Sonnet 4.5, GPT-4.1, etc.)
- Added multi-image support for VLM node
- Added temperature, max_tokens, and reasoning parameters
- Added custom model name support for both nodes
- Added reasoning output for LLM node
- Disabled streaming for consistent response handling

* Update README.md

* Removed redundant node that i created by accident

* Fix Veo 3.1 endpoint routing with conditional logic

- Added conditional routing to Veo 3.1 Standard node
- Added conditional routing to Veo 3.1 Fast node
- When last_frame is not provided, routes to image-to-video endpoints
- When last_frame is provided, routes to first-last-frame-to-video endpoints
- All parameters (duration, aspect_ratio, resolution, audio) work with both modes

* add nano banana pro

* Update README with Nano Banana Pro node

* change nano banana image input to accept batch tensor (14 images) and add example workflow

---------

Co-authored-by: ShadowxShinigamI <shadowshingami123@gmail.com>
2025-11-22 13:37:35 +03:00
VLT Media aa6e5b9531 Added Pixverse Swap and Infinity Star Text to Video (#49)
* Feature: Added prepare_images to make handling of batch images cleaner and easier for nodes.

Feature: Added images input to Nano Banana Edit (fal) so that a user isn't just stuck with only 4 image inputs. Had to do it this way to not break current user workflows.

* Feature: Added Infinity Start Text To Video Node.
Feature: Added Pixverse Swap Node.
2025-11-18 17:46:33 +03:00
Harsha B SubramanyamandShadowxShinigamI f6a650d407 Add new video generation nodes AND updated LLM and VLM nodes (#50)
* Add new video generation nodes and URL loader

- Added Kling v2.1 Pro and v2.5 Turbo Pro image-to-video nodes
- Added Sora 2 Pro image-to-video node
- Added Veo 3.1 and Veo 3.1 Fast first-last-frame-to-video nodes
- Added FalVideoURLLoader for converting video URLs to VideoHelperSuite-compatible IMAGE tensors
- FalVideoURLLoader includes automatic FPS detection with override option

* Update VLM and LLM nodes to OpenRouter API

- Migrated VLM node to openrouter/router/vision endpoint
- Migrated LLM node to openrouter/router endpoint
- Updated to latest model versions (Gemini 2.5, Claude Sonnet 4.5, GPT-4.1, etc.)
- Added multi-image support for VLM node
- Added temperature, max_tokens, and reasoning parameters
- Added custom model name support for both nodes
- Added reasoning output for LLM node
- Disabled streaming for consistent response handling

* Update README.md

* Removed redundant node that i created by accident

* Fix Veo 3.1 endpoint routing with conditional logic

- Added conditional routing to Veo 3.1 Standard node
- Added conditional routing to Veo 3.1 Fast node
- When last_frame is not provided, routes to image-to-video endpoints
- When last_frame is provided, routes to first-last-frame-to-video endpoints
- All parameters (duration, aspect_ratio, resolution, audio) work with both modes

---------

Co-authored-by: ShadowxShinigamI <shadowshingami123@gmail.com>
2025-11-18 17:46:14 +03:00
Gökay Aydoğan 54b3182c6a Update pyproject.toml 2025-10-31 21:30:28 +03:00
VLT Media 830a467f54 Added Upscale Nodes, along with Krea Wan 2.1 , Wan 2.2 Animate: Move and Flux Pro v1 Fill (#48)
* Feature: Added Bria Video Increase Resolution, Wan 2.2 Animate Replace , and Upload File nodes.
Feature: Added Bria Video Increase Resolution example workflow.
Chore: Added optional input_video_url to Wan VACE Video Edit

* Feature: Seedvr Upscale Video node added

* Feature: Added Topaz Upscale Video

* Chore: Added new video and upscale nodes

* Feature: Added Krea Wan 14b Video-to-Video and Wan 2.2 14b Animate: Move Character nodes.

* Bug: Removed wrong resolution values from Animate Move

* Feature: Added Flux v1 Fill Node and workflow example

* Bug: Fixed incorrect Seedvr Upscale Video  upscale_mode value.
2025-10-31 21:30:00 +03:00
Gökay Aydoğan 1fb220258f Update pyproject.toml 2025-10-26 10:36:29 +03:00
VLT Media 5382b69e64 Added Wan VACE Video Edit Node & upload_file method. (#47)
* Feature: Added Wan VACE Video Edit Node
Featuire: Added upload_file to aid in uploading data that isn't just images.

* Chore: Added Wan VACE return value label

* Chore: Added Wan VACE to README
2025-10-26 10:36:10 +03:00
Gökay Aydoğan 95b8a044ec Update pyproject.toml 2025-10-22 02:41:20 +03:00
Gökay Aydoğan 6273ea0fb2 Merge pull request #46 from mcmonkey4eva/add-new-image-apis
add 3 missing model apis and add missing entries to the readme
2025-10-22 02:41:04 +03:00
Alex "mcmonkey" Goodwin f65213ceb4 add 3 missing model apis and add missing entries to the readme 2025-10-21 16:26:59 -07:00
Gökay Aydoğan 1e60cc4a0b Update pyproject.toml 2025-10-20 01:41:17 +03:00
Gökay Aydoğan 7cd2900150 Merge pull request #45 from k1t4/feature/add_seedvr_upscaler
Added seedvr upscaler support
2025-10-20 01:40:32 +03:00
Chebanov Nikita 4200bbcedf keep clarity upscaler naming 2025-10-20 01:39:31 +03:00
Chebanov Nikita fedda31284 Added seedvr upscaler support 2025-10-20 01:14:24 +03:00
Gökay Aydoğan 105f6a9083 Update pyproject.toml 2025-10-18 01:17:22 +03:00
Gökay Aydoğan f65b8ea0fa Update image_node.py 2025-10-18 01:16:54 +03:00
Gökay Aydoğan 3f27dd7887 Merge pull request #43 from lericogit/feature/add-wan25-node
Add Wan2.5 node support
2025-10-03 14:33:51 +03:00
lericogit b95ff2c86e Fix README for Wan2.5 node 2025-10-03 13:04:31 +02:00
lericogit 04f19b26c2 Update README for Wan2.5 node 2025-10-03 13:00:44 +02:00
lericogit 13a05b8d6a Add Wan2.5 node support 2025-10-03 12:50:23 +02:00
Gökay Aydoğan a4f22a114b Update pyproject.toml 2025-09-17 19:32:06 +03:00
Gökay Aydoğan be7f74ebee Merge pull request #42 from jimlee2048/feat-seedream4.0
feat: support Seedream 4.0 Edit
2025-09-17 19:31:42 +03:00
Jim Lee 331ed2c058 feat: support Seedream 4.0 Edit 2025-09-18 00:16:34 +08:00
Gökay Aydoğan 97049f29c8 Update pyproject.toml 2025-09-11 16:13:03 +03:00
Gökay Aydoğan 9d8c754e8a Merge pull request #41 from gokayfem/change-optional
change optional image number
2025-09-11 16:12:49 +03:00
gökay aydoğan f9b21a5e93 change optional image number 2025-09-11 16:12:08 +03:00
Gökay Aydoğan fbee93b5b5 Update pyproject.toml 2025-09-11 15:55:31 +03:00
Gökay Aydoğan 845b9d46c5 Update requirements.txt 2025-09-05 11:34:43 +03:00
Gökay Aydoğan 31572e6e45 Merge pull request #39 from PierrunoYT/feature/add-qwen-image-edit
feat: add Qwen Image Edit node with parallel CFG support
2025-09-05 11:32:45 +03:00
Gökay Aydoğan b60c18d8a8 Merge pull request #40 from gokayfem/nano-banana
nano banana edit
2025-09-05 11:32:19 +03:00
gokayfem 58c54acbce nano banana edit 2025-09-05 11:31:40 +03:00
PierrunoYTandClaude 27580456ed feat: add Qwen Image Edit node with parallel CFG support
- Added QwenImageEdit class to nodes/image_node.py
- Supports image editing with text prompts using fal-ai/qwen-image-edit endpoint
- Features flexible image sizing, inference control, and acceleration options
- Includes safety checker, output format selection, and seed control
- Added to NODE_CLASS_MAPPINGS and NODE_DISPLAY_NAME_MAPPINGS
- Follows existing code patterns for consistency and error handling

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 17:30:08 +02:00
Gökay Aydoğan a68c56134c Merge pull request #33 from jimlee2048/main
feat: support SeedEdit 3.0
2025-07-20 18:40:57 +03:00
Jim Lee cd9eb99568 feat: support SeedEdit 3.0 2025-07-20 22:55:01 +08:00
Gökay Aydoğan ef774a511b Update pyproject.toml 2025-06-20 13:38:43 +03:00
Gökay Aydoğan 66d4dcf54d Merge pull request #28 from KhDu/feature/adding_new_nodes
Added new fal model nodes (Veo3 +Seedance + Imagen4)
2025-06-20 13:38:28 +03:00
Gökay Aydoğan a6d061c0eb Update image_node.py 2025-06-20 13:37:07 +03:00
KhDu 34d3a8396e Reverted Flux Kontext Max to being a boolean switch 2025-06-19 21:04:41 +03:00
KhDu 06a30a6f21 Added Veo3 model 2025-06-19 18:29:55 +03:00
KhDu f4f486edb0 Added Kontext Multi, seperated Kontext Max into its own node.
Added Seedance Video model.

Added Imagen4 Image model.
2025-06-19 18:21:20 +03:00
KhDu 1f6f476679 added imagen4 text-to-image, and seedance image-to-video 2025-06-16 21:21:37 +03:00