HiAPI
ブログ

チュートリアル

hiapi API で flux-2-klein-9b/text-to-image を使用する方法

Jul 30, 2026
hiapi API で flux-2-klein-9b/text-to-image を使用する方法

slug: flux-2-klein-9b-text-to-image-api-guide locale: en title: hiapi API で flux-2-klein-9b/text-to-image を使用する方法 category: tutorial summary:

  • hiapi の統合された /v1/tasks エンドポイント経由で flux-2-klein-9b/text-to-image を呼び出す最小限の curl および Python の例。
  • '完全なパラメータ表:prompt、aspect_ratio、num_inference_steps、output_format、seed——厳格な schema は未知のフィールドを拒否します。'
  • '本番環境での注意点:callback.url とポーリングの比較、Idempotency-Key リクエストヘッダー、および 2 種類のエラーレスポンス構造。 takeaways:
  • POST /v1/tasks でタスクを作成し、その後 GET /v1/tasks/{taskId} をポーリングするか、callback.url を使用して結果を取得します。
  • num_inference_steps は 4〜8(整数)のみ受け付けます。このモデルには size や n フィールドはありません。
  • 再試行時に同じ Idempotency-Key リクエストヘッダーを使用すると同じ taskId が返されます——タイムアウト時に安全に再利用できます。
  • 400 エラーは error_code、401 認証エラーはネストされた error.code を使用します——まず HTTP ステータスコードを確認してください。 meta_title: flux-2-klein-9b テキスト画像生成 API ガイド meta_description: curl と Python で flux-2-klein-9b/text-to-image を呼び出します。タスクの作成、画像のポーリング、本番環境でのコールバック、冪等性、エラー処理について解説します。 keywords:
  • flux-2-klein-9b テキスト画像生成 api
  • flux-2-klein-9b api サンプル
  • hiapi 画像生成 api
  • flux klein api curl python tags:
  • api-guide
  • image-generation
  • flux author_name: hiapi is_published: false cover_image: https://static.hiapi.ai/blog/_default/recipe-cover.jpg

hiapi API で flux-2-klein-9b/text-to-image を使用する方法

作成するもの

プロンプトを flux-2-klein-9b/text-to-image に送信し、画像生成の完了を待ってダウンロードするスクリプト——さらに、無人運用の前に必要な本番環境の詳細(コールバック、冪等性、エラー構造)も含みます。

前提条件:hiapi コンソールから API キーを取得してください。以下のすべてのリクエストは Authorization: Bearer sk-<your-api-key> で認証します。

最小限の実行可能な例

hiapi の生成モデルは統合された非同期エンドポイントの背後で動作します:POST /v1/tasks がタスクを作成し、直ちに taskId を返します。その後、終了状態に達するまで GET /v1/tasks/{taskId} をポーリングします。

curl -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer sk-<your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "flux-2-klein-9b/text-to-image",
    "input": {
      "prompt": "a red fox walking through fresh snow, golden hour light",
      "aspect_ratio": "16:9"
    }
  }'

戻り値:

{"code": 200, "data": {"taskId": "tk-hiapi-01K..."}, "message": "success"}

data.status が handling から success に変わるまで同じタスクをポーリングします(途中で一時的に archiving を経由します):

curl https://api.hiapi.ai/v1/tasks/tk-hiapi-01K... \
  -H "Authorization: Bearer sk-<your-api-key>"
{
  "code": 200,
  "data": {
    "status": "success",
    "output": [
      {"type": "image", "url": "https://temp.hiapi.ai/.../01K...-0.png", "expireAt": 1785941465}
    ]
  },
  "message": "success"
}

data.output[0].url が生成された画像です。これは一時的なリンクです——テストでは生成後約 7 日で期限切れになります——そのため、直接リンクするのではなく、バイトをダウンロードして自身で保存してください。

Python での同じフロー(ポーリング付き)

import time
import requests

API_KEY = "sk-<your-api-key>"
BASE = "https://api.hiapi.ai/v1"
headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}

resp = requests.post(f"{BASE}/tasks", headers=headers, json={
    "model": "flux-2-klein-9b/text-to-image",
    "input": {
        "prompt": "a red fox walking through fresh snow, golden hour light",
        "aspect_ratio": "16:9",
    },
})
resp.raise_for_status()
task_id = resp.json()["data"]["taskId"]

while True:
    task = requests.get(f"{BASE}/tasks/{task_id}", headers=headers).json()["data"]
    if task["status"] == "success":
        image_url = task["output"][0]["url"]
        break
    if task["status"] == "failed":
        raise RuntimeError(f"generation failed: {task}")
    time.sleep(3)

image_bytes = requests.get(image_url).content
open("fox.png", "wb").write(image_bytes)

重要なパラメータ

flux-2-klein-9b/text-to-image は厳格な入力 schema を持ちます——認識しないフィールド(size、n、negative_prompt、または他の hiapi 画像モデルが受け入れる任意のフィールド)を送信すると、そのまま拒否されます。そのため、モデルページを先に確認せずにモデル間でパラメータをコピーしないでください。

フィールド 必須 説明
prompt はい 画像を説明する文字列。
aspect_ratio いいえ 1:1、4:3、3:4、16:9、9:16 のいずれか。省略時は 4:3 がデフォルトです。
num_inference_steps いいえ 整数、4〜8。デフォルトは 4。値を大きくすると速度と引き換えにわずかに詳細が増えます。
output_format いいえ jpeg、png、webp のいずれか。デフォルトは png。
seed いいえ 整数。seed を再利用すると、複数回の呼び出しで結果を再現できます。

完全なパラメータリファレンスはモデルページを参照してください。現在の画像単位の課金価格は料金ページを参照してください——利用量ベースの料金は変動するため、数値をハードコードせず、そこを確認してください。

本番環境での注意点

ポーリングの代わりにコールバックを使用する。 簡単なスクリプト以外のあらゆる場面では、ポーリングループをスキップし、タスク作成リクエストボディに callback.url(および "when": "final")を追加してください——hiapi はタスク完了後に結果をあなたのエンドポイントに POST し、そのペイロード構造は GET /v1/tasks/{taskId} が返すものとまったく同じです。コールバックフィールドと署名検証の詳細については、タスクの作成を参照してください。

{
  "model": "flux-2-klein-9b/text-to-image",
  "callback": {"url": "https://yourapp.com/hooks/hiapi", "when": "final"},
  "input": {"prompt": "a red fox walking through fresh snow, golden hour light"}
}

冪等性。 POST /v1/tasks の呼び出しに Idempotency-Key リクエストヘッダーを設定します(最大 255 バイト)。同じアカウントで同じキーを使って同じリクエストを再試行しても、2 つ目のタスクは作成されません——元の taskId が返されます。これにより、こちらの側でタイムアウトしたリクエストを二重課金なしで安全に再試行できます。

エラー処理。 実際には 2 種類の異なる失敗構造が発生するため、両方を確認してください:

  • 誤った input(prompt の欠落、num_inference_steps の範囲外、サポートされていないフィールド)は HTTP 400 と {"error_code": "INVALID_REQUEST", "message": "..."} を返します。
  • 無効または未認可の API キーは HTTP 401 を返し、異なるレスポンス構造になります:{"error": {"code": "permission_denied", "message": "...", "request_id": "..."}}。

まず HTTP ステータスコードで分岐して処理し、次に実際に存在するエラーフィールドを読み取ってください——すべての失敗が同じレスポンス構造を使用すると仮定しないでください。

関連リソース

よくある質問

flux-2-klein-9b/text-to-image は画像から画像への生成をサポートしていますか? 直接はサポートしていません——それは別のモデル flux-2-klein-9b/image-to-image であり、独自の入力 schema を持っています。

flux-2-klein-9b と flux-2-klein-4b の違いは何ですか? どちらも同じ FLUX.2 [klein] シリーズのテキスト画像生成エンドポイントです。9b は両者の中で大きい方で、より強いリアリズム、テキストレンダリング、ディテールを実現することを目的としています。切り替える前に、4b モデルページで現在の価格とパラメータを確認してください。

1 回の呼び出しで複数の画像を要求できますか? いいえ——schema は n やカウント系のフィールドを受け入れません。画像ごとに 1 つのリクエストを送信してください。

返される画像 URL の有効期間はどのくらいですか? output[0].url は独自の expireAt タイムスタンプを持つ一時的なリンクです。短命(テストでは約 1 週間)として扱い、タスク成功後すぐにバイトをダウンロードし、URL を保存しないでください。

なぜ 401 permission_denied エラーが発生するのですか? キーが欠落しているか、無効であるか、このモデルへのアクセス権がありません。Authorization: Bearer sk-... と、プレースホルダーではなくコンソールから取得したキーを送信していることを確認してください。

この API を使用するには独自のサーバーを実行する必要がありますか? コールバックが必要な場合のみ必要です。スクリプト、cron ジョブ、サーバーレス関数から GET /v1/tasks/{taskId} をポーリングすることは、低用量の使用ではまったく問題ありません。生成規模が拡大したら callback.url に切り替えてください。

永続的なAIアーティファクトで開発を始める

APIキーを取得して、タスクベースの1つのAPIで画像・動画・音声モデルを呼び出せます。

APIドキュメントを読む