API 文档

将脱衣、换脸和动画功能集成到您的应用程序中。

API 密钥

登录以创建和管理您的 API 密钥。

登录

授权

在每个请求的 Authorization 头中传递您的 API 密钥。

Authorization: Bearer <your_api_key>

脱衣 API

脱衣 API 可以从源照片生成脱衣图像或动画视频。每个请求都需要 Authorization: Bearer <your_api_key> 请求头和 JSON 请求体。

此处分为四种风格,以子章节形式组织:

风格 输出 积分 端点
Standard 静态图像 1 POST /api/v1/undress
Premium v2 静态图像 3 POST /api/v1/undress
Premium v3 最高质量静态图像 5 POST /api/v3/undress
视频 动画 mp4 初次 7 · 继续 5 POST /api/v1/undress

standardpremium_v2video 共用 POST /api/v1/undress——通过 style 字段选择,然后轮询 GET /api/v1/undress/:idsource_image 始终为 base64 编码的 jpegpngwebp,最大 12 MB。只有 premium_v2 风格下 mask/automask 才真正影响行为;其他 v1 风格下服务器始终自动生成蒙版。

Premium v3 有独立的端点(POST /api/v3/undress),始终针对一个明确选定的人物,因此需要先调用 人物分析 API 以选择目标人物。参见下文的 Premium v3

Standard

最便宜的风格——1 积分,单张静态图像,服务器生成蒙版,无自定义选项。

创建脱衣任务

POST /api/v1/undress

参数 类型 必填 描述
source_image string (base64) base64 编码的 jpeg/png/webp,最大 12 MB。
style string 取值必须为 "standard"
curl -X POST https://deepstrip.com/api/v1/undress \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"source_image": "<base64_encoded_image>", "style": "standard"}'

响应:

200 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"}

400 {"error": "no_credits"}——账户积分不足。

400 {"error": "invalid_params", "errors": ["Image is invalid"]}——校验失败;errors 列出原因。

400 {"error": "internal_server_error"}——请求被判定为异常而拒绝。

获取脱衣结果

GET /api/v1/undress/:id

轮询直到 statuscompletedfailedresult 为图像 URL。

curl https://deepstrip.com/api/v1/undress/<identifier> \
  -H "Authorization: Bearer <your_api_key>"

200 {"status": "pending"}

200 {"status": "completed", "result": "<result url>", "image": "<result url>"}——imageresult 的已弃用别名,为向后兼容保留。

200 {"status": "failed", "details": "analysis_failed"}——输入被拒绝(例如未检测到人、未成年人)。请勿使用相同输入重试。

200 {"status": "failed", "details": "system_error"}——生成本身失败。可以重试。

404 {"error": "NOT_FOUND"}

Premium v2

3 积分,单张静态图像。可选用户提供的蒙版或服务器生成蒙版,并提供身形 / 胸部 / 毛发选项。

创建脱衣任务

POST /api/v1/undress

参数 类型 必填 描述
source_image string (base64) base64 编码的 jpeg/png/webp,最大 12 MB。
style string 取值必须为 "premium_v2"
mask string (base64) automask 不为 true base64 编码的 png,最大 1 MB。白色 = 需要脱衣的区域,黑色 = 保留。
automask boolean 可选 true 表示由服务器生成蒙版。
body_shape string 可选 fatskinnyathleticold。省略表示正常。
boobs string 可选 smalllarge。省略表示正常。
hair string 可选 hairyshaved。省略表示正常。

使用自动蒙版和身体自定义:

curl -X POST https://deepstrip.com/api/v1/undress \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"source_image": "<base64_encoded_image>", "style": "premium_v2", "automask": true, "body_shape": "athletic", "boobs": "large", "hair": "shaved"}'

使用用户提供的蒙版:

curl -X POST https://deepstrip.com/api/v1/undress \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"source_image": "<base64_encoded_image>", "mask": "<base64_encoded_mask_png>", "style": "premium_v2"}'

响应:

200 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"}

400 {"error": "no_credits"}

400 {"error": "invalid_params", "errors": ["Image is invalid"]}

400 {"error": "internal_server_error"}——请求被判定为异常而拒绝。

获取脱衣结果

GET /api/v1/undress/:id——响应结构与 Standard 相同。

Premium v3

