AI Agent 快速开始

为 Claude Code、OpenClaw 等 AI Agent 提供 mopng.cn API 接入指南

1

获取 API Key

请先登录账号以获取 API Key

2

安装 MoPNG API Skill

OpenClaw / Claude Code / Cursor 可按下面三步操作;每步均可单独复制。

1. 安装

在对应客户端中执行(入口因产品而异,以各产品文档为准)。

/skill add https://gitee.com/jkin8010/mopng-api/raw/main/SKILL.md

前置依赖:uv、python3(建议 3.10+)。说明见 SKILL.md(GitHub)Gitee

2. 配置环境变量

创建 API Key 后,此处会填入你的密钥用于复制。

配置环境变量(供 Skill 脚本读取,与 API Key 相同)

在 AI 输入框中说明,便于助手在全局环境中写入,例如:
> 在全局环境中 MOPNG_API_KEY='ak_xxxxxxxxxxxxxxxx'

OpenClaw 等支持 JSON 配置时,可在 env 中写入:
{
  "env": {
    "MOPNG_API_KEY": "ak_xxxxxxxxxxxxxxxx"
  }
}

3. 使用示例

安装后可在对话中使用 CLI 风格命令(路径可写相对路径,助手会解析工作区):
- 智能抠图:remove-bg ./photo.jpg
  remove-bg ./photo.jpg --output ./result.png --async-mode
- 高清放大:upscale ./photo.jpg --scale 2
  upscale ./photo.jpg --scale 4 --tile-size 192 --tile-pad 24 --async-mode
- 智能扩图:outpainting ./photo.jpg --direction all --expand-ratio 0.5
  outpainting ./photo.jpg --direction right --expand-ratio 0.3 --best-quality
- 图片翻译:translation ./photo.jpg --target-language en
  translation ./photo.jpg --target-language ja --source-language zh
- 文生图:text-to-image --prompt "一只红嘴蓝鹊站在树枝上"
  text-to-image --prompt "赛博朋克风格的未来城市" --output ./cyberpunk.png --model wanx-v2.5
- 图生图:image-to-image --input ./photo.jpg --prompt "把天空变成日落金色"
  image-to-image --input ./portrait.jpg --prompt "转换为油画风格" --strength 0.7 --output ./portrait_oil.png
- 查看模型:list-models --type text_to_image
  list-models --type image_to_image

使用技巧:抠图/放大等耗时任务建议加 --async-mode;图生图可用 --strength 控制变化幅度(约 0.3–0.5 轻微、0.6–0.8 中等、0.9–1.0 大幅)。
3

复制完整指令给 AI Agent

以下为仅 HTTP/OpenAPI 说明预览;「复制完整指令」会包含上方 Skill 三步全文 + 本节,便于一次性发给助手。

调用 mopng.cn OpenAPI(HTTP,Bearer 鉴权)

API Key: ak_xxxxxxxxxxxxxxxx
Base URL: https://mo-api.mopng.cn

图片输入:本地文件先 POST https://mo-api.mopng.cn/api/v1/images/upload 上传,用 data.signedUrl 或 data.signed_url;远程 URL 直接传入,无需上传。

异步任务:若 POST 返回 data.status 为 pending 或 processing,必须轮询直至 completed/failed(勿依赖 async_mode 开关):
- 抠图、高清放大:GET https://mo-api.mopng.cn/api/v1/open/image/tasks/{taskId 或 task_id}
- 智能扩图、图片翻译、文生图、图生图:GET https://mo-api.mopng.cn/api/v1/open/ai/generations/{jobId、taskId 或 task_id}

结果图片:优先从 data.results[] 取第一项的 url;兼容旧字段 result.imageUrl / image_url。错误判断:仅当 code 为数字且非 0 时视为失败(code 为 null/省略时勿当错误)。

HTTP 端点速查:
- 智能抠图: POST /api/v1/open/image/remove-bg
- 高清放大: POST /api/v1/open/image/upscale
- 智能扩图: POST /api/v1/open/image/outpainting
- 图片翻译: POST /api/v1/open/image/translation
- 文生图:   POST /api/v1/open/ai/generations (type=text_to_image)
- 图生图:   POST /api/v1/open/ai/generations (type=image_to_image)

接口说明(给 Agent 阅读):https://mopng.cn/agent/docs

自然语言示例(HTTP 或已安装 Skill 时均可):
"请帮我把 ./photo.jpg 的背景去掉,保存为 ./result.png"
"请将 ./image.jpg 放大 2 倍"
"请把 ./poster.jpg 的中文翻译成英文"
"请把 ./photo.jpg 向四周扩展 50%"

支持的 AI 工具

智能抠图
1点/张
高清放大
2点/张
智能扩图
按量计费
图片翻译
按量计费
文生图
按量计费
图生图
按量计费
当前选择:智能抠图
Base Path: /api/v1/open 鉴权: Authorization: Bearer <API_KEY> **POST** /image/remove-bg 图片:本地先 POST /api/v1/images/upload,远程 URL 直接传 image_url 若 data.status 为 pending/processing:轮询 GET /image/tasks/{taskId|task_id};字段兼容 camelCase(如 taskId、results[].url)

代码示例

import requests
import sys

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://mo-api.mopng.cn"

# 本地图片需先上传,远程 URL 可跳过此步
base = BASE_URL.rstrip("/").replace("/api/v1/open", "") or BASE_URL
with open("image.jpg", "rb") as f:
    up = requests.post(
        f"{base}/api/v1/images/upload",
        headers={"Authorization": f"Bearer {API_KEY}"},
        files={"file": f}
    )
    ud = up.json().get("data") or {}
    image_url = ud.get("signedUrl") or ud.get("signed_url")

# 调用工具
resp = requests.post(
  f"{BASE_URL}/api/v1/open/image/remove-bg",
  headers={"Authorization": f"Bearer {API_KEY}"},
  json={
  "image_url": image_url,
  "output_format": "png",
  "return_mask": false,
  "only_mask": false,
  "async_mode": false
}
)
j = resp.json()
code = j.get("code")
if code is not None and code != 0:
    print("API error:", j, file=sys.stderr)
    sys.exit(1)
data = j.get("data") or {}
tid = data.get("jobId") or data.get("job_id") or data.get("taskId") or data.get("task_id")
status = data.get("status")
if status in ("pending", "processing") and tid:
    import time
    while status in ("pending", "processing"):
        time.sleep(3)
        r = requests.get(
            f"{BASE_URL}/api/v1/open/image/tasks/{tid}",
            headers={"Authorization": f"Bearer {API_KEY}"},
        )
        j2 = r.json()
        c2 = j2.get("code")
        if c2 is not None and c2 != 0:
            print("poll error:", j2, file=sys.stderr)
            sys.exit(1)
        data = (j2.get("data") or {})
        status = data.get("status")
        if status in ("completed", "failed"):
            break
    results = data.get("results") or []
    first = results[0] if results else {}
    url = first.get("url") or first.get("imageUrl") or first.get("image_url")
    if not url:
        r0 = data.get("result") or {}
        url = r0.get("imageUrl") or r0.get("image_url")
    print({"status": status, "image_url": url, "data": data})
else:
    print(j)

接口说明文档(给 Agent 阅读)

将每个工具的 endpoint、请求体与返回结构整理成可直接复制给 AI Agent 的 Markdown。

Copyright © 2026 杭州其色科技有限公司

浙ICP备2023041999号-1