チュートリアル
krea-2-medium-turbo テキストから画像生成 API の使い方(curl + Python)
krea-2-medium-turbo は、Krea が hiapi 上で提供する高速・低コストなテキストから画像生成向けのティアです。プロンプトを 1 つ送信し、アスペクト比を選ぶだけで、非同期タスク API を通じてレンダリング済みの画像を 1 枚取得できます。本ガイドでは、/v1/tasks 向けにそのままコピー&ペーストできる curl と Python のリクエスト例、正確な入力スキーマ、そして私が 2026-10-21 に実測した所要時間とエラー時の挙動を紹介します。そのうち 1 つの結果はドキュメントの記述と矛盾しています。
前提条件
hiapi の API キー(sk-...)が 1 つ必要です。API Keys コンソールで作成してください。各リクエストは Authorization: Bearer sk-<your-key> で認証します。これが唯一の前提です。モデルはサーバー側で動作するため、HTTP クライアント以外には何もインストールする必要はありません。
入力スキーマ
krea-2-medium-turbo は 5 つのフィールドを受け付けます。このうち必須なのは prompt と model だけです:
| フィールド | 必須 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
model |
はい | string | — | 完全に krea-2-medium-turbo である必要があります。 |
prompt |
はい | string | — | 1〜5000 文字。 |
aspect_ratio |
いいえ | enum | 1:1 |
1:1、4:3、3:2、16:9、2.35:1、4:5、2:3、9:16 のいずれか。 |
creativity |
いいえ | enum | low |
raw(最も字義どおり)→ low → medium → high(最も創造的)。 |
seed |
いいえ | integer | — | 任意。依存する前に、下記の seed に関する注意事項をお読みください。 |
input オブジェクトは厳格です(additionalProperties: false)。この表にないフィールドは、生成開始前に拒否されます。n / num_images はなく、resolution や size もなく、ネガティブプロンプト用のフィールドもありません。1 回のリクエストで返るのはちょうど 1 枚の画像で、出力サイズは aspect_ratio だけで決まります。hiapi 上で resolution(Seedream、Qwen-Image)や size を受け付ける他の画像 API を使ったことがある場合は、そうしたフィールドはここでは外してください。付けると 400 が返ります。
最小限の動作するリクエスト(curl)
タスク作成は即座に taskId を返し、画像はバックグラウンドでレンダリングされます。
curl -s -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer sk-<your-key>" \
-H "Content-Type: application/json" \
-d '{
"model": "krea-2-medium-turbo",
"input": {
"prompt": "A lighthouse on a rocky coast at golden hour, cinematic wide shot",
"aspect_ratio": "2.35:1",
"creativity": "medium",
"seed": 42
}
}'
レスポンス:
{ "code": 200, "data": { "taskId": "tk-hiapi-01M5E4J4FQVJNSDKQ29BRSMD0A" }, "message": "success" }
次に、終端状態に達するまで id でタスクをポーリングします:
curl -s "https://api.hiapi.ai/v1/tasks/tk-hiapi-01M5E4J4FQVJNSDKQ29BRSMD0A" \
-H "Authorization: Bearer sk-<your-key>"
完了したタスクは次のようになります(明確化のためフィールドを一部省略しています):
{
"code": 200,
"data": {
"taskId": "tk-hiapi-01M5E4J4FQVJNSDKQ29BRSMD0A",
"model": "krea-2-medium-turbo",
"status": "success",
"storage": "temp",
"created": 1792549655,
"completed": 1792549681,
"output": [
{
"type": "image",
"url": "https://temp.hiapi.ai/xxxxxxxx/01M5E4J4FQVJNSDKQ29BRSMD0A-0.png",
"artifactId": "280334",
"expireAt": 1793154481
}
]
},
"message": "success"
}
画像は data.output[0].url にあります。
Python での同じフロー
import time
import requests
API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {
"Authorization": "Bearer sk-<your-key>",
"Content-Type": "application/json",
}
def generate(prompt, aspect_ratio="1:1", creativity="low", seed=None):
body = {
"model": "krea-2-medium-turbo",
"input": {"prompt": prompt, "aspect_ratio": aspect_ratio, "creativity": creativity},
}
if seed is not None:
body["input"]["seed"] = seed
created = requests.post(API, headers=HEADERS, json=body, timeout=30)
created.raise_for_status()
task_id = created.json()["data"]["taskId"]
# タスクが終端状態に達するまでポーリングします。
while True:
data = requests.get(f"{API}/{task_id}", headers=HEADERS, timeout=30).json()["data"]
status = data["status"]
if status == "success":
return data["output"][0]["url"]
if status == "fail": # 注意:それでも HTTP 200 です。下記参照
raise RuntimeError(f"generation failed: {data}")
time.sleep(3)
url = generate(
"A lighthouse on a rocky coast at golden hour, cinematic wide shot",
aspect_ratio="2.35:1",
creativity="medium",
)
print(url)
本番環境での注意事項
- ポーリングまたはコールバックを使う。 上記のループは 3 秒ごとにポーリングするので、低い同時実行数なら問題ありません。本番環境では、作成リクエストに
callback.urlを付けてwhen: "final"を設定すれば、ポーリングの代わりに hiapi が完了したタスクを POST してくれます。コールバックの規約はタスク API ドキュメントを参照してください。 - 生成失敗でも HTTP 200 が返る。 ポーリングエンドポイントの HTTP ステータスコードは、リクエストが成功したかどうかを表し、画像が成功したかどうかを表すものではありません。レンダリング失敗は
200とdata.status: "fail"で返ります。HTTP ステータスコードではなくdata.statusで分岐してください。そうしないと失敗を成功として扱ってしまいます。 - 出力 URL は一時的。 結果は
temp.hiapi.ai上の"storage": "temp"に保存され、expireAtタイムスタンプが付き、およそ 7 日後に期限切れになります(私の実行では 604,800 秒)。タスクが完了したらすぐにバイトをダウンロードして再ホスト(自前の bucket/CDN)してください。本番ページでtemp.hiapi.aiの URL を直接ホットリンクしないでください。 - 料金は 1 枚あたりの単一固定レートで、アスペクト比やクリエイティビティのレベルには依存しません。解像度の段階を考慮する必要はありません。数値をハードコードせず、料金ページで現在の数字を確認してください。
私が実際にテストした内容(2026-10-21)
以下はすべてドキュメントではなく、実際の呼び出しから得たものです:
- 所要時間と解像度。
2.35:1のリクエストは約 26 秒で完了し(created→completedの差)、返された PNG は 1568 × 672 px でした。つまり2.35:1は確かにシネマスコープ風のクロップで、正方形に近いものではありません。タスクはレンダリングと一時ストレージへのファイル移動の間、中間状態handling→archiving→successを経由します。 - enum の検証はサーバー側で強制される。
"aspect_ratio": "21:9"(もっともらしいがサポートされていない値)を送ると、即座に400が返ります:invalid input: aspect_ratio: value must be one of '1:1', '4:3', '3:2', '16:9', '2.35:1', '4:5', '2:3', '9:16'。エラーメッセージはフィールドを明示し、有効な値を列挙するので、プログラムで処理しやすいです。 - 未知のフィールドは無視されず 400 が返る。
"resolution": "2K"はinvalid input: <root>: additional properties 'resolution' not allowedを返し、"n": 2もnについて同じエラーを返します。これがadditionalProperties: falseルールの効果です。他のモデルからリクエストボディをコピーすると、余分なフィールドが呼び出し全体を妨げます。 - 私のテストでは、
seedは完全に同じ画像を再現できませんでした。 同じプロンプト、seed: 42、aspect_ratio: 2.35:1、creativity: mediumを 2 回続けて送信しました。どちらも有効な 1568 × 672 の画像が返りましたが、明らかに異なる場面でした(片方は白い塔、もう片方は赤白の縞模様の塔)。ファイルサイズも異なり(1.30 MB 対 1.51 MB)、ハッシュも異なりました。このフィールドは受け入れられ、再現可能とドキュメントに記述されていますが、ピクセル単位の正確な再現は保証ではなくベストエフォートとみなしてください。特定の画面が必要な場合は、得られた結果を保存し、seed で再リクエストしないでください。
関連ページ
- krea-2-medium-turbo モデルページ——オンライン playground と完全なパラメータリファレンス。
- krea-2-medium-turbo API ドキュメント——エンドポイントとコールバックの詳細。
- Krea 3 テキストから画像生成——より新しい、品質重視の Krea ティア(
berry/jamモード付き)。より細部の精緻さが欲しいときに使い、速度と低コストが欲しいときはkrea-2-medium-turboを使ってください。 - hiapi 上の AI 画像生成 API——同じタスクインターフェースの背後にある他のテキストから画像生成モデル。
FAQ
どのアスペクト比をリクエストできますか? 8 つあります:1:1(デフォルト)、4:3、3:2、16:9、2.35:1、4:5、2:3、9:16。それ以外の値は 400 を返します。
1 回の呼び出しで複数の画像を生成できますか? できません。n フィールドはなく、スキーマは未知のプロパティを拒否するため、リクエストごとにちょうど 1 枚の画像が生成されます。複数枚を生成するには、リクエストをループで送信してください(任意で異なる seed を使用)。
creativity は何をするのですか? モデルがプロンプトにどれだけ字義的に従うかを制御します。raw は文言に最も忠実、high は最も解釈の自由度が高く、low(デフォルト)と medium はその間です。
krea-2-medium-turbo は画像から画像生成や編集に対応していますか? いいえ、テキストから画像生成のみに対応しています。スキーマには image_urls / 入力画像フィールドはありません。既存の画像を変換する必要がある場合は、hiapi 上の専用の編集/画像から画像生成モデルを使用してください。
出力 URL はどのくらい有効ですか? 一時ストレージから提供され、期限切れになります(私のテストではおよそ 7 日後)。タスクが完了したらすぐに画像をダウンロードして再ホストしてください。
関連記事
すべての記事を見る →-
チュートリアル
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 チュートリアル
リクエスト優先の実践デモ:プロンプトから動画クリップへの呼び出しを構築し、リクエストを送信し、完了状態をポーリングし、結果をダウンロードする