Claude Opus 5.5 đã có trên SeedRouter

Seedream 5.0 Pro tách lớp ảnh: kết quả trả về và cách ghép lại

Tách lớp ảnh bằng Seedream 5.0 Pro qua API: ảnh nền và các lớp PNG chứa gì, cách đặt lại từng lớp, cách tính phí và code ghép ảnh chạy được.

Đọc dạng Markdown

Tách lớp ảnh bằng Seedream 5.0 Pro nhận một ảnh hoàn chỉnh và trả về ảnh nền cùng tối đa 16 lớp PNG trong suốt, mỗi lớp có tên, mô tả, thứ tự xếp chồng và hộp bao.[1] Trong API, đây là tùy chọn layer_decomposition trong yêu cầu ảnh thông thường. Gửi một ảnh, nhận lại các phần của ảnh đó.

Chúng tôi chạy thử hai lần trên SeedRouter vào ngày 1 và 2 tháng Mười Một năm 2026, với hai poster tự tạo. Kết quả chính: tách lớp đồ họa phẳng khá sạch, kích thước tệp lớp trả về khác kích thước vùng mà lớp chiếm trên khung vẽ, và hình mờ mặc định sẽ nằm rải rác trong ảnh ghép lại nếu bạn để bật. Số liệu và code ở bên dưới. Xem tham số trong tài liệu API Seedream 5.0 Pro; Playground nằm trên trang mô hình.

Một yêu cầu trả về những gì

Ảnh thử nghiệm là poster nhạc jazz 1248 × 1872: tiêu đề dùng phông có chân, mặt trăng màu san hô, người chơi saxophone cắt từ những con sóng giấy, một dải sóng ở phía dưới và một dòng thông tin sự kiện. Chúng tôi gửi với size: "1.5K", không có prompt và tắt hình mờ. Tác vụ hoàn tất sau 108 giây, trả về sáu ảnh: ảnh nền và năm lớp.

Poster nhạc jazz và năm lớp trong suốt do Seedream 5.0 Pro trả về: sóng, mặt trăng, người chơi saxophone, tiêu đề và dòng thông tin sự kiện

z_indexname (nguyên văn kết quả)Hộp bao trên ảnh nềnTệp PNG
0ảnh nềntoàn bộ khung vẽ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

Có hai điều khiến chúng tôi bất ngờ theo hướng tốt. Ảnh nền trả về là tờ giấy trống: mọi thành phần đã bị loại bỏ, còn vân giấy được điền vào những chỗ trước đó có các thành phần ấy. Lớp mặt trăng (mô hình gọi là mặt trời) là một hình tròn hoàn chỉnh, kể cả phần bị saxophone che trong ảnh gốc. Bạn có thể dịch người chơi sang bên mà phía sau không bị thủng.

Lần chạy đầu có nhiều thành phần hơn: ảnh quảng cáo ấm rót cà phê pour-over 1024 × 1536, gửi ở 1K mà không có prompt. Lần đó mất 140 giây và trả về ảnh nền cùng 13 lớp. Mô hình tách riêng ấm, cốc, đĩa lót, bát hạt cà phê, hạt rời, cây, từng biểu tượng trong ba biểu tượng tính năng và bốn khối văn bản. Trường description hữu ích hơn chúng tôi tưởng. Với cây, nội dung là: "Blurred green plant leaves in the top right corner. Extract the entire foliage, exclude the surrounding wall background." (Lá cây xanh bị làm mờ ở góc trên bên phải. Tách toàn bộ tán lá, loại trừ phần nền tường xung quanh.)

Có một giới hạn cần biết trước khi lên kế hoạch chỉnh sửa: các lớp chữ là ảnh chứa chữ. Lớp tiêu đề là PNG chứa các chữ cái, không phải phông chữ để bạn gõ lại nội dung. Muốn đổi câu chữ, bạn vẫn phải tạo hình ảnh mới cho lớp đó.

