เริ่มต้นใช้งาน AI Agent อย่างรวดเร็ว

คู่มือเชื่อมต่อ API mopng.cn สำหรับ Claude Code, OpenClaw และ AI Agent อื่นๆ

1

รับ API Key

กรุณาเข้าสู่ระบบก่อนเพื่อรับ API Key

2

ติดตั้ง MoPNG API Skill

OpenClaw / Claude Code / Cursor สามารถทำตาม 3 ขั้นตอนนี้ได้ แต่ละขั้นตอนสามารถคัดลอกแยกกันได้

1. ติดตั้ง

รันในไคลเอนต์ที่เกี่ยวข้อง (จุดเข้าใช้งานอาจแตกต่างกันตามผลิตภัณฑ์)

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

ข้อกำหนดเบื้องต้น: uv, python3 (แนะนำ 3.10+) ดู SKILL.md(GitHub)Gitee

2. ตั้งค่าตัวแปรสภาพแวดล้อม

หลังจากสร้าง API Key คีย์ของคุณจะถูกใส่ที่นี่เพื่อคัดลอก

Configure environment variables (read by the skill scripts, same value as API Key)

Tell your assistant to set it globally, for example:
> Set MOPNG_API_KEY='ak_xxxxxxxxxxxxxxxx' in the global environment

If your client supports JSON env config (e.g. OpenClaw), use:
{
  "env": {
    "MOPNG_API_KEY": "ak_xxxxxxxxxxxxxxxx"
  }
}

3. ตัวอย่างการใช้งาน

After installation, you can use CLI-style commands in chat (relative paths are supported):
- Background removal: remove-bg ./photo.jpg
  remove-bg ./photo.jpg --output ./result.png --async-mode
- HD upscale: upscale ./photo.jpg --scale 2
  upscale ./photo.jpg --scale 4 --tile-size 192 --tile-pad 24 --async-mode
- Outpainting: outpainting ./photo.jpg --direction all --expand-ratio 0.5
  outpainting ./photo.jpg --direction right --expand-ratio 0.3 --best-quality
- Image translation: translation ./photo.jpg --target-language en
  translation ./photo.jpg --target-language ja --source-language zh
- Text-to-image: text-to-image --prompt "A red-beaked blue magpie standing on a branch"
  text-to-image --prompt "A futuristic city in cyberpunk style" --output ./cyberpunk.png --model wanx-v2.5
- Image-to-image: image-to-image --input ./photo.jpg --prompt "Turn the sky into a golden sunset"
  image-to-image --input ./portrait.jpg --prompt "Convert to oil painting style" --strength 0.7 --output ./portrait_oil.png
- List models: list-models --type text_to_image
  list-models --type image_to_image

Tips: for long-running tasks (remove-bg/upscale), prefer --async-mode; for image-to-image, use --strength to control change level (about 0.3–0.5 light, 0.6–0.8 medium, 0.9–1.0 strong).
3

คัดลอกคำแนะนำทั้งหมดให้ AI Agent

ด้านล่างเป็นเพียงตัวอย่าง HTTP/OpenAPI เท่านั้น "คัดลอกคำแนะนำทั้งหมด" จะรวม Skill 3 ขั้นตอน + ส่วนนี้

Use mopng.cn OpenAPI (HTTP, Bearer auth)

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

Image input: for local files, upload first via POST https://mo-api.mopng.cn/api/v1/images/upload, then use data.signedUrl or data.signed_url; remote URLs can be passed directly.

Async tasks: if POST returns data.status as pending/processing, poll until completed/failed (do not rely on async_mode alone):
- remove-bg / upscale: GET https://mo-api.mopng.cn/api/v1/open/image/tasks/{taskId or task_id}
- outpainting / translation / text-to-image / image-to-image: GET https://mo-api.mopng.cn/api/v1/open/ai/generations/{jobId, taskId, or task_id}

Result image: prefer first url in data.results[]; keep compatibility with result.imageUrl / image_url. Error rule: treat as failure only when code is a number and non-zero.

HTTP endpoints:
- remove-bg: POST /api/v1/open/image/remove-bg
- upscale: POST /api/v1/open/image/upscale
- outpainting: POST /api/v1/open/image/outpainting
- translation: POST /api/v1/open/image/translation
- text-to-image: POST /api/v1/open/ai/generations (type=text_to_image)
- image-to-image: POST /api/v1/open/ai/generations (type=image_to_image)

API documentation (for agents): https://mopng.cn/agent/docs

Natural language examples (works for HTTP or installed skill):
"Please remove the background of ./photo.jpg and save as ./result.png"
"Please upscale ./image.jpg by 2x"
"Please translate Chinese text in ./poster.jpg to English"
"Please outpaint ./photo.jpg by 50% on all sides"

เครื่องมือ AI ที่รองรับ

ลบพื้นหลัง
1点/张
เพิ่มความละเอียดสูง
1点/张
ขยายภาพ
2点/张
แปลรูปภาพ
2点/张
ข้อความเป็นรูปภาพ
3点/张
รูปภาพเป็นรูปภาพ
3点/张
รายการที่เลือก: ลบพื้นหลัง
Base Path: /api/v1/open Auth: Authorization: Bearer <API_KEY> **POST** /image/remove-bg Image: upload local files first via POST /api/v1/images/upload; for remote images, pass image_url directly. If data.status is pending/processing, poll GET /image/tasks/{taskId|task_id}; camelCase fields are also supported (taskId, results[].url).

ตัวอย่างโค้ด

import requests
import sys

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

# For local images, upload first. Skip for remote URLs.
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")

# Call API
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)

เอกสาร API (สำหรับ Agent)

จัดระเบียบ endpoint, request body และ response structure เป็น Markdown เพื่อให้ AI Agent ใช้งานได้โดยตรง

ลิขสิทธิ์ © 2026 Hangzhou Qise Technology Co., Ltd.