live
MODEL IDbytedance:seedream@5.5

Seedream 5.5

ByteDance
by

Seedream 5.5 is ByteDance's image generation and editing model, focused on visual realism, aesthetics and editing consistency. It supports text-to-image and reference-guided editing with up to 10 input images, keeps unedited areas stable across multi-turn edits, and outputs transparent images from a prompt or from references. It can also split an image into a base image and up to 99 editable layers, returning the text, position, font and style of each text layer, which suits poster, packaging and marketing design workflows.

Seedream 5.5

Multi-reference composition

How to compose one image from up to ten references with Seedream 5.5: assigning roles, dressing one model in a garment range, arranging a product set and sizing the output.

Introduction

A lookbook shot normally needs every element in front of one camera on one day. When the coat is still a sample or the model is booked elsewhere, the shot waits for the calendar.

Seedream 5.5 builds it from separate photos. Each element goes into inputs.referenceImages as its own image, up to ten per request, and the prompt says which image plays which part. The model returns one frame with every piece posed and relit together.

Built from 4 references
  • Image 1: model
  • Image 2: coat
  • Image 3: bag
  • Image 4: location

The casting photo and the two packshots were never in the same room, and the coat was never worn. For a fashion retailer that is a lookbook page without a shoot, and a new colorway is one more packshot in image 2.

This guide covers the request, giving each image a role, dressing one model in a whole garment range, arranging ten products in one frame and sizing the output when references are present. Changing a single image with an instruction is covered in editing images.

The request

References go into inputs.referenceImages, and the prompt refers to them by their place in the array:

Try in Playground
import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'bytedance:seedream@5.5',
  positivePrompt: 'The woman from image 1 wearing the coat from image 2, buttoned and belted, and carrying the bag from image 3 on her left shoulder, walking down the steps from image 4 toward the camera. Keep her face, hair and the clothes under the coat from image 1. Keep the cut, color and buttons of the coat from image 2, and the shape, leather and clasp of the bag from image 3. Relight her with the soft overcast daylight of image 4 and give her a soft contact shadow on the steps. Full-length shot from a slightly low angle, 50mm lens. Photoreal editorial fashion lookbook photography.',
  width: 1664,
  height: 2496,
  inputs: {
    referenceImages: [
      'https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-woman.jpg',
      'https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-coat.jpg',
      'https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-bag.jpg',
      'https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-steps.jpg'
    ]
  }
})
import asyncio
import os

from runware import Runware


async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "bytedance:seedream@5.5",
            "positivePrompt": "The woman from image 1 wearing the coat from image 2, buttoned and belted, and carrying the bag from image 3 on her left shoulder, walking down the steps from image 4 toward the camera. Keep her face, hair and the clothes under the coat from image 1. Keep the cut, color and buttons of the coat from image 2, and the shape, leather and clasp of the bag from image 3. Relight her with the soft overcast daylight of image 4 and give her a soft contact shadow on the steps. Full-length shot from a slightly low angle, 50mm lens. Photoreal editorial fashion lookbook photography.",
            "width": 1664,
            "height": 2496,
            "inputs": {
                "referenceImages": [
                    "https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-woman.jpg",
                    "https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-coat.jpg",
                    "https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-bag.jpg",
                    "https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-steps.jpg"
                ]
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "imageInference",
      "taskUUID": "4c9e2a71-8d3b-4f06-b5e1-2a7d9c3f6b58",
      "model": "bytedance:seedream@5.5",
      "positivePrompt": "The woman from image 1 wearing the coat from image 2, buttoned and belted, and carrying the bag from image 3 on her left shoulder, walking down the steps from image 4 toward the camera. Keep her face, hair and the clothes under the coat from image 1. Keep the cut, color and buttons of the coat from image 2, and the shape, leather and clasp of the bag from image 3. Relight her with the soft overcast daylight of image 4 and give her a soft contact shadow on the steps. Full-length shot from a slightly low angle, 50mm lens. Photoreal editorial fashion lookbook photography.",
      "width": 1664,
      "height": 2496,
      "inputs": {
        "referenceImages": [
          "https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-woman.jpg",
          "https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-coat.jpg",
          "https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-bag.jpg",
          "https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-steps.jpg"
        ]
      }
    }
  ]'
runware run bytedance:seedream@5.5 \
  positivePrompt="The woman from image 1 wearing the coat from image 2, buttoned and belted, and carrying the bag from image 3 on her left shoulder, walking down the steps from image 4 toward the camera. Keep her face, hair and the clothes under the coat from image 1. Keep the cut, color and buttons of the coat from image 2, and the shape, leather and clasp of the bag from image 3. Relight her with the soft overcast daylight of image 4 and give her a soft contact shadow on the steps. Full-length shot from a slightly low angle, 50mm lens. Photoreal editorial fashion lookbook photography." \
  width=1664 \
  height=2496 \
  inputs.referenceImages.0=https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-woman.jpg \
  inputs.referenceImages.1=https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-coat.jpg \
  inputs.referenceImages.2=https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-bag.jpg \
  inputs.referenceImages.3=https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-steps.jpg
{
  "taskType": "imageInference",
  "taskUUID": "4c9e2a71-8d3b-4f06-b5e1-2a7d9c3f6b58",
  "model": "bytedance:seedream@5.5",
  "positivePrompt": "The woman from image 1 wearing the coat from image 2, buttoned and belted, and carrying the bag from image 3 on her left shoulder, walking down the steps from image 4 toward the camera. Keep her face, hair and the clothes under the coat from image 1. Keep the cut, color and buttons of the coat from image 2, and the shape, leather and clasp of the bag from image 3. Relight her with the soft overcast daylight of image 4 and give her a soft contact shadow on the steps. Full-length shot from a slightly low angle, 50mm lens. Photoreal editorial fashion lookbook photography.",
  "width": 1664,
  "height": 2496,
  "inputs": {
    "referenceImages": [
      "https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-woman.jpg",
      "https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-coat.jpg",
      "https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-bag.jpg",
      "https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-steps.jpg"
    ]
  }
}
Response
[
  {
    "taskType": "imageInference",
    "taskUUID": "4c9e2a71-8d3b-4f06-b5e1-2a7d9c3f6b58",
    "imageUUID": "e17b5c93-2f4a-4d8e-9a06-7c3e1b5d8f24",
    "imageURL": "https://im.runware.ai/image/os/a14d18/ws/2/ii/e17b5c93-2f4a-4d8e-9a06-7c3e1b5d8f24.jpg"
  }
]
  • The array order is the numbering. "Image 1" in the prompt is the first entry of inputs.referenceImages, and "image 4" is the fourth.
  • Each reference is a URL, a UUID (a previous generation's, or one uploaded via Media Storage), a data URI or a base64 string, in JPEG, PNG or WebP.
  • Each one needs at least 15 pixels on its short side and a shape between 1:16 and 16:1, and can be up to 36 MP and 30 MB.

Giving each image a role

A reference arrives as a picture with no job attached. The dock below could be the place to build the shot in or only a source of morning light, and the speaker could be the hero or a prop at the edge of the frame. The prompt hands out the jobs, one clause per job.

Built from 2 references
  • Image 1: product
  • Image 2: setting

The prompt, clause by clause:

Use image 2 as the setting, Place the speaker from image 1 standing on the planks beside the folded blanket, in the lower right third of the frame, turned three-quarters toward the camera, Keep the speaker exact, including its woven fabric, its leather strap and the dial on top, Relight it with the low morning sun of image 2 coming from the left, with a soft contact shadow on the planks, Photoreal outdoor lifestyle product photography, shallow depth of field
SettingPlacementKeepLightStyle

Four habits keep the roles from getting crossed:

  • Name each image by number and by noun. "The speaker from image 1" says which entry to read and what to look for in it, so a reordered array does not silently swap the parts.
  • Place the subject in the scene. The prompt stands the speaker on the planks beside the blanket, in the lower right third. The references cannot say how the pieces relate, so the prompt has to.
  • List what survives as categories. The prompt keeps the fabric, the strap and the dial. The colors and the shape are already in image 1, and restating them in words gives the model a second description to reconcile with the picture.
  • Hand the light to the setting. A packshot carries the light of the studio it was shot in. Naming the scene's light and a contact shadow is what seats the speaker on the dock instead of on top of the photo.

Dressing one model in a garment range

A catalog shoot repeats one model across a whole range. With references, the casting photo stays at image 1 in every request and only image 2 changes, one garment packshot per run. The three packshots below each went in as image 2:

Image 1 is the same casting photo every time. Pick a garment to see its result:

The three prompts share everything after the first sentence, word for word: the backdrop, the keep-list for the man, the keep-list for the garment and the lighting. Only the garment noun and the pose change. Copying the shared part rather than rewriting it leaves the garment and the pose as the only changes you asked for, which is what a range has to show.

Cast the model in a plain base outfit. The white T-shirt and stone chinos in image 1 sit under a chore jacket, a vest and a blazer alike, so one casting photo serves the whole range.

Ten references in one frame

The array holds up to ten references, and a product range fills it. The banner below arranges ten products from ten separate packshots:

With ten products, a sentence per product makes the layout the longest part of the prompt. Tying the layout to the array order does it in one sentence: images 1 to 5 across the top row, images 6 to 10 across the bottom. To move a product, move its packshot in the array and leave the prompt alone.

A packshot carries no scale of its own. Each product fills its own square, so the earbuds case and the beach towel arrive at the same size. "At a natural size relative to the others" lets the model size them against each other, and "exactly once" keeps a product from being repeated or dropped to even out the rows.

Output size

With references in the request, the size comes from one of three places:

Request sendsOutput
No sizeThe 2K tier, in the aspect ratio of the reference
resolution (1K, 1.5K or 2K)That tier, in the aspect ratio of the reference
width and heightExactly those pixels, whatever the shape of the references

The dock request sends no size:

Try in Playground
import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'bytedance:seedream@5.5',
  positivePrompt: 'Use image 2 as the setting. Place the speaker from image 1 standing on the planks beside the folded blanket, in the lower right third of the frame, turned three-quarters toward the camera. Keep the speaker exact, including its woven fabric, its leather strap and the dial on top. Relight it with the low morning sun of image 2 coming from the left, with a soft contact shadow on the planks. Photoreal outdoor lifestyle product photography, shallow depth of field.',
  inputs: {
    referenceImages: [
      'https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-speaker.jpg',
      'https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-dock.jpg'
    ]
  }
})
import asyncio
import os

