Skip to main content
本文將介紹一種 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-260628doubao-seedream-5-0-lite-260128doubao-seedream-4-5-251128doubao-seedream-4-0-250828。其中 doubao-seedream-5-0-pro-260628(SeeDream 5.0 Pro)為旗艦單圖模型,僅產生單圖,不支援組圖(sequential_image_generation)、串流(stream)與網路搜尋(toolsmodel 必須傳入完整模型字串(如 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-260128doubao-seedream-4-5-251128doubao-seedream-4-0-250828 支援單圖或多圖輸入。
  • size: 指定產生影像的尺寸資訊,支援以下兩種方式,不可混用。方式 1 | 指定產生影像的解析度,並在 prompt 中用自然語言描述圖片寬高比。各模型支援的預設不同doubao-seedream-5-0-pro-260628 支援 1K/1.5K/2Kdoubao-seedream-5-0-lite-260128 支援 2K/3K/4Kdoubao-seedream-4-5-251128 僅支援 2K/4Kdoubao-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-260128doubao-seedream-4-5-251128doubao-seedream-4-0-250828 支援該參數,預設 disabled
  • stream: 控制是否開啟串流輸出模式。doubao-seedream-5-0-lite-260128doubao-seedream-4-5-251128doubao-seedream-4-0-250828 支援該參數,預設是 false
  • response_format: 指定產生影像的回傳格式。預設是 url,也支援 b64_json
  • watermark: 是否在產生的圖片中加入浮水印。預設是 true
  • output_format: 指定產生影像的檔案格式,支援 jpeg(預設)和 png。僅 doubao-seedream-5-0-pro-260628doubao-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 必須為 pngopaque 為一般不透明背景。
  • 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-260628doubao-seedream-5-0-lite-260128doubao-seedream-4-5-251128doubao-seedream-4-0-250828 均支援圖片輸入。
  • image:上傳需要編輯的圖片,一張或者多張
填寫範例如下:

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

圖層拆分(Seedream 5.0 Pro)

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

串流輸出

Lite/4.x 設定 stream: true 時,請求標頭使用 accept: application/x-ndjson。介面逐行回傳 image_generation.partial_succeededimage_generation.partial_failed,最後回傳唯一的 image_generation.completed 事件及最終 usage;只有完成事件觸發一次計費。串流模式不能與 asynccallback_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。如有任何問題,請隨時聯絡我們的技術支援團隊。