Documentation Index Fetch the complete documentation index at: https://docs.oxen.ai/llms.txt
Use this file to discover all available pages before exploring further.
Try Seedream 4.0 in the Workbench Run this model interactively, tune parameters, and compare outputs.
Model ID: bytedance-seedream-4
Seedream 4.0 is a Multimodal LLM designed for unified image generation and advanced image editing via natural language prompts.
It excels in high-speed, high-resolution image synthesis and editing , supporting tasks such as photorealistic image generation, precise object addition/removal, and consistent multi-image output. The model offers robust handling of both Chinese and English prompts, maintains character and style consistency across sets, and enables batch processing for efficient workflows.
Some other noteworthy features of Seedream 4.0 include the ability to generate up to 9–10 matching images in a single batch, seamless style transfer, and detailed transformations—making it valuable for storyboarding, product design, and creative content production.
Metric Value Parameter Count Unknown Mixture of Experts Unknown Context Length Unknown Multilingual Yes Quantized* Unknown
*Quantization is specific to the inference provider and the model may be offered with different quantization levels by other providers.
Example request
Use the Workbench as a request builder: configure parameters for this model in the UI, then open the API tab to copy the exact cURL or Python call.
Sync
Async
Async with SSE
See the image generation reference for more details. curl -X POST https://hub.oxen.ai/api/ai/images/generate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OXEN_API_KEY " \
-d '{
"model": "bytedance-seedream-4",
"prompt": "Add a funny hat"
}'
curl -X POST https://hub.oxen.ai/api/ai/images/generate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OXEN_API_KEY " \
-d '{
"model": "bytedance-seedream-4",
"prompt": "Add a funny hat",
"input_image": [
"https://hub.oxen.ai/api/repos/ox/Oxen-Character-Simple-Vector-Graphic/file/main/images/reference/bloxy_white_bg.png"
]
}'
See the async queue reference for more details. # Enqueue, capture the generation id.
GEN_ID = $( curl -s -X POST https://hub.oxen.ai/api/ai/queue \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OXEN_API_KEY " \
-d '{
"model": "bytedance-seedream-4",
"prompt": "Add a funny hat"
}' | jq -r '.generations[0].generation_id' )
# Poll until the generation reaches a terminal status.
while true ; do
STATUS = $( curl -s -H "Authorization: Bearer $OXEN_API_KEY " \
"https://hub.oxen.ai/api/ai/queue/ $GEN_ID " | jq -r '.status' )
echo "Status: $STATUS "
case $STATUS in succeeded | failed | cancelled ) break ;; esac
sleep 5
done
# Print the result.
curl -s -H "Authorization: Bearer $OXEN_API_KEY " \
"https://hub.oxen.ai/api/ai/queue/ $GEN_ID " | jq .
# Enqueue, capture the generation id.
GEN_ID = $( curl -s -X POST https://hub.oxen.ai/api/ai/queue \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OXEN_API_KEY " \
-d '{
"model": "bytedance-seedream-4",
"prompt": "Add a funny hat",
"input_image": [
"https://hub.oxen.ai/api/repos/ox/Oxen-Character-Simple-Vector-Graphic/file/main/images/reference/bloxy_white_bg.png"
]
}' | jq -r '.generations[0].generation_id' )
# Poll until the generation reaches a terminal status.
while true ; do
STATUS = $( curl -s -H "Authorization: Bearer $OXEN_API_KEY " \
"https://hub.oxen.ai/api/ai/queue/ $GEN_ID " | jq -r '.status' )
echo "Status: $STATUS "
case $STATUS in succeeded | failed | cancelled ) break ;; esac
sleep 5
done
# Print the result.
curl -s -H "Authorization: Bearer $OXEN_API_KEY " \
"https://hub.oxen.ai/api/ai/queue/ $GEN_ID " | jq .
See the async queue reference for more details. # Enqueue, capture the generation id.
GEN_ID = $( curl -s -X POST https://hub.oxen.ai/api/ai/queue \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OXEN_API_KEY " \
-d '{
"model": "bytedance-seedream-4",
"prompt": "Add a funny hat"
}' | jq -r '.generations[0].generation_id' )
# Stream the SSE channel, grab the data line that follows a
# media_generation_completed event for our id, and pretty-print it.
curl -sN -H "Authorization: Bearer $OXEN_API_KEY " https://hub.oxen.ai/api/events \
| awk -v id=" $GEN_ID " '
/^event: media_generation_completed$/ { expect=1; next }
/^data: / && expect {
payload = substr($0, 7)
if (index(payload, "\"generation_id\":\"" id "\"")) { print payload; exit }
expect = 0
}
' | jq .
# Enqueue, capture the generation id.
GEN_ID = $( curl -s -X POST https://hub.oxen.ai/api/ai/queue \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OXEN_API_KEY " \
-d '{
"model": "bytedance-seedream-4",
"prompt": "Add a funny hat",
"input_image": [
"https://hub.oxen.ai/api/repos/ox/Oxen-Character-Simple-Vector-Graphic/file/main/images/reference/bloxy_white_bg.png"
]
}' | jq -r '.generations[0].generation_id' )
# Stream the SSE channel, grab the data line that follows a
# media_generation_completed event for our id, and pretty-print it.
curl -sN -H "Authorization: Bearer $OXEN_API_KEY " https://hub.oxen.ai/api/events \
| awk -v id=" $GEN_ID " '
/^event: media_generation_completed$/ { expect=1; next }
/^data: / && expect {
payload = substr($0, 7)
if (index(payload, "\"generation_id\":\"" id "\"")) { print payload; exit }
expect = 0
}
' | jq .
Fetch model details
The models endpoint returns the full model object, including its json_request_schema.
curl -H "Authorization: Bearer $OXEN_API_KEY " https://hub.oxen.ai/api/ai/models/bytedance-seedream-4
Request parameters
Required parameters
Field Type Default Description promptstring"Add a funny hat"Text description of what you want to generate, or the instruction on how to edit the given image.
Optional parameters
Field Type Default Description input_imagearray<string>["https://hub.oxen.ai/api/repos/ox/Oxen-Character-Simple-Vector-Graphic/file/main/images/reference/bloxy_white_bg.png"]Input images to transform or use as reference (supports multiple image urls)