Seedream
Seedream (BytePlus ModelArk) is ByteDance's image family. Brut carries the Seedream 5.0 trio: Pro, Flash and Lite, for text-to-image and image-to-image, on the same BytePlus key as Seedance. It is the cheapest photoreal tier in Brut, and the one BytePlus trusts for people that Seedance will animate.
Get a key
Nothing new to paste. Seedream rides your Seedance key automatically: ⚙ Settings → Seedream reads uses your Seedance (BytePlus) key. Set a key there only to split Seedream's billing from Seedance's.
Activate the models first. Like every ModelArk model, each one is switched on once per account: open the console's Model activation page (console.byteplus.com/ark) and activate Seedream 5.0 Pro, Seedream 5.0 Flash and Seedream 5.0 Lite. No resource pack is needed: activation is a one-time switch and the images bill pay-as-you-go on the account's credits or card (see Seedance, pricing). Until then a call fails with "has not activated the model", shown verbatim on the node. Lite comes with a free quota of 50 images.
Models
| Model | Sizes | Price per image | Inputs |
|---|---|---|---|
| Seedream 5.0 Pro | 1K · 1.5K · 2K | $0.045 at 1K and 1.5K, $0.09 at 2K; from the second input image $0.003 each | up to 10 reference images |
| Seedream 5.0 Flash | 1K · 1.5K · 2K | $0.018, any size | up to 10 reference images |
| Seedream 5.0 Lite | 2K · 3K · 4K | $0.035, any size | up to 14 reference images |
Pro is the quality tier (BytePlus's pick for "commercial visual production": precise editing, lifelike scenes). Flash is the same family at a third of the price, for exploration and high-volume passes. Lite is the older line with the biggest canvases and 50 free images. Typical speed: Flash about 15 s for a 1K image, Pro about 30 s, Lite about 75 s at 2K. 1.5K bills like 1K and BytePlus calls it the better quality pick, so Pro and Flash default to it; Lite defaults to 2K.
All three appear wherever an image model is picked: Text → Image, Image → Image, Inpaint, Compose, Multi-Shot, the Storyboard's keyframes, the Sketchpad's generation layers, the workflow cards' Model knobs. On Annotate & Correct, Pro and Flash are on the menu; Lite is not.
Sizes, formats and inputs
- Exact sizes. A picture comes back at the size the menu names (a 16:9 image at 1K is 1424 × 800, at 2K 2816 × 1584). On an edit, aspect auto keeps the input's own proportions, and when the input already sits in the size you picked (a 2048 × 1143 render at 1.5K, say) it comes back at exactly its own dimensions. Pick a bigger or smaller size and the output moves to that size at the input's aspect, so the picture is resampled.
- Edits: Same as the picture. On Image → Image, Inpaint, Compose and Annotate & Correct, the Size menu opens with Same as the picture on all three Seedream models, and it is what the node takes when you switch it to Seedream. The result comes back at the input's pixel dimensions (the scene's, on Compose), so it lays over the original in a Layers or Compare node with nothing to scale. Each model's range sets the limit: Pro and Flash 0.9 to 4.6 MP, Lite 3.7 to 16.8 MP; below it the picture comes back at the model's smallest size, above it at its largest, the proportions kept. A node that already carries a picked size keeps it, and a stage hidden inside a workflow card keeps the size its card set: both have "Same as the picture" one pick away.
- PNG, lossless downstream (Layers, PSD export, Seedance frames), and watermark off: BytePlus stamps an "AI-generated" mark bottom right by default, Brut always turns it off.
- Input limits. Your pictures go in at full size and quality, within BytePlus's limits: 30 MB per image, 196 px² to 36 MP, both sides above 14 px, aspect between 1:16 and 16:1. A picture outside them stops the run before the call, with a clear message naming the fix.
- Inpaint masks are guidance. Seedream has no native mask input, so on the Inpaint node the mask steers the edit, as on Gemini. Strong steering, never a pixel lock; stack the result over the original in Layers when the rest must stay exact.
- Brut saves every image to your project as soon as it's ready.
People for Seedance: the trusted path
ModelArk's moderation refuses Seedance start frames and references that look like they contain a real person, and it cannot tell a generated face from a photograph (see the Seedance gotchas). The exception BytePlus documents: face-containing images generated by Seedream on your own account are trusted as Seedance 2.x input for 30 days. Seedance's own clips and their frames are trusted the same way.
We measured it with real requests and a clear face in frame, on Seedance 2.5, 2.0 Fast and 2.0 Mini, as a start frame and as a reference:
| The picture | Seedance |
|---|---|
| Seedream text-to-image, on Lite, Pro or Flash, the whole picture | accepted |
| One text-to-image character sheet (several views and expressions in one picture) | accepted |
| A frame of a Seedance clip (its last frame, or one taken from the middle) | accepted |
| Any Seedream edit (Image → Image), on Lite, Pro or Flash, even of a text-to-image picture | refused |
| A crop of an accepted picture | refused |
| The same portrait made by another maker | refused |
A resize and a re-export (PNG, JPEG) keep the trust. A crop loses it, and so does anything that redraws the picture.
What this means in practice:
- One populated picture: write it as a Text → Image prompt on any Seedream model and wire the result, uncropped, into Image → Video.
- A character: the picture Seedance accepts is the one made from text. With the Character Lab, that is the design output when nothing is wired into character; its expression and turnaround sheets are edits of the design, so Seedance refuses them on every model. To give Seedance several views, write one text-to-image picture that is the whole sheet (full-body views in one row, expression close-ups in another) and wire that single picture as the reference.
- Continuing a shot: the last frame of a Seedance clip is accepted as the next clip's start frame.
- People added to an existing render (an edit): refused when a face shows. Put the people in with the video prompt instead.
When Seedance refuses a picture, the node's message says which wired picture it was (the start frame, reference 2) and repeats this rule. And before any run, the Image → Video node shows which wired pictures carry the trust: see the trust line.
Decompose into layers
Seedream 5.0 Pro and Flash can split one flat picture into a base (the scene with the elements lifted out and the gaps filled in) plus up to 16 layers with transparency, each with a name, a description and its place in the picture. In Brut: right-click any picture → Decompose into layers… (outputs, imports, board tiles, the magnifier), or Decompose result… under a Layers node's result.
- A small form asks for the model (Flash by default: the cheapest, and the one measured), the size and, if you want, what to separate ("the sky, the building, the trees in front, the people"). Leave that empty and the model picks the main elements itself.
- The price is shown before anything is spent. BytePlus bills every picture it returns, the base included: $0.018 each on Flash; on Pro $0.0225 each up to 2.61 MP and $0.045 above, each picture on its own pixels. How many layers come back is the model's call, so the dialog states the ceiling (16 layers and the base, 17 pictures: $0.31 on Flash) and the ledger row is priced from what actually came back. Measured on Flash: a 2752 × 1536 render split into a base and three layers (the sky, the building, the trees) in just under a minute for $0.072.
- The result lands as a new Sketchpad beside the picture: the base at the bottom, every layer above it in stacking order, scaled into its place and named by the model, and the original on top, hidden, one click on its eye away for a comparison. The node shows the recomposed picture at once. From there: move, scale, hide or mask a layer, paint between them, add a generation layer, or Export PSD and carry on in Photoshop.
- Size. Same as the picture (the default) brings the base back at the picture's own dimensions when it sits between 0.9 and 4.6 MP, so the stack lines up with the original pixel for pixel; a smaller picture comes back at 1K, a larger one at 2K. With this setting each layer also comes back at exactly its size in the picture, so nothing is rescaled. Or pick 1K, 1.5K or 2K yourself: the layers then come back near that resolution, usually larger than their place in the picture (detail to spare if you scale one up), and Brut scales them into place.
- One picture in, from 512 × 512 px to 36 MP, up to 30 MB, in any common format (PNG, JPEG, WEBP, TIFF), with no quality lost.
- The model lifts each element out whole. Trees that stood behind a hedge can come back with their full trunks, which then show in front of the base. The words you give it steer what comes back; and in the Sketchpad a layer mask hides the part that should stay behind (select the layer, add a mask, paint black over the trunks).
- All or nothing. If one layer fails on BytePlus's side the whole call fails, and the message is shown as it came. Nothing lands on the canvas.
- Your own BytePlus key. The ability is not sold through OpenRouter: on a seat without the key the menu item stays in place, greyed, and says why.
- Every file is kept in the project's outputs, named after the run (
…_sketch-12-layers_seedream_SR5F_…, then-2,-3in stacking order). Find in ledger on the Sketchpad's preview, or on any of the files, shows the run with its cost.
Annotate & Correct
On Seedream 5.0 Pro and Flash, the Annotate & Correct node places each edit where you marked it. Draw your marks as usual, pick Seedream on the node, run: each mark lands where you drew it, and nothing of the markup shows in the result.
- An arrow points with its tip, a point marks a spot. A box, circle, lasso or polygon marks the area around it, not its exact outline: when an area holds several things, name the one you mean in the note.
- A mark's reference image and its color chip travel with that mark.
- Size: Same as the picture is the default on this node for Seedream: the result comes back at the picture's own dimensions (between 0.9 and 4.6 MP; a smaller picture comes back at 1K, a larger one at 2K), so the result and the original stack at the same size in a Layers node. Pick 1K, 1.5K or 2K to resample instead.
- The same size is not the same pixels: the model redraws the frame, and a result can sit a few pixels off its original (3 to 6 px on a 2752 × 1536 scene we measured). 🗇 Reconcile with input lays the result back over the original and keeps only the edits: everything else is the original's own pixels (how it works).
What it costs
- The node shows the per-image price before the run (the output price: $0.045 / $0.018 / $0.035, Pro 2K $0.09). The ledger row is priced from what came back: the actual output pixels decide the tier (1K and 1.5K bill the same; above 2.61 MP is the 2K rate), and Pro's input-image surcharge is added from the count BytePlus reports ($0.003 per input after the first).
- A moderation refusal is not billed and the node says so.
- A decomposition bills per picture returned (the base and each layer), at its own rate: $0.018 on Flash, $0.0225 or $0.045 on Pro. The price dialog states the ceiling, the ledger the real amount.
- No BytePlus key? All three also run through an OpenRouter key, marked ⇄ runs via OpenRouter on the node, with OpenRouter's size menu (1K / 2K for Pro and Flash, 2K / 4K for Lite; no 1.5K or 3K there) at OpenRouter's listed pass-through prices. The ledger records the exact billed amount of every routed job.
Gotchas
- Lite's smallest output is 2K (its pixel floor is 3.7 MP); Pro and Flash render between 0.9 and 4.6 MP. The size menus follow each model.
- Why Pro and Flash stop at 2K. It is BytePlus's limit, not Brut's: those two models render at most 4.62 MP, which is a 2K picture (2816 × 1584 at 16:9). 3K and 4K exist on Lite only. For a 4K Seedream picture, use Lite on Text → Image, Image → Image, Inpaint or Compose; for a 4K result from a Pro or Flash edit, add an Upscale Image node after it.
- BytePlus recommends prompts under about 600 English words: longer prompts lose details rather than gain them.
- Sequential sets (Lite, up to 15 related images in one call) and transparent-background edits exist on the API and are planned for Brut. Layer decomposition and marked edits are in: see Decompose into layers and Annotate & Correct.