跳到主要内容

iApp Image Upscaler

iApp Image Upscaler 将图片放大 2 倍或 4 倍,并重建普通缩放无法提供的细节:边缘保持锐利,头发、织物、树叶和文字等纹理被重新构建而不是模糊化,源图中的 JPEG 压缩痕迹也一并清除。适用于电商产品图、仅有网页尺寸原稿的印刷材料、老照片或低分辨率照片、需要大尺寸展示的缩略图以及插画。在生产服务上,一张 1024 x 1024 的照片 1.0 秒即可放大为 4096 x 4096;输出上限为 1680 万像素(4096 x 4096),足以覆盖 300 dpi 的 A3 印刷。

在线演示

上传 JPEG、PNG 或 WebP 文件(最大 10 MB),或选择一张小尺寸示例图,选择 2 倍或 4 倍后点击放大。结果以前后对比方式显示,拖动滑块即可比较。

将图片拖到此处,或点击选择文件
上传图片或选择示例,然后点击放大。拖动滑块比较前后效果。
cURL 请求
curl -X POST 'https://api.iapp.co.th/v3/store/image-generation/image-upscaler/upscale' \
  -H 'apikey: YOUR_API_KEY' \
  -F 'file=@photo.jpg' \
  -F 'scale=4' -F 'model=photo' -F 'output_format=png'

示例

下面每一组都是从 256 像素源图放大 4 倍至 1024 像素后截取的 300 x 300 区域。左:普通 bicubic 缩放;右:iApp Image Upscaler 照片模型(最后一组为插画模型)。源图来自 iApp Image Generation 图库,输出未经任何修饰。

夜市招牌:左为 bicubic,右为放大结果
夜市,4 倍。bicubic(左)/ upscaler(右)
舞台人像:左为 bicubic,右为放大结果
舞台人像,4 倍。bicubic(左)/ upscaler(右)
产品标签:左为 bicubic,右为放大结果
产品标签,4 倍。bicubic(左)/ upscaler(右)
插画:左为 bicubic,右为放大结果
插画,4 倍,插画模型。bicubic(左)/ upscaler(右)

快速开始

需要从 iApp AI Portal 获取 API key。以 multipart 表单发送图片,并带上 apikey 请求头:

curl -X POST https://api.iapp.co.th/v3/store/image-generation/image-upscaler/upscale \
-H "apikey: YOUR_API_KEY" \
-F "file=@product.jpg" \
-F "scale=4" \
-F "output_format=png"
{
"status": "success",
"model": "photo",
"scale": 4,
"input": { "width": 800, "height": 800 },
"width": 3200,
"height": 3200,
"mime_type": "image/png",
"bytes": 9871234,
"image_base64": "iVBORw0KGgoAAAANSUhEUgAADIAAAAyACAIAAAB...",
"time": { "model": 0.61, "total": 1.42 },
"iapp": { "images": 1, "version": "1.0.0-20260907" }
}

加上 -F "response=image" 可直接接收图片字节而非 JSON。Python 和 JavaScript 示例见技术参考

接口与价格

接口说明价格
POST /v3/store/image-generation/image-upscaler/upscale将一张图片放大 2 倍或 4 倍每张 1 IC
GET /v3/store/image-generation/image-upscaler/models列出可用模型与限制免费

无论尺寸或倍数,每张图片均为 1 IC,只要输出不超过 1680 万像素(4096 x 4096)。仅对成功的响应计费;被拒绝或失败的请求免费。

性能

2026 年 9 月 7 日在生产 GPU 上测得,单请求串行,照片模型,5 次运行取中位数。模型时间为放大本身;编码时间为生成返回文件所需时间,取决于所选格式。

输入倍数输出模型时间PNG 编码JPEG 编码
512 x 5124x2048 x 20480.23 秒0.34 秒0.05 秒
1024 x 10244x4096 x 40960.98 秒1.37 秒0.18 秒
1920 x 10802x3840 x 21600.41 秒0.61 秒0.08 秒
2048 x 20482x4096 x 40960.78 秒1.27 秒0.18 秒
指标数值
插画模型,1024 x 1024 至 4096 x 40960.32 秒
快速模型,1024 x 1024 至 4096 x 40960.06 秒
服务能力单 GPU 最大输出 PNG 每小时约 1,500 张,JPEG 每小时约 3,000 张;超出的请求按先后顺序排队
输入JPEG、PNG 或 WebP,最大 10 MB 且不超过 1680 万像素;保留透明通道
输出PNG(默认)、JPEG 或 WebP,最高 1680 万像素(4096 x 4096):4 倍时输入最大 1024 x 1024,2 倍时最大 2048 x 2048
速率限制(每个 API key)每秒 5 次,每分钟 60 次,每小时 1,200 次

