媒体模型列表

使用 GET /api/v1/media_models 查询哪些图片、视频、音频和音乐生成模型可以通过公开生成 API 调用。响应基于当前激活的媒体模型配置生成,并且只返回已经配置公开 API 的 mode。

Endpoint

GET /api/v1/media_models

查询参数

名称 类型 必填 说明
media_type string imagevideoaudio 过滤。

请求示例

curl "https://img2vid.net/api/v1/media_models?media_type=image" \
  -H "Authorization: Bearer $BUBLE_API_KEY"

响应结构

{
  "data": [
    {
      "model": "google/nano-banana-pro",
      "name": "Nano Banana Pro",
      "media_type": "image",
      "operations": [
        {
          "mode": "text_to_image",
          "description": "Generate images from a prompt.",
          "input": {
            "required": ["prompt"],
            "optional": []
          },
          "parameters": [
            {
              "name": "aspect_ratio",
              "type": "string",
              "default": "1:1",
              "enum": ["1:1", "16:9"],
              "required": false
            }
          ]
        }
      ]
    }
  ]
}

关键字段

字段 说明
model 创建生成任务时传入的 model
operations[].mode 创建生成任务时传入的公开 mode
operations[].input.required 当前 mode 最少需要的公开字段。
operations[].parameters 当前 mode 支持、并可直接放在请求体根层级的生成参数。

为什么建议显式传 mode

一个模型可能支持多个操作。生产环境建议显式传 mode。如果省略,Img2Vid 只有在输入形态唯一匹配某个 mode 时才会自动推断。

SDK 示例

SDK 的媒体模型发现方法对应 GET /api/v1/media_models。请把这个响应作为模型 key、公开 mode、必填输入字段和模型专属参数的事实来源。

下面的片段假设你已经按快速开始初始化了 SDK client,并引入了对应语言需要的 SDK 类型。

JavaScript / TypeScript

const models = await buble.mediaModels.list({ media_type: 'video' });

Python

models = client.media_models.list(media_type="video")

Go

models, err := client.MediaModels.List(ctx, "video")

Rust

let models = client.media_models().list(Some("video")).await?;

Swift

let models = try await client.mediaModels.list(mediaType: "video")

Dart / Flutter

final models = await client.mediaModels.list(mediaType: 'video');

Elixir

{:ok, models} = Buble.MediaModels.list(client, media_type: "video")

Java

Envelope<List<MediaModel>> models = client.mediaModels().list("video");

.NET

var models = await client.MediaModels.ListAsync(mediaType: "video");

PHP

$models = $client->mediaModels()->list(mediaType: 'video');

Ruby

models = client.media_models.list(media_type: "video")