AlphaMoatによると、2026-09時点でFal Aiのダウンロード数は3,147、スター数は3で、AIスキル全体5,078件中3,620位、デザイン・メディアでは512件中337位です。
| プラットフォーム | インストール数 | ダウンロード数 | スター数 | コメント |
|---|---|---|---|---|
| ClawHub ↗ | 98 | 3018 | 3 | - |
| SkillHub ↗ | 216 | 3147 | 3 | — |
プラットフォームごとに集計方法と集計時点が異なります。
このスキルはテキストからの画像生成、画像編集、動画処理のタスクをfal.aiに送信し、非同期リクエストの状態を確認する方法を説明する。送信前にモデルの必須フィールドとファイル入力形式を検証する。認可されたAPI認証情報を設定する必要があり、プロンプトや提供した画像・動画素材は外部サービスで処理される。
資料公開日 2026-10-27
スキルのドキュメントをもとに生成した例であり、実際の実行結果ではありません。
2026-09 から集計方法を変更し、同名スキルを作者ごとに分けて集計し、全スキルを対象にしました。破線は変更前の月で、変更後のデータとは直接比較せず、変更をまたぐ増減も計算していません。
| 月 | ダウンロード数 | 前月比 | スター数 |
|---|---|---|---|
| 2026-09 | 3147 | — | 3 |
| 2026-08 | 2925 | +3.7% | 3 |
| 2026-07 | 2820 | +7.6% | 3 |
| 2026-06 | 2621 | +5.3% | 3 |
| 2026-05 | 2488 | — | 3 |
| 2026-03 | 2126 | — | 3 |
作者が公開した元のファイルをテキストのまま表示しています。AlphaMoat による編集や審査はしていません。リンクはクリックできません。コマンドは内容を確認してから実行してください。取得日 2026-10-23。
--- name: fal-ai description: Generate images and media using fal.ai API (Flux, Gemini image, etc.). Use when asked to generate images, run AI image models, create visuals, or anything involving fal.ai. Handles queue-based requests with automatic polling. --- # fal.ai Integration Generate and edit images via fal.ai's queue-based API. ## Setup
Add your API key to `TOOLS.md`:
```markdown
### fal.ai
FAL_KEY: your-key-here
```
Get a key at: https://fal.ai/dashboard/keys
The script checks (in order): `FAL_KEY` env var → `TOOLS.md`
## Supported Models
### fal-ai/nano-banana-pro (Text → Image)
Google's Gemini 3 Pro for text-to-image generation.
```python
input_data = {
"prompt": "A cat astronaut on the moon", # required
"aspect_ratio": "1:1", # auto|21:9|16:9|3:2|4:3|5:4|1:1|4:5|3:4|2:3|9:16
"resolution": "1K", # 1K|2K|4K
"output_format": "png", # jpeg|png|webp
"safety_tolerance": "4" # 1 (strict) to 6 (permissive)
}
```
### fal-ai/nano-banana-pro/edit (Image → Image)
Gemini 3 Pro for image editing. Slower (~20s) but handles complex edits well.
```python
input_data = {
"prompt": "Transform into anime style", # required
"image_urls": [image_data_uri], # required - array of URLs or base64 data URIs
"aspect_ratio": "auto",
"resolution": "1K",
"output_format": "png"
}
```
### fal-ai/flux/dev/image-to-image (Image → Image)
FLUX.1 dev model. Faster (~2-3s) for style transfers.
```python
input_data = {
"prompt": "Anime style portrait", # required
"image_url": image_data_uri, # required - single URL or base64 data URI
"strength": 0.85, # 0-1, higher = more change
"num_inference_steps": 40,
"guidance_scale": 7.5,
"output_format": "png"
}
```
### fal-ai/kling-video/o3/pro/video-to-video/edit (Video → Video)
Kling O3 Pro for video transformation with AI effects.
**Limits:**
- Formats: **.mp4, .mov only**
- Duration: **3-10 seconds**
- Resolution: **720-2160px**
- Max file size: **200MB**
- Max elements: **4 total** (elements + reference images combined)
```python
input_data = {
# Required
"prompt": "Change environment to be fully snow as @Image1. Replace animal with @Element1",
"video_url": "https://example.com/video.mp4", # .mp4/.mov, 3-10s, 720-2160px, max 200MB
# Optional
"image_urls": [ # style/appearance references
"https://example.com/snow_ref.jpg" # use as @Image1, @Image2 in prompt
],
"keep_audio": True, # keep original audio (default: true)
"elements": [ # characters/objects to inject
{
"reference_image_urls": [ # reference images for the element
"https://example.com/element_ref1.png"
],
"frontal_image_url": "https://example.com/element_front.png" # frontal view (better results)
}
], # use as @Element1, @Element2 in prompt
"shot_type": "customize" # multi-shot type (default: customize)
}
```
**Prompt references:**
- `@Video1` — the input video
- `@Image1`, `@Image2` — reference images for style/appearance
- `@Element1`, `@Element2` — elements (characters/objects) to inject
## Input Validation
The skill validates inputs before submission. For multi-input models, ensure all required fields are provided:
```bash
# Check what a model needs
python3 scripts/fal_client.py model-info "fal-ai/kling-video/o3/standard/video-to-video/edit"
# List all models with their requirements
python3 scripts/fal_client.py models
```
**Before submitting, verify:**
- ✅ All `required` fields are present and non-empty
- ✅ File fields (`image_url`, `video_url`, etc.) are URLs or base64 data URIs
- ✅ Arrays (`image_urls`) have at least one item
- ✅ Video files are within limits (200MB, 720-2160p)
**Example validation output:**
```
⚠️ Note: Reference video in prompt as @Video1
⚠️ Note: Max 4 total elements (video + images combined)
❌ Validation failed:
- Missing required field: video_url
```
## Usage
### CLI Commands
```bash
# Check API key
python3 scripts/fal_client.py check-key
# Submit a request
python3 scripts/fal_client.py submit "fal-ai/nano-banana-pro" '{"prompt": "A sunset over mountains"}'
# Check status
python3 scripts/fal_client.py status "fal-ai/nano-banana-pro" "<request_id>"
# Get result
python3 scripts/fal_client.py result "fal-ai/nano-banana-pro" "<request_id>"
# Poll all pending requests
python3 scripts/fal_client.py poll
# List pending requests
python3 scripts/fal_client.py list
# Convert local image to base64 data URI
python3 scripts/fal_client.py to-data-uri /path/to/image.jpg
# Convert local video to base64 data URI (with validation)
python3 scripts/fal_client.py video-to-uri /path/to/video.mp4
```
### Python Usage
```python
import sys
sys.path.insert(0, 'scripts')
from fal_client import submit, check_status, get_result, image_to_data_uri, poll_pending
# Text to image
result = submit('fal-ai/nano-banana-pro', {
'prompt': 'A futuristic city at night'
})
print(result['request_id'])
# Image to image (with local file)
img_uri = image_to_data_uri('/path/to/photo.jpg')
result = submit('fal-ai/nano-banana-pro/edit', {
'prompt': 'Transform into watercolor painting',
'image_urls': [img_uri]
})
# Poll until complete
completed = poll_pending()
for req in completed:
if 'result' in req:
print(req['result']['images'][0]['url'])
```
## Queue System
fal.ai uses async queues. Requests go through stages:
- `IN_QUEUE` → waiting
- `IN_PROGRESS` → generating
- `COMPLETED` → done, fetch result
- `FAILED` → error occurred
Pending requests are saved to `~/. openclaw/workspace/fal-pending.json` and survive restarts.
### Polling Strategy
**Manual:** Run `python3 scripts/fal_client.py poll` periodically.
**Heartbeat:** Add to `HEARTBEAT.md`:
```markdown
- Poll fal.ai pending requests if any exist
```
**Cron:** Schedule polling every few minutes for background jobs.
## Adding New Models
1. Find the model on fal.ai and check its `/api` page
2. Add entry to `references/models.json` with input/output schema
3. Test with a simple request
**Note:** Queue URLs use base model path (e.g., `fal-ai/flux` not `fal-ai/flux/dev/image-to-image`). The script handles this automatically.
## Files
```
skills/fal-ai/
├── SKILL.md ← This file
├── scripts/
│ └── fal_client.py ← CLI + Python library
└── references/
└── models.json ← Model schemas
```
## Troubleshooting
**"No FAL_KEY found"** → Add key to TOOLS.md or set FAL_KEY env var
**405 Method Not Allowed** → URL routing issue, ensure using base model path for status/result
**Request stuck** → Check `fal-pending.json`, may need manual cleanup
ContextWeaveアーキテクチャ図ワンショット生成
Nano Banana Pro で画像を生成・編集するスクリプト型のスキルです。
whisper コマンドで音声をローカルで文字起こしするスキルです。
MCP サーバー経由で図を生成、編集するスキルです。
洗練された画面のための設計知見と実装指南をまとめたスキルで、レイアウトからフロー、トークン、フロントエンドの変更まで扱います。
複数の動画モデル API をまたぐ AI 動画生成と編成のスキルです。
ffmpeg を使って動画からフレームを取り出し、手早い確認用のサムネイルを作るスキルです。
ローカルの Whisper で音声ファイルを文字に起こすスキルで、モデルのダウンロード後は完全にオフラインで動きます。
データ月:2026-09 · ダウンロード数、スター数、インストール数は公開スキルレジストリ(ClawHub、SkillHub)から月単位で集計しています。詳しくはデータの方法論をご覧ください。