AI 生成图片检测 API
AI 生成图片检测 API,兼顾局部篡改取证。
- 接口
- POST /v1/files, POST /v1/analyses
- 模型
- fvimg-2 · FVIMG V2
- 支持的文件
- JPEG, PNG, WEBP
- 大小上限
- 最大 10 MB,最多 40 百万像素
- 获取结果
- 在同一次请求中等待,或通过 Webhook 接收
- 价格
- 每次图片检测 1.99美元
最近更新
检测内容
图片检测回答哪些问题。
整张图片是生成的吗?有一部分被编辑过吗?文件自身的记录说了什么?一份报告回答这三个问题,“响应字段”一列告诉您去哪里读取每个答案。
| 问题 | 检查内容 | 响应字段 |
|---|---|---|
| AI 生成 | 图片是否看起来由 AI 生成,给出可能性,并在支持时给出可能的生成器。 | questions.ai, generator |
| 局部编辑 | 图片的某一部分是否被改动,并以像素标出相应区域。 | questions.edit, regions |
| 内容凭证、水印与 AI 标识 | 文件自身的记录对其来源的声明,以及这些声明是否站得住脚。 | questions.source, provenance |
| 文件元数据 | 文件记录中注明的相机、软件和拍摄时间。 | provenance |
| 判定与置信度 | 风险等级、建议措施,以及这份文件允许检测确定到什么程度。 | summary, confidence |
请求与响应
两次调用,一份报告。
先上传图片,再使用模型 fvimg-2 创建检测。发送 Prefer: wait 可让请求一直保持到报告就绪。如果等待先超时,检测会返回 202 和状态 processing,您可以稍后获取,或通过 Webhook 接收。
FILE_ID=$(curl -s https://api.fileverity.com/v1/files \ -H "Authorization: Bearer $FILEVERITY_API_KEY" \ -F file=@claim-photo.jpg | jq -r .id) curl https://api.fileverity.com/v1/analyses \ -H "Authorization: Bearer $FILEVERITY_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Prefer: wait=60" \ -d "{\"model\": \"fvimg-2\", \"file\": \"$FILE_ID\", \"metadata\": {\"order_id\": \"A-10492\"}}"import { readFile } from "node:fs/promises"; const headers = { Authorization: "Bearer " + process.env.FILEVERITY_API_KEY }; const form = new FormData();form.append("file", new Blob([await readFile("claim-photo.jpg")], { type: "image/jpeg" }), "claim-photo.jpg");const file = await (await fetch("https://api.fileverity.com/v1/files", { method: "POST", headers, body: form })).json(); const response = await fetch("https://api.fileverity.com/v1/analyses", { method: "POST", headers: { ...headers, "Content-Type": "application/json", "Idempotency-Key": crypto.randomUUID(), Prefer: "wait=60" }, body: JSON.stringify({ model: "fvimg-2", file: file.id, metadata: { order_id: "A-10492" } }),});const analysis = await response.json();console.log(analysis.status, analysis.summary, analysis.report_url);import osimport uuidimport requests headers = {"Authorization": "Bearer " + os.environ["FILEVERITY_API_KEY"]} file = requests.post("https://api.fileverity.com/v1/files", headers=headers, files={"file": open("claim-photo.jpg", "rb")}).json() response = requests.post( "https://api.fileverity.com/v1/analyses", headers={**headers, "Idempotency-Key": str(uuid.uuid4()), "Prefer": "wait=60"}, json={"model": "fvimg-2", "file": file["id"], "metadata": {"order_id": "A-10492"}},)analysis = response.json()print(analysis["status"], analysis["summary"], analysis["report_url"]){ "id": "an_8Hk2pQ4vN9sL1xR7cW3mY6zB", "object": "analysis", "created": 1793700120, "model": "fvimg-2-2026-10-30", "livemode": true, "status": "succeeded", "file": { "name": "claim-photo.jpg", "bytes": 2481920, "format": "jpeg" }, "report_id": "FV-7K2M-9QXD-4T8R", "report_url": "https://fileverity.com/verify/FV-7K2M-9QXD-4T8R", "summary": { "level": "L2", "assessment": "authentic_untouched", "action": "accept", "ai": "very_low", "edit": "none" }, "result": { "report": { "schema": "fileverity.report/1", "id": "FV-7K2M-9QXD-4T8R" }, "stamped_at": 1793700130 }, "error": null, "progress": null, "usage": { "amount": 199, "currency": "usd", "funding": "balance" }, "metadata": { "order_id": "A-10492" }, "completed_at": 1793700131, "expires_at": 1794304931}适用场景
放在图片变成证据的环节。
API 返回风险等级和建议措施,最终决定仍由您的审核人员做出。
理赔与保险照片
- 您提交
- 随理赔提交的受损、车辆和财产照片。
- 您得到
- 关于 AI 生成和局部编辑的发现、标记区域和报告编号。
- 之后由您的团队
- 报告标记了某张图片时,索取原始文件或另一张照片。
退货与退款申请
- 您提交
- 客户为支持退款申请而上传的商品照片。
- 您得到
- 响应中的判定和建议措施,并标出被编辑的区域。
- 之后由您的团队
- 图片被标记时暂缓退款、转人工复核,其余照常处理。
交易平台与商品发布
- 您提交
- 上传时的商品图片和头像。
- 您得到
- 一次检测给出风险等级和建议措施。
- 之后由您的团队
- 按您自己的政策,对被标记的上传内容加标签、限制或复核。
纠纷与调查
- 您提交
- 在纠纷或调查中作为证据提交的照片。
- 您得到
- 带有指纹和 RFC 3161 时间戳、日后可核验的报告。
- 之后由您的团队
- 把报告编号与案件一并保存,需要时分享核验页。
局限
它不做什么。
没有问题的结果可以缩小复核范围,但不能取代复核。
- 它只检测静态图片。它不分析视频或音频,不识别人物,也不做人脸比对。
- 没有发现问题,并不证明图片是真实的。翻拍、截图和重新编码都会抹去线索。
- 截图、强压缩和小尺寸图片会限制能够确定的内容。报告会说明这份文件允许确定到什么程度。
- 缺少内容凭证或水印并不能说明什么,因为图片在传播过程中元数据常被清除。
- 检测结果会因生成器和图片而异。请把报告当作供复核的证据,而不是定论。
证据
可以留存的证据。
每次检测留下的不只是一个结论,还有一份可以保存、分享并在日后再次核验的记录。
报告编号
格式为 FV-XXXX-XXXX-XXXX 的报告编号。请与您自己的案件或客户记录一并保存。
指纹与时间戳
每份报告都会记录文件与报告的 SHA-256 指纹,以及 RFC 3161 时间戳。
公开核验页
收到报告编号的人无需账号,即可在核验页确认报告。
文件删除,结果保留
上传的文件在检测后删除,也不会用于训练模型。结果可通过 API 再次获取,保留 7 天。
集成
把它接入您的工作流程。
图片检测和文档检测遵循相同的模式,一次集成即可覆盖两者。
- 使用 Prefer: wait 等待结果,或在检测完成时接收带签名的 Webhook。请同时处理“已完成”和“处理中”两种响应。
- 每个 POST 请求都发送 Idempotency-Key,这样重试永远不会让同一次检测运行两次。
- 先用 fv_test_ 密钥开发。它们返回固定的示例结果,永不扣费。
- 失败的检测不收费。服务繁忙时返回 503 和 retry-after 响应头,您用同一个密钥重试即可。
- Webhook 带有签名,遵循 Standard Webhooks 规范。
- 不超过 4 MB 的文件可在一次 multipart 请求中上传,更大的文件使用预签名上传 URL,上限取决于模型。
- 每个密钥每分钟最多 120 次请求。
价格
按每次检测付费。
同一份预付的工作区余额即可用于图片、文档和文本检测。从 19美元 起充值。无需订阅,不会自动续费。
常见问题
如何通过 API 检测 AI 生成的图片?
用 POST /v1/files 上传图片,再用 POST /v1/analyses 和模型 fvimg-2 创建检测。响应包含关于 AI 生成的发现、被编辑的区域、内容凭证的状态,以及任何人都能核验的报告编号。
能找出照片中被编辑的部分吗?
能。检测会判断图片的某一部分是否被改动,并以像素标出区域,方便审核人员准确看到被标记的位置。局部编辑与整张图片的 AI 生成会分别报告。
能说出图片是哪个生成器生成的吗?
在支持时,报告会给出可能的生成器以及识别依据。很多图片并没有生成器信息,没有名称也不代表图片是真实的。
会读取内容凭证和水印吗?
会。它读取文件中记录的内容凭证、水印和 AI 标识,并报告其状态。它们缺失并不能说明图片真实,因为图片在传播过程中元数据常常被清除。
截图和压缩过的图片能用吗?
可以提交,但截图、强压缩和缩放都会抹去线索。报告会说明这份文件允许检测确定到什么程度,因此请谨慎对待低置信度的结果。
一次图片检测多少钱?
每次图片检测 1.99美元,从您的预付工作区余额中扣除,余额从 19美元 起充值。您的第一个工作区包含 5 次免费图片或文档检测,测试密钥永不扣费。失败的检测不收费。
支持哪些图片格式和大小?
支持的格式:JPEG, PNG, WEBP。每张图片的上限为 10 MB 和 40 百万像素。不超过 4 MB 的文件可在一次 multipart 请求中上传,更大的文件使用预签名上传 URL。
会检测视频、音频或人脸吗?
不会。它只检测静态图片,不做人脸比对,也不识别人物。检测文档请使用文档伪造检测 API。
实务指南
写给复核团队的实务指南。
每项检查能证明什么、止于何处、下一步该索取哪份证据。
图片
如何判断一张图片是不是 AI 生成的:来源、标识与检测的核查方法
判断图片是否由 AI 生成:追溯来源,读取隐式标识与内容凭证(C2PA),用检测工具复核,再结合业务记录得出可复核的结论。附案例与清单。
20 分钟阅读 ·
图片
截图和微信压缩过的图片,还能检测 AI 生成和篡改吗?
截图、微信非原图与转发图片会丢失元数据和细节。说明哪些检查仍可进行、如何索取原图或原文件,以及无法判定时如何推进复核。
18 分钟阅读 ·
理赔与退款
理赔照片被 AI 篡改怎么办:车险与财产险的照片复核流程
理赔照片可能由 AI 生成、被局部修改或取自其他事故。本文按《反保险欺诈工作办法》的线索思路,说明如何保全、复核、补充取证并记录结论。
20 分钟阅读 ·
检测评估
如何选择 AI 检测 API:集成前要核查的十件事
选择 AI 检测 API 前的核查清单:输入限制、同步与异步结果、Webhook、审计证据、数据留存、测试模式与计费。
20 分钟阅读 ·