Providers
Fal
OpenClaw ships a bundled fal provider for hosted image, video, and music
generation.
| Property | Value |
|---|---|
| Provider | fal |
| Auth | FAL_KEY (canonical; FAL_API_KEY also works as a fallback) |
| API | fal model endpoints (https://fal.run; video jobs use https://queue.fal.run) |
| Base URL | Override with models.providers.fal.baseUrl |
Getting started
Set the API key
openclaw onboard --auth-choice fal-api-keyNon-interactive setups can pass --fal-api-key <key> or export FAL_KEY.
Onboarding also sets fal/fal-ai/flux/dev as the default image model when
none is configured.
Set a default image model
{ agents: { defaults: { mediaModels: { image: { primary: "fal/fal-ai/flux/dev", }, }, }, },}Image generation
The bundled fal image-generation provider defaults to
fal/fal-ai/flux/dev.
| Capability | Value |
|---|---|
| Max images | 4 per request; Krea 2: 1 per request |
| Size overrides | 1024x1024, 1024x1536, 1536x1024, 1024x1792, 1792x1024 |
| Aspect ratio | Supported everywhere except Flux image-to-image |
| Resolution | 1K, 2K, 4K (per-model limits below) |
| Output format | png (default) or jpeg; GPT Image 2.5 also supports webp; Krea 2 rejects overrides |
Edit requests (reference images via the shared image / images parameters)
route to a per-model edit endpoint with per-model reference limits:
| Model family | Model ref after fal/ |
Edit endpoint | Max reference images |
|---|---|---|---|
| Flux and other fal models | fal-ai/flux/dev (default) |
/image-to-image |
1 |
| GPT Image 2.5 | openai/gpt-image-2.5/{flare,sunburst}/text-to-image |
sibling /edit |
16 |
| Older GPT Image | openai/gpt-image-* |
/edit |
10 |
| Grok Imagine | xai/grok-imagine-image |
/edit |
3 |
| Nano Banana (legacy) | fal-ai/nano-banana |
/edit |
3 |
| Nano Banana 2 | fal-ai/nano-banana-* |
/edit |
14 |
| Nano Banana 2 Lite | google/nano-banana-2-lite |
/edit |
14 |
| Krea 2 | krea/v2/{medium,large}/text-to-image |
none (style refs) | 10 style references |
GPT Image 2.5
Select either variant:
fal/openai/gpt-image-2.5/flare/text-to-imagefal/openai/gpt-image-2.5/sunburst/text-to-image
References select the sibling /edit endpoint. You can also select
fal/openai/gpt-image-2.5/flare/edit or fal/openai/gpt-image-2.5/sunburst/edit
explicitly.
Both variants support quality: "low", "medium", "high", "xhigh",
"max", or "auto". The fal default is high.
They accept background: "transparent", "opaque", or "auto".
For transparency, use outputFormat: "png" or "webp".
These controls do not change older fal models.
Use size: "auto" or explicit dimensions such as 1536x864.
Dimensions must be divisible by 16, with no edge above 3840 pixels.
Total pixels must be 655,360-8,294,400, with an aspect ratio from 1:3 to 3:1.
OpenClaw converts aspect-ratio hints to valid dimensions.
For example, aspectRatio: "3:2" produces 1536x1024.
Use size to choose exact dimensions. OpenClaw rejects invalid explicit sizes.
These models reject resolution overrides. Edits without geometry hints keep
fal's automatic size selection.
openclaw infer image generate \ --model fal/openai/gpt-image-2.5/flare/text-to-image \ --prompt "A simple red circle sticker" \ --quality low --size 1024x1024 --json openclaw infer image edit \ --model fal/openai/gpt-image-2.5/sunburst/edit \ --file /path/to/reference.png \ --prompt "Keep the shape and change the color to blue" \ --quality low --size auto --jsonKrea 2
Krea 2 models use fal's native Krea payload schema. OpenClaw sends
aspect_ratio, creativity, and image_style_references instead of the
generic image_size / edit-endpoint payload used by Flux. The model refs are:
fal/krea/v2/medium/text-to-imagefal/krea/v2/large/text-to-image
Use Medium for faster expressive illustration, anime, painting, and artistic
styles. Use Large for slower photoreal, raw texture, film grain, and detailed
looks. Krea defaults to fal.creativity: "medium"; supported values are
raw, low, medium, and high.
Krea 2 exposes aspect ratio, not image_size, in fal's request schema. Prefer
aspectRatio; OpenClaw maps size to the closest supported Krea aspect ratio
and rejects resolution for Krea rather than dropping it.
Use outputFormat: "png" when you want PNG output from fal models that expose
output_format. Outside GPT Image 2.5, fal models do not declare a
transparent-background control in OpenClaw. They report background as an
ignored override.
Krea 2 endpoints do not expose an output_format request field through fal, so
OpenClaw rejects outputFormat overrides for Krea requests.
To use Krea 2 Medium:
{ agents: { defaults: { mediaModels: { image: { primary: "fal/krea/v2/medium/text-to-image", }, }, }, },}Video generation
The bundled fal video-generation provider defaults to
fal/fal-ai/minimax/video-01-live.
| Capability | Value |
|---|---|
| Modes | Text-to-video, single-image reference, Seedance reference-to-video |
| Runtime | Queue-backed submit/status/result flow for long-running jobs |
| Timeout | 20 minutes per job by default; status polled every 5 seconds |
Available video models
MiniMax (default):
fal/fal-ai/minimax/video-01-live
HeyGen video-agent:
fal/fal-ai/heygen/v2/video-agent
Kling and Wan:
fal/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-video
Seedance 2.0:
fal/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-video
MiniMax Live and HeyGen requests send only the prompt plus an optional
single reference image; other overrides are not forwarded. Seedance models
accept aspectRatio, size, resolution, durations of 4-15 seconds, and
an audio toggle.
Seedance 2.0 config example
{ agents: { defaults: { mediaModels: { video: { primary: "fal/bytedance/seedance-2.0/fast/text-to-video", }, }, }, },}Seedance 2.0 reference-to-video config example
{ agents: { defaults: { mediaModels: { video: { primary: "fal/bytedance/seedance-2.0/fast/reference-to-video", }, }, }, },}Reference-to-video accepts up to 9 images, 3 videos, and 3 audio references
through the shared video_generate images, videos, and audioRefs
parameters, with at most 12 total reference files. Audio references require
at least one image or video reference in the same request.
HeyGen video-agent config example
{ agents: { defaults: { mediaModels: { video: { primary: "fal/fal-ai/heygen/v2/video-agent", }, }, }, },}Music generation
The bundled fal plugin also registers a music-generation provider for the
shared music_generate tool.
| Capability | Value |
|---|---|
| Default model | fal/fal-ai/minimax-music/v2.6 |
| Models | fal-ai/minimax-music/v2.6 (mp3), fal-ai/ace-step/prompt-to-audio (wav), fal-ai/stable-audio-25/text-to-audio (wav) |
| Max duration | 240 seconds |
| Runtime | Synchronous request plus generated audio download |
Use fal as the default music provider:
{ agents: { defaults: { mediaModels: { music: { primary: "fal/fal-ai/minimax-music/v2.6", }, }, }, },}fal-ai/minimax-music/v2.6 supports explicit lyrics and instrumental mode,
but not both in the same request. ACE-Step and Stable Audio are
prompt-to-audio endpoints; choose them with the model override when you want
those model families. ACE-Step rejects explicit lyrics; Stable Audio rejects
both lyrics and instrumental mode.