开放接口

LibImg 开放 API:网页上的图片能力都能用接口调用

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

阅读约 8 分钟
用接口提交图片任务并轮询结果的示意
直接回答

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;其余读写都要鉴权。两种写法等价:

http
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
不要用网站同源 /api 当开放接口

libimg.com 的 `/api/translate`、`/api/ocr` 等路由只给浏览器用,服务端注入站点自己的 Key。第三方集成请打开放 API 基址。字段变了以文档为准,不要复制网页里的相对路径。

网页功能和接口怎么对上

你在网站上用的文档分组提交随后
经典图片翻译Image TranslationPOST /v1/translateGET /v1/tasks/{id},完成后再 GET .../result
原生 AI 翻译AI ImagePOST /v1/ai-image同一套 /v1/tasks
去水印 / 抠图AI ImagePOST /v1/ai-image(换 prompt)同一套 /v1/tasks
OCROCRPOST /v1/ocrGET /v1/ocr/tasks/{id},读 text / markdown / regions
压缩CompressPOST /v1/compress同步返回结果
拆图SplitPOST /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`,不会卡到译完。

bash
# 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
strategydirect 一次改图;ocr_translate_edit 先识字再译再改。仅面板允许自选时生效
engine_id图像模型,不是文本引擎
translate_engine_id只给 ocr_translate_edit 用的文本引擎
transparency填 1 时要透明底,仅 GPT-Image
size / quality / output_formatauto 或固定边长;low/medium/high;png/jpeg/webp
bash
# 抠透明底(对应网站抠图页)
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}`,完成态字段和同步结果同一套,客户端只需一个解析器。

接进业务时注意这几条

  1. Key 放服务端,不要写进前端仓库或 App 包。
  2. 轮询间隔建议 2 秒左右,用 status 结束循环,用 stage 更新界面。
  3. 语言代码用 CHS / CHT / ENG / JPN / KOR 这类接口码,不要传「简体中文」四个字。
  4. 可选引擎、策略、拆图路线以查询接口返回为准,避免写死后端一改就 400。
  5. 网页公测免费,不等于开放 API 无额度、无权限。开通和配额看面板;以后计费以 定价页 为准。
打开完整 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};本地拆图和压缩一般同步返回。

继续阅读