最高质量静态图像——5 积分。与其他风格不同,Premium v3 有独立的端点POST /api/v3/undress),并且需要预先进行人物检测步骤。

前提条件: 先调用 人物分析 API 获取 person_id。Premium v3 始终针对一个明确选定的人物——不选择目标人物就无法提交图像。

完整流程:

  1. POST /api/v1/persons/analyze 带上 {image_url} → 得到分析 id。
  2. 轮询 GET /api/v1/persons/analyze/:id 直到 completed → 得到带 id 的人物列表。
  3. POST /api/v3/undress 带上相同的 image_url 和选定的 person_id → 得到脱衣 id。
  4. 轮询 GET /api/v3/undress/:id 直到 completedfailed

mask / automask / 身体选项——所有内容均由选定的人物推导得出。

创建脱衣

POST /api/v3/undress

参数 类型 必填 描述
image_url string jpegpngwebp 图像的 HTTPS URL,最大 12 MB。必须与人物分析时使用的 URL 逐字节一致。
person_id string 要脱衣的人物 id,取自同一 API 密钥下 completed 分析的 persons[] 数组。
person_gender string 可选 覆盖检测器对该人物识别的性别。接受 "male""female"(不区分大小写)。当检测器识别错误,而您想强制使用相反的工作流时使用。
body_shape string 可选,仅女性 强制设置体型。可选值:"as_in_photo"(AI 保留原始体型,默认值)、"fat""skinny""athletic"
boobs string 可选,仅女性 强制设置胸部尺寸。可选值:"as_in_photo"(由 AI 决定,默认值)、"small""large""huge"
curl -X POST https://deepstrip.com/api/v3/undress \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"image_url": "https://example.com/photo.jpg", "person_id": "6f2a13e4-5b52-4c39-9a7d-29e80a9c1a62"}'

响应:

201 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"}

400 {"error": "invalid_params", "errors": ["image_url is required"]}——缺少 image_url / person_idperson_gender 无效,或记录未通过模型层校验。

400 {"error": "invalid_person_id"}——person_id 未知、已过期(> 3 小时)、属于其他 API 密钥,或传入的 image_url 与该人物分析所用的 URL 不匹配。

400 {"error": "image_fetch_failed"}——服务器无法下载 image_url 指向的图像(非 HTTPS、非 2xx、不允许的 content-type、> 12 MB、超时或重定向过多)。

400 {"error": "under_age"}——所选人物的预估年龄小于 18。请勿再次使用该人物。

400 {"error": "no_credits"}——账户积分不足。

重新生成(免费,每个 undress 一次)

POST /api/v3/undress/:id/regenerate

当结果不理想时,可用不同的随机种子免费重新生成。相同的原图、相同的人物,不消耗积分。每个父级 undress 仅允许 1 次 免费重新生成,且仅在父级创建后的 24 小时 内有效。父级的 person_gender 覆盖(如有)将被继承。

curl -X POST https://deepstrip.com/api/v3/undress/<parent_id>/regenerate \
  -H "Authorization: Bearer <your_api_key>"

响应:

201 {"id": "<new_undress_id>"}——使用新 id 轮询 GET /api/v3/undress/:id

400 {"error": "already_regenerated"}——此父级 undress 的免费重新生成名额已使用。

400 {"error": "parent_expired"}——父级 undress 已超过 24 小时。

400 {"error": "parent_not_completed"}——父级 undress 尚未完成;请等待 completed 后再重新生成。

400 {"error": "not_v3"}——仅 Premium v3 undress 可通过此端点重新生成。

404 {"error": "NOT_FOUND"}——父级 id 未知或由其他 API 密钥创建。

获取脱衣结果

GET /api/v3/undress/:id

响应结构与 GET /api/v1/undress/:id 相同。

curl https://deepstrip.com/api/v3/undress/<id> \
  -H "Authorization: Bearer <your_api_key>"

200 {"status": "pending"}

200 {"status": "completed", "result": "<result url>", "image": "<result url>"}——imageresult 的已废弃别名。

200 {"status": "failed", "details": "analysis_failed"}——输入被拒绝。请勿使用相同输入重试。

200 {"status": "failed", "details": "system_error"}——生成本身失败。可以安全重试。

404 {"error": "NOT_FOUND"}

视频

动画 mp4 输出——初次视频 7 积分,继续脱下一层衣物 5 积分。始终自动蒙版,无自定义选项。

创建脱衣任务

POST /api/v1/undress

参数 类型 必填 描述
source_image string (base64) 是——使用 parent 时除外 base64 编码的 jpeg/png/webp,最大 12 MB。
style string 是——使用 parent 时除外 取值必须为 "video"
parent string (uuid) 可选 上一次 video 脱衣任务的 id,用于继续脱下一件衣物。风格和源图像继承自父任务;父任务必须不超过 24 小时。消耗 5 积分。

初次动画脱衣——7 积分:

curl -X POST https://deepstrip.com/api/v1/undress \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"source_image": "<base64_encoded_image>", "style": "video"}'

继续上一次视频——5 积分(风格和源图像继承自 parent):

curl -X POST https://deepstrip.com/api/v1/undress \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"parent": "<id-of-previous-video-undress>"}'

响应:

200 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"}

400 {"error": "no_credits"}

400 {"error": "invalid_params", "errors": ["Image is invalid"]}

400 {"error": "parent_expired"}——parent undress 已超过 24 小时。

400 {"error": "too_many_retries"}——此 parent 已无免费重试次数。

400 {"error": "internal_server_error"}——请求被判定为异常而拒绝。

获取脱衣结果

GET /api/v1/undress/:id——响应结构与 Standard 相同;result 为 mp4 URL 而非图像 URL。

在视频结果上换脸

仅适用于已完成的 video 风格脱衣任务。对动画结果执行免费换脸以改善面部一致性;通常 60–120 秒完成。

POST /api/v1/undress_face_swap_videos

curl -X POST https://deepstrip.com/api/v1/undress_face_swap_videos \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"undress_id": "<id-of-the-video-undress>"}'

200

{
  "id": "69d280ab-42c5-4f49-9881-51076afb1747",
  "face_swap_video_id": "35b4a4a8-e5e6-4613-b1a3-d538b8698d06",
  "undress_id": "69968efe-556d-4805-87bd-1556a49f4e37",
  "undress_result_id": null
}

404 {"error": "NOT_FOUND"}——undress 不存在、不属于调用者或不是 video 风格。

GET /api/v1/undress_face_swap_videos/:id

curl https://deepstrip.com/api/v1/undress_face_swap_videos/<identifier> \
  -H "Authorization: Bearer <your_api_key>"

200 处理中时,undress_result_idnull。完成后,undress_result_id 指向一个新的 undress——通过 GET /api/v1/undress/:id 获取其视频:

{
  "id": "69d280ab-42c5-4f49-9881-51076afb1747",
  "face_swap_video_id": "35b4a4a8-e5e6-4613-b1a3-d538b8698d06",
  "undress_id": "69968efe-556d-4805-87bd-1556a49f4e37",
  "undress_result_id": "616c2b43-c432-416d-8ecb-470a670fbdee"
}

404 {"error": "NOT_FOUND"}

人物分析 API

检测图像中的人物,以便你通过 Premium v3 对特定的一个人进行脱衣。分析采用异步方式创建,并在缓存中保留 3 小时。该端点对每个 API 密钥限制为 每分钟 15 次请求

无需上传图像字节——只需传入 HTTPS URL,检测服务会自行获取。

创建分析

POST /api/v1/persons/analyze

请求体

参数 类型 必填 描述
image_url string jpegpngwebp 图像的 HTTPS URL。必须与随后传入 POST /api/v3/undress 的 URL 完全一致——它是 person_id 校验的一部分。
curl -X POST https://deepstrip.com/api/v1/persons/analyze \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"image_url": "https://example.com/photo.jpg"}'

响应

201 {"id": "a1e0b0c8-..."} — 通过 GET /api/v1/persons/analyze/:id 轮询结果。

400 {"error": "invalid_params", "errors": ["image_url must use HTTPS"]} — URL 缺失、非 HTTPS 或格式错误。

429 {"error": "rate_limited", "retry_after": 37} — 当前分钟内该 API 密钥的分析请求超过 15 次。retry_after 是距离下一个时间窗口的秒数。


获取分析结果

GET /api/v1/persons/analyze/:id

轮询直到 status 变为 completedfailed。缓存条目在创建后 3 小时过期;之后 GET 返回 404

curl https://deepstrip.com/api/v1/persons/analyze/<id> \
  -H "Authorization: Bearer <your_api_key>"

响应

200 {"status": "pending"} — 检测器仍在运行。

200 完成,包含人物列表:

{
  "status": "completed",
  "persons": [
    {
      "id": "6f2a13e4-5b52-4c39-9a7d-29e80a9c1a62",
      "bbox": [112.0, 80.0, 430.0, 920.0],
      "age": 27.3,
      "gender": "female",
      "score": 0.94
    }
  ]
}

无法识别年龄或性别的人物会被过滤。将 persons[].id 作为 person_id 传给 POST /api/v3/undress

200 {"status": "completed", "persons": []} — 检测器运行正常,但未发现可识别的人物。不算失败;请换一张图像。

200 {"status": "failed", "details": "detector_failed"} — 检测器无法处理该 URL(不可访问、图像无效或服务错误)。稍后再试或换用其他 URL。

404 {"error": "NOT_FOUND"} — 未知 id、缓存已过期(> 3 小时),或分析由其他 API 密钥创建。


换头与换脸 API

创建换头与换脸任务

POST /api/v1/face_swaps

接受面部图像和目标图像。

面部图像和目标图像应为 base64 编码的 jpegwebppng 格式图像。

若要执行头部替换(head swap)而非换脸,请在请求体中添加 "mode": "head_swap"mode 默认为 face_swap3 个积分,仅替换面部);head_swap5 个积分)替换整个头部。

curl -X POST https://deepstrip.com/api/v1/face_swaps \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"image": "<base64_encoded_image>", "face": "<base64_encoded_face>"}'

响应:

200 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"}

400 {"error": "no_credits"}

400 {"error": "invalid_params", "errors": ["Image is invalid"]}


获取换脸结果

GET /api/v1/face_swaps/:id

返回生成的图像或生成状态。

curl https://deepstrip.com/api/v1/face_swaps/<identifier> \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json"

响应:

200 {"status": "completed", "image": "<result image url>"}

200 {"status": "pending"}

200 {"status": "failed"}

404 {"error": "NOT_FOUND"}

视频换脸 API


分析视频

POST /api/v1/face_swap_videos/analyze

根据视频时长计算处理价格。

curl -X POST https://deepstrip.com/api/v1/face_swap_videos/analyze \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"video_url": "https://example.com/video.mp4", "preview": false, "version": "v2"}'

响应:

200 {"price": 4.0, "duration": 20}

400 {"error": "INVALID_VIDEO_URL", "details": ["must be a valid URL", "must use HTTPS"]}

422 视频尺寸不得超过 1920x1080 — {"error": "ANALYSIS_FAILED", "details": "too_large"}


创建换脸视频

POST /api/v1/face_swap_videos

使用 URL 创建新的换脸视频任务。

curl -X POST https://deepstrip.com/api/v1/face_swap_videos \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"video_url": "https://example.com/video.mp4", "face_url": "https://example.com/face.jpg", "preview": false, "version": "v2"}'

响应:

201 {"id": "69d280ab-42c5-4f49-9881-51076afb1747", "status": "created", "message": "Face swap video creation started"}

400 {"error": "VALIDATION_ERROR", "details": ["Video is required"]}


获取换脸视频状态

GET /api/v1/face_swap_videos/:id

检查换脸视频任务的状态,完成后获取结果 URL。

curl https://deepstrip.com/api/v1/face_swap_videos/<identifier> \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json"

响应:

200 处理中

{
  "id": "69d280ab-42c5-4f49-9881-51076afb1747",
  "status": "processing",
  "progress": 45.5,
  "step": "working",
  "result_url": null,
  "error_details": null
}

200 已完成

{
  "id": "69d280ab-42c5-4f49-9881-51076afb1747",
  "status": "completed",
  "progress": 100.0,
  "step": "uploading",
  "result_url": "https://assets.nodress.ai/videos/result.mp4",
  "error_details": null
}

404 {"error": "NOT_FOUND"}

照片动画 API

照片动画 API 可将静态照片转换为具有流畅自然运动的视频。

创建动画

POST /api/v1/animations

接受源图像和模板 ID 来创建动画任务。

源图像应为 base64 编码的数据 URI,格式为 jpegpngwebp(例如 data:image/jpeg;base64,/9j/4AAQ...)。

可用模板

template_id 参数为必填项,用于确定动画风格。为保持向后兼容性,也接受 preset_id(已弃用)。

GET /api/v1/animation_templates(也可通过 /api/v1/animation_presets 访问,已弃用)

curl https://deepstrip.com/api/v1/animation_templates

响应示例:

[{"id": 1, "name": "Missionary POV", "name_de": "Missionarsstellung POV", "name_es": "Misionero POV", ..., "combo": false, "price": 7, "price_hd": 14, "undress_before_animation": false}, ...]

响应包含所有支持语言(en、de、es、pt、fr、ru、zh)的本地化名称。name 字段包含英文名称。每个 name_XX 字段包含对应语言的翻译,如未设置则回退为英文。price 字段是 SD 价格;price_hdHD 价格(2 倍)。undress_before_animation 字段告诉你某个模板是否支持可选的动画前脱衣步骤。

当前模板:

ID Name Combo Price SD (credits) Price HD (credits)
3 Reverse Cowgirl No 7 14
4 Face Sitting No 7 14
5 Breast Expansion No 7 14
6 Doggy Style No 7 14
8 Cumshot on the face No 7 14
9 Foot Show No 7 14
12 Pet Play No 7 14
13 Squirt No 7 14
30 Breast Play No 7 14
16 Breast Play Solo No 7 14
17 Spooning No 7 14
18 Deep Throat BBC No 7 14
19 Blowjob No 7 14
21 Double Blowjob No 7 14
7 Dildo Handjob No 7 14
24 Handjob No 7 14
26 Two-Hand Handjob No 7 14
29 Standing Doggy No 7 14
33 Sex Machine No 7 14
36 Pussy Fingering No 7 14
38 Doggy POV No 7 14
1 Missionary POV No 7 14
45 Missionary Side View No 7 14
28 Kissing No 7 14
46 Lesbian Kissing No 7 14
47 Gay Kissing No 7 14
48 Smoking No 7 14
49 Blowjob POV No 7 14
79 Ahegao No 7 14
55 Pregnant No 7 14
56 Deep Throat with Cumshot BBC Yes 14 28
57 Two Guys Handjob No 7 14
58 Rough Blowjob No 7 14
83 Kissing & Undressing Yes 14 28
75 Pussy Rubbing No 7 14
76 Pussy rubbing with creampie Yes 14 28
77 Riding the gear shift No 7 14
86 Gains weight quickly No 7 14
78 Continue Action No 7 14

组合模板将两种动画风格合二为一,费用为 14 个积分而非 7 个。

请求示例:

curl -X POST https://deepstrip.com/api/v1/animations \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"source_image": "<base64_encoded_image>", "template_id": 1}'

响应:

200 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"}

400 {"error": "no_credits"}

400 {"error": "invalid_params", "errors": ["Input is invalid"]}

400 分析失败 — 检测到未成年人:

{"error": "analysis_failed", "error_details": {"code": "face.child", "underage_persons": [{"age": 17.6, "face": {"x1": 36, "x2": 99, "y1": 103, "y2": 176}, "body": {"x1": 1, "x2": 170, "y1": 72, "y2": 735}}]}}

400 分析失败 — 未检测到人脸:

{"error": "analysis_failed", "error_details": {"code": "no_face_found"}}

HD 画质

默认情况下,动画以 SD 画质渲染(最高 480x640)。传入 "quality": "hd" 可以 HD 画质渲染(最高 720x1280),并保留源图像的宽高比。HD 的费用是模板价格的两倍(例如标准模板 14 积分,组合模板 28 积分)。省略 quality 则保持 SD 画质和 SD 价格,因此现有的集成不受影响。

参数 类型 必填 描述
quality string 可选 "sd"(默认值)或 "hd"。HD 最高渲染到 720x1280,费用为模板价格的 2 倍(参见 GET /api/v1/animation_templates 中的 price_hd)。
curl -X POST https://deepstrip.com/api/v1/animations \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"source_image": "<base64_encoded_image>", "template_id": 1, "quality": "hd"}'

对于继续的动画(parent_id),HD 会从父动画继承,因此此处的 quality 会被忽略。

