Skip to content

feat(fal): add 14 new FAL endpoints including Flux 3 Video Edit - #5727

Merged
georgi merged 2 commits into
mainfrom
claude/zen-cori-gglqh5
Sep 11, 2026
Merged

feat(fal): add 14 new FAL endpoints including Flux 3 Video Edit#5727
georgi merged 2 commits into
mainfrom
claude/zen-cori-gglqh5

Conversation

@georgi

@georgi georgi commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

What changed

Diffs the live FAL catalog (1500 models, fetched page by page from fal.ai/api/models) against the endpoints packages/fal-codegen/src/configs/ already carries, and adds every model published since 2026-08-26 that exposes a queue OpenAPI schema — 14 endpoints, headlined by Flux 3 Video Edit (blackforestlabs/flux-3/edit-video), which re-renders an existing video from a natural-language instruction and completes the flux-3 video family alongside the extend/draft/enhance nodes already shipped.

Module Endpoints
video-to-video blackforestlabs/flux-3/edit-video, google/gemini-omni-flash/v1.1/edit, fal-ai/kling-video/o3/4k/video-to-video/{reference,edit}, bria/video/background-removal/green-screen-despill
image-to-video minimax/h3-max/multi-angle/image-to-video, minimax/h3-max/reference-to-video, google/gemini-omni-flash/v1.1/{image,reference}-to-video
text-to-video google/gemini-omni-flash/v1.1/text-to-video
image-to-image bria/increase-resolution
image-to-json bria/ad-delayer, fal-ai/vggt-1b
speech-to-text fal-ai/elevenlabs/forced-alignment

Manifest entries come from scripts/append-new-endpoints.ts, which fetches only what the manifest is missing — the 1586 existing entries are byte-identical (verified by comparing the parsed old manifest against the new one's prefix) and the 14 are appended. Class names follow the neighbouring precedents in each module (KlingVideoO34kVideoToVideoEdit after KlingVideoO34kImageToVideo, GeminiOmniFlashV11Edit after GeminiOmniFlashEdit, and so on); no collisions across 1600 configs.

Two candidates are deliberately left out: minimax/h3-max/director and fal-ai/controlfoley both return an empty queue OpenAPI document, so the generator has nothing to parse.

Unit pricing is not in this diff — api.fal.ai/v1/models/pricing needs a FAL_KEY this environment does not have. The new endpoints join the 166 already absent from the pricing bundle; estimateFalCost returns null for an unpriced node rather than guessing, and the next npm run generate:fal with a key picks all of them up.

Verification

  • npm run test:affected — the 11 selected backend packages run; 69 of 72 turbo tasks pass, including @nodetool-ai/fal-codegen (152 tests) and @nodetool-ai/fal-nodes (161 tests). Two failures are pre-existing and reproduce on a clean tree (confirmed by stashing the diff):
    • @nodetool-ai/example-nextjs-vercel#buildModule not found: openclaw/fs-safe under packages/storage/node_modules
    • @nodetool-ai/base-nodes — 14 image tests failing with No WebGPU adapter available, the missing-Vulkan-driver case documented in AGENTS.md
  • npm run typecheck — one pre-existing error in web/src/components/projects/__tests__/projectStarters.test.ts (isPersonal missing from a cast fixture); no file in this diff is involved
  • npm run lint — passes; warnings only, all pre-existing
  • npm run dev:nodetool -- harness gate --base origin/main4/4 selfchecks passed
  • npm run generate:fal:check — 5 generated outputs match the checked-in fixtures, so the drift gate is still clean
  • All 14 nodes register and resolve: FAL_NODES reports 1600 node types and every new type is present; nodetool node run fal.video_to_video.Flux3EditVideo reaches the provider and stops at FAL_API_KEY is not configured, which is as far as this environment goes

Agent capabilities

No capability added and no declared contract changed.

New checks

No check, rule, or audit added.

🤖 Generated with Claude Code

https://claude.ai/code/session_01R4Fb5v9vMJmS8xEpVp5Lyx


Generated by Claude Code

Diffs the live FAL catalog against src/configs/ and adds every model
published since 2026-08-26 that exposes a queue OpenAPI schema:

  video-to-video  blackforestlabs/flux-3/edit-video
                  google/gemini-omni-flash/v1.1/edit
                  fal-ai/kling-video/o3/4k/video-to-video/{reference,edit}
                  bria/video/background-removal/green-screen-despill
  image-to-video  minimax/h3-max/multi-angle/image-to-video
                  minimax/h3-max/reference-to-video
                  google/gemini-omni-flash/v1.1/{image,reference}-to-video
  text-to-video   google/gemini-omni-flash/v1.1/text-to-video
  image-to-image  bria/increase-resolution
  image-to-json   bria/ad-delayer, fal-ai/vggt-1b
  speech-to-text  fal-ai/elevenlabs/forced-alignment

Manifest entries generated with scripts/append-new-endpoints.ts, so the
1586 existing entries are byte-identical and only the 14 are appended.

minimax/h3-max/director and fal-ai/controlfoley are left out: both return
an empty queue OpenAPI schema, so the generator has nothing to parse.

Unit pricing for the new endpoints needs a FAL_KEY and lands on the next
`npm run generate:fal`; until then estimateFalCost returns null for them,
the same as for the 166 endpoints already missing a price.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R4Fb5v9vMJmS8xEpVp5Lyx
The marketing provider catalog is generated from the shipped node
manifests, so adding 14 FAL endpoints made it stale and failed the
"Check generated provider catalog is up to date" step of marketing-ci.

Regenerated with `npm run seo:provider-catalog`, not by hand. FAL's model
total moves 1566 -> 1579 (image 740 -> 743, video 621 -> 631); the
highlight list is bounded, so the new entries displace previously
highlighted ones.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R4Fb5v9vMJmS8xEpVp5Lyx
@georgi
georgi enabled auto-merge September 11, 2026 10:58
@georgi
georgi merged commit badb6ef into main Sep 11, 2026
28 checks passed
@georgi
georgi deleted the claude/zen-cori-gglqh5 branch September 11, 2026 11:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants