← 返回
未分类 Key

AI Image & Video Generator | WIME

WIME AI 电商创作平台 OpenAPI。提供两个核心能力:1)抠图 — 上传本地图片(或 URL)自动抠图,返回透明背景图 URL;2)商拍图 — 自动抠图后生成多张 AI 商拍图。触发场景:用户提到抠图、商拍图、商品图、WIME、电商图片处理时激活。
WIME AI 电商创作平台 OpenAPI,提供抠图(上传本地图片或URL,自动抠图返回透明背景图)和商拍图(抠图后生成多张AI商拍图)两大功能。触发场景:提及抠图、商拍图、商品图、WIME或电商图片处理。
liuxiaolong98 liuxiaolong98 来源
未分类 clawhub v1.0.5 2 版本 100000 Key: 需要
★ 12
Stars
📥 505
下载
💾 85
安装
2
版本
#latest

概述

WIME OpenAPI

电商 AI 创作平台,提供两个核心 Skill。

认证

该 skill 仅支持 WIME_ACCESS_TOKEN

> 安全与权限说明:该 skill 需要 WIME 专用凭证,并且会把用户明确提供的本地图片上传到 WIME 服务;当输入是远程图片 URL,或 WIME 返回远程抠图结果 URL 时,可能会拉取对应图片做处理。为降低风险,远程下载应仅用于用户提供或 WIME 返回的公开图片地址,不应用于 localhost、内网或其他非公开地址。

统一使用 scripts/wime_auth.pyget_auth() 函数:

from wime_auth import get_auth

auth = get_auth(uri_path="/waic/core/creationDesk/draw", body_dict=body)

resp = requests.post(
    f"{auth['base_url']}/waic/core/creationDesk/draw",
    headers=auth["headers"],
    data=auth["body_str"].encode("utf-8")
)

