Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here
dramamint-video logo

dramamint-video

runtopia/dramamint-plugin

Otheropenclawby runtopia

Summary

OpenClaw plugin exposing 0 skills.

Install to Claude Code

openclaw plugin add runtopia/dramamint-plugin

Run in Claude Code. Add the marketplace first with /plugin marketplace add runtopia/dramamint-plugin if you haven't already.

README.md

DramaMint Video Provider for OpenClaw / OneClaw

DramaMint AI 视频生成 provider,支持四种生成方式:文生视频、首帧图生视频、首尾帧图生视频、参考生

特点:

  • 模型清单实时拉后端/mobile/ai/video-scenario/config,后端新增模型自动可用,无需改插件
  • scenario 自动切换 — 根据输入自动选对应 scenario,flag 0/1/2/3 各有独立模型清单
  • 参数本地校验 — 发请求前校验 (aspect_ratio, resolution, duration) 是否被所选模型支持,不浪费积分
  • vendor 自动反推 — 只需传 model_id,插件自动定位 vendor
  • 素材自动上传 — Buffer 走 /mobile/upload 转 URL;已是 http(s) URL 则直接使用
  • 统一 User-Agent — 所有出站请求都带 dramamint;2.3.2;iOS;18.4.1;iPhone13,1;Apple Store;480;zh

---

1. 最小化配置

只配 apiKey 即可,其他全走默认:

{
  "plugins": {
    "entries": {
      "dramamint-video": {
        "enabled": true,
        "config": {
          "apiKey": "<JWT>",
          "defaultModel": "ep-20260422152223-c8b2j"
        }
      }
    }
  },
  "agents": {
    "defaults": {
      "videoGenerationModel": {
        "primary": "dramamint-video/auto",
        "timeoutMs": 1800000
      }
    }
  }
}

> 推荐defaultModel 配成 Seedance 系列(ep-*)—— 它在所有 scenario 都可用,跨文生/图生/参考生通吃。

或用环境变量:

export DRAMAMINT_JWT="<your-jwt-token>"

| 字段 | 默认值 | |---|---| | scenario | 由 flag 自动决定 | | model | defaultModel 配置 > scenario 第一个 | | aspect_ratio | 9:16 | | resolution | 720p | | duration | 5 秒 |

---

2. 四种生成方式(flag)

flag 自动推导规则

| 输入 | 自动 flag | scenario | |---|---|---| | 无任何输入 | 0 文生 | text-to-video | | 1 张图(inputImages) | 1 首帧图生 | first-frame-to-video | | 2 张图(inputImages) | 2 首尾帧图生 | first-last-frame-to-video | | 有参考视频或参考音频 | 3 参考生 | reference-to-video | | providerOptions.flag=3scenario="reference-to-video" | 3 参考生 | reference-to-video |

> 1 张图默认推 flag=1(首帧)。若要用 1 张图做风格参考(不是首帧),需显式指定 providerOptions.flag=3providerOptions.scenario="reference-to-video"

---

flag=0 文生视频

纯文字描述生成视频。

帮我生成一个视频:一只猫在月亮上跳舞

---

flag=1 首帧图生视频

以图片作为视频第一帧,让画面动起来。

基于这张图生成 8 秒动态视频  [附 1 张图]

插件流程:上传图片 → images[0] → flag=1 → 创建任务

---

flag=2 首尾帧图生视频

提供开头帧结尾帧,生成两图之间的过渡动画。

基于这两张图生成 6 秒过渡视频(第一张是开头,第二张是结尾)  [附 2 张图]

插件流程:上传两张图 → images[0] 首帧、images[1] 尾帧 → flag=2

---

flag=3 参考生

参考生与图生视频有本质区别:

| | 图生 flag=1/2 | 参考生 flag=3 | |---|---|---| | 图片作用 | 内容起点 — 让图里的画面动起来 | 风格/角色参考 — 生成有相似外貌的新内容 | | 视频作用 | ✗ | 动作/运镜参考 — 生成动作风格相似的新视频 | | 音频作用 | ✗ | 配乐参考 — 生成与音乐节奏匹配的视频 | | 素材是 | 视频内容的起点 | 生成的参考依据,不直接出现在结果里 |

参考生可接收的输入(inputImagesreferenceVideoreferenceAudio 可任意组合,至少一种):

只传参考图(人物/风格参考)

参考这张图片里的人物外貌,生成一段 5 秒的街道行走视频  [附参考图]
providerOptions: { flag: 3 }

只传参考音频(配乐驱动)

根据这段音频的节奏生成一段海浪视频  [providerOptions.referenceAudio = <音频>]

→ 自动推 flag=3

只传参考视频(运镜/动作参考)

模仿这段视频的运镜风格生成城市夜景视频  [inputVideos = [<视频>]]

→ 自动推 flag=3

混合传(图 + 音频)

参考这张图里的人物,配上这段背景音乐,生成宣传视频

inputImages=[参考图] + providerOptions.referenceAudio=<音频> → flag=3

参考素材会分别上传到后端对应字段:

  • inputImagesimages[](参考图)
  • providerOptions.referenceVideoreq.inputVideosvideo[]
  • providerOptions.referenceAudioreq.inputAudiosreference_audio[]

各模型参考生能力:

| model | 参考图 | 参考视频 | 参考音频 | |---|---|---|---| | wan2.7-r2v | ✓ | ✓ | ✓ | | ep-* Seedance | ✓ | ✓ | ✓ | | happyhorse-1.0-r2v | ✓ | ✗ | ✗ |

