---
title: Multilingual video with Seedance 2.5 — Seedance 2.5 | Runware Docs
url: https://runware.ai/docs/models/bytedance-seedance-2-5/guides/multilingual
description: "How to generate video in 10+ languages with Seedance 2.5: native lip-sync from a text prompt, switching languages within one clip, and controlling accent and delivery."
---
### [Introduction](https://runware.ai/docs/models/bytedance-seedance-2-5/guides/multilingual#introduction)

Seedance 2.5 generates its own audio, and that audio speaks. The model performs dialogue in **more than ten languages** with the lip movement matched to the words, so a spoken line comes out synced rather than dubbed on top. There is no separate voice model to wire up and no lip-sync pass: you name the language in the prompt, and the returned clip talks.

The welcome below is one clip. The same host delivers the same line in six languages back to back, her mouth matching each one.

[Watch video](https://runware.ai/docs/assets/output-hero.CNKTv8x6.mp4)

> **Prompt**: A warm brand welcome video. A friendly host stands in a bright modern space, medium shot facing the camera, delivering the same short welcome in six languages in sequence with a clean hard cut on each and her lips matching every language. [0-2s] English, [2-4s] Spanish, [4-6s] French, [6-8s] Japanese, [8-10s] German, [10-12s] Brazilian Portuguese. Warm consistent lighting across every cut. Audio: her natural warm voice in fluent native pronunciation with precise lip-sync, quiet room tone, no music.

This guide covers generating in a single language, switching languages inside one clip, and shaping the accent and delivery. For localizing an existing shoot rather than generating fresh, the [motion guide](https://runware.ai/docs/models/bytedance-seedance-2-5/guides/motion-control) and the [editing guide](https://runware.ai/docs/models/bytedance-seedance-2-5/guides/editing) carry those workflows.

### [The request](https://runware.ai/docs/models/bytedance-seedance-2-5/guides/multilingual#the-request)

There is no language parameter. Multilingual generation is a normal `videoInference` call: name the language and the line in the prompt, and keep `settings.audio` on so the model performs it.

TypeScriptPythoncURLCLIJSON

```typescript
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:seedance@2.5',
  positivePrompt: 'A presenter in a bright studio speaks a short product line to camera in fluent Seoul-accented Korean, warm and confident, with precise lip-sync. No subtitles.',
  width: 720,
  height: 1280,
  duration: 7,
  settings: {
    audio: true
  },
  deliveryMethod: 'async'
})
```

```python
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:seedance@2.5",
            "positivePrompt": "A presenter in a bright studio speaks a short product line to camera in fluent Seoul-accented Korean, warm and confident, with precise lip-sync. No subtitles.",
            "width": 720,
            "height": 1280,
            "duration": 7,
            "settings": {
                "audio": True
            },
            "deliveryMethod": "async"
        })

asyncio.run(main())
```

```bash
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "model": "bytedance:seedance@2.5",
      "positivePrompt": "A presenter in a bright studio speaks a short product line to camera in fluent Seoul-accented Korean, warm and confident, with precise lip-sync. No subtitles.",
      "width": 720,
      "height": 1280,
      "duration": 7,
      "settings": {
        "audio": true
      },
      "deliveryMethod": "async"
    }
  ]'
```

```bash
runware run bytedance:seedance@2.5 \
  positivePrompt="A presenter in a bright studio speaks a short product line to camera in fluent Seoul-accented Korean, warm and confident, with precise lip-sync. No subtitles." \
  width=720 \
  height=1280 \
  duration=7 \
  settings.audio=true \
  deliveryMethod=async
```

```json
{
  "taskType": "videoInference",
  "taskUUID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "model": "bytedance:seedance@2.5",
  "positivePrompt": "A presenter in a bright studio speaks a short product line to camera in fluent Seoul-accented Korean, warm and confident, with precise lip-sync. No subtitles.",
  "width": 720,
  "height": 1280,
  "duration": 7,
  "settings": {
    "audio": true
  },
  "deliveryMethod": "async"
}
```

Response

```json
[
  {
    "taskType": "videoInference",
    "taskUUID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "videoUUID": "9c1b2d3a-4e5f-6789-abcd-ef0123456789",
    "videoURL": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/9c1b2d3a-4e5f-6789-abcd-ef0123456789.mp4"
  }
]
```

- The **language lives in the prompt**, named in words. The lip-sync and the spoken audio are generated together in the same pass.
- Keep `settings.audio` on. With audio off there is no voice to sync, and the clip is silent.
- Add `No subtitles` to keep **burned-in captions** off the frame, since the model will otherwise add them to spoken lines on its own.

### [Generating in a single language](https://runware.ai/docs/models/bytedance-seedance-2-5/guides/multilingual#generating-in-a-single-language)

The base case is a whole clip in one language other than English. Name the language, and ideally the accent and tone, and the model performs the line natively, including in non-Latin scripts. The vertical spot below is entirely in Korean.

[Watch video](https://runware.ai/docs/assets/output-native.g6GRUBsQ.mp4)

> **Prompt**: A polished vertical product spot for a skincare brand. A poised presenter in a bright minimal studio, portrait 9:16, holds a small frosted serum bottle and delivers a short confident product line to camera entirely in fluent, natural Seoul-accented Korean with precise lip-sync, warm and assured. Clean soft studio light, no subtitles. Audio: her natural Korean voiceover, clear and warm, precise lip-sync, quiet studio tone, no music.

Her mouth shapes match the Korean, and the voice carries the warm, assured tone the prompt asked for. Naming the **accent along with the language** is what tightens it: "Seoul-accented Korean" or "Parisian French" or "Rio Brazilian Portuguese" reads more reliably than the bare language name, because it pins the pronunciation the audio track should adopt.

### [Switching languages inside one clip](https://runware.ai/docs/models/bytedance-seedance-2-5/guides/multilingual#switching-languages-inside-one-clip)

Because the language is just prose, a single clip can carry **more than one**. Tag each stretch with its own language and Seedance switches cleanly, holding lip-sync through every change. That is what makes a single walkthrough serve several audiences at once. The museum guide below moves through three halls and three languages without a break.

[Watch video](https://runware.ai/docs/assets/output-museum.CgT0TZ2Q.mp4)

> **Prompt**: A cinematic natural-history museum guide film in one continuous piece, a docent leading the camera smoothly through three connected halls and switching language in each, precise lip-sync throughout, no hard cuts. [0-6s] under a blue whale skeleton she speaks warm fluent English. [6-12s] in a mineral gallery of glowing crystals she continues in fluent Mandarin Chinese. [12-18s] in a hall of ancient pottery she finishes in fluent Spanish. Warm consistent museum lighting, smooth continuous following camera. Audio: her natural voice in each language with precise lip-sync, quiet gallery ambience, no music.

Each language sits in its own **timestamped window**, the same second-level tagging the [prompting guide](https://runware.ai/docs/models/bytedance-seedance-2-5/guides/prompting) uses for action beats, and the docent's mouth follows each one. Keep each language to a clean stretch rather than mixing two inside a single window, and the switches stay sharp. The same shape covers a bilingual host, an explainer that repeats a point across markets, or a title sequence that greets in a dozen languages.

### [Shaping the delivery](https://runware.ai/docs/models/bytedance-seedance-2-5/guides/multilingual#shaping-the-delivery)

The voice takes direction the same way the picture does. Alongside the language, name the **tone, pace, and register** you want, and it carries into the generated track: "calm and knowledgeable", "bright and fast", "warm and unhurried". A delivery cue does as much for how a line lands as the words do, and it is the difference between a flat read and one that fits the brand.

> [!NOTE]
> Two jobs that look multilingual are really about an existing clip, and they live elsewhere. Recasting one shoot into many languages while keeping the exact performance is a [reference-video](https://runware.ai/docs/models/bytedance-seedance-2-5/guides/motion-control) workflow, and swapping only the dialogue or the language on a finished clip is an [audio edit](https://runware.ai/docs/models/bytedance-seedance-2-5/guides/editing). This guide is for generating the multilingual clip in the first place.

### [Tips](https://runware.ai/docs/models/bytedance-seedance-2-5/guides/multilingual#tips)

1. **Name the language in the prompt.** There is no language field. "delivers the line in fluent Japanese" is the whole mechanism, and the lip-sync comes with it.
    
2. **Add the accent, not just the language.** "Seoul-accented Korean" or "Parisian French" pins the pronunciation more reliably than the bare language name.
    
3. **Direct the delivery.** A tone and pace cue, "warm and unhurried", "bright and confident", shapes the generated voice the way it would a voice actor.
    
4. **Keep audio on.** Multilingual generation is an audio feature. With `settings.audio` off there is no voice to sync.
    
5. **Turn off captions when you don't want them.** The model will sometimes caption spoken dialogue on its own, so add `No subtitles` for a clean frame.
    
6. **Give each language its own window.** For an in-clip switch, tag each stretch with a timestamp and one language, and keep two languages out of the same window so the transitions stay clean.