Model providers
Using Vydra with OpenClaw
Browse more in Model providers.
All model providers guides →This guide shows you how to wire up Vydra as a model provider inside OpenClaw for image generation, video generation, and speech synthesis. You configure the bundled Vydra plugin, set a default capability, and learn how to run its live tests.
By the end, you will have OpenClaw calling Vydra for grok-imagine images, veo3/kling video, and ElevenLabs-backed TTS.
Prerequisites
- ✓A Vydra account with an API key that starts with `vydra_live_...` so you can call their API.
- ✓An existing OpenClaw project where you can edit the agents and messages configuration.
- ✓Access to a shell where you can run `openclaw` commands and export environment variables.
Steps
- 1
Run Vydra onboarding in OpenClaw
Start by letting OpenClaw’s bundled Vydra plugin walk you through auth. The onboarding flow wires up the provider using your API key so you do not have to hand-edit config first.
bashopenclaw onboard --auth-choice vydra-api-key - 2
Set the Vydra API key via environment variable
If you prefer env-based configuration or run OpenClaw in a non-interactive environment, set `VYDRA_API_KEY` directly. ai/api/v1` to avoid auth issues on redirects.
bashexport VYDRA_API_KEY="vydra_live_..." - 3
Configure Vydra as the default image generation provider
Wire `vydra/grok-imagine` into your agent defaults so image tools route through Vydra. This sets the primary image model for any agent that does not override `imageGenerationModel` explicitly.
json{ agents: { defaults: { imageGenerationModel: { primary: "vydra/grok-imagine", }, }, }, } - 4
Configure Vydra as the default video generation provider
Next, point OpenClaw’s video generation to Vydra’s registered models. `vydra/veo3` handles text-to-video, while `vydra/kling` handles image-to-video using a remote image URL.
json{ agents: { defaults: { videoGenerationModel: { primary: "vydra/veo3", }, }, }, } - 5
Set Vydra as the speech synthesis provider
Enable Vydra’s ElevenLabs-backed TTS route for your messages. This config tells OpenClaw to use Vydra for TTS, passing your `VYDRA_API_KEY` and a known-good default voice that returns MP3 audio.
json{ messages: { tts: { provider: "vydra", providers: { vydra: { apiKey: "${VYDRA_API_KEY}", voiceId: "21m00Tcm4TlvDq8ikWAM", }, }, }, }, } - 6
Run Vydra video live tests
Once configuration is in place, run the bundled live tests to verify text-to-video and image-to-video flows. These tests hit `vydra/veo3` and `vydra/kling` using a remote image URL fixture so you can confirm end-to-end behavior.
bashOPENCLAW_LIVE_TEST=1 \ OPENCLAW_LIVE_VYDRA_VIDEO=1 \ pnpm test:live -- extensions/vydra/vydra.live.test.ts - 7
Override the Kling image URL for live tests when needed
If the default remote image fixture is not appropriate for your environment, override it with your own URL. This is useful when you want to test Kling against a specific reference image hosted on your own infrastructure.
bashexport OPENCLAW_LIVE_VYDRA_KLING_IMAGE_URL="https://example.com/reference.png"
Configuration
| Option | Description | Example |
|---|---|---|
| VYDRA_API_KEY | API key that OpenClaw uses for all Vydra capabilities: image generation, video generation, and speech synthesis. | vydra_live_abc123 |
| agents.defaults.imageGenerationModel.primary | Sets the default image generation model for agents, here pointing to Vydra’s grok-imagine. | vydra/grok-imagine |
| agents.defaults.videoGenerationModel.primary | Sets the default video generation model for agents, here pointing to Vydra’s veo3 text-to-video model. | vydra/veo3 |
| messages.tts.provider | Selects which provider handles text-to-speech for messages; set this to `vydra` to use Vydra’s ElevenLabs-backed TTS. | vydra |
| messages.tts.providers.vydra.apiKey | The Vydra API key used specifically by the TTS provider configuration. | ${VYDRA_API_KEY} |
| messages.tts.providers.vydra.voiceId | The ElevenLabs voice id that Vydra uses for speech synthesis. | 21m00Tcm4TlvDq8ikWAM |
| OPENCLAW_LIVE_TEST | Enables OpenClaw’s live test mode so provider-specific live tests run against real APIs. | 1 |
| OPENCLAW_LIVE_VYDRA_VIDEO | Enables the Vydra video live test suite for veo3 and kling. | 1 |
| OPENCLAW_LIVE_VYDRA_KLING_IMAGE_URL | Overrides the remote image URL fixture used for Vydra Kling image-to-video live tests. | https://example.com/reference.png |
Troubleshooting
Vydra requests fail when using https://vydra.ai/api/v1 as the base URL even though the API key is valid.
ai/api/v1`) currently redirects to `www`, and some HTTP clients drop the `Authorization` header on that cross-host redirect. ai/api/v1` as the base URL, which is what the bundled plugin does to avoid this misleading auth failure.
Image-to-video requests with `vydra/kling` are rejected when you pass a local file instead of a URL.
`vydra/kling` currently requires a remote image URL reference and local file uploads are rejected up front. Host your reference image somewhere accessible over HTTP(S) and pass that remote URL, or set `OPENCLAW_LIVE_VYDRA_KLING_IMAGE_URL` to a valid remote image for tests.
export OPENCLAW_LIVE_VYDRA_KLING_IMAGE_URL="https://example.com/reference.png"Vydra Kling video generation behaves inconsistently around required fields like image_url vs video_url.
Vydra’s current `kling` HTTP route has been inconsistent about whether it requires `image_url` or `video_url`. Rely on the bundled provider, which maps the same remote image URL into both fields so you do not have to manage this inconsistency yourself.
You expect extra style controls (aspect ratio, resolution, watermark, generated audio) to work but they have no effect.
The bundled plugin stays conservative and does not forward undocumented style knobs such as aspect ratio, resolution, watermark, or generated audio. Stick to the documented parameters until the provider and plugin expose those options explicitly.
Frequently asked questions
Powered by Mem0
Add persistent memory to OpenClaw
Official Mem0 plugin for OpenClaw keeps context across chats and tools. Smaller prompts, lower cost, better continuity for your agents.