はじめに
Seedream 5.5 のレイヤー分解は、完成した PNG または JPEG を、不透明なベース画像と個別の透過パーツに分けます。既存のデザインの要素をそれぞれ扱いたいときに使います。画像編集のように複数の参照画像を渡すのではなく、元画像を 1 枚指定するエンドポイントです。
ByteDance は、ベース画像に加えて最大 99 枚の編集可能な透過 PNG レイヤーに対応すると説明しています。当社は雑誌カバー、メニュー、3 行のポスターを分解しました。指定した出力枚数が上限であることも結果に表れています。上限まで返った画像もあれば、ポスターのように上限より少ないパーツ数になる画像もありました。
主な機能とハイライト
ベースと透過パーツ
ベースは不透明で、分離した要素は PNG の透過を使います。output_format を jpeg にするとベースの形式が変わりますが、レイヤーは透過 PNG のままです。合成用のファイルを保存する際は、この違いを意識してください。返される一式の中で、ベースとレイヤーは異なる役割を持ちます。
各レイヤーには名前、境界ボックス、重なり順を示す zIndex が付きます。ベースには境界ボックスがありません。デザインツールで分離した要素を配置する際に使えるよう、画像ファイルと一緒に情報を保存してください。各出力画像はそれぞれの形を保ちます。
ベースも含めた出力上限
num_outputs は 2〜100 を指定でき、既定は 10 です。分解を計画するときは、ベースも出力 1 枚に数えてください。上限 6 枚なら、ベースと透過レイヤー 5 枚までを含められます。値を大きくすると通常はより細かく分かれますが、実際の結果はそれより少ない枚数になることがあります。
当社のテストでは、メニューは上限 6 枚でベース 1 枚とレイヤー 5 枚が返りました。3 行のポスターは上限 5 枚でベース 1 枚と文字レイヤー 3 枚でした。ポスターの例が示すように、上限を増やしても、モデルがすべての出力枠を埋める必要はありません。
指定に応じた英語の名前
このページの作例では、すべてのレイヤー名と説明を英語で返すよう求めています。当社のテストでも、その指定に応じて英語の名前が返りました。制作工程で英語が必要なら「すべてのレイヤー名と説明を英語で書く」と加えてください。名前の指定は、分離したい要素の一覧とは分けて書きます。
元画像と解像度の設定
512 x 512 ピクセル以上の PNG または JPEG を 1 枚渡します。解像度は auto、1k、1.5k、2k から選べ、既定は auto です。これはレイヤー分解専用の選択肢です。生成や編集で使える 4k は、レイヤー分解の解像度にはありません。
| 設定 | 分解での役割 |
|---|---|
image_url | 完成した元画像を渡す |
| prompt | 必要に応じて要素や対象領域を指定する |
| resolution | auto、1k、1.5k、2k を選ぶ |
num_outputs | ベースを含む全出力画像の上限を決める |
output_format | ベース画像の形式を PNG または JPEG から選ぶ |
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
image_url | はい | 現在は審査を行っています。審査のない版も近日公開予定です。 1 文字以上 |
prompt | いいえ | 任意の項目です。分離したい要素を 5,000 文字以内で指定します。 3 文字以上 · 5000 文字以内 |
num_outputs | いいえ | ベースを含む出力画像の合計枚数に上限を設けます。指定範囲は 2〜100 枚、既定は 10 枚です。 |
resolution | いいえ | auto、1k、1.5k、2k から選びます。既定は auto です。 |
output_format | いいえ | 不透明なベースの形式を png(既定)または jpeg から選びます。どちらでも、分離したレイヤーは透過 PNG のままです。 |
料金
ベースを含む実際の出力枚数と解像度の料金区分に応じて課金されます。見積もり時には指定した出力上限に対する上限額を確保し、精算時に差額を解放します。auto は 2k の料金区分で確保されます。
| 仕様 | 料金 |
|---|---|
| $0.0195 / 枚 |
| $0.0195 / 枚 |
| $0.027 / 枚 |
| $0.027 / 枚 |
ユースケース
雑誌カバーをデザイン要素に分ける
当社の NOIR 表紙テストでは、上限 6 枚で 6 枚が返りました。パーツは背景、人物、誌名、日本語の行、号数の行、バーコードです。写真と文字が組み合わされた表紙に Seedream 5.5 のレイヤー分解を使う具体例になっています。
個別に取り出したい要素が明確なデザインでは、この結果を計画の参考にしてください。必要なパーツは任意の指示文に記載します。返されたパーツと元のレイアウトを比較できるよう、元画像も残しておきましょう。
メニューを分けて次の構成に使う
Kaze Ramen のレイヤー作例は、完成したメニュー画像から始めています。当社のテストでは、上限 6 枚で不透明なベースと 5 枚の透過レイヤーが返りました。後でメニューの要素をまとめて配置するなら、一つのパーツだけを選ばず、返された一式を保存してください。
ポスターの文字を行ごとに分離する
当社の 3 行のポスターテストでは、各行の透過レイヤーとベースが生成されました。指定上限は 5 枚でしたが、合計は 4 枚です。リクエストの上限を必ず得られるファイル数とは考えず、完了後に実際のパーツ数を確認してください。
返されたメタデータでパーツを整理する
名前でレイヤーを識別し、境界ボックスで位置を把握し、zIndex で重なり順を確認します。それぞれの値を対応するファイルと結び付けて保存してください。制作工程で英語のラベルを使っている場合は、英語の名前を指定すると整理しやすくなります。
プロンプトガイドと実践のヒント
要素を把握できている完成画像を選ぶ
まず PNG または JPEG であることと、512 x 512 ピクセル以上であることを確認します。枚数を設定する前に、個別に取り出したい要素を決めてください。表紙なら、必要に応じて背景、人物、タイトル、補足のコピー、バーコードを挙げます。
どのように分離するかを書く
prompt は任意なので、要素の一覧なしでも元画像を送信できます。特定の分け方が重要なら、「誌名、副題、号数の行、バーコードを分離」のように短く指示してください。分解後にどの要素を扱いたいかを伝えられます。
ラベルの言語を直接指定する
英語のラベルが必要なら「レイヤー名を英語で返す」と加えます。表紙とメニューの作例も、この種の指示を使っています。当社が確認した言語は、返されたレイヤー名についてのものです。元画像に印刷された文字を翻訳したり、置き換えたりするという意味ではありません。
境界ボックスのタグで領域を示す
対象領域を指定するには、<bbox>x1 y1 x2 y2</bbox> の形式で 0〜1000 の座標を使います。たとえば <bbox>0 0 1000 300</bbox> は、画像上部に広がる領域を示します。タグの後に分離したい要素の説明を加え、領域と目的の両方を明確にしてください。
必要なパーツに合わせて枚数を決める
ベースと 5 枚のレイヤーを想定するなら、上限を 6 枚にします。さらに細かなパーツが必要なら、上限を増やすと通常はより細かく分かれます。ただし設定は上限であり、枚数の約束ではありません。次のデザイン作業を始める前に、実際に返された一式を必要な要素の一覧と照合してください。
ベースの形式とレイヤーの透過を分けて考える
必要なベースファイルに合わせて png または jpeg を選びます。この選択で分離レイヤーが JPEG になることはありません。ベースの形式に関係なく、レイヤーは透過 PNG を保ちます。構図全体の土台となる画像が必要な場合は、不透明なベースも保存してください。
精算に使う出力枚数を理解する
レイヤー分解は、解像度の料金区分と、ベースを含む実際の出力枚数で課金されます。見積もり時には指定した出力上限に対する金額を確保し、精算時に差額を解放します。解像度の auto は 2k の料金区分で金額を確保します。リクエストの設定を選ぶ際は、ページに表示される料金を確認してください。
レイヤーの結果を一式保存する
ベース、透過 PNG、配置情報をまとめてダウンロードします。任意の指示文と出力上限も一緒に記録してください。元のデザイン、分離したファイル、名前、重なり順の関係を保ち、次の構成作業に使えます。
API クイックスタート
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "bytedance/seedream-5.5/layer-decomposition",
"input": {
"image_url": "https://example.com/reference.png",
"num_outputs": 10,
"output_format": "png",
"resolution": "auto"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
認証、完全なスキーマ、ポーリング、エラー処理は API リファレンスを参照してください。














