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

申請プロセス

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

基本使用

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

ここでは、リクエストヘッダーを設定しています。これには以下が含まれます:
  • accept:受け取りたいレスポンス結果の形式。ここでは application/json、つまりJSON形式を記入します。
  • authorization:APIを呼び出すためのキー。申請後、直接ドロップダウンから選択できます。
さらに、リクエストボディを設定しています。これには以下が含まれます:
  • prompt:プロンプト。
  • model:生成モデル、デフォルトは doubao-seedream-4.0
  • image: 入力する画像情報、URLまたはBase64エンコードをサポートします。ここで、doubao-seedream-4.5doubao-seedream-4.0 は単一または複数の画像入力をサポートし、doubao-seededit-3.0-i2i は単一画像入力のみ、doubao-seededit-3.0-t2i はこのパラメータをサポートしません。
  • size: 生成する画像のサイズ情報を指定します。以下の2つの方法をサポートし、混用はできません。方法1 | 生成する画像の解像度を指定し、プロンプト内で自然言語で画像のアスペクト比、形状、または用途を説明します。最終的にモデルが画像のサイズを判断します。方法2 | 生成する画像の幅と高さのピクセル値を指定します。デフォルト値:2048x2048 モデルによってデフォルト値は異なります。
  • seed: ランダム数シードで、モデルが生成する内容のランダム性を制御します。値の範囲は [-1, 2147483647] です。doubao-seedream-3.0-t2idoubao-seededit-3.0-i2i のみこのパラメータをサポートします。
  • sequential_image_generation: グループ画像:入力した内容に基づいて生成される関連する画像のグループ。doubao-seedream-4.5doubao-seedream-4.0 のみこのパラメータをサポートし、デフォルトは disabled です。
  • stream: ストリーミング出力モードを有効にするかどうかを制御します。doubao-seedream-4.5doubao-seedream-4.0 のみこのパラメータをサポートし、デフォルトは false です。
  • guidance_scale: モデルの出力結果とプロンプトの一致度、生成画像の自由度、別名テキストの重み;値が大きいほど、モデルの自由度は小さくなり、ユーザーが入力したプロンプトとの関連性が強くなります。値の範囲:[1, 10] 。doubao-seedream-3.0-t2i のデフォルト値は2.5、doubao-seededit-3.0-i2i のデフォルト値は5.5、その他はサポートされていません。
  • response_format: 生成した画像の返却形式を指定します。デフォルトは url で、b64_json もサポートされています。
  • watermark: 生成された画像にウォーターマークを追加するかどうか。デフォルトは true です。
  • callback_url:結果をコールバックする必要があるURL。
選択後、右側にも対応するコードが生成されていることがわかります。以下の図のように:

「Try」ボタンをクリックするとテストを行うことができ、上の図のように、以下のような結果が得られます:
{
  "success": true,
  "task_id": "25027ba3-0430-4a1b-91c8-d2297f19ba73",
  "trace_id": "8043a9e9-692f-43b0-82f7-5890f798be38",
  "data": [
    {
      "prompt": "a white siamese cat",
      "size": "2048x2048",
      "image_url": "https://platform.cdn.acedata.cloud/seedream/3c060029-69b1-406f-a957-fcd55ddc9386.jpg"
    }
  ]
}
返却結果には複数のフィールドがあり、以下のように説明されます:
  • success、この時点での画像生成タスクの状態。
  • task_id、この時点での画像生成タスクID。
  • trace_id、この時点での画像生成トレースID。
  • data、この時点での画像生成タスクの結果リスト。
    • image_url、この時点での画像生成タスクのリンク。
    • prompt、プロンプト。
    • size: 生成された画像のピクセル。
満足のいく画像情報が得られたことがわかります。結果の data の画像リンクアドレスに基づいて生成された SeeDream 画像を取得するだけです。 また、対応する接続コードを生成したい場合は、生成されたものを直接コピーできます。例えば、CURLのコードは以下の通りです:
curl -X POST 'https://api.acedata.cloud/seedream/images' \
-H 'accept: application/json' \
-H 'authorization: Bearer ${token}' \
-H 'content-type: application/json' \
-d '{
  "action": "generate",
  "model": "doubao-seedream-4-0-250828",
  "prompt": "a white siamese cat"
}'

画像編集タスク

特定の画像を編集したい場合、まずパラメータ image に編集する画像のリンクを渡す必要があります。
  • model:今回の画像編集タスクで使用するモデル。このタスクは現在 doubao-seedream-4.5doubao-seedream-4.0 が単一または複数の画像入力をサポートし、doubao-seededit-3.0-i2i は単一画像入力のみをサポートします。
  • image:編集する必要がある画像をアップロードします。1枚または複数枚。
記入例は以下の通りです:

対応するコード:
import requests

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

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

payload = {
    "model": "doubao-seedream-4-0-250828",
  "prompt": "モデルのポーズと液体の衣服の流れる形状を変えずに保つ。衣服の素材を銀の金属から完全に透明な水(またはガラス)に変更する。液体の流れを通して、モデルの肌の詳細が見える。光と影の効果は反射から屈折にシフトする。",
  "image": ["https://ark-project.tos-cn-beijing.volces.com/doc_image/seedream4_5_imageToimage.png"],
  "size": "2K",
  "watermark": False
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
実行をクリックすると、すぐに結果が得られることがわかります。以下のように:
{
    "success": true,
    "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde",
    "trace_id": "131a40c3-2eaf-44c9-af28-c9b408577286",
    "data": [
        {
            "prompt": "モデルのポーズと液体の衣服の流れる形状を変更せずに保つ。衣服の素材を銀の金属から完全に透明な水(またはガラス)に変更する。液体の流れを通して、モデルの肌の詳細が見える。光と影の効果は反射から屈折に移行する。",
            "size": "2048x2048",
            "image_url": "https://platform.cdn.acedata.cloud/seedream/3e88db7e-4771-4f6a-adbd-5ae4590c5d59.jpg"
        }
    ]
}
生成された効果は、元の画像を編集した効果であり、結果は上記と似ています。

非同期コールバック

SeeDream Images Generation API の生成時間は比較的長く、約 1-2 分かかります。API が長時間応答しない場合、HTTP リクエストは接続を維持し続け、追加のシステムリソースを消費するため、この API では非同期コールバックのサポートも提供しています。 全体の流れは次の通りです:クライアントがリクエストを開始する際に、追加で callback_url フィールドを指定します。クライアントが API リクエストを開始した後、API はすぐに結果を返し、現在のタスク ID を示す task_id フィールド情報を含みます。タスクが完了すると、生成された画像の結果が POST JSON 形式でクライアントが指定した callback_url に送信され、その中にも task_id フィールドが含まれているため、タスクの結果を ID で関連付けることができます。 以下の例を通じて、具体的にどのように操作するかを理解しましょう。 実行をクリックすると、すぐに結果が得られることがわかります。以下のようになります:
{
  "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde"
}
内容は次の通りです:
{
    "success": true,
    "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde",
    "trace_id": "131a40c3-2eaf-44c9-af28-c9b408577286",
    "data": [
        {
            "prompt": "モデルのポーズと液体の衣服の流れる形状を変更せずに保つ。衣服の素材を銀の金属から完全に透明な水(またはガラス)に変更する。液体の流れを通して、モデルの肌の詳細が見える。光と影の効果は反射から屈折に移行する。",
            "size": "2048x2048",
            "image_url": "https://platform.cdn.acedata.cloud/seedream/3e88db7e-4771-4f6a-adbd-5ae4590c5d59.jpg"
        }
    ]
}
結果には 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"
}

結論

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