Quick Start
- Get an API key from your chosen provider
- Add the key to
~/.openclaw/openclaw.jsonunderenv.vars - Restart the gateway:
openclaw gateway restart - The provider appears automatically in the workflow editor’s media node dropdown
Architecture
Media generation uses a driver architecture in ClawRecipes. ClawKitchen gets its provider list by calling:Image Providers
Nano Banana Pro (Google Gemini) — Recommended
Google’s native image generation via Gemini models. Fast, high quality, competitive pricing. Setup:- Get a key at Google AI Studio
- Install the skill:
clawhub install nano-banana-pro - Add to config:
openclaw gateway restart
gemini-2.5-flash-image (default), gemini-3.1-flash-image-preview, gemini-3-pro-image-preview
Pricing: ~0.08 per image
OpenAI DALL-E
Setup:- Get a key at OpenAI Platform
- Add to config:
openclaw gateway restart
CellCog
Multi-modal AI platform. Requires 500+ credits for Agent Team mode. Setup:- Get a key at CellCog
- Add:
"CELLCOG_API_KEY": "your-key" openclaw gateway restart
Video Providers
Runway (Gen-4 Turbo) — Top Quality
Setup:- Get a key at Runway API
- Add:
openclaw gateway restart
RUNWAYML_API_SECRET and OPENAI_API_KEY.
Output: 10s clips at 1280x768
Pricing: ~$0.60 per 10s clip
Kling (v2) — Budget-Friendly
Setup:- Get a key at Kling AI
- Add:
"KLING_API_KEY": "your-key" openclaw gateway restart
Luma (Ray 2)
Setup:- Get a key at Luma AI
- Add:
"LUMAAI_API_KEY": "your-key" openclaw gateway restart
Full Config Example
Using Media Nodes in Workflows
Adding a media node
- Open the workflow editor
- Add a node → select media-image or media-video
- Pick a provider from the dropdown
- Write a prompt or use
{{variables}}from upstream nodes - Connect to upstream/downstream nodes
Template variables
Use the{{}} button to insert variables from upstream nodes:
skipRefinement
By default, media nodes pass prompts through an LLM refinement step. If your prompt is already detailed (e.g., from a dedicated brief-writing node), add"skipRefinement": true to the node config to skip this and send directly to the provider.
Creating Custom Media Drivers
There are two ways to add media generation providers:Option 1: Quick — Skill Script (no code changes)
Create a skill with a generation script. ClawKitchen auto-discovers it._meta.json:
SKILL.md — document required env vars:
generate_image.py — the generation script:
Set up the venv:
#!/usr/bin/env python3 — the worker auto-detects .venv/bin/python next to the script.
After creating, restart the gateway and refresh ClawKitchen — the provider appears in the dropdown automatically via auto-discovery.
Option 2: Full — Registered Driver (best UX)
For tighter integration — custom display names, explicit env-var validation, argparse support — register a driver in ClawRecipes. Step 1: Create the driver fileregistry.ts
workflows media-drivers CLI command and ClawKitchen’s provider dropdown will include your driver automatically.
Step 3 (optional): Add the env key
MediaDriver Interface Reference
Utility Functions (from media-drivers/utils.ts)
Troubleshooting
Provider not in dropdown:- Verify the API key is in
~/.openclaw/openclaw.jsonunderenv.vars - Restart gateway + hard-refresh browser
- Check skill dir exists and contains
generate_image.pyorgenerate_video.py - Run
openclaw recipes workflows media-driversto see what’s detected
- Double-check key value — no extra spaces or
=prefix - Verify billing is enabled on the provider’s dashboard
- Video generation can take 1–5 minutes
- Increase node timeout in config (default: 300s images, 600s video)
- Use
outputFieldsto have an LLM craft a detailed brief upstream - Add a creative brief to
shared-context/memory/(auto-injected into LLM prompts) - Set
"skipRefinement": truewhen your brief is already detailed
