文识云

图片检测

AI 图片检测 API

提交一张图片,返回它由 AI 生成的可能性(0~1 之间的置信度)。图片可以用公网地址传入, 也可以直接传 Base64;与文本检测共用同一套鉴权、异步任务与计费机制。

最近更新:

怎么传图

POST /v1/image/classify,两个字段二选一。 同时接受 camelCase 写法,从上游文档直接迁移过来的代码不必改写字段名。

字段等价写法说明
image_urlimageUrl图片的公网可访问地址(http / https)。上游需要能直接下载到图片,内网地址、需要登录或带防盗链的地址都取不到。
image_base64imageBase64图片内容的 Base64 编码。适合本地文件、需要鉴权的图床,或不希望图片被上游直接回源的场景。

输入限制

以下约束来自上游检测模型的输入要求,不是本站额外加的限制——不符合时会在调用上游之前就被拒绝, 不会产生扣费。

图片格式jpg / png / webp
图片尺寸需大于 300×300 像素
单张大小解码后不超过 10MB
请求体大小整体不超过 16MB

图片过小时可用于判别的细节不足,模型输出的置信度会明显失真(常见表现是无论内容如何都给出接近中性的分数)。 需要检测缩略图时,建议取原图或更大的版本。

返回字段

任务成功后,result 的结构是 { status, data: { confidence } }:

  • status:上游返回的执行状态,success 表示本次检测有效。
  • data.confidence:AI 生成置信度, 0~1 之间的小数,越接近 1 表示模型越倾向于判定为 AI 生成。

图片结果没有 segment_labels——分段与波形图是文本检测独有的,图片只有这一个整体分数。

调用示例

请求示例 · cURL

# 1. 提交检测任务(提交即扣费,务必携带 Idempotency-Key)
curl -X POST https://your-domain.com/v1/image/classify \
  -H "Authorization: Bearer sk-zq-你的密钥" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(cat /proc/sys/kernel/random/uuid)" \
  -d '{"image_url":"https://example.com/photo.jpg"}'

# 2. 用返回的 task_id 轮询结果(pending / running / succeeded / failed)
curl https://your-domain.com/v1/tasks/<task_id> \
  -H "Authorization: Bearer sk-zq-你的密钥"

请求示例 · Python

import base64, time, uuid, requests

BASE = "https://your-domain.com"
KEY = "sk-zq-你的密钥"
HEAD = {"Authorization": "Bearer " + KEY, "Content-Type": "application/json"}

# 方式一:公网可访问的图片地址
payload = {"image_url": "https://example.com/photo.jpg"}

# 方式二:本地文件转 Base64(与 image_url 二选一)
# with open("photo.jpg", "rb") as f:
#     payload = {"image_base64": base64.b64encode(f.read()).decode()}

task = requests.post(
    BASE + "/v1/image/classify",
    headers=dict(HEAD, **{"Idempotency-Key": str(uuid.uuid4())}),
    json=payload,
).json()["data"]

# 异步任务:提交后不会立刻出结果,需要轮询
while task["status"] in ("pending", "running"):
    time.sleep(1)
    task = requests.get(BASE + "/v1/tasks/" + task["task_id"], headers=HEAD).json()["data"]

print(task["status"], task["result"]["data"]["confidence"])

响应示例

{
  "code": "ok",
  "data": {
    "task_id": "01J8Z9K3M7X2Q4R6T8V0W1Y5BC",
    "provider": "zhuque-image",
    "status": "succeeded",
    "cost": "0.0500",
    "result": {
      "status": "success",
      "data": { "confidence": 0.9312 }
    }
  }
}

典型场景

  • AI 绘图识别。判断投稿、商品图或素材图是否由绘图模型生成,作为人工复核的初筛依据。
  • UGC 平台的图片合规。用户上传图片时同步提交检测,高置信度结果进入人工队列,其余直接放行。
  • 素材来源核查。在采购或入库流程中对图片来源做批量核验,逐张提交、逐张计费。

更完整的错误码、退款规则与用量上限见 接口文档。

常见问题

图片用 URL 还是 Base64 传?+

两种都支持,二选一:image_url 传公网可访问的 http/https 地址(上游需要能直接下载到图片,内网地址、需要登录的地址都取不到);image_base64 传图片内容的 Base64 编码,适合本地文件、需要鉴权的图床。字段同时接受 camelCase 写法 imageUrl / imageBase64。

支持哪些图片格式和尺寸?+

jpg、png、webp 三种格式;图片需大于 300×300 像素,单张解码后不超过 10MB,整个请求体不超过 16MB。这三个限制来自上游模型的输入要求,本站只是如实转达——尺寸或格式不符时会在调用上游前就被拒绝。

为什么要求图片大于 300×300 像素?+

这是上游检测模型的输入约束,不是本站额外加的限制。图片过小时可用于判别的细节不足,模型输出的置信度会明显失真(常见表现是无论内容如何都给出接近中性的分数)。需要检测缩略图或小图时,建议先取原图或更大的版本。

图片检测结果里有什么?+

result 里是 { status, data: { confidence } }:data.confidence 是 AI 生成置信度(0 到 1 之间的小数),越接近 1 表示模型越倾向于判定为 AI 生成。图片检测没有分段数据,因此不像文本那样有 segment_labels 与波形图。

能批量检测图片吗?+

接口按单张提交,批量需要循环调用,每张独立计费、独立扣费。因为是异步任务模型,可以并发提交多张后统一轮询,但受账号的每秒提交上限约束(默认 2 次/秒),批量场景建议在客户端做限速与重试。

相关页面

注册即赠体验金,先把全流程跑通再充值

AI 图片检测 API · 文识云