Apus provides pixverse as an official external plugin for hosted PixVerse video generation. The plugin registers the pixverse provider against the videoGenerationProviders contract.

Property Value
Provider id pixverse
Plugin package @openclaw/pixverse-provider
Auth env var PIXVERSE_API_KEY
Onboarding flag --auth-choice pixverse-api-key
Direct CLI flag --pixverse-api-key <key>
API PixVerse Platform API v2 (video_id submission plus result polling)
Default model pixverse/v6
Default API region International

Getting started

Install the plugin

```bash
apus plugins install @openclaw/pixverse-provider
```

Installation applies to a running Gateway automatically; otherwise it takes effect
on the next startup. See [Apply changes and inspect](/plugins/manage-plugins#apply-changes-and-inspect).

Set the API key

```bash
apus onboard --auth-choice pixverse-api-key
```

The wizard prompts for the International or CN endpoint (see API region
below) before writing `region` and `baseUrl` into the provider config.
Non-interactive runs (key from `--pixverse-api-key` or `PIXVERSE_API_KEY`)
default to International.

Onboarding also sets `agents.defaults.mediaModels.video.primary` to
`pixverse/v6` when no default video model is configured yet.

Switch an existing default video provider (optional)

```bash
apus config set agents.defaults.mediaModels.video.primary "pixverse/v6"
```

Generate a video

Ask the agent to generate a video. PixVerse will be used automatically.

Supported modes and models

The provider exposes PixVerse generation models through Apus's shared video tool.

Mode Models Reference input
Text-to-video v6 (default), c1 None
Image-to-video v6 (default), c1 1 local or remote image

Local image references are uploaded to PixVerse before the image-to-video request. Remote image URLs are passed through the PixVerse image upload endpoint as image_url.

Option Supported values
Duration 1-15 seconds (default 5)
Resolution 360P, 540P, 720P, 1080P (default 540P; 480P requests map to 540P)
Aspect ratio 16:9 (default), 4:3, 1:1, 3:4, 9:16, 2:3, 3:2, 21:9; text-to-video only, image-to-video follows the source image
Generated audio audio: true

PixVerse image template generation is not exposed through image_generate. That API is template-id driven, while Apus's shared image-generation contract has no PixVerse-specific typed option bag.

Provider options

The video provider accepts these optional provider-specific keys:

Option Type Effect
seed number Deterministic seed, 0 to 2147483647
negativePrompt / negative_prompt string Negative prompt
quality string PixVerse quality such as 720p
motionMode / motion_mode string Image-to-video motion mode (default normal)
cameraMovement / camera_movement string PixVerse camera movement preset
templateId / template_id number Activated PixVerse template id

Configuration

{
  agents: {
    defaults: {
      mediaModels: {
        video: {
          primary: "pixverse/v6",
        },
      },
    },
  },
}

Advanced configuration

API region
| Region value    | PixVerse API base URL                         |
| --------------- | --------------------------------------------- |
| `international` | `https://app-api.pixverse.ai/openapi/v2`      |
| `cn`            | `https://app-api.pixverseai.cn/openapi/v2`    |

Set `models.providers.pixverse.region` manually when your key belongs to a
specific PixVerse platform region, or run
`apus onboard --auth-choice pixverse-api-key` to choose one in the
setup wizard:

```json5
{
  models: {
    providers: {
      pixverse: {
        region: "cn", // "international" or "cn"
        baseUrl: "https://app-api.pixverseai.cn/openapi/v2",
        models: [],
      },
    },
  },
}
```
Custom base URL
Set `models.providers.pixverse.baseUrl` only when routing through a trusted compatible proxy.
`baseUrl` takes precedence over `region`.

```json5
{
  models: {
    providers: {
      pixverse: {
        baseUrl: "https://app-api.pixverse.ai/openapi/v2",
      },
    },
  },
}
```
Task polling
PixVerse returns a `video_id` from the generation request. Apus polls
`/openapi/v2/video/result/{video_id}` every 5 seconds until the task
succeeds, fails, or hits the timeout (default 5 minutes; override with
`agents.defaults.mediaModels.video.timeoutMs`).

Related

Video generation

Shared tool parameters, provider selection, and async behavior.

Configuration reference

Agent default settings including video generation model.