チュートリアル
Recraft Crisp Upscale API の使い方?1つのフィールドで2倍に拡大
プロンプト不要、単一フィールド image_url、1枚 $0.004 の忠実な2倍拡大:curl/Python のサンプルと制約の説明。
TL;DR
- Recraft Crisp Upscale(
recraft/crisp-upscale)は1つのことだけを行います:画像の幅と高さをそれぞれ2倍に拡大し、エッジとテクスチャをより鮮明にし、画像の内容と文字はそのまま保持します。プロンプトは不要で、リクエストボディはimage_urlのみです。モデルページを開くと画像を1枚アップロードするだけで試せます。新規ユーザー登録で200クレジットを進呈。 - 1枚 $0.004:1,000枚で $4.00、$10 で約2,500枚;入力画像のサイズは価格に影響しません(完全な価格は価格ページをご覧ください)。
- 呼び出しは HiAPI の
/v1/tasksインターフェース経由:タスクを送信してtaskIdを取得し、結果を照会して、成功後にoutput[0].urlからダウンロードします(JPEG、アルファチャンネルなし)。
できること
- 忠実な拡大であり、再描画ではない:文字盤のテクスチャ、肌のしわ、ポスターの小さな文字といった細部はより鮮明になりますが、内容・構図・文字は一切変わりません——文字入りの素材が「別の画像に拡大される」ことはありません。
- 1つのフィールドだけで呼び出せる:
image_urlに公開アドレス(JPEG / PNG / WebP、≤10 MB)を渡します。プロンプトも倍率オプションもありません。 - 商品画像、文字入りポスター、デザイン素材に最適:「元画像はすでに正しいが、解像度だけが足りない」あらゆるシーン。
- 不向きなシーンも明確:4K レベルの再描画ディテールが欲しい場合や、ついでに内容を変えたい場合は、生成的な再描画を使うべきです(別途画像生成モデルで解像度を上げる英語チュートリアルを参照);Crisp Upscale はサイズを2倍に拡大するだけで、内容を描き直しません。
- 出力は JPEG 1枚;透明な結果が必要な場合は先に拡大し、その後で背景を除去します(背景除去の使い方は英語版の背景除去チュートリアルを参照)。
以下は実際の「元画像 → 2倍」のペアです:
| 元画像 640×640 | 拡大結果 1280×1280 |
|---|---|
![]() |
![]() |
recraft/crisp-upscale、640×640 → 1280×1280、$0.004。文字盤のギョーシェ模様、ヘアライン仕上げのスチールケース、文字盤の小さな文字が2倍サイズでもはっきりと保たれています。
2つの始め方
ブラウザで3ステップ:モデルページを開く → 画像をアップロード → 拡大をクリック、1枚 $0.004。
API で3ステップ:POST /v1/tasks で送信 → taskId を取得 → GET /v1/tasks/<taskId> で success を確認してダウンロード。バッチの場合はこの3ステップを繰り返し、1枚ごとに1タスクです。
curl:最初の1枚
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、1枚 ≤10 MB |
この1フィールドだけです。拡大倍率は幅と高さそれぞれ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は一時アドレスなので、取得したらすぐダウンロードしてください。 - 所要時間:1枚あたり通常10秒から1分程度、ポーリング間隔を短くしすぎないように。
- アルファチャンネル:出力は JPEG で透明を含みません;透明背景の素材が必要な場合は先に拡大し、その後で背景を除去します(順序を逆にすると、切り抜きのエッジがぼやけます)。
- バッチのコストは簡単に計算できる:1つの SKU の5枚の画像をすべて拡大しても $0.02;全店舗の1,000枚の素材を一巡しても $4.00、バッチ送信すればよく、各タスクは個別に計時されます。
- 元画像の品質が上限を決める:2倍拡大でエッジはより鮮明になりますが、元画像がぼやけてしまっている部分から細部が湧き出ることはありません;重要な素材はまず1枚で試験してからバッチ処理してください。
よくある質問
本当に2倍だけですか?
はい。幅と高さをそれぞれ2倍に拡大します(640×640 → 1280×1280、480×640 → 960×1280)。倍率は固定で、4倍のオプションはありません;さらに大きくしたい場合は拡大後にもう一度実行してください。
画像内の文字は変わりますか?
変わりません。文字入りポスターは拡大後も字形がそのまま保たれ、書き換えも文字の追加もされません。
1枚いくらですか?
1枚 $0.004、1,000枚で $4.00;入力画像のサイズは価格に影響しません。失敗時は課金されず、パラメータ検証を通らない場合は課金されません。
base64 を渡せますか?
できません。image_url には公開 http/https アドレスが必要です;ローカルファイルは先に自分のストレージにアップロードしてからアドレスを渡してください。
1枚にどれくらいかかりますか?
通常10秒から1分程度;バッチタスクは枚数分だけキューに並ぶので、急ぐ場合は分割して送信してください。
次のステップ:あなたの商品画像を1枚持ってモデルページで拡大して効果を確認;5組の「元画像 → 2倍」の実例比較は事例ページ;生成的再描画との同一元画像での比較は比較ページをご覧ください。
関連記事
すべての記事を見る →-
チュートリアル
HiAPI API で hailuo-2.3-fast/image-to-video を呼び出す方法:curl と Python の実践
高速・低コストな画像から動画へのティアにおける最初の実行可能なリクエスト — モデル ID から MP4 のダウンロードまで
-
チュートリアル
HiAPI APIでhailuo-2.3/text-to-videoを呼び出す方法:curl、Python、実行可能なリクエスト例
-
チュートリアル
HiAPI で Kandinsky 6.0 Pro のテキストto動画を使用する:curl と Python チュートリアル
リクエスト優先の実践デモ:プロンプトから動画クリップへの呼び出しを構築し、リクエストを送信し、完了状態をポーリングし、結果をダウンロードする
