ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

OpenClaw fal 插件参考:图像、视频、音乐生成 Provider 的安装、配置与源码实现解析

OpenClaw fal 插件参考:图像、视频、音乐生成 Provider 的安装、配置与源码实现解析 OpenClaw fal 插件参考图像、视频、音乐生成 Provider 的安装、配置与源码实现解析【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw导读本文围绕 OpenClaw 内置的fal插件展开讲解如何通过FAL_KEY认证接入 fal 托管的图像、视频与音乐生成能力覆盖image_generate、video_generate、music_generate三个共享工具的参数映射、模型选择与各模型家族的差异化行为并结合 插件源码 与测试验证底层实现帮助读者完成从安装、配置到排障的完整闭环。插件概览OpenClaw 内置的 fal 生成 ProviderOpenClaw 在extensions/fal/目录下提供开箱即用的falprovider 插件其官方定位为「Adds fal model provider support to OpenClaw」即把 fal 托管的图像、视频、音乐生成模型接入 OpenClaw 的媒体生成体系。该插件由 OpenClaw 随包分发无需单独安装。从 插件入口 可以看到插件注册了四个核心能力一个模型 providercreateFalProvider()以及图像、音乐、视频三个生成 provider对应 openclaw.plugin.json 中声明的三个契约contracts契约含义imageGenerationProviders向image_generate工具提供图像生成能力musicGenerationProviders向music_generate工具提供音乐生成能力videoGenerationProviders向video_generate工具提供视频生成能力插件包名为openclaw/fal-provider见 package.jsonopenclaw.plugin.json中enabledByDefault: true表明它默认启用activation.onStartup: false表示按需激活。插件还声明了videoGenerationProviderMetadata.fal.referenceAudioInputs: true说明视频 provider 支持音频参考输入对应 Seedance reference-to-video 的音频引用能力。认证与快速上手fal provider 的认证方式是 API Key官方环境变量为FAL_KEYFAL_API_KEY作为回退同样可用见 openclaw.plugin.json 的envVars: [FAL_KEY, FAL_API_KEY]。在 provider-registration.ts 中认证方法被注册为选项键falApiKeyCLI 标志--fal-api-key环境变量FAL_KEY引导选择 IDfal-api-key分组fal覆盖 onboarding 范围image-generation、music-generation第一步设置 API Key交互式安装推荐使用 onboard 引导openclaw onboard --auth-choice fal-api-key非交互式环境可以直接传参或导出环境变量# 方式一命令行传参 openclaw onboard --fal-api-key key # 方式二环境变量 export FAL_KEYkey值得注意的引导行为onboarding 会在未配置默认图像模型时自动把fal/fal-ai/flux/dev写入配置作为默认图像模型。这一逻辑实现在 onboard.ts 的applyFalConfig中——只有当agents.defaults.mediaModels.image尚未配置时才会写入默认值避免覆盖已有配置。第二步设置默认图像模型{ agents: { defaults: { mediaModels: { image: { primary: fal/fal-ai/flux/dev, }, }, }, }, }认证与请求的底层实现每次请求的 HTTP 配置由 http-config.ts 统一解析默认 Base URL 为https://fal.run可通过models.providers.fal.baseUrl覆盖鉴权头为Authorization: Key apiKey即 fal 的Key前缀认证方案默认关闭私有网络访问allowPrivateNetwork: false由 provider-http 运行时注入网络策略。视频任务使用独立的队列端点https://queue.fal.run这在 video-generation-provider.ts 中以DEFAULT_FAL_QUEUE_BASE_URL常量定义并在请求构造时对 URL 主机进行替换。图像生成image_generatefal 图像生成 provider 的默认模型是fal/fal-ai/flux/dev对应源码中DEFAULT_FAL_IMAGE_MODEL fal-ai/flux/dev能力表如下能力项值单次最大生成数4 张/请求Krea 2 为 1 张/请求支持的尺寸1024x1024、1024x1536、1536x1024、1024x1792、1792x1024宽高比通用支持Flux image-to-image 除外分辨率1K、2K、4K各模型上限不同输出格式png默认或jpegKrea 2 拒绝outputFormat覆盖编辑请求与参考图限额当请求携带参考图共享的image/images参数时请求会路由到对应模型的编辑端点参考图数量按模型家族区分模型家族fal/之后的模型引用编辑端点最大参考图数Flux 及其它 fal 模型fal-ai/flux/dev默认/image-to-image1GPT Imageopenai/gpt-image-*/edit10Grok Imaginexai/grok-imagine-image/edit3Nano Banana旧版fal-ai/nano-banana/edit3Nano Banana 2fal-ai/nano-banana-*/edit14Nano Banana 2 Litegoogle/nano-banana-2-lite/edit14Krea 2krea/v2/{medium,large}/text-to-image无样式参考10 个样式参考这些映射直接来源于 image-generation-provider.ts 中的常量定义如GPT_IMAGE_EDIT_MAX_INPUT_IMAGES 10、NANO_BANANA_EDIT_MAX_INPUT_IMAGES 14、KREA_STYLE_REFERENCE_MAX_INPUT_IMAGES 10并在resolveFalImageModelSchema中按模型前缀匹配。各模型家族的几何参数差异不同模型家族的几何参数几何模式、宽高比、分辨率差异极大实现上通过FalImageModelSchema统一建模Flux 及通用模型使用通用image_size载荷编辑端点不支持aspectRatio覆盖源码中对此显式抛出错误fal flux image edit endpoint does not support aspectRatio overrides参考图走单数image_url契约最多 1 张。GPT Image / Nano Banana 2编辑请求走 fal 的/edit端点接受宽高比提示Nano Banana 2 额外接受原生超宽/超窄比例如4:1、1:4、8:1、1:8。Grok Imagine有独立的宽高比列表含2:1、20:9、19.5:9及其反比且只接受1K/2K分辨率源码中GROK_IMAGINE_SUPPORTED_RESOLUTIONS [1K, 2K]分辨率的取值会按resolutionCase: lower小写后发送。旧版 Nano Banana / Nano Banana 2 Lite拒绝resolution覆盖其 schema 中resolutions: []表示端点不暴露分辨率字段。Krea 2只暴露宽高比而非image_sizeOpenClaw 优先使用aspectRatio若传入size会通过resolveClosestFalAspectRatioForSize映射到最接近的支持比例基于对数比值距离打分并拒绝resolution覆盖而不是静默丢弃。注意Flux image-to-image 请求不支持aspectRatio覆盖GPT Image 与 Nano Banana 2 的编辑请求使用/edit端点并接受宽高比提示。Grok Imagine 只接受1K/2K分辨率旧版 Nano Banana 与 Nano Banana 2 Lite 拒绝resolution覆盖。Krea 2 特化处理Krea 2 模型使用 fal 原生 Krea 载荷 schemaOpenClaw 发送aspect_ratio、creativity、image_style_references三个字段而非 Flux 使用的通用image_size/ 编辑端点载荷。模型引用为fal/krea/v2/medium/text-to-imagefal/krea/v2/large/text-to-imageMedium适合追求速度的表现性插画、动漫、绘画与艺术风格Large适合较慢但更精致的写实、原始质感、胶片颗粒等细节风格。Krea 的creativity默认值为medium支持raw、low、medium、high四档源码中KREA_CREATIVITY_LEVELS常量可通过fal.creativityprovider option 覆盖非法值会回退到medium。{ agents: { defaults: { mediaModels: { image: { primary: fal/krea/v2/medium/text-to-image, }, }, }, }, }输出格式与透明度说明使用outputFormat: png可从暴露output_format字段的 fal 模型获得 PNG 输出。由于 OpenClaw 中没有声明 fal 的显式透明背景控制项background: transparent对 fal 模型会被报告为被忽略的覆盖项。Krea 2 端点不暴露output_format请求字段因此对 Krea 请求传入outputFormat会被直接拒绝。图像下载与安全边界生成结果返回后provider 会逐个下载图像二进制。相关实现要点见 image-generation-provider.ts单张下载默认上限 6 MBDEFAULT_GENERATED_IMAGE_MAX_BYTES超过时报错下载与 API 调用都经过fetchWithSsrFGuardSSRF 防护包装审计上下文为fal-image-download/fal-image-generate文件名按 MIME 类型推导扩展名image-1.png、image-2.jpeg等。视频生成video_generatefal 视频生成 provider 默认模型为fal/fal-ai/minimax/video-01-live核心能力如下能力项值模式文生视频、单图参考、Seedance reference-to-video运行时队列式 submit/status/result 流程适配长时间任务超时每任务默认 20 分钟源码DEFAULT_OPERATION_TIMEOUT_MS 1_200_000状态每 5 秒轮询一次POLL_INTERVAL_MS 5_000可用视频模型清单MiniMax默认fal/fal-ai/minimax/video-01-liveHeyGen video-agentfal/fal-ai/heygen/v2/video-agentKling 与 Wanfal/fal-ai/kling-video/v2.1/master/text-to-videofal/fal-ai/wan/v2.2-a14b/text-to-videofal/fal-ai/wan/v2.2-a14b/image-to-videoSeedance 2.0fal/bytedance/seedance-2.0/fast/text-to-videofal/bytedance/seedance-2.0/fast/image-to-videofal/bytedance/seedance-2.0/fast/reference-to-videofal/bytedance/seedance-2.0/text-to-videofal/bytedance/seedance-2.0/image-to-videofal/bytedance/seedance-2.0/reference-to-videoMiniMax Live 与 HeyGen 请求只发送 prompt 加可选的单张参考图其他覆盖项不会被转发。Seedance 模型接受aspectRatio、size、resolution、4–15 秒的时长以及音频开关。队列式任务运行时视频生成走 fal 的队列 APIhttps://queue.fal.run采用 submit → 轮询 status → 获取 result 的流程。源码实现的关键点video-generation-provider.ts每个任务有独立的 operation deadline轮询间隔 5 秒状态轮询根据剩余时间动态计算pollDelayMs避免超时后仍空转默认整体任务超时 20 分钟。Seedance 2.0 配置示例文生视频{ agents: { defaults: { mediaModels: { video: { primary: fal/bytedance/seedance-2.0/fast/text-to-video, }, }, }, }, }reference-to-video图/视频/音频参考{ agents: { defaults: { mediaModels: { video: { primary: fal/bytedance/seedance-2.0/fast/reference-to-video, }, }, }, }, }reference-to-video 通过共享的video_generate参数images、videos、audioRefs接受最多 9 张图片、3 个视频、3 个音频参考且参考文件总数不超过 12源码中SEEDANCE_REFERENCE_MAX_IMAGES 9、SEEDANCE_REFERENCE_MAX_VIDEOS 3、SEEDANCE_REFERENCE_MAX_AUDIOS 3、SEEDANCE_REFERENCE_MAX_FILES 12。音频参考要求同一次请求中至少包含一个图片或视频参考否则直接报错。HeyGen video-agent 配置示例{ agents: { defaults: { mediaModels: { video: { primary: fal/fal-ai/heygen/v2/video-agent, }, }, }, }, }音乐生成music_generate内置 fal 插件同样注册了面向共享music_generate工具的音乐生成 provider能力项值默认模型fal/fal-ai/minimax-music/v2.6模型fal-ai/minimax-music/v2.6mp3、fal-ai/ace-step/prompt-to-audiowav、fal-ai/stable-audio-25/text-to-audiowav最大时长240 秒运行时同步请求 生成音频下载将 fal 设为默认音乐 provider{ agents: { defaults: { mediaModels: { music: { primary: fal/fal-ai/minimax-music/v2.6, }, }, }, }, }各模型的歌词与器乐模式支持情况在 music-generation-provider.ts 中通过 per-model 能力开关体现fal-ai/minimax-music/v2.6支持显式歌词lyrics与器乐模式但同一请求两者不能同时启用fal-ai/ace-step/prompt-to-audio是 prompt-to-audio 端点拒绝显式歌词fal-ai/stable-audio-25/text-to-audio同样是 prompt-to-audio 端点同时拒绝歌词与器乐模式输出格式按模型固定MiniMax Music 为mp3ACE-Step 与 Stable Audio 为wav。扩展通用 fal 模型的兜底行为上表覆盖的是内置 fal provider 特殊处理的模型家族。其他 fal 图像端点 ID 仍可作为图像模型被选中它们会被当作 Flux 处理使用通用image_size载荷通过/image-to-image端点接收 1 张参考图。这保证了 fal 上任意合规的图像端点都能在 OpenClaw 中工作只是享受不到特化模型的参数映射优化。测试与质量保障插件对三类 provider 均有较完整的单元测试可作行为契约的权威参考image-generation-provider.test.ts覆盖 Flux 默认模型、Krea 2 的 aspect_ratio/creativity 载荷、Nano Banana / GPT Image / Grok Imagine 的参考图限额与编辑端点拼接等video-generation-provider.test.ts覆盖队列 submit/status/result 流程、Seedance 的 9/3/3/12 参考限额、音频参考依赖校验、轮询与超时逻辑music-generation-provider.test.ts覆盖 MiniMax Music 的歌词/器乐互斥、ACE-Step 与 Stable Audio 的能力开关onboard.test.ts验证applyFalConfig只在未配置默认图像模型时写入fal/fal-ai/flux/dev。相关资源本文涉及的配置键均位于 OpenClaw 配置的agents.defaults.mediaModels之下完整的 agent 默认值配置可参考 config-agents 文档 中的 Agent defaults 一节image_generate、video_generate、music_generate三个共享工具的通用参数与 provider 选择机制可分别查阅 image-generation 工具文档、video-generation 工具文档 与 music-generation 工具文档。小结OpenClaw 的fal插件在单一 provider 内封装了图像、视频、音乐三种生成契约认证统一走FAL_KEY回退FAL_API_KEY图像按模型家族差异化处理几何参数与编辑端点视频基于queue.fal.run的队列式运行时支撑长时间任务音乐则针对三个模型分别约束歌词/器乐/输出格式。理解这些特化映射可以帮助你在配置agents.defaults.mediaModels时准确预判参数覆盖行为避免在 Krea 2 上传resolution、对 Flux image-to-image 传aspectRatio、或对 Stable Audio 传歌词这类会被拒绝或忽略的请求。【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表