live
MODEL IDpixverse:lipsync@1

PixVerse LipSync

PixVerse
by

PixVerse LipSync generates accurate mouth motion from audio for characters and videos. It aligns lip movement with speech timing. It preserves facial expression context. Ideal for dubbing, character animation, and content localization workflows.

PixVerse LipSync

audio-driven

Oyster Hatchery Sensor Explainer$0.136~57s
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: 'pixverse:lipsync@1',
  inputs: {
    referenceVideos: [
      'https://assets.runware.ai/assets/inputs/a68fc2b7-6c21-40b7-8a6b-7f31599144e1.mp4'
    ],
    audio: 'https://assets.runware.ai/assets/inputs/a7a47640-5832-4ca8-bebb-8401f911297b.mp3'
  }
})
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": "pixverse:lipsync@1",
            "inputs": {
                "referenceVideos": [
                    "https://assets.runware.ai/assets/inputs/a68fc2b7-6c21-40b7-8a6b-7f31599144e1.mp4"
                ],
                "audio": "https://assets.runware.ai/assets/inputs/a7a47640-5832-4ca8-bebb-8401f911297b.mp3"
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "35a07f98-9d6d-417e-8b49-46a1e54a07b9",
      "model": "pixverse:lipsync@1",
      "inputs": {
        "referenceVideos": [
          "https://assets.runware.ai/assets/inputs/a68fc2b7-6c21-40b7-8a6b-7f31599144e1.mp4"
        ],
        "audio": "https://assets.runware.ai/assets/inputs/a7a47640-5832-4ca8-bebb-8401f911297b.mp3"
      }
    }
  ]'
runware run pixverse:lipsync@1 \
  inputs.referenceVideos.0=https://assets.runware.ai/assets/inputs/a68fc2b7-6c21-40b7-8a6b-7f31599144e1.mp4 \
  inputs.audio=https://assets.runware.ai/assets/inputs/a7a47640-5832-4ca8-bebb-8401f911297b.mp3
{
  "taskType": "videoInference",
  "taskUUID": "35a07f98-9d6d-417e-8b49-46a1e54a07b9",
  "model": "pixverse:lipsync@1",
  "inputs": {
    "referenceVideos": [
      "https://assets.runware.ai/assets/inputs/a68fc2b7-6c21-40b7-8a6b-7f31599144e1.mp4"
    ],
    "audio": "https://assets.runware.ai/assets/inputs/a7a47640-5832-4ca8-bebb-8401f911297b.mp3"
  }
}
Response
{
  "taskType": "videoInference",
  "taskUUID": "35a07f98-9d6d-417e-8b49-46a1e54a07b9",
  "videoUUID": "98f55df5-2a90-4358-a886-f906b9171b2e",
  "videoURL": "https://vm.runware.ai/video/os/a06dlim3/ws/5/vi/98f55df5-2a90-4358-a886-f906b9171b2e.mp4",
  "seed": 2090663801,
  "cost": 0.1364
}

audio-driven

Arctic Eco-Thriller Teaser Shot$0.109~1m 3s
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: 'pixverse:lipsync@1',
  inputs: {
    referenceVideos: [
      'https://assets.runware.ai/assets/inputs/3af26e89-8243-48e5-8e9b-4dd3ff098931.mp4'
    ],
    audio: 'https://assets.runware.ai/assets/inputs/9a9c6793-ae48-41b1-b8bf-93ef8b24d06f.mp3'
  }
})
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": "pixverse:lipsync@1",
            "inputs": {
                "referenceVideos": [
                    "https://assets.runware.ai/assets/inputs/3af26e89-8243-48e5-8e9b-4dd3ff098931.mp4"
                ],
                "audio": "https://assets.runware.ai/assets/inputs/9a9c6793-ae48-41b1-b8bf-93ef8b24d06f.mp3"
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "5644802b-6e49-459c-b1af-d5460c10806a",
      "model": "pixverse:lipsync@1",
      "inputs": {
        "referenceVideos": [
          "https://assets.runware.ai/assets/inputs/3af26e89-8243-48e5-8e9b-4dd3ff098931.mp4"
        ],
        "audio": "https://assets.runware.ai/assets/inputs/9a9c6793-ae48-41b1-b8bf-93ef8b24d06f.mp3"
      }
    }
  ]'
runware run pixverse:lipsync@1 \
  inputs.referenceVideos.0=https://assets.runware.ai/assets/inputs/3af26e89-8243-48e5-8e9b-4dd3ff098931.mp4 \
  inputs.audio=https://assets.runware.ai/assets/inputs/9a9c6793-ae48-41b1-b8bf-93ef8b24d06f.mp3
{
  "taskType": "videoInference",
  "taskUUID": "5644802b-6e49-459c-b1af-d5460c10806a",
  "model": "pixverse:lipsync@1",
  "inputs": {
    "referenceVideos": [
      "https://assets.runware.ai/assets/inputs/3af26e89-8243-48e5-8e9b-4dd3ff098931.mp4"
    ],
    "audio": "https://assets.runware.ai/assets/inputs/9a9c6793-ae48-41b1-b8bf-93ef8b24d06f.mp3"
  }
}
Response
{
  "taskType": "videoInference",
  "taskUUID": "5644802b-6e49-459c-b1af-d5460c10806a",
  "videoUUID": "954cd776-ff85-49c2-9f41-f53c62abaac7",
  "videoURL": "https://vm.runware.ai/video/os/a09dlim3/ws/5/vi/954cd776-ff85-49c2-9f41-f53c62abaac7.mp4",
  "seed": 798770226,
  "cost": 0.1091
}

