メインコンテンツへスキップ
本文では、Flux Images Generation API 連携説明を紹介します。これは、カスタムパラメータを入力することで、Flux の公式画像を生成することができます。

申請プロセス

API を使用するには、まず Flux Images Generation API の該当ページでサービスを申請する必要があります。ページに入ったら、「Acquire」ボタンをクリックします。以下の図のように: まだログインまたは登録していない場合は、自動的にログインページにリダイレクトされ、登録とログインを促されます。ログインまたは登録後、現在のページに自動的に戻ります。 初回申請時には無料のクレジットが付与され、この API を無料で使用できます。

基本使用

まず、基本的な使用方法を理解します。これは、プロンプト prompt、生成アクション action、画像サイズ size を入力することで、処理された結果を得ることができます。まず、action フィールドを単純に渡す必要があり、その値は generate です。次に、プロンプトを入力する必要があります。具体的な内容は以下の通りです:

ここでは、リクエストヘッダーを設定しています。これには以下が含まれます:
  • accept:受け取りたいレスポンス結果の形式。ここでは application/json、つまり JSON 形式を記入します。
  • authorization:API を呼び出すためのキー。申請後、直接ドロップダウンから選択できます。
また、リクエストボディを設定しています。これには以下が含まれます:
  • action:今回の画像生成タスクのアクション。
  • size:画像生成結果のサイズ。
  • count:生成する画像の数。デフォルト値は 1 で、このパラメータは画像生成タスクでのみ有効で、編集タスクでは無効です。
  • prompt:プロンプト。
  • model:生成モデル、デフォルトは flux-dev
  • callback_url:結果をコールバックする URL。
パラメータ size にはいくつかの特別な制限があり、主に width x height のアスペクト比、x:y の画像比率の 2 種類に分かれます。具体的には以下の通りです:
モデル範囲
flux-2-flex幅の比率 x >= 64 は 32 の倍数でなければならない
flux-2-pro幅の比率 x >= 64 は 32 の倍数でなければならない
flux-2-max幅の比率 x >= 64 は 32 の倍数でなければならない
flux-pro-1.1幅の比率 256 <= x <= 1440 は 32 の倍数でなければならない
flux-dev幅の比率 256 <= x <= 1440 は 32 の倍数でなければならない
flux-pro-1.1-ultra幅の比率はサポートされていないが、画像比率はサポートされている
flux-kontext-pro幅の比率はサポートされていないが、画像比率はサポートされている
flux-kontext-max幅の比率はサポートされていないが、画像比率はサポートされている
参考の画像比率: “1:1” , “16:9”, “21:9” , “3:2”, “2:3”, “4:5”, “5:4”, “3:4”, “4:3”, “9:16”, “9:21”, 選択後、右側にも対応するコードが生成されていることがわかります。以下の図のように:

「Try」ボタンをクリックするとテストが行えます。上の図のように、以下の結果が得られました:
{
  "success": true,
  "task_id": "226eb763-9eab-4d06-ad57-d59753a03307",
  "trace_id": "089f8b46-0167-4f25-88ee-3c3f88d80e84",
  "data": [
    {
      "prompt": "a white siamese cat",
      "image_url": "https://fal.media/files/lion/NVhtlwwGYQD6HrGaEfrzu_341484fad6d84b21b73f4f8824a3f98a.png",
      "timings": 1752743801
    },
    {
      "prompt": "a white siamese cat",
      "image_url": "https://fal.media/files/monkey/8UEQpFbQCYVOK1wKP3aV0_9bbc26fad64049b18d0244b99ef66ad1.png",
      "timings": 1752743801
    }
  ]
}
返された結果には複数のフィールドがあり、以下のように説明されます:
  • success:この時点での画像生成タスクの状態。
  • task_id:この時点での画像生成タスク ID。
  • trace_id:この時点での画像生成トレース ID。
  • data:この時点での画像生成タスクの結果リスト。
    • image_url:この時点での画像生成タスクのリンク。
    • prompt:プロンプト。
満足のいく画像情報が得られたことがわかります。結果の data の画像リンクアドレスに基づいて生成された Flux 画像を取得するだけです。 また、対応する連携コードを生成したい場合は、生成されたものを直接コピーできます。例えば、CURL のコードは以下の通りです:
curl -X POST 'https://api.acedata.cloud/flux/images' \
-H 'authorization: Bearer {token}' \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-d '{
  "action": "generate",
  "prompt": "a white siamese cat",
  "model": "flux-kontext-pro",
  "count": 2
}'

画像編集タスク

特定の画像を編集したい場合、まずパラメータ image_url に編集したい画像のリンクを渡す必要があります。この時、actionedit のみがサポートされ、以下の内容を指定できます:
  • model:今回の画像編集タスクで使用するモデル。このタスクは現在 flux-kontext-maxflux-kontext-pro をサポートしています。
  • image_url:編集する必要がある画像をアップロードします。
記入例は以下の通りです:

記入が完了すると、自動的に以下のコードが生成されます:

対応するコード:
import requests

url = "https://api.acedata.cloud/flux/images"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "action": "edit",
    "prompt": "a white siamese cat",
    "model": "flux-kontext-pro",
    "image_url": "https://cdn.acedata.cloud/ytj2qy.png"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
実行をクリックすると、すぐに結果が得られることがわかります。以下のように:
{
  "success": true,
  "task_id": "2a7979ff-1f77-4380-92c6-a2dc37c3b4c8",
  "trace_id": "732b65c0-48d9-49f7-b568-64e5acffe4c0",
  "data": [
    {
      "prompt": "a white siamese cat",
      "image_url": "https://fal.media/files/monkey/aEUXJZ6Faj9YXUCQVs01Q_af0cea56c558441c9ba8df67b200812d.png",
      "timings": 1752744073
    }
  ]
}
生成された効果は元の画像を編集したもので、結果は前述のものと似ています。

非同期コールバック

Flux Images Generation APIによって生成される時間は比較的長く、約1〜2分かかります。APIが長時間応答しない場合、HTTPリクエストは接続を維持し続け、追加のシステムリソースを消費するため、本APIは非同期コールバックのサポートも提供しています。 全体の流れは、クライアントがリクエストを開始する際に、追加でcallback_urlフィールドを指定します。クライアントがAPIリクエストを開始すると、APIはすぐに結果を返し、現在のタスクIDを示すtask_idフィールド情報を含みます。タスクが完了すると、生成された画像の結果がPOST JSON形式でクライアントが指定したcallback_urlに送信され、その中にもtask_idフィールドが含まれているため、タスクの結果をIDで関連付けることができます。 以下の例を通じて、具体的にどのように操作するかを理解しましょう。 まず、WebhookコールバックはHTTPリクエストを受信できるサービスであり、開発者は自分で構築したHTTPサーバーのURLに置き換える必要があります。ここでは、デモのために公開のWebhookサンプルサイトhttps://webhook.site/を使用します。このサイトを開くとWebhook URLが得られます。 このURLをコピーすればWebhookとして使用できます。このサンプルはhttps://webhook.site/3d32690d-6780-4187-a65c-870061e8c8abです。 次に、フィールドcallback_urlを上記のWebhook URLに設定し、対応するパラメータを入力します。具体的な内容は以下の通りです:

実行ボタンをクリックすると、すぐに結果が得られます。以下のようになります:
{
  "task_id": "6a97bf49-df50-4129-9e46-119aa9fca73c"
}
少し待つと、https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8abで生成された画像の結果を観察できます。以下のようになります: 内容は以下の通りです:
{
  "success": true,
  "task_id": "6a97bf49-df50-4129-9e46-119aa9fca73c",
  "trace_id": "9b4b1ff3-90f2-470f-b082-1061ec2948cc",
  "data": [
    {
      "prompt": "a white siamese cat",
      "image_url": "https://sf-maas-uat-prod.oss-cn-shanghai.aliyuncs.com/outputs/f4f8d407-377a-408a-82d0-427a5a836f09_0.png",
      "seed": 1698551532,
      "timings": {
        "inference": 3.328
      }
    }
  ]
}
結果にはtask_idフィールドが含まれており、他のフィールドは上記と似ています。このフィールドを通じてタスクの関連付けが可能です。

エラーハンドリング

APIを呼び出す際にエラーが発生した場合、APIは対応するエラーコードと情報を返します。例えば:
  • 400 token_mismatched:不正なリクエスト、パラメータが欠落または無効な可能性があります。
  • 400 api_not_implemented:不正なリクエスト、パラメータが欠落または無効な可能性があります。
  • 401 invalid_token:未認証、無効または欠落した認証トークン。
  • 429 too_many_requests:リクエストが多すぎます、レート制限を超えました。
  • 500 api_error:内部サーバーエラー、サーバーで何かがうまくいきませんでした。

エラー応答の例

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

結論

この文書を通じて、Flux Images Generation APIを使用して入力プロンプトから画像を生成する方法を理解しました。この文書がAPIの接続と使用に役立つことを願っています。ご不明な点がございましたら、いつでも技術サポートチームにお問い合わせください。