fal-generate

Generate images and videos using state-of-the-art AI models on fal.ai.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "fal-generate" with this command: npx skills add ilkerzg/agent-skills/ilkerzg-agent-skills-fal-generate

fal.ai Generate

Generate images and videos using state-of-the-art AI models on fal.ai.

Scripts

Script Purpose

generate.sh

Generate images/videos (queue-based)

upload.sh

Upload local files to fal CDN

search-models.sh

Search and discover models

get-schema.sh

Get OpenAPI schema for any model

Queue System (Default)

All requests use the queue system by default for reliability:

User Request → Queue Submit → Poll Status → Get Result ↓ request_id

Benefits:

  • Long-running tasks (video) won't timeout

  • Can check status anytime

  • Can cancel queued requests

  • Results retrievable even if connection drops

Generate Content

bash /mnt/skills/user/fal-generate/scripts/generate.sh [options]

Basic Usage (Queue Mode)

Image - submits to queue, waits for completion

bash generate.sh --prompt "A serene mountain landscape" --model "fal-ai/nano-banana-pro"

Video - same, but takes longer

bash generate.sh --prompt "Ocean waves crashing" --model "fal-ai/veo3.1"

Image-to-Video

bash generate.sh
--prompt "Camera slowly zooms in"
--model "fal-ai/kling-video/v2.6/pro/image-to-video"
--image-url "https://example.com/image.jpg"

Async Mode (Return Immediately)

For long video jobs, use --async to get request_id immediately:

Submit and return immediately

bash generate.sh --prompt "Epic battle scene" --model "fal-ai/veo3.1" --async

Output:

Request ID: abc123-def456

Request submitted. Use these commands to check:

Status: ./generate.sh --status "abc123-def456" --model "fal-ai/veo3.1"

Result: ./generate.sh --result "abc123-def456" --model "fal-ai/veo3.1"

Queue Operations

Check status

bash generate.sh --status "request_id" --model "fal-ai/veo3.1"

→ IN_QUEUE (position: 3) | IN_PROGRESS | COMPLETED

Get result (when COMPLETED)

bash generate.sh --result "request_id" --model "fal-ai/veo3.1"

Cancel (only if still queued)

bash generate.sh --cancel "request_id" --model "fal-ai/veo3.1"

Show Logs During Generation

bash generate.sh --prompt "A sunset" --model "fal-ai/nano-banana-pro" --logs

Status: IN_QUEUE (position: 2)

Status: IN_PROGRESS

> Loading model...

> Generating image...

Status: COMPLETED

File Upload

Option 1: Auto-upload with --file

Local file is automatically uploaded to fal CDN

bash generate.sh
--file "/path/to/photo.jpg"
--model "fal-ai/kling-video/v2.6/pro/image-to-video"
--prompt "Camera zooms in slowly"

Option 2: Manual upload with upload.sh

Upload first

URL=$(bash upload.sh --file "/path/to/photo.jpg")

https://v3.fal.media/files/xxx/photo.jpg

Then generate

bash generate.sh --image-url "$URL" --model "..." --prompt "..."

Option 3: Use existing URL

Any public URL works

bash generate.sh --image-url "https://example.com/image.jpg" ...

Supported file types:

  • Images: jpg, jpeg, png, gif, webp

  • Videos: mp4, mov, webm

  • Audio: mp3, wav, flac

Upload flow (two-step):

  1. POST rest.alpha.fal.ai/storage/auth/token?storage_type=fal-cdn-v3 → {"token": "...", "base_url": "https://v3b.fal.media"}

  2. POST {base_url}/files/upload Authorization: Bearer {token} → {"access_url": "https://v3b.fal.media/files/..."}

Max file size: 100MB (simple upload)

Arguments Reference

Argument Description Default

--prompt , -p

Text description (required)

--model , -m

Model ID fal-ai/nano-banana-pro

--image-url

Input image URL for I2V

--file , --image

Local file (auto-uploads)

--size

square , portrait , landscape

landscape_4_3

--num-images

Number of images 1

Mode Options:

Argument Description

(default) Queue mode - submit and poll until complete

--async

Submit to queue, return request_id immediately

--sync

Synchronous (not recommended for video)

--logs

Show generation logs while polling

Queue Operations:

Argument Description

--status ID

Check status of a queued request

--result ID

Get result of a completed request

--cancel ID

Cancel a queued request

Advanced:

Argument Description Default

--poll-interval

Seconds between status checks 2

--timeout

Max seconds to wait 600

--lifecycle N

Object expiration in seconds

--schema [MODEL]

Get OpenAPI schema

Finding Models

To discover the best and latest models, use the search API:

Search by category

bash search-models.sh --category "text-to-image" bash search-models.sh --category "text-to-video" bash search-models.sh --category "image-to-video"

Search by keyword

bash search-models.sh --query "flux" bash search-models.sh --query "kling video"

Or use the search_models MCP tool with relevant keywords.

Categories: text-to-image , image-to-image , text-to-video , image-to-video , text-to-speech , speech-to-text

Get Model Schema (OpenAPI)

IMPORTANT: Fetch schema to see exact parameters for any model.

Get schema

bash get-schema.sh --model "fal-ai/nano-banana-pro"

Show only input parameters

bash get-schema.sh --model "fal-ai/kling-video/v2.6/pro/image-to-video" --input

Quick schema via generate.sh

bash generate.sh --schema "fal-ai/veo3.1"

API Endpoint:

https://fal.ai/api/openapi/queue/openapi.json?endpoint_id={model-id}

Output

Queue Submit Response:

{ "request_id": "abc123-def456", "status": "IN_QUEUE", "response_url": "https://queue.fal.run/.../requests/abc123-def456", "status_url": "https://queue.fal.run/.../requests/abc123-def456/status", "cancel_url": "https://queue.fal.run/.../requests/abc123-def456/cancel" }

Final Result:

{ "images": [{ "url": "https://v3.fal.media/files/...", "width": 1024, "height": 768 }] }

Present Results to User

Images:

Generated Image • 1024×768 | Generated in 2.2s

Videos:

Click to view video • Duration: 5s | Generated in 45s

Async Submission:

Request submitted to queue. • Request ID: abc123-def456 • Model: fal-ai/veo3 • Check status: --status "abc123-def456"

Object Lifecycle (Optional)

Control how long generated files remain accessible:

Files expire after 1 hour (3600 seconds)

bash generate.sh --prompt "..." --lifecycle 3600

Files expire after 24 hours

bash generate.sh --prompt "..." --lifecycle 86400

Troubleshooting

Timeout Error

Error: Timeout after 600s Request ID: abc123-def456

Solution: Use --status and --result to check manually, or increase --timeout .

API Key Error

Error: FAL_KEY not set

Solution: Run ./generate.sh --add-fal-key or export FAL_KEY=your_key .

Network Error (claude.ai)

Go to claude.ai/settings/capabilities and add *.fal.ai to allowed domains.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

fal-image-edit

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

fal-workflow

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

fal-platform

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

fal-upscale

No summary provided by upstream source.

Repository SourceNeeds Review