Spaces:
Running
Running
File size: 10,644 Bytes
fd71752 8cc094f eba9aaf 8cc094f eba9aaf 8cc094f eba9aaf 8cc094f fd71752 8cc094f eba9aaf 8cc094f eba9aaf 8cc094f eba9aaf 8cc094f eba9aaf 8cc094f fd71752 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 | <!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Seedream 4.0 — ByteDance image generation and editing</title>
<meta name="description" content="Reference for ByteDance's Seedream 4.0 image model: generation and editing endpoints, high-resolution output, and hosted API usage." />
<link rel="canonical" href="https://wavespeed.ai/models/bytedance/seedream-v4?utm_source=huggingface&utm_medium=space&utm_campaign=seedream4" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Seedream 4.0 — ByteDance image generation and editing" />
<meta property="og:description" content="Reference for ByteDance's Seedream 4.0 image model: generation and editing endpoints, high-resolution output, and hosted API usage." />
<meta property="og:url" content="https://wavespeed.ai/models/bytedance/seedream-v4" />
<meta name="twitter:card" content="summary_large_image" />
<link rel="stylesheet" href="style.css" />
</head>
<body>
<header class="site-header">
<div class="wrap">
<a class="brand" href="https://wavespeed.ai?utm_source=huggingface&utm_medium=space&utm_campaign=seedream4" target="_blank" rel="noopener">
<span class="brand-mark" aria-hidden="true"></span>
<span>WaveSpeed AI</span>
</a>
<nav class="header-nav">
<a class="jump opt" href="#capabilities">Capabilities</a>
<a class="jump opt" href="#endpoints">Endpoints</a>
<a class="jump" href="#run">Run it</a>
<a class="jump" href="#resources">Resources</a>
<a href="https://wavespeed.ai/models/bytedance/seedream-v4?utm_source=huggingface&utm_medium=space&utm_campaign=seedream4" target="_blank" rel="noopener">wavespeed.ai ↗</a>
</nav>
</div>
</header>
<main class="wrap">
<div class="hero">
<p class="eyebrow">ByteDance</p>
<h1>Seedream 4.0</h1>
<p class="lede">ByteDance's image generation and editing model. One model covers both text-to-image and instruction-based editing, with output up to 4K. Available as a hosted endpoint; weights are not publicly released.</p>
<ul class="meta">
<li><b>Developer</b> ByteDance</li>
<li><b>Task</b> text-to-image · image editing</li>
<li><b>Max output</b> 4K</li>
<li><b>Weights</b> not public</li>
</ul>
</div>
<section id="capabilities">
<h2>Capabilities</h2>
<p class="section-note">Characteristics reported by ByteDance. Treat them as vendor claims rather than independent measurements.</p>
<div class="grid">
<div class="card">
<h3>Generation and editing in one model</h3>
<p>The same checkpoint handles text-to-image and instruction-driven editing, so a generate-then-refine loop stays within one model.</p>
</div>
<div class="card">
<h3>High-resolution output</h3>
<p>Native output up to 4K without a separate upscaling pass.</p>
</div>
<div class="card">
<h3>Reference-guided consistency</h3>
<p>Accepts reference images to keep a subject or style stable across a set of generations — the basis for batch and series work.</p>
</div>
<div class="card">
<h3>Text rendering</h3>
<p>Handles typography inside the image, including Chinese, which most image models still degrade to unreadable glyphs.</p>
</div>
</div>
</section>
<section id="endpoints">
<h2>Endpoints</h2>
<div class="table-scroll">
<table>
<thead><tr><th>Endpoint</th><th>Task</th></tr></thead>
<tbody>
<tr><td><code>bytedance/seedream-v4</code></td><td>Text-to-image</td></tr>
<tr><td><code>bytedance/seedream-v4/edit</code></td><td>Instruction-based editing</td></tr>
<tr><td><code>bytedance/seedream-v4.5</code></td><td>Updated 4.5 checkpoint</td></tr>
</tbody>
</table>
</div>
</section>
<section id="run">
<h2>Run it</h2>
<p class="section-note">Use <code>bytedance/seedream-v4/edit</code> with an additional <code>images</code> array to edit rather than generate.</p>
<div class="code">
<div class="code-tabs" role="tablist">
<button type="button" role="tab" aria-selected="true" data-panel="run-0">cURL</button>
<button type="button" role="tab" aria-selected="false" data-panel="run-1">Python</button>
<button type="button" role="tab" aria-selected="false" data-panel="run-2">JavaScript</button>
</div>
<pre id="run-0" role="tabpanel"><code># 1. submit the job
curl -X POST "https://api.wavespeed.ai/api/v3/bytedance/seedream-v4" \
-H "Authorization: Bearer $WAVESPEED_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "An architectural photograph of a concrete stairwell, hard afternoon light, 35mm",
"size": "2048*2048",
"enable_base64_output": false,
"enable_sync_mode": false
}'
# -> {"code": 200, "data": {"id": "<request-id>", "status": "created", ...}}
# 2. poll until status is "completed"
curl "https://api.wavespeed.ai/api/v3/predictions/<request-id>/result" \
-H "Authorization: Bearer $WAVESPEED_API_KEY"
# -> {"code": 200, "data": {"status": "completed", "outputs": ["https://..."]}}</code></pre>
<pre id="run-1" role="tabpanel" hidden><code>import os, time, requests
API = "https://api.wavespeed.ai/api/v3"
KEY = os.environ["WAVESPEED_API_KEY"]
HEADERS = {"Authorization": f"Bearer {KEY}"}
# submit
res = requests.post(
f"{API}/bytedance/seedream-v4",
headers={**HEADERS, "Content-Type": "application/json"},
json={
"prompt": "An architectural photograph of a concrete stairwell, hard afternoon light, 35mm",
"size": "2048*2048",
"enable_base64_output": false,
"enable_sync_mode": false
},
timeout=30,
)
res.raise_for_status()
request_id = res.json()["data"]["id"]
# poll
while True:
data = requests.get(
f"{API}/predictions/{request_id}/result",
headers=HEADERS,
timeout=30,
).json()["data"]
if data["status"] == "completed":
print(data["outputs"][0])
break
if data["status"] == "failed":
raise RuntimeError(data.get("error", "generation failed"))
time.sleep(1.5)</code></pre>
<pre id="run-2" role="tabpanel" hidden><code>const API = "https://api.wavespeed.ai/api/v3";
const KEY = process.env.WAVESPEED_API_KEY;
const headers = { Authorization: `Bearer ${KEY}` };
// submit
const submit = await fetch(`${API}/bytedance/seedream-v4`, {
method: "POST",
headers: { ...headers, "Content-Type": "application/json" },
body: JSON.stringify({
"prompt": "An architectural photograph of a concrete stairwell, hard afternoon light, 35mm",
"size": "2048*2048",
"enable_base64_output": false,
"enable_sync_mode": false
}),
});
const { data: { id } } = await submit.json();
// poll
for (;;) {
const res = await fetch(`${API}/predictions/${id}/result`, { headers });
const { data } = await res.json();
if (data.status === "completed") {
console.log(data.outputs[0]);
break;
}
if (data.status === "failed") throw new Error(data.error ?? "generation failed");
await new Promise((r) => setTimeout(r, 1500));
}</code></pre>
</div>
<div class="callout"><p>Requests are asynchronous: <code>POST</code> returns a request id, then you poll <code>/predictions/<id>/result</code> until <code>status</code> is <code>completed</code>. Set <code>enable_sync_mode: true</code> to have the call block and return outputs directly.</p><p>API keys are created in the <a href="https://wavespeed.ai/dashboard?utm_source=huggingface&utm_medium=space&utm_campaign=seedream4" target="_blank" rel="noopener">WaveSpeed dashboard</a>.</p></div>
<div class="btn-row">
<a class="btn" href="https://wavespeed.ai/models/bytedance/seedream-v4?utm_source=huggingface&utm_medium=space&utm_campaign=seedream4" target="_blank" rel="noopener">Open on WaveSpeed</a>
<a class="btn secondary" href="https://wavespeed.ai/docs?utm_source=huggingface&utm_medium=space&utm_campaign=seedream4" target="_blank" rel="noopener">API reference</a>
</div>
</section>
<section id="resources">
<h2>Resources</h2>
<ul class="links">
<li><a href="https://wavespeed.ai/models/bytedance/seedream-v4?utm_source=huggingface&utm_medium=space&utm_campaign=seedream4" target="_blank" rel="noopener"><span>Seedream 4.0 endpoint</span><span class="host">wavespeed.ai</span></a></li>
<li><a href="https://wavespeed.ai/models/bytedance/seedream-v4/edit?utm_source=huggingface&utm_medium=space&utm_campaign=seedream4" target="_blank" rel="noopener"><span>Editing endpoint</span><span class="host">wavespeed.ai</span></a></li>
<li><a href="https://wavespeed.ai/models/bytedance/seedream-v4.5?utm_source=huggingface&utm_medium=space&utm_campaign=seedream4" target="_blank" rel="noopener"><span>Seedream 4.5</span><span class="host">wavespeed.ai</span></a></li>
<li><a href="https://wavespeed.ai/collections/bytedance?utm_source=huggingface&utm_medium=space&utm_campaign=seedream4" target="_blank" rel="noopener"><span>ByteDance collection</span><span class="host">wavespeed.ai</span></a></li>
</ul>
</section>
</main>
<footer class="site-footer">
<div class="wrap">
<p>This page is a model reference maintained by WaveSpeed AI. The model itself is developed and released by its respective authors; trademarks belong to them. WaveSpeed AI provides hosted inference for it.</p>
<div class="footer-links">
<a href="https://wavespeed.ai?utm_source=huggingface&utm_medium=space&utm_campaign=seedream4" target="_blank" rel="noopener">WaveSpeed AI</a>
<a href="https://wavespeed.ai/docs?utm_source=huggingface&utm_medium=space&utm_campaign=seedream4" target="_blank" rel="noopener">Docs</a>
<a href="https://huggingface.co/wavespeed" target="_blank" rel="noopener">Hugging Face</a>
</div>
</div>
</footer>
<script src="tabs.js"></script>
</body>
</html>
|