一张 4096 x 4096 的照片 PNG 通常为 10 至 20 MB;同一图片以默认质量 92 输出 JPEG 为 1 至 3 MB。当文件大小或传输时间比无损更重要时,请使用 output_format=jpegwebp

输出质量

放大器是一个重建合理细节的学习模型。我们在 iApp Image Generation 图库的 29 张图片(900 x 540)上与普通 bicubic 缩放对比:每张先用 Lanczos 滤波缩小 4 倍,再放大回原尺寸(2026 年 9 月 7 日,照片模型):

指标(与原图比较)bicubic 缩放iApp Image Upscaler
LPIPS 感知距离,越低越好0.2840.159
放大结果更接近原图的图片数(LPIPS)29 / 29
PSNR,越高越好27.2 dB25.7 dB

这两行指标方向相反是有意为之。LPIPS 衡量结果在人眼看来与原图有多接近;PSNR 则偏向普通缩放产生的保守模糊平均值。重建纹理总会略微牺牲 PSNR,请以上方示例和您在演示中的自有图片为准。

两点限制:

  • 源图中不存在的细节是生成的,而不是恢复的:40 像素大小的人脸或小字放大后会很清晰,但未必与真实人物或真实文字一致。请勿将输出作为低分辨率源图内容的证据。
  • 重度压缩或模糊的源图会得到清理,但运动模糊和失焦区域仍然柔和。

数据安全与合规

  • 本服务符合 GDPR 和 PDPA。
  • 图片在内存中处理并随响应返回;不写入磁盘,响应发送后不保留任何内容。
  • 模型运行在 iApp 自有的泰国 GPU 基础设施上;不会将图片发送给任何第三方服务商。

技术参考

请求

POST /v3/store/image-generation/image-upscaler/upscale 接受 multipart/form-data,并需要 apikey 请求头。

字段类型必填说明
filefile是,或使用 image_base64图片:JPEG、PNG 或 WebP,最大 10 MB 且不超过 1680 万像素。应用 EXIF 方向,保留透明通道。
image_base64stringfile 的替代方式:base64 编码的图片(接受 data: URL 前缀)。
scaleinteger4(默认)或 2
modelstringphoto(默认)用于照片和一般图片,anime 用于插画、动漫和平面图形,fast 为轻量模型,适合吞吐量优先于细节的场景。
output_formatstringpng(默认,无损)、jpegwebp
qualityintegerjpegwebp 的质量,1 至 100,默认 92。
responsestringjson(默认)返回下方 JSON,图片为 base64;image 直接返回图片字节及对应的 Content-Type

每个成功响应都带有 iapp-input-images: 1x-iapp-output-size(例如 4096x4096)请求头。

响应

{
"status": "success",
"model": "photo",
"scale": 4,
"input": { "width": 1024, "height": 1024 },
"width": 4096,
"height": 4096,
"mime_type": "image/png",
"bytes": 16523871,
"image_base64": "...",
"time": { "model": 0.98, "total": 2.41 },
"iapp": { "images": 1, "version": "1.0.0-20260907" }
}

time.model 为放大时间;time.total 包含解码上传文件和编码结果的时间。

错误

HTTP 状态error_code含义
400invalid_image文件不是可读取的 JPEG、PNG 或 WebP
400input_too_large输入超过 1680 万像素
400output_too_large输入 x 倍数将超过 1680 万像素;消息中给出该倍数下的最大输入尺寸。请使用 scale=2 或更小的图片
400invalid_scaleinvalid_modelinvalid_output_format字段取值不在上表范围内
401缺少或无效的 apikey
402余额不足
413file_too_large上传超过 10 MB
429该 API key 超过速率限制
503starting服务正在启动;请 30 秒后重试

错误不计费。

代码示例

# JSON 响应,从 base64 字段保存图片
curl -X POST https://api.iapp.co.th/v3/store/image-generation/image-upscaler/upscale \
-H "apikey: YOUR_API_KEY" \
-F "file=@photo.jpg" -F "scale=4" -F "output_format=png" \
| python3 -c "import sys, json, base64; r = json.load(sys.stdin); open('photo-4x.png', 'wb').write(base64.b64decode(r['image_base64'])); print(r['width'], r['height'], r['time'])"

# 或直接获取图片字节
curl -X POST https://api.iapp.co.th/v3/store/image-generation/image-upscaler/upscale \
-H "apikey: YOUR_API_KEY" \
-F "file=@photo.jpg" -F "scale=2" -F "output_format=jpeg" -F "response=image" \
-o photo-2x.jpg

更新日志

版本日期变更
v1.0.0-202609072026 年 9 月 7 日首次发布:照片、插画和快速三种模型的 2 倍与 4 倍放大;PNG、JPEG 和 WebP 输出;保留透明通道;输出最高 1680 万像素。每张 1 IC。