get_auth() 返回:

  • base_url: API 根地址
  • headers: 完整请求 headers dict(含 access-token
  • body_str: JSON 序列化后的 body 字符串(用于 data= 发送),body_dict 为 None 时为 None

配置方式

export WIME_ACCESS_TOKEN='你的token'

# 可选,默认 https://wime-ai.com
export WIME_BASE_URL='https://wime-ai.com'

若未配置 WIME_ACCESS_TOKEN,调用前应直接报错并提示用户先完成配置。

获取凭证

访问 wime-ai.com,页面右下角有 API 对接的联系方式,通过该入口申请获取 access-token

如果当前环境未配置凭证,应直接告知用户先去官网联系获取,而不是盲目调用接口。

图片来源判断(通用前置步骤)

用户输入可能是 本地路径URL,统一处理为可访问的图片 URL:

判断用户输入:
  ├─ 本地路径 (如 /Users/.../image.jpg)
  │    → upload → imageUrl
  │
  └─ URL (以 http:// 或 https:// 开头)
       → 直接使用该 URL 作为 imageUrl
       → (若后续接口不接受外部 URL,则下载 → upload → imageUrl)

新版上传接口

POST /waic/core/file/py/upload(multipart/form-data)

直接返回 data.url(可访问的图片 URL),不再返回 mediaId

from wime_auth import get_auth

auth = get_auth()

with open("image.png", "rb") as f:
    resp = requests.post(
        f"{auth['base_url']}/waic/core/file/py/upload",
        headers={"access-token": auth["headers"]["access-token"]},
        files={"file": ("image.png", f, "image/png")}
    )
image_url = resp.json()["data"]["url"]

注意: 上传接口需要 access-token header。

URL 下载注意事项(仅本地路径场景需上传)

  • 如果用户直接给了 URL,优先直接用,不需要下载再上传
  • 只有本地文件才需要走上传流程
  • 上传完成后清理本地临时文件
  • 若必须下载远程图片进行处理,只允许公开 http/https 地址;拒绝 localhost.local、回环地址和内网 IP

Skill 1:抠图

触发词: 抠图、去背景、透明背景、matting

新版流程(access-token)

用户提供本地图片路径或 URL
  → [图片来源判断] → imageUrl
  → removeBg([{imageUrl}]) → taskItemIds
  → queryItemForSaas(taskItemId) 轮询 → 抠图结果 URL

接口: POST /waic/core/creationDesk/removeBg

⚠️ 新版抠图为异步接口,返回 taskItemIds,需轮询获取结果。

步骤:

  1. 获取图片 URL:本地路径 → 上传获取 url;URL → 直接使用
  2. 构建请求体:

```python

import json

body = {

"data": json.dumps([{"imageUrl": image_url}]),

"skill": True

}

```

注意 data 字段是 JSON 字符串(不是 object),内部为 imageUrl 数组。

  1. 调用 removeBg,获取 taskItemIds
  2. taskItemIds[0] 轮询 queryItemForSaasitemStatus == 2url 有值时完成

输出给用户: 抠图结果 URL

Skill 2:商拍图

触发词: 商拍图、商品图、AI 商拍、产品摄影

新版流程(access-token)

用户提供本地图片路径或 URL
  → [图片来源判断] → imageUrl(原图 URL,记为 sourceImageUrl)
  → removeBg → taskItemIds → 轮询 → cutoutUrl
  → crop_alpha_bbox(cutoutUrl) → 本地裁剪图 (cropped.png)
  → upload(cropped.png) → croppedUrl
  → removeBg(croppedUrl) → 轮询 → croppedCutoutUrl(紧凑抠图)
  → draw(picList 使用 croppedCutoutUrl) → taskItemIds
  → queryItemForSaas 轮询 → 出一张返回一张

步骤:

  1. 获取原图 URL
    • URL 输入 → 直接用作 sourceImageUrl
    • 本地路径 → 上传获取 url,作为 sourceImageUrl
  2. 首次抠图:调用 removeBg 传入原图 URL → 轮询获取 cutoutUrl
  3. 裁剪非透明区域:使用 scripts/crop_alpha.pycrop_alpha_bbox(cutoutUrl) 裁剪最小外接矩形,去除多余透明边距
  4. 上传裁剪图:将裁剪后 PNG 通过 /waic/core/file/py/upload 上传 → 获取 croppedUrl 及裁剪后宽高
  5. 二次抠图:调用 removeBg 传入 croppedUrl → 轮询获取 croppedCutoutUrl
  6. 构建 draw 请求

接口: POST /waic/core/creationDesk/draw

body = {
    "ips": False,
    "needRank": True,
    "num": 4,
    "type": 1002,
    "data": {
        "aiStyle": True,
        "bgColor": "",
        "height": 1024,
        "width": 1024,
        "industry": "其他",
        "negPrompt": "",
        "prompt": "",
        "promptAi": "",
        "randomStyle": True,
        "referenceUrl": "",
        "seed": 0,
        "styleCode": "A0072",
        "skill": True,
        "picList": [
            {
                "imageUrl": cropped_cutout_url,
                "sourceImageUrl": source_image_url,
                "imageCaption": "",
                "width": crop_w,
                "height": crop_h,
                "left": calculated_left,
                "top": calculated_top,
                "scaleX": calculated_scale,
                "scaleY": calculated_scale,
                "type": 1,
                "parentId": ""
            }
        ]
    }
}

注意新版 body 结构: 外层有 ips/needRank/type,画布参数在 data 内,data.skill 必须为 True

  1. 提交后获得 taskItemIds
  2. 轮询 queryItemForSaas(每个 taskItemId 单独查),每完成一张立即输出
  3. 清理:删除本地临时裁剪文件

picList 位置与缩放规则

根据商品图裁剪后的宽高比判断横竖版,分别计算缩放和位置:

canvas_w, canvas_h = 1024, 1024  # 画布尺寸
img_w, img_h = crop_w, crop_h  # 裁剪后的商品尺寸

if img_w >= img_h:
    # 横版/方图商品:商品宽度 = 画布宽度 × 60%
    scale = (canvas_w * 0.6) / img_w
else:
    # 竖版商品:商品高度 = 画布高度 × 80%
    scale = (canvas_h * 0.8) / img_h

# 安全 clamp:缩放后商品不能超出画布任意一边
scale = min(scale, canvas_w / img_w, canvas_h / img_h)

# 水平方向:居中
left = (canvas_w - img_w * scale) / 2

# 垂直方向:总空白区域中,上方占 65%,下方占 35%
total_v_blank = canvas_h - img_h * scale
top = total_v_blank * 0.65

裁剪脚本用法

import sys, os
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', 'scripts'))
from crop_alpha import crop_alpha_bbox

cropped_path, (crop_w, crop_h) = crop_alpha_bbox(cutout_url, "/tmp/wime_cropped.png")

结果轮询

接口: POST /waic/core/task/queryItemForSaas

body = {"taskItemId": task_item_id}  # 单个 taskItemId(Long)
auth = get_auth(uri_path="/waic/core/task/queryItemForSaas", body_dict=body)
resp = requests.post(
    f"{auth['base_url']}/waic/core/task/queryItemForSaas",
    headers=auth["headers"],
    data=auth["body_str"].encode("utf-8")
)
# data.itemStatus == 2 且 data.url 有值 → 完成

轮询状态码(实测)

itemStatus含义
------------------
0需区分:调度延迟 vs 真正失败(见下方判定逻辑)
1执行中(未出图)
2完成url 字段有值)
3执行中
4排队中

判断完成的条件: itemStatus == 2url 非空。

⚠️ itemStatus=0 的判定逻辑:

实测发现:任务在较长一段时间内持续返回 status=0 仍可能最终成功不要因为连续几次 0 就判定失败

推荐轮询策略:

  • 完成条件:itemStatus == 2url 非空
  • 轮询间隔:5~10
  • 默认最长等待:3~10 分钟
  • 在超时前,不要仅因 status=0 就判失败
  • 超时后仍无结果,标记为 "超时/未完成"

输出给用户: 每张图完成时立即返回结果 URL


API 路径对照

功能路径
------------
图片上传POST /waic/core/file/py/upload
抠图POST /waic/core/creationDesk/removeBg
商拍图POST /waic/core/creationDesk/draw
结果轮询POST /waic/core/task/queryItemForSaas

环境

环境Base URL说明
----------------------
生产https://wime-ai.com线上环境

默认使用生产环境。WIME_BASE_URL 可覆盖。

接口参考

文件说明
------------
references/upload-image.md图片上传
references/cutout.md抠图
references/photo-shoot.md商拍图
references/asset-query.md结果轮询 + 资产查询
references/error-codes.md全局错误码

注意事项

  • 新版上传图片直接得到 URL,不再有 mediaId 概念
  • 抠图为异步接口,需轮询获取结果
  • 商拍图始终为异步接口,轮询时出一张返回一张
  • body 中含 skill: true 的接口必须传此字段
  • QPS 限制,超限返回 errcode=1000007
  • 该 skill 依赖 WIME_ACCESS_TOKEN;发布到注册表时应显式声明该环境变量与主凭证需求

版本历史

共 2 个版本

  • v1.0.5 当前
    2026-05-03 05:10 安全 安全
  • v1.0.1
    2026-03-31 09:57

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

design-media

Video Frames

steipete
使用 ffmpeg 从视频中提取帧或短片。
★ 137 📥 53,245
design-media

UI/UX Pro Max

xobi667
提供 UI/UX 设计智能与实现指导,帮助打造精美界面。适用于 UI 设计、UX 流程、信息架构、视觉风格、设计系统/标记、组件规格、文案/微文案、无障碍及前端 UI(HTML/CSS/JS、React、Next.js、Vue、Svelte
★ 229 📥 48,993
design-media

Openai Whisper

steipete
使用 Whisper CLI 进行本地语音转文字(无需 API 密钥)
★ 335 📥 94,792