from runware import Runware


async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "bytedance:seedream@5.5",
            "positivePrompt": "Use image 2 as the setting. Place the speaker from image 1 standing on the planks beside the folded blanket, in the lower right third of the frame, turned three-quarters toward the camera. Keep the speaker exact, including its woven fabric, its leather strap and the dial on top. Relight it with the low morning sun of image 2 coming from the left, with a soft contact shadow on the planks. Photoreal outdoor lifestyle product photography, shallow depth of field.",
            "inputs": {
                "referenceImages": [
                    "https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-speaker.jpg",
                    "https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-dock.jpg"
                ]
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "imageInference",
      "taskUUID": "9a3f6d12-5e7c-4b81-a2d9-8f1c4e6b3a70",
      "model": "bytedance:seedream@5.5",
      "positivePrompt": "Use image 2 as the setting. Place the speaker from image 1 standing on the planks beside the folded blanket, in the lower right third of the frame, turned three-quarters toward the camera. Keep the speaker exact, including its woven fabric, its leather strap and the dial on top. Relight it with the low morning sun of image 2 coming from the left, with a soft contact shadow on the planks. Photoreal outdoor lifestyle product photography, shallow depth of field.",
      "inputs": {
        "referenceImages": [
          "https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-speaker.jpg",
          "https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-dock.jpg"
        ]
      }
    }
  ]'
runware run bytedance:seedream@5.5 \
  positivePrompt="Use image 2 as the setting. Place the speaker from image 1 standing on the planks beside the folded blanket, in the lower right third of the frame, turned three-quarters toward the camera. Keep the speaker exact, including its woven fabric, its leather strap and the dial on top. Relight it with the low morning sun of image 2 coming from the left, with a soft contact shadow on the planks. Photoreal outdoor lifestyle product photography, shallow depth of field." \
  inputs.referenceImages.0=https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-speaker.jpg \
  inputs.referenceImages.1=https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-dock.jpg
{
  "taskType": "imageInference",
  "taskUUID": "9a3f6d12-5e7c-4b81-a2d9-8f1c4e6b3a70",
  "model": "bytedance:seedream@5.5",
  "positivePrompt": "Use image 2 as the setting. Place the speaker from image 1 standing on the planks beside the folded blanket, in the lower right third of the frame, turned three-quarters toward the camera. Keep the speaker exact, including its woven fabric, its leather strap and the dial on top. Relight it with the low morning sun of image 2 coming from the left, with a soft contact shadow on the planks. Photoreal outdoor lifestyle product photography, shallow depth of field.",
  "inputs": {
    "referenceImages": [
      "https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-speaker.jpg",
      "https://assets.runware.ai/guides/bytedance-seedream-5-5/multi-reference-composition/source-dock.jpg"
    ]
  }
}
Response
[
  {
    "taskType": "imageInference",
    "taskUUID": "9a3f6d12-5e7c-4b81-a2d9-8f1c4e6b3a70",
    "imageUUID": "5d8e2b47-1c9a-4f63-8e05-b3a7c9d2e1f6",
    "imageURL": "https://im.runware.ai/image/os/a14d18/ws/2/ii/5d8e2b47-1c9a-4f63-8e05-b3a7c9d2e1f6.jpg"
  }
]

Both of its references are 3:2, and the output came back at 2512 × 1680, the 2K budget in that shape.

References in different shapes leave the ratio open, so send a size with them. The lookbook shots mix a portrait casting photo with square packshots and ask for 1664 × 2496. The banner asks for 3136 × 1344, a 21:9 frame that none of its square references has. Explicit dimensions stay between 1:16 and 16:1 and between 921,600 and 4,624,220 pixels in total, and resolution cannot be sent together with them.

Every reference image is billed as an input on top of the output, so a ten-reference banner costs more than a two-reference composite at the same size.

Tips

  1. Number the images in the prompt. "The coat from image 2" maps to the second entry of the array and names what to find there.

  2. Give every reference a clause. Setting, placement, what survives and the light each get their own, so no image is left for the model to interpret.

  3. List what survives as categories. Name parts such as the fabric or the clasp, and leave colors and shapes to the reference.

  4. Let the setting own the light. One sentence anchored to the setting image relights every element, with a contact shadow where it meets a surface.

  5. Hold the model at image 1 across a range. Swap only the garment reference and copy the rest of the prompt word for word.

  6. Tie a large set to the array order. Rows by image number place ten products in one sentence.

  7. Say products sit at natural size. Packshots carry no scale of their own.

  8. Send a size when references differ in shape. Mixed shapes leave the aspect ratio open.