scripted-lip-sync

Community Radio Vocal Logo Loop$0.0546~33s
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: 'pixverse:lipsync@1',
  speech: {
    text: 'Night Signal Radio—stories after the city sleeps.',
    voice: 'Chloe'
  },
  inputs: {
    referenceVideos: [
      'https://assets.runware.ai/assets/inputs/2f920ae5-cf4b-4fac-81d0-c4dc5c5cfee3.mp4'
    ]
  }
})
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": "pixverse:lipsync@1",
            "speech": {
                "text": "Night Signal Radio—stories after the city sleeps.",
                "voice": "Chloe"
            },
            "inputs": {
                "referenceVideos": [
                    "https://assets.runware.ai/assets/inputs/2f920ae5-cf4b-4fac-81d0-c4dc5c5cfee3.mp4"
                ]
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "58a3864a-1f06-439f-8827-97021c320061",
      "model": "pixverse:lipsync@1",
      "speech": {
        "text": "Night Signal Radio—stories after the city sleeps.",
        "voice": "Chloe"
      },
      "inputs": {
        "referenceVideos": [
          "https://assets.runware.ai/assets/inputs/2f920ae5-cf4b-4fac-81d0-c4dc5c5cfee3.mp4"
        ]
      }
    }
  ]'
runware run pixverse:lipsync@1 \
  speech.text="Night Signal Radio—stories after the city sleeps." \
  speech.voice=Chloe \
  inputs.referenceVideos.0=https://assets.runware.ai/assets/inputs/2f920ae5-cf4b-4fac-81d0-c4dc5c5cfee3.mp4
{
  "taskType": "videoInference",
  "taskUUID": "58a3864a-1f06-439f-8827-97021c320061",
  "model": "pixverse:lipsync@1",
  "speech": {
    "text": "Night Signal Radio—stories after the city sleeps.",
    "voice": "Chloe"
  },
  "inputs": {
    "referenceVideos": [
      "https://assets.runware.ai/assets/inputs/2f920ae5-cf4b-4fac-81d0-c4dc5c5cfee3.mp4"
    ]
  }
}
Response
{
  "taskType": "videoInference",
  "taskUUID": "58a3864a-1f06-439f-8827-97021c320061",
  "videoUUID": "415f600f-8034-42c9-9e90-925c23e94058",
  "videoURL": "https://vm.runware.ai/video/os/a04d20/ws/5/vi/415f600f-8034-42c9-9e90-925c23e94058.mp4",
  "seed": 598016855,
  "cost": 0.0546
}

scripted-lip-sync

Manuscript Scanner Product Explainer$0.123~50s
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: 'pixverse:lipsync@1',
  speech: {
    text: 'This scanner maps hidden ink without touching the parchment, so we can study erased notes while keeping every fragile page safe.',
    voice: 'Isabella'
  },
  inputs: {
    referenceVideos: [
      'https://assets.runware.ai/assets/inputs/7452cb19-48e2-4897-9829-0046528eb80c.mp4'
    ]
  }
})
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": "pixverse:lipsync@1",
            "speech": {
                "text": "This scanner maps hidden ink without touching the parchment, so we can study erased notes while keeping every fragile page safe.",
                "voice": "Isabella"
            },
            "inputs": {
                "referenceVideos": [
                    "https://assets.runware.ai/assets/inputs/7452cb19-48e2-4897-9829-0046528eb80c.mp4"
                ]
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "1f946a1f-47a4-4ce1-aa91-ef04a0610c6f",
      "model": "pixverse:lipsync@1",
      "speech": {
        "text": "This scanner maps hidden ink without touching the parchment, so we can study erased notes while keeping every fragile page safe.",
        "voice": "Isabella"
      },
      "inputs": {
        "referenceVideos": [
          "https://assets.runware.ai/assets/inputs/7452cb19-48e2-4897-9829-0046528eb80c.mp4"
        ]
      }
    }
  ]'
runware run pixverse:lipsync@1 \
  speech.text="This scanner maps hidden ink without touching the parchment, so we can study erased notes while keeping every fragile page safe." \
  speech.voice=Isabella \
  inputs.referenceVideos.0=https://assets.runware.ai/assets/inputs/7452cb19-48e2-4897-9829-0046528eb80c.mp4
{
  "taskType": "videoInference",
  "taskUUID": "1f946a1f-47a4-4ce1-aa91-ef04a0610c6f",
  "model": "pixverse:lipsync@1",
  "speech": {
    "text": "This scanner maps hidden ink without touching the parchment, so we can study erased notes while keeping every fragile page safe.",
    "voice": "Isabella"
  },
  "inputs": {
    "referenceVideos": [
      "https://assets.runware.ai/assets/inputs/7452cb19-48e2-4897-9829-0046528eb80c.mp4"
    ]
  }
}
Response
{
  "taskType": "videoInference",
  "taskUUID": "1f946a1f-47a4-4ce1-aa91-ef04a0610c6f",
  "videoUUID": "2a69240b-aba8-49aa-aa8f-81f033edc826",
  "videoURL": "https://vm.runware.ai/video/os/a01d21/ws/5/vi/2a69240b-aba8-49aa-aa8f-81f033edc826.mp4",
  "seed": 103854495,
  "cost": 0.1228
}