---

3. 后端 scenario × 模型矩阵

后端按 scenario 隔离模型清单,Wan/HappyHorse 用不同后缀的 model_id 区分能力,Seedance(ep-*)一个 id 跨所有 scenario。

| scenario | Wan | HappyHorse | Seedance | |---|---|---|---| | text-to-video | wan2.7-t2v | happyhorse-1.0-t2v | ep-20260422151344-2r2x9 | | first-frame-to-video | wan2.7-i2v | happyhorse-1.0-i2v | ep-20260422152223-c8b2j | | first-last-frame-to-video | wan2.7-i2v | — | ep- | | reference-to-video | wan2.7-r2v | happyhorse-1.0-r2v | ep- | | video-edit | wan2.7-videoedit | happyhorse-1.0-video-edit | — |

各模型参数范围

| model_id | 比例 | 分辨率 | 时长 | 积分/秒 | 真人 | |---|---|---|---|---|---| | Wan 系列(t2v/i2v/r2v) | 16:9 / 9:16 / 1:1 / 4:3 / 3:4 | 720p / 1080p | 2-10 | 17 / 34 | 允许 | | HappyHorse 系列 | 同上 | 720p / 1080p | 2-10 | 17 / 34 | 允许 | | Seedance 2.0 ep-20260422151344-2r2x9 | + 21:9 | 480p / 720p | 4-15 | 14 / 17 | | | Seedance 2.0 Fast ep-20260422152223-c8b2j | + 21:9 | 480p / 720p | 4-15 | 10 / 14 | |

> 精确组合以 /mobile/ai/video-scenario/config 返回的 allowed_combos 为准,插件自动校验,非法组合在发请求前抛错。

选型建议:

  • 跨场景万能(推荐默认)ep-20260422152223-c8b2j Seedance Fast — 一个 id 通吃,480p 最便宜
  • 高质量 1080p → Wan / HappyHorse,可用于真人题材(34/秒)
  • 21:9 宽屏 → 只能 Seedance
  • 真人题材 → Wan / HappyHorse(Seedance 禁真人)

---

4. 完整 config schema

{
  "apiKey":            "必填,JWT token(或 DRAMAMINT_JWT 环境变量)",
  "baseUrl":           "可选,默认 https://dramamint-backend-v2-751695506196.us-central1.run.app",
  "providerConfigId":  "可选,引用 models.providers 中其他条目复用 baseUrl/apiKey",
  "defaultModel":      "可选,推荐 ep-20260422152223-c8b2j;在目标 scenario 找不到时 fallback 到第一个",
  "defaultScenario":   "可选,覆盖 flag 自动映射的 scenario",
  "defaultAspectRatio":"可选,默认 9:16",
  "defaultResolution": "可选,默认 720p",
  "defaultDuration":   "可选,默认 5",
  "timeoutMs":         "可选,默认 1800000 (30 分钟)",
  "pollIntervalMs":    "可选,默认 2500",
  "maxPollAttempts":   "可选,默认 1200",
  "configCacheTtlMs":  "可选,scenario 配置缓存 TTL,默认 300000 (5 分钟),0 关闭"
}

---

5. providerOptions 透传

| 字段 | 类型 | 说明 | |---|---|---| | flag | 0\|1\|2\|3 | 显式覆盖 flag 自动推导 | | scenario | string | 显式指定 scenario(同时覆盖 flag 映射) | | referenceVideo | Buffer-like / URL / 数组 | 参考生视频,自动上传 | | referenceAudio | 同上 | 参考生音频,自动上传 | | shot_type | boolean | Wan 镜头模式(true=多镜头/false=单镜头) | | 其他字段 | — | 直接透传后端 |

Buffer-like 对象格式:{ buffer: Buffer, mimeType: string, fileName?: string }

URL 字符串:"https://..." — 跳过上传,直接传后端

以下字段被插件接管,不可通过 providerOptions 覆盖:

prompt / vendor / model_id / aspect_ratio / resolution / duration / audio / negative_prompt / images / video / reference_audio / referenceVideo / referenceAudio / scenario / flag

---

6. 错误处理

后端用 status:"error" 表示业务失败(HTTP 仍是 200),插件统一识别并抛出 description 字段内容。

常见错误码:

| 错误 | 含义 | |---|---| | data.code === 10001 | 积分不足 | | status:"error", description:"..." | 业务失败,参数不合法等 | | 插件抛 does not support aspect_ratio=... | 参数组合违反 allowed_combos | | 插件抛 flag=1 requires exactly 1 input image | 输入数量不对 | | 插件抛 flag=3 requires at least one of: inputImages... | 参考生无任何输入 |

---

7. 任务状态机

| data.status | 含义 | 行为 | |---|---|---| | 1 | 生成中 | 继续轮询 /mobile/ai/video-direct/status?task_id=... | | 3 | 完成 | 下载 data.video_url | | 4 | 失败 | 抛 data.failed_reason |

---

8. 上传接口

/mobile/upload(multipart, 字段名 file),返回:

{ "code": 0, "data": { "URL": "https://cdn.dramamint.io/...", "MimeType": "image/png" } }

注意 URL 字段名大写(Go struct 导出字段)。图片/视频/音频均走此接口上传。

---

9. 验证

video_generate action=list   # 应显示 dramamint-video configured: yes

修改插件代码后,重启 OneClaw 桌面端使源码热加载生效(plugins.load.paths 指向本地仓库)。

Related plugins

Browse all →