Skip to content

feat: add schema-driven fal.ai external provider - #9552

Open
Xpos587 wants to merge 7 commits into
invoke-ai:mainfrom
Xpos587:feat/fal-external-provider
Open

feat: add schema-driven fal.ai external provider#9552
Xpos587 wants to merge 7 commits into
invoke-ai:mainfrom
Xpos587:feat/fal-external-provider

Conversation

@Xpos587

@Xpos587 Xpos587 commented Aug 27, 2026

Copy link
Copy Markdown

Summary

Adds fal.ai as a schema-driven native external provider for InvokeAI.

  • Adds dynamic fal.ai catalog discovery from /v1/models with cursor pagination and cross-page search.
  • Reads each endpoint's queue OpenAPI schema and normalizes common inputs, output kind, and safe public properties.
  • Installs image-capable endpoints as lightweight External Models with native Canvas routing.
  • Keeps curated FLUX Schnell, FLUX Dev, FLUX Kontext Pro, and FLUX Fill presets.
  • Adds schema-driven payload mapping for prompt, init/reference images, masks, size, seed, output count, and declared advanced JSON fields.
  • Adds fal.ai Generic Media node for all other endpoint families: text/video, image-to-video, video-to-video, upscale, audio, speech, 3D, training, and future endpoints.
  • Adds local image/mask/video upload placeholders for generic workflows and raw JSON output.
  • Adds catalog UI with refresh, search, pagination, image-model Canvas install, and generic-workflow labels.
  • Preserves source URL and dynamic panel controls in installed external model records.
  • Documents model discovery, native Canvas boundaries, generic media workflows, and billing behavior.

Related Issues / Discussions

None.

QA Instructions

No billable fal.ai inference request was submitted. Provider tests mock catalog, schema, queue, CDN upload, polling, and result downloads.

Passed locally:

  • 92 focused backend tests across fal provider/catalog, invocations, routers, model install, and existing external generation.
  • 2,204 frontend tests via pnpm build.
  • Frontend TypeScript check.
  • Frontend ESLint, Prettier, dependency-cycle checks, and production build.
  • Ruff check and format check.
  • OpenAPI schema generation and frontend type generation.
  • Native invocation registration check for fal_generic_media_native.

Manual verification after merge:

  1. Configure fal.ai under Models -> Add Model -> External Providers.
  2. Search the fal.ai catalog and install an image endpoint for Canvas.
  3. Select it in Canvas; supported modes and common controls come from endpoint metadata.
  4. Use fal.ai Generic Media in Workflow Editor for video/audio/3D/other endpoints, using the endpoint's JSON schema.

The repository checkout lacks Git LFS locally, so the unrelated full-suite model fixture tests cannot run in this environment. Fork PR checks are currently action_required until an InvokeAI maintainer approves fork workflow execution.

Merge Plan

No database migration. External model entries are weightless references. Existing curated external models and provider flows remain compatible.

Checklist

  • Short, descriptive title
  • Tests added / updated
  • Documentation added / updated
  • Updated What's New copy (not a release PR)

@github-actions github-actions Bot added api python PRs that change python files invocations PRs that change invocations backend PRs that change backend files services PRs that change app services frontend PRs that change frontend files python-tests PRs that change python tests docs PRs that change docs labels Aug 27, 2026
@Xpos587 Xpos587 changed the title feat: add fal.ai external image provider for Canvas feat: add schema-driven fal.ai external provider Aug 27, 2026
@Pfannkuchensack Pfannkuchensack self-assigned this Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api backend PRs that change backend files docs PRs that change docs frontend PRs that change frontend files invocations PRs that change invocations python PRs that change python files python-tests PRs that change python tests services PRs that change app services

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants