LibImg 开放 API:网页上的图片能力都能用接口调用
图片翻译、原生 AI 改图、OCR、压缩、拆图、去水印和抠图共用同一套开放 API。本文按官方接口说明鉴权、任务轮询,以及各网页功能对应的路径。

LibImg 网页功能背后是同一套开放 API。自己接脚本或业务系统时,向 https://panel.jikym.com/translate-api 发请求,用 X-Api-Key 或 Bearer 鉴权。经典翻译和原生 AI 改图提交后立刻返回 task_id,再轮询状态、下载结果。字段以官方 OpenAPI 为准。
页面上的上传、选语言、点开始,和脚本里的 multipart 是同一条后端。差别只是:网页替你带 Key,自己接系统时你自己带。
网页用来试效果。开放 API 用来进你自己的流水线。
完整字段在 开放 API 文档。同一份 Swagger 按功能分组:Catalog(健康检查 / 实例 / 引擎 / 模式 / 选项树)、Image Translation、AI Image、OCR、Compress、Split。标题是「图片处理开放 API」,不是只有翻译。下面只写接进业务时会用到的路径,字段以文档 Parameters 为准。
基址、鉴权和权限
基址是 `https://panel.jikym.com/translate-api`。健康检查 `GET /v1/health` 不用 Key;其余读写都要鉴权。两种写法等价:
X-Api-Key: pmk_your_key_here
Authorization: Bearer pmk_your_key_here| Scope | 能做什么 |
|---|---|
| image_translate:submit | 提交翻译、OCR、压缩、拆图、AI 改图 |
| image_translate:read | 查实例、引擎、选项、任务状态,下载结果 |
| image_translate:* | 上面两项(推荐) |
| * | 面板里的全部权限,一般不必给业务 Key |
libimg.com 的 `/api/translate`、`/api/ocr` 等路由只给浏览器用,服务端注入站点自己的 Key。第三方集成请打开放 API 基址。字段变了以文档为准,不要复制网页里的相对路径。
网页功能和接口怎么对上
| 你在网站上用的 | 文档分组 | 提交 | 随后 |
|---|---|---|---|
| 经典图片翻译 | Image Translation | POST /v1/translate | GET /v1/tasks/{id},完成后再 GET .../result |
| 原生 AI 翻译 | AI Image | POST /v1/ai-image | 同一套 /v1/tasks |
| 去水印 / 抠图 | AI Image | POST /v1/ai-image(换 prompt) | 同一套 /v1/tasks |
| OCR | OCR | POST /v1/ocr | GET /v1/ocr/tasks/{id},读 text / markdown / regions |
| 压缩 | Compress | POST /v1/compress | 同步返回结果 |
| 拆图 | Split | POST /v1/split | 本地策略同步;ai_vision / ai_layers 再轮询 /v1/split/tasks/{id} |
选什么引擎、哪种模式现在能用,不要写死在客户端。先查文档 Catalog 分组:`GET /v1/options`(或 `/v1/modes`、`/v1/engines`);OCR / 压缩 / 拆图各自还有 `/v1/ocr/models`、`/v1/compress/options`、`/v1/split/strategies`。只展示 `available` 为真的项。
经典翻译:提交、轮询、下载
`POST /v1/translate` 用 multipart。必填是图片文件;`target_lang` 默认 ENG。源语言空着就是 auto。单张不超过 20MB。提交立刻返回 `task_id`,不会卡到译完。
# 1. 提交
curl -X POST https://panel.jikym.com/translate-api/v1/translate \
-H "X-Api-Key: pmk_your_key_here" \
-F "image=@packaging.jpg" \
-F "target_lang=CHS" \
-F "ocr_engine=paddle" \
-F "overflow_strategy=cascade" \
-F "disable_font_border=1"
# 2. 轮询,直到 status=completed 或 failed
curl https://panel.jikym.com/translate-api/v1/tasks/27 \
-H "X-Api-Key: pmk_your_key_here"
# 3. 下载译图(302 到静态文件)
curl -L https://panel.jikym.com/translate-api/v1/tasks/27/result \
-H "X-Api-Key: pmk_your_key_here" \
-o translated.jpg`status` 用来决定还要不要轮询:`pending` 排队,`processing` 进行中,`completed` 可下载,`failed` 看 `error`。给用户看的进度用 `stage`(排队中 / 识别与翻译中 / AI 出图中 / 已完成 / 失败),不要只用 status 判断「卡没卡住」。结果未好时 `/result` 会 202,失败是 410。
电商包装常见可选项:`ocr_engine=paddle`,略降 `text_threshold` / `box_threshold`,`overflow_strategy=cascade`,`alignment=auto`,`disable_font_border=1`。检测器还有 ctd、dbconvnext、craft。指定实例用 `instance_id`,或 `POST /v1/instances/{id}/translate`。引擎 id 来自 `GET /v1/engines`。
原生 AI、去水印、抠图:同一条 /v1/ai-image
这条不走「识别→翻译→擦除→回填」,而是把图和提示词交给图像模型(文档里写的是 GPT-Image / Grok-Image)。任务照样进 `/v1/tasks`。网页上的原生 AI 模式、去水印、抠图,都是换 `prompt` 和少量开关。
| 字段 | 作用 |
|---|---|
| prompt | 处理说明;空则用面板为当前策略准备的模板 |
| target_lang | 填模板用的目标语言,如 CHS / CHT / ENG / JPN / KOR |
| strategy | direct 一次改图;ocr_translate_edit 先识字再译再改。仅面板允许自选时生效 |
| engine_id | 图像模型,不是文本引擎 |
| translate_engine_id | 只给 ocr_translate_edit 用的文本引擎 |
| transparency | 填 1 时要透明底,仅 GPT-Image |
| size / quality / output_format | auto 或固定边长;low/medium/high;png/jpeg/webp |
# 抠透明底(对应网站抠图页)
curl -X POST https://panel.jikym.com/translate-api/v1/ai-image \
-H "X-Api-Key: pmk_your_key_here" \
-F "image=@subject.jpg" \
-F "output_format=png" \
-F "transparency=1" \
-F "prompt=Remove the background. Keep the main subject sharp with a clean transparent alpha channel."
# 去水印(对应网站去水印页)
curl -X POST https://panel.jikym.com/translate-api/v1/ai-image \
-H "X-Api-Key: pmk_your_key_here" \
-F "image=@watermarked.jpg" \
-F "prompt=Remove watermarks and logo stamps. Reconstruct covered background. Keep composition and resolution."模型名单和「能不能自选」以后端当时开放的为准,不要在文章或客户端写死某一家里程碑版本。接入方式见 多模型说明。
只要文字:OCR
`POST /v1/ocr` 上传 image(图或 PDF,最大 20MB),可选 `model`。立刻拿 `task_id`,轮询 `GET /v1/ocr/tasks/{task_id}`。完成后:`text` 是按行纯文本;`markdown` 在文档解析模型上才有;`regions` 带坐标和分数。
| 模型(以 /v1/ocr/models 为准) | 更适合 |
|---|---|
| PP-OCRv6 | 最快,逐行文字加坐标 |
| PaddleOCR-VL-1.6 | 文档结构,偏 Markdown |
| PP-StructureV3 | 版面分析,Markdown 和坐标都要 |
面板关掉自选时,`model` 会被忽略,走默认项。只要抄字、不要译图,用这条,不要占翻译队列。对比见 图片翻译还是 OCR。
压缩和拆图
`POST /v1/compress` 同步处理。`engine` 为 auto / local / tinypng,`preset` 为 high / standard / strong,`output_format` 为 keep / jpeg / png / webp,可选 `max_edge` 限制长边。先 `GET /v1/compress/options` 看当前引擎。
拆图是裁切,不是重绘(`ai_layers` 除外)。`POST /v1/split` 的 `strategy`:
- `whitespace` / `grid` / `layout`:本地或版面裁切,无损,同步返回 parts 和 zip_url。
- `ai_vision`:视觉模型标框再本地裁,无损,异步。
- `ai_layers`:按主体 / 文字 / 背景出图层,有损,异步,尺寸不必对齐原图。
网格用 `rows`、`cols`;空白拆分用 `min_block`、`gap`、`max_blocks`、`padding`。AI 任务用 `GET /v1/split/tasks/{task_id}`,完成态字段和同步结果同一套,客户端只需一个解析器。
接进业务时注意这几条
- Key 放服务端,不要写进前端仓库或 App 包。
- 轮询间隔建议 2 秒左右,用 status 结束循环,用 stage 更新界面。
- 语言代码用 CHS / CHT / ENG / JPN / KOR 这类接口码,不要传「简体中文」四个字。
- 可选引擎、策略、拆图路线以查询接口返回为准,避免写死后端一改就 400。
- 网页公测免费,不等于开放 API 无额度、无权限。开通和配额看面板;以后计费以 定价页 为准。
文档按 Catalog / 翻译 / AI 改图 / OCR / 压缩 / 拆图分组。先在网页试一张图,再把同一条能力写进脚本。
常见问题
- 网页能用的功能,接口里有吗?
- 有对应关系。经典翻译走 POST /v1/translate;原生 AI 翻译、去水印、抠图走 POST /v1/ai-image;只要文字走 /v1/ocr;压体积走 /v1/compress;一张拆多张走 /v1/split。
- 能不能直接打 libimg.com/api?
- 那是网站自己的同源代理,Key 只在服务端,不给第三方当开放接口。自己接系统请用开放 API 基址,不要把网页路径写进生产脚本。
- Key 在哪里申请?权限填什么?
- 在开放 API 面板的「API 密钥管理」创建。图片相关能力填 image_translate:*。只查状态可只开 image_translate:read,只提交可开 image_translate:submit。
- 提交之后怎么知道做完了?
- 翻译和 AI 改图轮询 GET /v1/tasks/{task_id},看 status。OCR 走 /v1/ocr/tasks/{task_id}。拆图里 AI 策略走 /v1/split/tasks/{task_id};本地拆图和压缩一般同步返回。