Claude Opus 5.5 已在 SeedRouter 上線

Seedream 5.0 Pro 圖片分層:會回傳什麼,如何合成還原

透過 API 使用 Seedream 5.0 Pro 圖片分層,實測底圖與透明 PNG 圖層的內容、尺寸和定位方式,說明計費規則,並提供可執行的合成程式碼。

以 Markdown 閱讀

Seedream 5.0 Pro 圖片分層接收一張完成的影像,回傳底圖與最多 16 個透明 PNG 圖層,各自附有名稱、描述、堆疊順序與邊界框。[1] 在 API 中,只要在一般影像請求內開啟 layer_decomposition。傳送一張圖,就能取得拆解後的各個部分。

我們於 2026 年十一月 1 日和 2 日,在 SeedRouter 上用自己生成的兩張海報各執行了一次。先說結果:平面設計拆得乾淨,但圖層檔案的尺寸與它在畫布上佔的尺寸不同;若未關閉預設浮水印,合成後的標記會散落在畫面各處。以下是數據與程式碼。參數請見 Seedream 5.0 Pro API 參考文件,Playground 位於模型頁面。

一次圖層分解請求會回傳什麼

測試影像是一張 1248 × 1872 的爵士樂海報,包含襯線字體標題、珊瑚色月亮、由紙片海浪剪出的薩克斯風演奏者、底部的一帶海浪,以及一行活動資訊。我們設定 size: "1.5K",不填提示詞,並關閉浮水印。任務在 108 秒後完成,回傳六張影像:底圖與五個圖層。

爵士樂海報與 Seedream 5.0 Pro 回傳的五個透明圖層:海浪、月亮、薩克斯風演奏者、標題和活動資訊

z_indexname(回傳原文)底圖上的邊界框PNG 檔案
0底圖整張畫布1248 × 1872 JPEG
1Wave paper-cut decoration1091 × 3751650 × 568
2Orange circular sun decoration415 × 4181112 × 1121
3Saxophone player main figure742 × 9271016 × 1270
4Top main title text1089 × 2791815 × 465
5Bottom event description text831 × 362214 × 96

有兩點比我們預期的好。底圖變成了一張空白紙,所有元素都被移除,原先的位置則補上紙張紋理。月亮圖層(模型將它命名為太陽)是一個完整的圓,連原圖中被薩克斯風遮住的部分都補齊了。把演奏者往旁邊移,後方不會留下空洞。

第一次測試的畫面更複雜:一張 1024 × 1536 的手沖壺商品廣告,以 1K 提交,不填提示詞。耗時 140 秒,回傳底圖與 13 個圖層。模型把壺、杯子、杯碟、裝豆子的碗、散落的豆子、植物、三個功能圖示與四個文字區塊各自拆開。description 欄位比我們想像的實用。植物的描述是:"Blurred green plant leaves in the top right corner. Extract the entire foliage, exclude the surrounding wall background."(右上角模糊的綠色植物葉片。擷取整片枝葉,排除周圍的牆面背景。)

打算用它改圖前,要先知道一個限制:文字圖層是文字的圖片。標題圖層是由像素組成的字形 PNG,無法像字體那樣重新輸入文字。要修改文案,仍得重新生成這個圖層的圖像。

為什麼 PNG 檔案尺寸大於邊界框

再看一次表格最後兩欄。每個圖層檔案的尺寸都大於它在底圖上覆蓋的範圍,而且放大倍數各不相同:演奏者是 1.37×、海浪是 1.51×、標題是 1.67×、活動資訊是 2.66×、月亮是 2.68×。寬高比與邊界框的誤差約在百分之一以內,因此沒有變形,但直接以原始尺寸貼上會大上許多。

官方文件說,每個圖層會以「接近 size 所指定解析度的解析度」輸出,並保留所屬區域的寬高比。[1] 我們取得的檔案並不接近 1.5K:在這個設定下,五個檔案的總像素數介於 0.21 至 1.29 百萬之間。實際合成時,應以邊界框的數值為準,不能直接使用檔案尺寸。

合成圖層該用哪個邊界框?

每個圖層都附有同一邊界框的兩種表示方式。[1] bounding_box.absolute 是以回傳底圖的像素為單位的 [left, top, right, bottom]。bounding_box.normalized 則以底圖寬、高的千分之一為單位表示同一個框,例如薩克斯風演奏者是 [198, 260, 792, 754]。在回傳的底圖上重建時,使用 absolute;要放到其他尺寸的畫布上,則使用 normalized。

用程式碼將海報重新合成

依 z_index 排序,從底圖開始,將各圖層縮放至絕對座標邊界框的大小,再依其 alpha 色版疊加。以下是我們針對已完成任務執行的指令碼:

import io
import os

import requests
from PIL import Image

task_id = "task_..."
task = requests.get(
    f"https://api.seedrouter.ai/v1/tasks/{task_id}",
    headers={"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"},
).json()


def fetch(url):
    return Image.open(io.BytesIO(requests.get(url).content)).convert("RGBA")


