Model providers

Using Vydra with OpenClaw

3 min read

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. 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.

    bash
    openclaw onboard --auth-choice vydra-api-key
  2. 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.

    bash
    export VYDRA_API_KEY="vydra_live_..."
  3. 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. 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. 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. 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.

    bash
    OPENCLAW_LIVE_TEST=1 \
    OPENCLAW_LIVE_VYDRA_VIDEO=1 \
    pnpm test:live -- extensions/vydra/vydra.live.test.ts
  7. 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.

    bash
    export OPENCLAW_LIVE_VYDRA_KLING_IMAGE_URL="https://example.com/reference.png"

Configuration

OptionDescriptionExample
VYDRA_API_KEYAPI key that OpenClaw uses for all Vydra capabilities: image generation, video generation, and speech synthesis.vydra_live_abc123
agents.defaults.imageGenerationModel.primarySets the default image generation model for agents, here pointing to Vydra’s grok-imagine.vydra/grok-imagine
agents.defaults.videoGenerationModel.primarySets the default video generation model for agents, here pointing to Vydra’s veo3 text-to-video model.vydra/veo3
messages.tts.providerSelects which provider handles text-to-speech for messages; set this to `vydra` to use Vydra’s ElevenLabs-backed TTS.vydra
messages.tts.providers.vydra.apiKeyThe Vydra API key used specifically by the TTS provider configuration.${VYDRA_API_KEY}
messages.tts.providers.vydra.voiceIdThe ElevenLabs voice id that Vydra uses for speech synthesis.21m00Tcm4TlvDq8ikWAM
OPENCLAW_LIVE_TESTEnables OpenClaw’s live test mode so provider-specific live tests run against real APIs.1
OPENCLAW_LIVE_VYDRA_VIDEOEnables the Vydra video live test suite for veo3 and kling.1
OPENCLAW_LIVE_VYDRA_KLING_IMAGE_URLOverrides 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.

bash
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.

More in Model providers