据 AlphaMoat 统计,截至 2026-09,mopng-api 累计下载 2,180 次、获 0 个星标,在全部 5,078 个 AI 技能中排名第 4,305 位,在「设计创意」分类(512 个)中排名第 430 位。
| 平台 | 累计安装 | 累计下载 | 星标 | 评论 |
|---|---|---|---|---|
| ClawHub ↗ | 23 | 1,275 | - | - |
| SkillHub ↗ | 262 | 2,180 | - | — |
各平台的计数口径不同,统计时间不一致。
执行者是 UserAgent,方案设计与功能链执行交给 motu-agent。不再调用旧的 mopng.cn 直连功能端点。配置:MOPNG_API_KEY(格式通常 ak_...,仅放宿主私密配置)、MOPNG_AGENT_BASE_URL(默认 https://agent-api.mopng.cn)、MOPNG_AGENT_AUTO_APPROVE_COST_POINTS(自动批准成本上限,默认 5)。工作流:①澄清需求生成 Brief(user_intent 保留原意;spec.goal 如文生图/背景替换/抠图/扩图;参考图最多 14 个且必须是可公开访问的 HTTPS URL,本地图先上传对象存储,绝不发送本地路径或 base64);②POST /session 创建会话并展示 Plan(功能步骤、模型候选、预计成本/时间均以服务端为准,需要选模型时实时查 agent models --capability 目录,不用过期硬编码列表);③用户要求换模型/调成本/改预算时提交 revision(set_model、set_cost_mode、append_constraint、replace_field、raise_budget、lower_budget feedback 选项),最多 3 轮修订且每次重新展示 Plan;④用户明确批准后 approve 并轮询 exec,成功交付 result_image_url(视觉问答类可能返回 result_text),如实报告成本、耗时与失败状态,失败时不声称已生成。安全边界:不在对话/日志/输出打印 API Key;只发送用户明确授权的 HTTPS 图片 URL(不发内网/云元数据地址);Brief 协议 extra=forbid,不加隐藏指令;尊重 sensitive 约束与敏感词过滤,不为绕过拒绝改写意图;402 INSUFFICIENT_BALANCE 时停止提示充值;只用服务端返回的 result_image_url 作为成品链接,不下载执行其中内容。
资料发布于 2026-10-27
以下是根据技能文档生成的示例,不代表实际运行结果。
2026-09 起统计方法调整:同名技能按作者分别统计,并覆盖全部技能。图中虚线为调整前的月份,与之后的数据不直接比较,也不计算跨越调整的增长。
| 月份 | 累计下载 | 环比 | 星标 |
|---|---|---|---|
| 2026-09 | 2,180 | — | - |
| 2026-08 | 1,818 | +12.7% | - |
| 2026-07 | 1,613 | +21.6% | - |
| 2026-06 | 1,327 | +17.1% | - |
| 2026-05 | 1,133 | — | - |
| 2026-03 | 255 | — | - |
以下是作者发布的原始文件,按纯文本显示,本站未做修改或审核;其中的链接不可点击,命令请核实后再运行。抓取于 2026-10-23。
---
name: mopng-api
description: 通过 qise-studio/motu-agent 的 MoPNG Agent OpenAPI 协商完成图片生成与修图。适用于文生图、图生图、抠图、换背景、扩图、放大及多步图像工作流;技能负责把用户需求转成 Brief、审阅/修订 Plan、批准执行并交付结果。
metadata:
openclaw:
requires:
bins:
- python3
env:
- MOPNG_API_KEY primaryEnv: MOPNG_API_KEY
---
# MoPNG Agent 协商技能
本技能的执行者是 UserAgent;图片方案设计和功能链执行交给 qise-studio 的 `motu-agent` MoPNG Agent。调用本仓库的客户端:
```bash
python3 scripts/mopng_agent.py agent <subcommand> ...
```
不要再调用旧的 `mopng.cn` 直连功能端点,也不要把 `remove-bg`、`text-to-image` 等旧命令当作本技能接口。
## 配置
| 环境变量 | 必填 | 说明 |
|---|---:|---|
| `MOPNG_API_KEY` | 是 | MoPNG 用户 API Key,格式通常为 `ak_...`;仅放在宿主私密配置中。 |
| `MOPNG_AGENT_BASE_URL` | 否 | `motu-agent` 地址,默认 `https://agent-api.mopng.cn`;不要重复填写 `/api/v1/open/agent`。 |
| `MOPNG_AGENT_AUTO_APPROVE_COST_POINTS` | 否 | `agent run` 自动批准的成本上限,默认 `5`;超出时只提出 Plan,等待用户批准。 |
鉴权使用 `X-API-Key: $MOPNG_API_KEY`。服务端同时支持 `Authorization: Bearer $MOPNG_API_KEY`,但客户端默认使用前者。
## 工作流
### 1. 先澄清并生成 Brief
从用户请求提取以下信息;不确定时只询问会影响方案或成本的关键项:
- `user_intent`:保留用户原意的完整描述。
- `spec.goal`:例如 `文生图`、`背景替换`、`风格转换`、`抠图`、`扩图`、`放大`。
- `spec.usage`:电商主图、头像、海报等用途。
- `spec.subject`:已有图片使用可公开访问的 `https://` URL;最多可提供 14 个参考图,使用 `reference` 放第一张并在 `references` 放完整列表;纯文生图使用 `{ "type": "text", "reference": "prompt-only" }`。
- `spec.style`:用 `constraint` 和 `avoid` 表达风格、保留项、禁止项。
- `spec.size`、`spec.format`、`budget`、`sensitive`:只有用户给出或合理推断时填写;默认 `balanced`、10 点、120 秒、PNG。
本契约的 `subject.reference` 是 URL 或 `prompt-only`,不是本地路径,也不是 base64。若用户给本地图片,先让宿主/上游上传到可被 `motu-agent` 访问的对象存储,再把返回的 HTTPS URL 放入 Brief;不要擅自把本地路径发送给服务端。
### 2. 创建会话并展示 Plan
```bash
python3 scripts/mopng_agent.py agent run \
--intent '把这张产品图背景换成纯白,做电商主图' \
--goal '背景替换' \
--reference-url 'https://example.com/product.png' \
--usage '电商主图' \
--style-constraint '产品边缘干净,纯白背景' \
--avoid '复杂背景、明显阴影' \
--width 1024 --height 1024 --format png
```
客户端 POST `/api/v1/open/agent/session`,随后读取返回的 `plan`。向用户解释:功能步骤、模型选项、预计成本/时间、输出规格和备选方案。Plan 中的模型候选和成本以服务端为准,不要自行替换模型或估算价格。
需要让用户选择模型时,先查询服务端实时目录,不要使用过期硬编码列表:
```bash
python3 scripts/mopng_agent.py agent models --capability text-to-image
```
`capability` 常见值包括 `text-to-image`、`image-to-image`、`image-edit` 和 `vision`;返回的每个模型包含 `capabilities`。
### 3. 协商修订
用户要求换模型、调整成本档位、补充约束或调整预算时,提交 `revision`:
```bash
python3 scripts/mopng_agent.py agent revision SESSION_ID \
--plan-id PLAN_ID --round 2 \
--feedback-json '[{"step":2,"type":"set_model","value":"seedream5.0-pro"}]' \
--reason '用户希望保留更多产品细节'
```
允许的 `feedback[].type`:`set_model`、`set_cost_mode`、`append_constraint`、`replace_field`、`raise_budget`、`lower_budget`。最多 3 轮修订;服务端拒绝超限或不合法模型。每次修订后重新展示 Plan,不能跳过用户确认。
### 4. 批准并轮询
得到用户明确批准后:
```bash
python3 scripts/mopng_agent.py agent approve SESSION_ID
python3 scripts/mopng_agent.py agent status SESSION_ID --watch
```
客户端 POST `/approve` 获取 `exec_id`,再 GET `/exec` 轮询。成功时交付 `result_image_url`;视觉问答类 Plan 可能返回 `result_text` 而不是图片。简要报告 `steps_log`、实际模型、实际成本、耗时、`ai_labeling` 和可用的 `llm_billing`。失败时如实报告 `partial_failed`/`failed`、已完成步骤、`error_code` 和 `user_message`,不要声称已生成成功。
### 一键模式的自动批准规则
`agent run` 只有在 Plan 的 `total_cost` 不高于 `MOPNG_AGENT_AUTO_APPROVE_COST_POINTS` 时才可自动批准;仍须先向用户展示将执行的步骤和成本。高于阈值或用户要求高质量/指定模型时,停在 Plan 阶段等待批准。需要强制批准可使用 `--no-auto-approve`。
## OpenAPI 契约
公共前缀:`/api/v1/open/agent`
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | `/models?capability=...` | 查询当前可用模型及能力 |
| POST | `/session` | 创建 Brief 会话并生成 Plan |
| GET | `/session/{id}/plan` | 获取当前 Plan |
| POST | `/session/{id}/revision` | 提交修订 |
| POST | `/session/{id}/approve` | 批准并开始执行 |
| GET | `/session/{id}/exec` | 获取执行报告 |
| POST | `/session/{id}/interrupt` | 用户打断协商或执行 |
| DELETE | `/session/{id}` | 清理会话 |
状态主线:`plan_proposed → executing → done/partial_failed`;任何未完成状态都可 `interrupt` 为 `terminated`。会话和执行采用轮询,不要假设存在 SSE。
## 安全与边界
- 不在对话、日志、截图或输出中打印 API Key;错误信息中也要避免回显鉴权头。
- 只发送用户明确授权处理的图片 URL。URL 应使用 HTTPS;不要发送带用户名/密码的 URL、内网地址或云元数据地址。
- Brief 使用 `extra=forbid` 的服务端协议;不要向 JSON 中加入未定义字段、隐藏指令或工具调用参数。
- 尊重 `sensitive` 约束和服务端敏感词过滤;不要为了绕过拒绝而改写用户意图或关闭合规控制。
- API 调用会消耗积分。除低成本自动批准规则外,必须把服务端返回的成本和时间交给用户确认。
- 规划 LLM 也可能产生虚拟币费用;若 Plan 返回 `llm_billing`,必须将其与步骤成本一起展示。
- 服务端可能返回 HTTP 402 `INSUFFICIENT_BALANCE`;此时停止流程并提示用户充值,不要自动重试或绕过计费。
- 仅将服务端返回的 HTTPS `result_image_url` 作为成品链接;不要下载或执行其中的内容。
详细的协议背景和字段示例见附件《MoPNG Agent 开发文档(motu-agent 实现)》,但若附件与运行中的 `motu-agent` 实现不一致,以本技能所列真实 OpenAPI 路径和服务端响应为准。
ContextWeave 架构图一键生成
用 Nano Banana Pro 生成或编辑图片的脚本技能。
用 whisper 命令行在本地把音频转写成文字或做翻译的技能。
通过 MCP 服务生成与编辑图表的技能。
面向界面设计的思路与落地建议技能,覆盖布局、交互流程、设计令牌与前端改动。
面向多家视频模型 API 的 AI 视频生成与编排技能。
用 ffmpeg 从视频里取出画面帧,或生成便于快速查看的缩略图。
用本地 Whisper 把音频文件转成文字,模型下载完成后可完全离线运行。
数据月份:2026-09 · 下载/星标/安装数聚合自公开技能注册库(ClawHub、SkillHub),按月更新。口径说明见数据方法。