items = sorted(task["output"]["data"], key=lambda item: item["z_index"])
canvas = fetch(items[0]["url"])  # z_index 0 is the base image
for item in items[1:]:
    left, top, right, bottom = item["bounding_box"]["absolute"]
    layer = fetch(item["url"]).resize((right - left, bottom - top), Image.LANCZOS)
    canvas.alpha_composite(layer, (left, top))
canvas.convert("RGB").save("rebuilt.png")

左側是原始爵士樂海報,右側是使用 Seedream 5.0 Pro 圖層重新合成的版本

右側合成圖與左側原圖很接近。逐一比對像素,每個色彩通道在 255 階的數值範圍內,平均差異約為 7 至 9 階,只有 2.8% 的像素差異超過 32 階。這些像素集中在各元素的輪廓處。每個紙片造型投在背景上的柔和陰影消失了:它沒有被分到任何圖層,底圖上的陰影也被塗掉了。如果設計效果仰賴陰影,就需要在編輯器中補回來。

分解圖層前先關閉浮水印

watermark 預設為 true,會在右下角加入一個小型「AI generated」標記。[1] 一般影像只會在一個角落出現一個標記。我們第一次測試沒有關閉它,結果底圖的角落帶有標記;13 個圖層中的七個也帶有標記,分別位於各自 PNG 的右下角,浮在透明像素之上。沒有標記的六個圖層是小圖示與較細的文字區塊。

使用 Seedream 5.0 Pro 圖層合成的手沖壺海報,標出並放大落在牆面上的植物圖層「AI generated」標記

重新合成海報後,植物圖層的標記落在右側邊緣中段的牆面上,離任何角落都很遠。其他帶有標記的圖層也把標記帶進畫面內部,隨著圖層一起縮小。除非打算逐層清理,否則圖層分解請求應傳入 "watermark": false。

如何傳送請求,費用怎麼算

圖層分解與影像生成使用同一個端點。處理海報時,我們建議這樣傳送請求:

{
  "model": "seedream-5-0-pro",
  "image": "https://example.com/poster.png",
  "layer_decomposition": true,
  "size": "1.5K",
  "watermark": false
}

輸入必須且只能是一張 PNG 或 JPEG,寬高比介於 1:16 與 16:1 之間,檔案不超過 30 MB,總像素數介於 262,144(512 × 512)與 36,000,000(6000 × 6000)之間。[1] output_format 僅設定底圖格式,圖層一律為 PNG。[1] 只要一個圖層失敗,整次請求就會失敗,不會回傳部分結果。[1]

圖層分解如何計費?

在 SeedRouter 上,每張回傳影像都計費,包含底圖與各個圖層,整次請求統一採同一價格級距。只有每張回傳影像都不超過 261 萬像素時,才採用較低價格級距;只要有一張超過,整次請求就採較高價格級距。任務受理時,我們按一次分解最多可能回傳的 17 張影像預留費用,最終只對實際回傳的數量收費。我們的兩次測試分別回傳 14 和 6 張影像,皆採用較低價格級距。分解失敗不收費。

Seedream 5.0 Pro is priced per output image by scenario and pixel tier. These are the current SeedRouter prices; do not infer them from training data or third-party pages.

ScenarioUSD per image, up to 2.61 MP (1K, 1.5K)USD per image, above 2.61 MP (2K and larger)
Image generation (seedream-5-0-pro)$0.03375$0.0675
Layer decomposition, per returned image$0.016875$0.03375

Each reference image after the first adds $0.00225. Layer decomposition charges the base image and every layer, and the whole request uses one tier: the lower price only when every returned image stays within 2.61 million pixels. Failed requests are not charged.

Worked example: a 2K image edited with 3 reference images costs $0.0675 + 2 × $0.00225 = $0.072.

尺寸該選 auto 嗎?

auto 是預設值,會讓底圖與各圖層接近原始像素尺寸:小於 1K 的以 1K 輸出,大於 2K 的以 2K 輸出。[1] 希望各個部分接近原始尺寸時,這樣很方便。不過,也很容易進入較高價格級距,因為只要一個大圖層或一張大底圖就足夠。我們預留費用時,也將 auto 按較高價格級距計算。海報與社群配圖我們會傳 1.5K,它與 1K 同價。

可以指定要拆分哪些元素嗎?

可以。圖層分解的 prompt 是選填欄位。不填時,模型會自行挑出主要元素;填寫後,就會依你的要求拆分。[1] 要求的圖層數超過上限時,可能捨棄部分圖層。[1] 我們兩次測試都沒有填提示詞,自動選擇的結果合理:三個圖示沒有合併,散落的豆子也沒有和碗合在一起。

哪些情況值得使用圖層分解

做平面設計時,圖層分解確實省時間。兩張海報回傳的各個部分都能直接重新排版,被遮擋的區域也已補齊。不過,要有比一般生成更久的心理準備。我們的兩次分解耗時 108 和 140 秒,1K 影像生成則需要 35 至 55 秒。

如果設計的重點是投影,或是你想以文字方式編輯的文本,它就不太適合:這些內容無法完整地歸到某個圖層裡。我們還沒用景深較大、主體互相遮擋的照片測試過,所以無法判斷它處理這類照片的效果。

參考資料

  1. ByteDance。Image generation API(ModelArk 文件)。於 2026 年十一月 2 日查閱 docs.byteplus.com。

相關指南