Flexible parameters
Configure 4 documented parameters, including image_url, output_format, prompt, size.
Split one image into an editable base image and transparent PNG layers
curl -X POST https://runapi.ai/api/v1/seedream/decompose_layers \
-H "Authorization: Bearer $RUNAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-5-pro-layer-decomposition",
"prompt": "Create a social media graphic for a coffee shop sale with the text '50% OFF' in bold, warm tones, 4K."
}'
import { SeedreamClient } from "@runapi.ai/seedream";
const client = new SeedreamClient();
const result = await client.decomposeLayers.run({
model: "seedream-5-pro-layer-decomposition",
prompt: "Create a social media graphic for a coffee shop sale with the text '50% OFF' in bold, warm tones, 4K.",
});
import os
import requests
response = requests.post(
"https://runapi.ai/api/v1/seedream/decompose_layers",
headers={"Authorization": f"Bearer {os.environ['RUNAPI_API_KEY']}"},
json={"model":"seedream-5-pro-layer-decomposition","prompt":"Create a social media graphic for a coffee shop sale with the text '50% OFF' in bold, warm tones, 4K."}
)
response.raise_for_status()
<?php
$client = curl_init("https://runapi.ai/api/v1/seedream/decompose_layers");
curl_setopt_array($client, [
CURLOPT_HTTPHEADER => ["Authorization: Bearer " . getenv("RUNAPI_API_KEY"), "Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode([
'model' => 'seedream-5-pro-layer-decomposition',
'prompt' => 'Create a social media graphic for a coffee shop sale with the text \'50% OFF\' in bold, warm tones, 4K.',
])
]);
$response = curl_exec($client);
RunApi client = new RunApi(System.getenv("RUNAPI_API_KEY"));
Task task = client.decomposeLayers().run({"model":"seedream-5-pro-layer-decomposition","prompt":"Create a social media graphic for a coffee shop sale with the text '50% OFF' in bold, warm tones, 4K."});
task.waitForResult();
require "runapi/seedream"
client = RunApi::Seedream::Client.new
result = client.decompose_layers.run(
model: "seedream-5-pro-layer-decomposition",
prompt: "Create a social media graphic for a coffee shop sale with the text '50% OFF' in bold, warm tones, 4K."
)
client := runapi.NewClient(os.Getenv("RUNAPI_API_KEY"))
task, err := client.decomposeLayers.Run({"model":"seedream-5-pro-layer-decomposition","prompt":"Create a social media graphic for a coffee shop sale with the text '50% OFF' in bold, warm tones, 4K."})
if err != nil { log.Fatal(err) }
task.Wait()
$ runapi generate \
--model seedream-5-pro-layer-decomposition \
--endpoint decompose_layers \
--wait
9 versions available
Pick any model and generate in seconds.
| Provider | Bytedance |
| Model ID | seedream-5-pro-layer-decomposition |
| Modality | Image |
| Task types | Asynchronous |
| API endpoint | /api/v1/seedream/decompose_layers |
| Billing unit | call |
| Input parameters | image_url, output_format, prompt, size |
| Output format | png, jpeg |
| Catalog status | Operational |
Sign up for free and create an API key for seedream-5-pro-layer-decomposition from the dashboard.
POST to /api/v1/seedream/decompose_layers with the seedream-5-pro-layer-decomposition model slug and your parameters.
Poll the task or follow the callback to retrieve the completed seedream-5-pro-layer-decomposition result.
Configure 4 documented parameters, including image_url, output_format, prompt, size.
Exposes 1 public endpoint(s): decompose_layers.
Metered by call with no subscription requirement.
sizeNo description available. (auto, 1K, 1.5K, 2K)
promptOptional instructions describing which elements to separate.
image_urlExactly one public PNG, JPEG, WebP, BMP, TIFF, or GIF image URL; HEIC and HEIF are unsupported. Maximum 30 MB, 262,144-36,000,000 total pixels, and aspect ratio 1:16-16:1.
output_formatBase image format. Separated layers are PNG. (png, jpeg)
Auto-generate lifestyle product photos for e-commerce catalogs that lack studio photography.
Rapidly concept environments and characters before committing to final art.
Generate unique cover art and illustrations for blog posts and articles at scale.
Pass the model ID shown in the quickstart.
Per-key rate limits scale with your usage tier. The pricing page shows current limits. If you need higher throughput, contact support to discuss tier upgrades.
Yes. Variant is a parameter in the request. Switch by changing the model ID — no code changes, no re-authentication, no separate billing setup. All variants share the same API key and request shape.
Where streaming is available, RunAPI streams end-to-end. LLM models support token-level streaming. Media models use async task polling or webhook callbacks for result delivery.
Open an issue on the public GitHub repo or email support at [email protected]. Include the task ID and model ID so the team can investigate the specific generation.
No. Your RunAPI API key is enough to access this variant and every other model in the catalog. You do not need accounts with the underlying provider.
We're here to help with enterprise setup, integrations, and technical questions.
Contact Us