Tệp PNG lớn hơn hộp bao của chúng

Hãy nhìn lại hai cột cuối trong bảng. Mỗi tệp lớp đều lớn hơn vùng nó chiếm trên ảnh nền, với hệ số khác nhau: 1,37× cho người chơi, 1,51× cho sóng, 1,67× cho tiêu đề, 2,66× cho dòng thông tin sự kiện và 2,68× cho mặt trăng. Tỷ lệ khung hình khớp với hộp bao trong sai số khoảng một phần trăm, nên hình không bị méo, nhưng dán lớp ở kích thước tệp gốc sẽ khiến nó quá lớn.

Tài liệu chính thức ghi mỗi lớp có “độ phân giải gần với độ phân giải được chỉ định bằng size” và giữ tỷ lệ khung hình của vùng tương ứng.[1] Kết quả của chúng tôi không gần 1.5K: ở thiết lập đó, năm tệp có từ 0,21 đến 1,29 triệu pixel. Khi ghép ảnh, hãy dựa vào kích thước hộp bao thay vì kích thước tệp.

Nên dùng hộp bao nào để ghép lớp ảnh?

Mỗi lớp có hai cách biểu diễn cùng một hộp bao.[1] bounding_box.absolute là [left, top, right, bottom] tính theo pixel của ảnh nền được trả về. bounding_box.normalized là cùng hộp bao đó tính theo phần nghìn chiều rộng và chiều cao ảnh nền, chẳng hạn [198, 260, 792, 754] cho người chơi saxophone. Dùng absolute để ghép lại trên ảnh nền trả về và normalized để đặt các lớp lên khung vẽ có kích thước khác bất kỳ.

Cách ghép lại poster từ các lớp

Sắp xếp ảnh theo z_index, bắt đầu từ ảnh nền, co từng lớp về kích thước hộp bao tuyệt đối rồi dán với kênh alpha của lớp. Đây là script chúng tôi chạy trên tác vụ đã hoàn tất:

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")

Poster nhạc jazz gốc bên trái và phiên bản ghép lại từ các lớp Seedream 5.0 Pro bên phải

Bản ghép lại bên phải khá sát với ảnh gốc bên trái. Đo từng pixel, chênh lệch trung bình khoảng 7 đến 9 mức trên thang 255 cho mỗi kênh màu, và chỉ 2,8% pixel chênh hơn 32 mức. Những pixel đó nằm trên đường viền các thành phần. Bóng mềm mà mỗi hình giấy đổ lên nền đã biến mất. Bóng không thuộc lớp nào và đã bị xóa khỏi ảnh nền. Nếu hình ảnh cần những bóng đó, hãy thêm lại trong trình chỉnh sửa.

Tắt hình mờ trước khi tách lớp

Trường watermark mặc định là true, thêm một dấu nhỏ ghi “AI generated” ở góc dưới bên phải.[1] Trên ảnh thông thường, đó là một dấu ở một góc. Chúng tôi để bật trong lần chạy đầu. Ảnh nền trả về có dấu ở góc, và bảy trong số 13 lớp cũng vậy, mỗi lớp có dấu ở góc dưới bên phải PNG tương ứng, trên vùng pixel trong suốt. Sáu lớp không có dấu là các biểu tượng nhỏ và những khối văn bản mỏng hơn.

Poster ấm rót ghép lại từ các lớp Seedream 5.0 Pro, với dấu “AI generated” của lớp cây được đánh dấu trên tường và phóng to

Khi ghép lại poster đó, dấu của lớp cây nằm trên tường, ở giữa cạnh phải, chẳng gần góc nào. Các lớp có dấu khác cũng đưa dấu vào bên trong ảnh, thu nhỏ cùng với lớp. Hãy gửi "watermark": false khi tách lớp, trừ khi bạn sẵn sàng xóa dấu trên từng lớp.

Gửi yêu cầu và thanh toán

Tách lớp dùng cùng endpoint với tạo ảnh. Đây là yêu cầu chúng tôi đề xuất cho poster:

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

Đầu vào phải là đúng một PNG hoặc JPEG, tỷ lệ khung hình từ 1:16 đến 16:1, tối đa 30 MB, với tổng số pixel từ 262.144 (512 × 512) đến 36.000.000 (6000 × 6000).[1] output_format chỉ áp dụng cho ảnh nền. Các lớp luôn là PNG.[1] Nếu một lớp thất bại, toàn bộ yêu cầu thất bại; không có kết quả từng phần.[1]

Tách lớp ảnh được tính phí thế nào?

Trên SeedRouter, mọi ảnh trả về đều được tính phí: ảnh nền và từng lớp. Toàn bộ ảnh trong yêu cầu dùng chung một bậc giá. Chỉ áp dụng bậc giá thấp khi mọi ảnh trả về đều không vượt quá 2,61 triệu pixel; chỉ một ảnh lớn hơn cũng đưa toàn bộ yêu cầu lên bậc giá cao. Khi tiếp nhận tác vụ, chúng tôi tạm giữ chi phí của 17 ảnh, số ảnh tối đa một lần tách lớp có thể trả về, và chỉ tính phí số ảnh thực tế nhận được. Hai lần chạy của chúng tôi trả về 14 và 6 ảnh, cả hai đều ở bậc giá thấp. Tách lớp thất bại không bị tính phí.

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.

Có nên dùng size auto khi tách lớp ảnh?

auto là mặc định và giữ kích thước pixel của ảnh nền cùng từng lớp gần với kích thước gốc: phần nào nhỏ hơn 1K được trả về ở 1K, lớn hơn 2K được trả về ở 2K.[1] Cách này hữu ích khi bạn muốn mỗi phần có kích thước gần với kích thước gốc. Nhưng cũng dễ đưa yêu cầu lên bậc giá cao, vì chỉ cần một lớp lớn hoặc ảnh nền lớn là đủ. Khi tạm giữ tiền, chúng tôi cũng tính auto theo bậc giá cao. Với poster và đồ họa mạng xã hội, chúng tôi sẽ gửi 1.5K, có giá bằng 1K.

Có thể chỉ định những phần cần tách lớp không?

Có. prompt không bắt buộc khi tách lớp. Nếu không có, mô hình tự chọn các thành phần chính; nếu có, mô hình tách những phần bạn yêu cầu.[1] Yêu cầu số lớp vượt giới hạn có thể khiến một số lớp bị bỏ sót.[1] Cả hai lần chúng tôi đều không dùng prompt, và mô hình tự chọn khá hợp lý: không gộp ba biểu tượng, đồng thời giữ hạt cà phê rời tách biệt với bát.

Khi nào nên dùng tách lớp

Với đồ họa phẳng, tách lớp giúp tiết kiệm thời gian rõ rệt. Cả hai poster đều trả về các phần có thể sắp xếp lại ngay, những vùng bị che đã được điền đầy. Hãy dự tính sẽ lâu hơn tạo ảnh thông thường. Hai lần tách lớp của chúng tôi mất 108 và 140 giây; các lần tạo ảnh 1K mất từ 35 đến 55 giây.

Tính năng này kém hiệu quả hơn khi giá trị hình ảnh nằm ở những thứ không thuộc lớp nào: bóng đổ và chữ mà bạn muốn sửa dưới dạng văn bản. Chúng tôi chưa thử trên ảnh chụp có độ sâu trường ảnh lớn và các chủ thể chồng lên nhau, nên chưa thể nói mô hình xử lý trường hợp đó ra sao.

Nguồn tham khảo

  1. ByteDance. Image generation API (tài liệu ModelArk). Kiểm tra ngày 2 tháng Mười Một năm 2026 tại docs.byteplus.com.

Hướng dẫn liên quan