From c46c34cfcd791156f2fbc7fa2932bedee8936790 Mon Sep 17 00:00:00 2001 From: Teknium <127238744+teknium1@users.noreply.github.com> Date: Sat, 15 Aug 2026 22:09:24 -0700 Subject: [PATCH] feat(video-gen): add Wan 2.7 FAL video family (t2v + i2v) Adds Alibaba's Wan 2.7 to FAL_FAMILIES: fal-ai/wan/v2.7/{text,image}-to-video. 1080p/720p, integer duration 2-15s, negative prompts, seed, native auto audio (no generate_audio key), i2v drops aspect_ratio (schema omits it). Schema verified against fal.ai llms.txt + OpenAPI. $0.10/s (720p), $0.15/s (1080p). --- plugins/video_gen/fal/__init__.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/video_gen/fal/__init__.py b/plugins/video_gen/fal/__init__.py index 66e602db4f..4b0d0869a0 100644 --- a/plugins/video_gen/fal/__init__.py +++ b/plugins/video_gen/fal/__init__.py @@ -111,6 +111,12 @@ FAL_FAMILIES: dict[str, dict[str, Any]] = { "alibaba/wan-3.0-prime/text-to-video", "alibaba/wan-3.0-prime/image-to-video", image_param_key="start_image_url", duration_int=True, audio_param_key="audio", aspect_ratios=("16:9", "4:3", "1:1", "3:4", "9:16"), resolutions=("480p", "720p", "1080p"), durations=(2, 30), audio=True, seed=True), + # Wan 2.7: integer duration enum 2..15, aspect_ratio on t2v only (i2v follows the image), `seed` + `negative_prompt` on both; + # audio is auto-generated when no audio_url is given (no toggle key). + "wan-2.7": _family("Wan 2.7", "~60-180s", "premium", "Alibaba. 1080p, auto audio, multi-shot prompts, 2-15s.", + "fal-ai/wan/v2.7/text-to-video", "fal-ai/wan/v2.7/image-to-video", duration_int=True, image_drop_keys=("aspect_ratio",), + aspect_ratios=("16:9", "9:16", "1:1", "4:3", "3:4"), resolutions=("720p", "1080p"), durations=(2, 15), + audio_native=True, negative=True, seed=True), # v1.1 publishes the full schema: integer duration 3-15, nine aspect ratios (t2v only — i2v follows the image), 720p/1080p, # `seed` on both endpoints, audio always on (no generate_audio key). "happy-horse": _family("Happy Horse 1.1", "~60-120s", "premium", "Alibaba flagship. 1080p, native audio + multilingual lip-sync, 3-15s, nine aspect ratios.", @@ -355,7 +361,7 @@ class FALVideoGenProvider(VideoGenProvider): def get_setup_schema(self) -> dict[str, Any]: return {"name": "FAL", "badge": "paid", "env_vars": [{"key": "FAL_KEY", "prompt": "FAL.ai API key", "url": "https://fal.ai/dashboard/keys"}], - "tag": "LTX 2.3/2.5, Pixverse, Seedance 2.0/2.5/Mini, Veo 3.1, MiniMax H3, FLUX 3, Kling 3.0/4K/O3, Wan 3.0, Happy Horse, Grok Imagine, " + "tag": "LTX 2.3/2.5, Pixverse, Seedance 2.0/2.5/Mini, Veo 3.1, MiniMax H3, FLUX 3, Kling 3.0/4K/O3, Wan 2.7/3.0, Happy Horse, Grok Imagine, " "Gemini Omni — text-to-video & image-to-video"} def capabilities(self) -> dict[str, Any]: