跳轉到主要內容
本文將介紹一種 SeeDream Images Generation API 串接說明,它是可以透過輸入自訂參數來生成 SeeDream 官方的圖片。

申請流程

要使用 SeeDream Images Generation API,首先到 Ace Data Cloud 控制台 取得您的 API Token,留作備用。 如果你尚未登入或註冊,會自動跳轉到登入頁面邀請你註冊和登入,完成後會自動返回目前頁面。 一個 API Token 即可呼叫平台所有服務,無需為每個服務單獨申請。 首次申請會贈送免費額度,可免費體驗;額度不足時可在 控制台 儲值通用餘額。
📘 完整文件:SeeDream Images Generation API →

基本使用

首先先了解一下基本的使用方式,就是輸入提示詞 prompt、生成行為 action、圖片尺寸 size,便可獲得處理後的結果,首先需要簡單地傳遞一個 action 欄位,它的值為 generate,然後我們還需要輸入提示詞,具體的內容如下:

可以看到這裡我們設定了 Request Headers,包括:
  • accept:想要接收怎樣格式的回應結果,這裡填寫為 application/json,即 JSON 格式。
  • authorization:呼叫 API 的金鑰,申請之後可以直接下拉選擇。
另外設定了 Request Body,包括:
  • prompt:提示詞。
  • model:生成模型,預設 doubao-seedream-5-0-lite-260128(SeeDream 5.0 Lite,最新)。支援 doubao-seedream-5-0-pro-260628、doubao-seedream-5-0-lite-260128、doubao-seedream-4-5-251128、doubao-seedream-4-0-250828。其中 doubao-seedream-5-0-pro-260628(SeeDream 5.0 Pro)為旗艦單圖模型,僅生成單圖,不支援組圖(sequential_image_generation)、串流(stream)與網路搜尋(tools)。model 必須傳入完整模型字串(如 doubao-seedream-5-0-lite-260128),傳入 doubao-seedream-5.0-lite 這類簡寫會回傳 400。
  • image: 輸入的圖片資訊,支援 URL 或 Base64 編碼。doubao-seedream-5-0-pro-260628 支援單圖或多圖輸入(最多 10 張),doubao-seedream-5-0-lite-260128、doubao-seedream-4-5-251128、doubao-seedream-4-0-250828 支援單圖或多圖輸入。
  • size: 指定生成圖像的尺寸資訊,支援以下兩種方式,不可混用。方式 1 | 指定生成圖像的解析度,並在 prompt 中用自然語言描述圖片寬高比。各模型支援的預設不同:doubao-seedream-5-0-pro-260628 支援 1K/1.5K/2K;doubao-seedream-5-0-lite-260128 支援 2K/3K/4K;doubao-seedream-4-5-251128 僅支援 2K/4K;doubao-seedream-4-0-250828 支援 1K/2K/4K。方式 2 | 指定生成圖像的寬高像素值:預設 2048x2048,總像素與寬高比取值範圍隨模型不同(例如 5.0 Pro 總像素範圍 [921600, 4624220],5.0 Lite / 4.5 總像素下限 3,686,400,4.0 下限 921,600)。
  • sequential_image_generation: 組圖:基於您輸入的內容,生成的一組內容關聯的圖片。doubao-seedream-5-0-lite-260128、doubao-seedream-4-5-251128、doubao-seedream-4-0-250828 支援該參數,預設 disabled。
  • stream: 控制是否開啟串流輸出模式。doubao-seedream-5-0-lite-260128、doubao-seedream-4-5-251128、doubao-seedream-4-0-250828 支援該參數,預設是 false。
  • response_format: 指定生成圖像的回傳格式。預設是 url,也支援 b64_json。
  • watermark: 是否在生成的圖片中新增浮水印。預設是 true。
  • output_format: 指定生成圖像的檔案格式,支援 jpeg(預設)和 png。僅 doubao-seedream-5-0-pro-260628 和 doubao-seedream-5-0-lite-260128 支援。
  • tools: 設定模型要呼叫的工具,目前支援 web_search(網路搜尋)。僅 Seedream 5.0 Lite 支援。
  • optimize_prompt_options: 提示詞最佳化設定。5.0 Pro 支援 standard/fast;5.0 Lite 與 4.5 僅支援 standard;4.0 支援 standard/fast。
  • background: 僅 5.0 Pro 單圖編輯支援。transparent 要求輸入一張帶有透明通道的 PNG,且 output_format 必須為 png;opaque 為一般不透明背景。
  • layer_decomposition: 僅 5.0 Pro 支援。設為 true 時必須輸入一張 PNG/JPEG,可不傳 prompt 自動拆分,或用自然語言/<bbox> 指定元素;size 支援 auto/1K/1.5K/2K。該模式不能與組圖、串流、網路搜尋或 background 同用。
  • callback_url:需要回呼結果的 URL。
  • async:是否以非同步模式處理。設為 true 時介面立即回傳 task_id,無需提供 callback_url,隨後透過 /seedream/tasks 輪詢取得結果。
選擇之後,可以發現右側也生成了對應程式碼,如圖所示:

點擊「Try」按鈕即可進行測試,如上圖所示,這裡我們就得到了如下結果:
回傳結果總共有多個欄位,介紹如下:
  • success,此時影片生成任務的狀態情況。
  • task_id,此時影片生成任務 ID。
  • trace_id,此時影片生成追蹤 ID。
  • data,此時圖像生成任務的結果列表。
    • image_url,此時圖片生成任務的連結。
    • prompt,提示詞。
    • size: 生成圖片的像素
可以看到我們得到了滿意的圖片資訊,我們只需要根據結果中 data 的圖片連結位址取得生成的 SeeDream 圖片即可。 另外如果想生成對應的串接程式碼,可以直接複製生成,例如 CURL 的程式碼如下:

編輯圖片任務

如果想對某張圖片進行編輯的話,首先參數image必須傳入需要編輯的圖片連結
  • model:此次編輯圖片任務所採用的模型,doubao-seedream-5-0-pro-260628、doubao-seedream-5-0-lite-260128、doubao-seedream-4-5-251128、doubao-seedream-4-0-250828 均支援圖片輸入。
  • image:上傳需要編輯的圖片,一張或者多張
填寫範例如下:

對應的程式碼:
點擊執行,可以發現會立即得到一個結果,如下:
可以看到,生成的效果是對原圖片進行編輯的效果,結果與上文類似。

圖層拆分(Seedream 5.0 Pro)

圖層拆分會把一張輸入圖拆為 1 張底圖和最多 16 個可獨立編輯的透明 PNG 圖層。以下請求讓模型自動識別主要元素;如需指定元素,可增加 prompt,也可以在提示詞中使用歸一化 <bbox> 座標。
回傳的 data 按 z_index 從底到頂排列。底圖的 z_index 為 0;圖層還包含 name、description 和 bounding_box.absolute/normalized。使用絕對座標重組時,將圖層縮放到 [right-left, bottom-top],放到 [left, top],再按 z_index 升序疊放。任一圖層生成失敗時整次拆分失敗。

串流輸出

Lite/4.x 設定 stream: true 時,請求標頭使用 accept: application/x-ndjson。介面逐行回傳 image_generation.partial_succeeded 或 image_generation.partial_failed,最後回傳唯一的 image_generation.completed 事件及最終 usage;只有完成事件觸發一次計費。串流模式不能與 async 或 callback_url 同用。

非同步回呼

由於 SeeDream Images Generation API 生成的時間相對較長,大約需要 1-2 分鐘,如果 API 長時間無回應,HTTP 請求會一直保持連線,導致額外的系統資源消耗,所以本 API 也提供了非同步回呼的支援。 整體流程是:客戶端發起請求的時候,額外指定一個 callback_url 欄位,客戶端發起 API 請求之後,API 會立刻回傳一個結果,包含一個 task_id 的欄位資訊,代表目前的任務 ID。當任務完成之後,生成圖片的結果會透過 POST JSON 的形式發送到客戶端指定的 callback_url,其中也包括了 task_id 欄位,這樣任務結果就可以透過 ID 關聯起來了。 如果你沒有可供回呼的公開網路位址,也可以不指定 callback_url,而是在請求中設定 async 欄位為 true。此時介面同樣會立即回傳 task_id,但不會推送結果,你需要攜帶該 task_id 呼叫 /seedream/tasks 介面輪詢任務狀態來取得最終結果。 下面我們透過範例來了解具體怎樣操作。 點擊執行,可以發現會立即得到一個結果,如下:
內容如下:
可以看到結果中有一個 task_id 欄位,其他欄位都與上文類似,透過該欄位即可實現任務的關聯。

錯誤處理

在呼叫 API 時,如果遇到錯誤,API 會回傳相應的錯誤代碼和資訊。例如:
  • 400 token_mismatched:錯誤請求,可能是由於缺少或無效的參數。
  • 400 api_not_implemented:錯誤請求,可能是由於缺少或無效的參數。
  • 401 invalid_token:未授權,無效或缺少授權權杖。
  • 429 too_many_requests:請求過多,您已超出速率限制。
  • 500 api_error:內部伺服器錯誤,伺服器端發生了問題。

錯誤回應範例

結論

透過本文檔,您已經了解如何使用 SeeDream Images Generation API,透過輸入提示詞來生成圖片。希望本文檔能幫助您更好地串接和使用該 API。如有任何問題,請隨時聯絡我們的技術支援團隊。