为生产环境而建
uncloth.app 是一套图像变换 API,面向那些需要把生成图像当作产品可靠组成部分、而非试验品的平台。你提交一张照片和所需的预设,我们返回成品结果。
接口背后的一切由我们负责运维——容量、排队、投递与恢复。你的集成只是一次带鉴权的 HTTP 调用;若需要实时进度,再加一条 WebSocket 连接。
请求的表现与我们的繁忙程度无关。同一次调用,在你接入的第一天和在峰值负载下的行为完全一致。
一张照片,全部预设
下面每个结果都来自同一张源照片,请求中除预设 id 外没有任何改动。






您已年满 18 岁吗?
以下是 API 生成的未经修饰的结果。请确认年龄后查看。
十一种预设
在任务中传入 feature=<id>。若省略,请求会回退到 undress。未知 id 会被拒绝并返回有效列表,因此拼写错误会明确报错,而不是返回错误的图像。
四次调用,从头到尾
提交照片
一次 multipart POST,带上图像、预设和同意确认。你会立即收到一个任务 id。
跟踪进度
轮询任务接口,或订阅 WebSocket,在处理过程中接收实时进度事件。
取回结果
已完成的任务带有一个产物 id。用同一把密钥获取它,即可拿到图像字节。
免费重试
用相同的 Idempotency-Key 重复调用,会返回原来的任务。重试绝不会产生第二个结果。
全部集成内容
一个请求头即可完成所有调用的鉴权。每个响应都限定在持有该密钥的客户范围内——任务、事件和结果都包含在内。
你的基础 URL 随密钥一同签发。
curl -X POST https://api.uncloth.app/api/v1/jobs \
-H "X-API-Key: $UNCLOTH_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-F feature=bikini \
-F consent=confirmed \
-F image=@photo.jpg
# { "data": { "id": "job_...", "status": "queued" } }curl -H "X-API-Key: $UNCLOTH_KEY" \
https://api.uncloth.app/api/v1/jobs/JOB_ID
# { "data": { "status": "succeeded",
# "outputs": [ { "id": "art_..." } ] } }
curl -H "X-API-Key: $UNCLOTH_KEY" \
https://api.uncloth.app/api/v1/artifacts/ART_ID \
-o result.png为持续响应而设计
容量、队列和投递链路由我们运行,你的平台无需操心。以下是关于本服务如何构建和运维的承诺。
10 分钟内删除
在您收到结果 10 分钟后,您的图片将从我们的系统中删除。不会为训练、审核或任何其他用途保留任何内容。
99.9% 可用性目标
我们据以设计、运维和度量的服务水平,在 API 边缘统计,而非以某个单一组件为准。
全球基础设施
请求由分布式容量承接,因此某一地区的需求不会变成所有人共同的队列。
自动扩缩
容量随负载变化。流量高峰只改变吞吐量,绝不改变 API 的形态或你的代码调用它的方式。
默认故障转移
任何单个组件都可被下线或替换,而不会造成需要你处理的中断。进行中的工作会被恢复,而不是丢失。
按密钥隔离
一把密钥只能看到自己的任务、事件和结果。响应绝不暴露内部标识符或基础设施细节。
以契约保证幂等
Idempotency-Key 请求头让重试变得安全。重复调用会返回原来的任务,而不是把工作做两遍。
持久化排队
已接收的工作在开始前即被记录,事后可恢复。链路中任何位置的重启都不会丢掉你的任务。
严格的输入校验
支持 JPEG、PNG 和 WebP,最大 20 MiB,按文件内容校验,而不只看文件名或声明的类型。
常见问题
如何进行鉴权?
REST 调用使用 X-API-Key 请求头。在 WebSocket 上,密钥随连接后的第一条消息发送,因此绝不会出现在 URL 或代理日志中。
请求超时会怎样?
用相同的 Idempotency-Key 重复调用。你会拿回原来的任务,不会产生第二个结果。
接受哪些格式和大小?
JPEG、PNG 和 WebP,最大 20 MiB。系统会校验文件的实际内容,因此改名或类型标注错误的文件会被拒绝。
能对一张照片使用多个预设吗?
可以。每个预设都是独立的任务,因此用同一张源图为每个预设各提交一个任务,并分别跟踪。
必须轮询吗?
不必。连接 WebSocket 并完成鉴权后,你会先收到近期任务的快照,随后是实时更新。轮询仍作为备选方式保留。
是否强制要求同意?
是。缺少 consent=confirmed 的创建调用会在 API 边界被拒绝。它是必填字段,也是一项由你负责的声明。
费用如何?
价格取决于用量,在开通接入时报价。请告诉我们你的平台情况和预期吞吐量,我们会给出具体数字。
你们会保存我的图像吗?
源图像和结果保存在私有存储中,仅提供给创建它们的那把密钥。保留期限在开通接入时一并约定。
告诉我们你在做什么
接入按集成逐个授予。请描述你的平台、预期用量,以及你如何从图像中的人物处获取同意,我们会回复凭据和基础 URL。
不提供公开注册,也不提供自助密钥。