继续之前的动画

传递 parent_id 以延续之前的动画。新片段会拼接到父动画的视频上。父动画的最后一帧总是作为源 — 请求中传入的任何 source_image 都会被忽略。template_id 为可选,默认使用父动画的模板;传入不同的 ID 即可切换风格。父动画必须小于 24 小时且已保存最后一帧。

使用相同模板继续:

curl -X POST https://deepstrip.com/api/v1/animations \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"parent_id": "<id-of-previous-animation>"}'

使用不同模板继续:

curl -X POST https://deepstrip.com/api/v1/animations \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"parent_id": "<id-of-previous-animation>", "template_id": 5}'

400 {"error": "parent_expired"} — 父动画超过 24 小时或没有保存的最后一帧。

400 {"error": "internal_server_error"} — 父动画属于其他用户或不存在。

动画前脱衣

某些模板可以在制作动画之前先让照片经过一次 Premium v3 脱衣,使动画从一帧脱衣画面开始。这是按模板选择启用的:请检查 GET /api/v1/animation_templates 返回的 undress_before_animation 标志。仅当该标志为 true 的模板才会生效,且仅适用于全新的动画(提供 parent_id 时会被忽略)。

这个中间步骤的脱衣是一次正常的、在历史记录中可见的 Premium v3 脱衣,会在动画之外单独收取 3 积分(因此一个标准的 7 积分模板总共需要 10 积分)。即使动画随后失败,该脱衣也会被保留。

由于它复用了 Premium v3 流程,人物选择的方式与 Premium v3 完全相同:你需要传入 image_url + person_id(在一次人物分析之后),而不是 source_image

流程:

  1. POST /api/v1/persons/analyze 带上 {image_url} → 得到分析 id。
  2. 轮询 GET /api/v1/persons/analyze/:id 直到 completed → 得到带 id 的人物列表。
  3. POST /api/v1/animations 带上 undress_before_animation: true相同的 image_url、选定的 person_id,以及一个 undress_before_animationtruetemplate_id
  4. 照常轮询 GET /api/v1/animations/:id
参数 类型 必填 描述
undress_before_animation boolean 必须为 true 才能启用此流程。
image_url string 源图像的 HTTPS URL(jpeg/png/webp,最大 12 MB)。必须与为 person_id 分析的 URL 逐字节一致。替代 source_image
person_id string 要脱衣的人物 id,取自同一 API 密钥下的 completed 分析。
template_id integer 一个 undress_before_animation 标志为 true 的模板。
person_gender string 可选 覆盖检测器识别的性别。"male""female"(不区分大小写)。
body_shape string 可选,仅女性 "as_in_photo"(默认值)、"fat""skinny""athletic"
boobs string 可选,仅女性 "as_in_photo"(默认值)、"small""large""huge"
curl -X POST https://deepstrip.com/api/v1/animations \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"template_id": 1, "undress_before_animation": true, "image_url": "https://example.com/photo.jpg", "person_id": "6f2a13e4-5b52-4c39-9a7d-29e80a9c1a62", "body_shape": "athletic"}'

响应(在上文 创建动画 的响应之外):

200 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"} — 使用返回的 id 轮询 GET /api/v1/animations/:id;先运行脱衣,然后运行动画。

400 {"error": "invalid_params", "errors": ["image_url is required"]} — 缺少 image_url / person_id,或 person_gender / body_shape / boobs 无效。

400 {"error": "invalid_person_id"}person_id 未知、已过期(> 3 小时)、属于其他 API 密钥,或其分析的 URL 与 image_url 不匹配。

400 {"error": "image_fetch_failed"} — 服务器无法下载 image_url 指向的图像(非 HTTPS、非 2xx、不允许的 content-type、> 12 MB、超时或重定向过多)。

400 {"error": "under_age"} — 所选人物的预估年龄小于 18。请勿再次使用该人物。


获取动画结果

GET /api/v1/animations/:id

返回生成的视频 URL 或生成状态。

curl https://deepstrip.com/api/v1/animations/<identifier> \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json"

响应:

200 {"status": "completed", "result": "<result video url>"}

200 {"status": "pending"}

200 {"status": "failed"} — 系统错误或未知故障

200 失败 — 检测到未成年人:

