# Bytedance | Seedream | v5 | Layer Decomposition Seedream v5 Layer Decomposition turns a single scene into separate transparent PNG layers, giving designers editable assets for ads and product visuals. ## API Information - **Model Slug:** bytedance-seedream-v5-layer-decomposition - **Branded URL:** https://www.eachlabs.ai/bytedance/seedream-v5/bytedance-seedream-v5-layer-decomposition - **Provider:** bytedance - **Category:** Image to Image - **Output Type:** object - **Status:** active - **Base Cost:** $0.0225–$0.045 per image - **Estimated Processing Time:** 80 seconds - **Interactive Demo:** https://www.eachlabs.ai/ai-models/bytedance-seedream-v5-layer-decomposition ## Pricing - **Charge Type:** dynamic - **Estimate:** $0.0225–$0.045 per image - **Pricing Details:** high images: $0.045 - **Pricing Details:** low images: $0.0225 ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | image | string | Yes | - | - | URL of the single image to decompose into layers. PNG or JPEG, under 30 MB, total pixels between 512x512 and 6000x6000, aspect ratio between 1/16 and 16. Only one image is supported. | | prompt | string | No | - | - | Optional instruction describing which elements to split into layers. Leave empty to let the model automatically decompose all major elements. Supports natural language and precise x1 y1 x2 y2 coordinate tags (normalized thousandths). Up to 16 layers plus 1 base image are returned. | | size | string | No | auto | auto, 1K, 1.5K, 2K | Output resolution tier. auto (default) matches the input image size (clamped to 1K-2K). The base image keeps the original aspect ratio; each layer keeps the aspect ratio of its region in the original image. | | output_format | string | No | jpeg | jpeg, png | File format of the base image. Each layer is always output as PNG (with transparency) regardless of this setting. | | optimize_prompt_mode | string | No | standard | standard, fast | Prompt optimization mode. standard (default) yields better quality; fast returns results sooner. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "bytedance-seedream-v5-layer-decomposition", "input": { "image": "https://cdn-us.eachlabs.ai/defaults/6e0adf00e14e4a19ac24f050a41bb998.png" } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "object", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "Authorization: Bearer YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `Authorization` bearer token | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **Bytedance | Seedream | v5 | Layer Decomposition Overview** **Bytedance | Seedream | v5 | Layer Decomposition** turns a single image into separate transparent layers, so teams can edit, move, and reuse visual elements instead of flattening them into one final frame. It sits in the Seedream v5 family from ByteDance and is positioned for professional image workflows rather than casual generation. Its primary differentiator is **layer separation**: the model can decompose a scene into independently editable assets, which is especially useful for design, advertising, and product composition pipelines. This makes the model useful when you need editable outputs such as foreground subjects, text, background elements, and environmental details. In practice, it supports workflows where a generated or supplied scene must be broken into production-ready components for downstream design tools. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `Authorization: Bearer YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.