TL;DR
- Recraft Crisp Upscale(
recraft/crisp-upscale)做一件事:把图片宽高各放大 2 倍,边缘和纹理更清晰,画面内容和文字原样保留。没有提示词,请求体只有一个image_url。打开模型页上传一张图就能试,新用户注册送 200 积分。 - 一张 $0.004:1,000 张 $4.00,$10 约出 2,500 张;输入图大小不影响价格(完整价格见价格页)。
- 调用走 HiAPI
/v1/tasks接口:提交任务拿taskId,再查询结果,成功后从output[0].url下载(JPEG,不含透明通道)。
它能做什么
- 保真放大,不是重绘:表盘纹理、皮肤皱纹、海报小字这些细节更清楚,但内容、构图和文字一个不改——带字的物料不会被「放大成另一张图」。
- 一个字段就能调:
image_url传公网地址(JPEG / PNG / WebP,≤10 MB),没有提示词、没有倍数选项。 - 适合商品图、带字海报、设计素材:任何「原图已经对、只是分辨率不够」的场景。
- 不适合的场景也明确:想要 4K 级别的重绘细节、或者想顺便改内容,应该用生成式重绘(另见用图生图模型提高分辨率的英文教程);Crisp Upscale 只把尺寸放大 2 倍,不重画内容。
- 输出 1 张 JPEG;要透明结果的话先放大、再去背景(去背景的用法见英文版去背景教程)。
下面是真实的一对「原图 → 2 倍」:
| 原图 640×640 | 放大结果 1280×1280 |
|---|---|
![]() | ![]() |
recraft/crisp-upscale,640×640 → 1280×1280,$0.004。表盘扭索纹、拉丝钢壳和表盘小字在两倍尺寸下依然清楚。
两条上手路线
浏览器 3 步:打开模型页 → 上传图片 → 点放大,一张 $0.004。
API 3 步:POST /v1/tasks 提交 → 拿 taskId → GET /v1/tasks/<taskId> 查到 success 后下载。批量就循环这三步,每张一个任务。
curl:第一张
curl -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: your-unique-key-001" \
-d '{
"model": "recraft/crisp-upscale",
"input": {
"image_url": "https://static.hiapi.ai/gallery/2026/10/4fdfd6b43b638849.jpg"
}
}'
整个请求体就这些——多传任何字段(比如 prompt、scale)都会直接 400。
Python:提交、轮询、下载
import time, uuid, requests
BASE = "https://api.hiapi.ai/v1/tasks"
HEADERS = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
}
payload = {
"model": "recraft/crisp-upscale",
"input": {
"image_url": "https://example.com/your-image.jpg",
},
}
resp = requests.post(
BASE,
headers={**HEADERS, "Idempotency-Key": str(uuid.uuid4())},
json=payload,
timeout=30,
)
resp.raise_for_status()
task_id = resp.json()["taskId"]
while True:
task = requests.get(f"{BASE}/{task_id}", headers=HEADERS, timeout=30).json()
print(task["status"])
if task["status"] in ("success", "fail"):
break
time.sleep(5)
if task["status"] == "success":
image_url = task["output"][0]["url"] # 临时地址,尽快下载保存
img = requests.get(image_url, timeout=60)
with open("upscaled.jpg", "wb") as f:
f.write(img.content)
print("saved upscaled.jpg")
参数表
| 字段 | 必填 | 取值 | 说明 |
|---|---|---|---|
image_url | 是 | 公网 http/https 地址 | JPEG / PNG / WebP,单张 ≤10 MB |
就这一个字段。放大倍数固定为宽高各 2 倍,不能选;没有提示词、没有输出格式参数。
你会遇到的报错
| 状态码 | 含义 | 怎么处理 |
|---|---|---|
| 400 INVALID_REQUEST | image_url 缺失、不是 http/https 地址、或多传了 prompt / scale 这类不存在的字段 | 请求体只留 image_url |
| 402 INSUFFICIENT_QUOTA | 余额不足(不扣费) | 充值后重试 |
| 429 RATE_LIMITED | 触发限流 | 降低提交频率 |
| 409 / 422 IDEMPOTENCY_KEY_* | 同一幂等键重复提交 | 换新的 Idempotency-Key |
任务终态失败还有 TASK_FAILED、TASK_TIMEOUT 等错误码;失败不扣费。
上线前注意
- 回调:请求体顶层传
"callback": {"url": "https://..."},终态自动通知。 - 及时转存:
output[0].url是临时地址,拿到就下载。 - 耗时:单张通常在 10 秒到 1 分钟左右,轮询间隔别设太短。
- 透明通道:输出是 JPEG 不含透明;要透明背景的物料先放大、再去背景(顺序反了,抠图边缘会糊)。
- 批量的账很好算:一个 SKU 五张图全部放大一遍是 $0.02;全店 1,000 张素材过一轮是 $4.00,批量提交即可,每张任务单独计时。
- 原图质量决定上限:2 倍放大让边缘更清晰,但原图糊成一片的部分不会凭空长出细节;关键物料先用一张试验再批量。
常见问题
真的就是 2 倍吗?
是。宽高各放大一倍(640×640 → 1280×1280,480×640 → 960×1280),倍数固定,没有 4 倍选项;需要更大就放大后再跑一次。
画面里的文字会变吗?
不会。带字海报放大后字形保持原样,不改写、不新增文字。
多少钱一张?
$0.004 一张,1,000 张 $4.00;输入图大小不影响价格。失败不扣费,参数校验不过不进计费。
能传 base64 吗?
不能。image_url 要公网 http/https 地址;本地文件先传到你的存储再给地址。
一张要多久?
通常 10 秒到 1 分钟左右;批量任务按张数排队,赶时间就分批提交。
下一步:拿一张你的商品图去模型页放大一张看效果;五组「原图 → 2 倍」真实对照见案例页;和生成式重绘的同一原图对照见对比页。