{"status": "failed", "error_details": {"code": "face.child", "underage_persons": [{"age": 17.6, "face": {"x1": 36, "x2": 99, "y1": 103, "y2": 176}, "body": {"x1": 1, "x2": 170, "y1": 72, "y2": 735}}]}}

200 失败 — 未检测到人脸:

{"status": "failed", "error_details": {"code": "no_face_found"}}

404 {"error": "NOT_FOUND"}

更新日志

日期 变更
10.06.2026 POST /api/v1/face_swaps 新增可选的 mode"face_swap"/"head_swap")—— head_swap 替换整个头部,费用为 5 个积分。默认为 face_swap
10.06.2026 将创建类端点(POST /api/v1/undress/api/v1/face_swaps/api/v1/animations/api/v1/undress_face_swap_videos)文档中的成功状态码从 201 更正为 200,以与实际响应一致。
29.05.2026 POST /api/v1/animations 新增可选的 quality"sd"/"hd")—— HD 最高渲染到 720x1280,费用为模板价格的 2 倍。默认为 SD。为 GET /api/v1/animation_templates 新增 price_hd
22.05.2026 POST /api/v1/animations 新增可选的”动画前脱衣”(undress_before_animation + image_url + person_id,Premium v3,额外 3 积分)。为 GET /api/v1/animation_templates 新增 undress_before_animation 标志。
29.04.2026 在 Premium v3(POST /api/v3/undress)的 body_shape 选项中新增 "athletic"
24.04.2026 简化 Premium v3 中的 person_gender:仅接受 "male""female"(别名 "man"/"woman" 不再支持)。从 Persons Analysis 响应文档中移除了内部的 gender_score 字段。
24.04.2026 重新组织 API 文档:Undress 现在是一个单独的章节,下设 Standard、Premium v2、Premium v3、视频 子章节。Premium v3 描述中现在显式链接了 Persons Analysis API 作为前置条件。
21.04.2026 新增 POST /api/v3/undress/:id/regenerate — 每个父级 undress 一次免费重新生成,有效期 24 小时。
21.04.2026 不兼容premium_v3 风格已从 POST /api/v1/undress 中移除;Premium v3 现在位于 POST /api/v3/undress,需要 image_url + person_id。新增 POST /api/v1/persons/analyze + GET /api/v1/persons/analyze/:id(每个 API 密钥每分钟 15 次请求,缓存 3 小时)。
20.04.2026 premium_v3 价格从 10 积分下调至 5 积分
19.04.2026 重写 Undress API 章节;修正 /api/v1/undress_face_swap_videos URL(复数形式),补充 failed 中的 details 字段,新增 too_many_retries/parent_expired/internal_server_error,在 body_shape 中新增 old
07.04.2026 Premium v3 简化为单一 premium_v3 风格,2.0 MP 分辨率,固定 10 积分
01.04.2026 添加了 Premium v3 风格
28.03.2026 为动画 API 响应添加了 error_details(未成年人检测和未检测到人脸)
15.03.2026 添加了组合动画模板(14 个积分)
24.02.2026 将动画预设重命名为动画模板;/api/v1/animation_presets 仍可使用(已弃用)
03.02.2026 为动画预设端点添加了本地化名称
02.02.2026 添加了动画预设列表端点
01.02.2026 照片动画 API 的重大更新
21.01.2026 添加了照片动画 API
21.01.2026 为 premium_v2 风格添加了 body_shape、boobs、hair 选项
19.12.2025 移除了基础照片换脸功能
13.12.2025 更新了关于脱衣视频的文档
12.12.2025 添加了创建脱衣视频的功能
11.12.2025 从 OpenAPI 规范中移除了旧版选项
26.09.2025 移除了关于不支持的脱衣风格的信息
30.12.2024 添加了 API 文档测试版的链接
27.12.2024 添加了视频换脸 API
10.12.2024 为换脸 API 添加了 version 字段
25.10.2024 添加了换脸 API
18.10.2024 添加了 premium v2 风格
21.09.2024 添加了 OpenAPI 规范的链接
21.09.2024 添加了关于自动蒙版生成的信息
16.09.2024 添加了价格页面的链接
11.05.2024 添加了 curl 使用示例
10.05.2024 更新了 API 文档以与当前版本同步