Sync React-1

sync/lipsync/react-1

Lipsync React 1 is Sync Labs's video-to-video AI model. Transform, enhance, and edit video content using text prompts - from style changes to object manipulation and scene modification.

Base price
$10 / run
Execution
async
Model type
image
Input fields
6

Try the model

Playground

Open playground
Input
URL to the input video. Must be **15 seconds or shorter**.
URL to the input audio. Must be **15 seconds or shorter**.
Controls the edit region and movement scope for the model. Available options: - `lips`: Only lipsync using react-1 (minimal facial changes). - `face`: Lipsync + facial expressions without head movements. - `head`: Lipsync + facial expressions + natural talking head movements. Allowed values: lips, face, head.
Lipsync mode when audio and video durations are out of sync. Allowed values: cut_off, loop, bounce, silence, remap.
01
Controls the expresiveness of the lipsync. Range: 0 to 1.
Emotion prompt for the generation. Currently supports single-word emotions only. Allowed values: happy, angry, sad, neutral, disgusted, surprised.
OutputReady

Your output will appear here

Complete the inputs, then click Run.

Specifications

Pricing

Base price
$10 / run

Context & modalities

Input
Schema-defined
Output
image

Capabilities

Chat
Not supported
Vision
Not supported
Reasoning
Not supported
Structured output
Not supported
Function calling
Not supported
Audio input
Not supported

Access

Provider
Sync Labs
Model ID
sync/lipsync/react-1
Execution
async
API
Unified Run API
Endpoint
/v1/run

API README

Sync React-1

Sync React-1 occupies a clearly bounded position in a image production pipeline under the route sync/lipsync/react-1. It is best evaluated as a named workflow endpoint rather than as a generic substitute for neighboring versions: planners can assign the route to a specific brief, record the chosen revision, and keep approval history tied to one predictable integration surface from intake through delivery.

A practical rollout of Sync React-1 should begin with source-readiness checks, ownership of the submitted material, an agreed budget, and a written definition of the final react 1 deliverable. Before automation is enabled, the acceptance pass should verify that the returned asset opens correctly, fits the intended downstream toolchain, satisfies the project’s review criteria, and can be reproduced from the stored request and route identity sync/lipsync/react-1.

Highlights

  • Distinct output behavior. For Sync React-1, for Sync React-1, edit video content using text prompts - from style changes to object manipulation and scene modification In Sync React-1, this capability is applied through the exact sync/lipsync/react-1 workflow with audio as a relevant request control; the audio control exposes the corresponding choice in this route; the audio control exposes the corresponding choice in this route.
  • Creative control. For Sync React-1, for Sync React-1, video to video In Sync React-1, this capability is applied through the exact sync/lipsync/react-1 workflow with video as a relevant request control; the video control exposes the corresponding choice in this route; the video control exposes the corresponding choice in this route.
  • Workflow fit. For Sync React-1, for Sync React-1, uRL to the input audio. Must be 15 seconds or shorter In Sync React-1, this capability is applied through the exact sync/lipsync/react-1 workflow with emotion as a relevant request control; the emotion control exposes the corresponding choice in this route; the emotion control exposes the corresponding choice in this route.
  • Production detail. For Sync React-1, for Sync React-1, emotion prompt for the generation. Currently supports single-word emotions only In Sync React-1, this capability is applied through the exact sync/lipsync/react-1 workflow with model mode as a relevant request control; the model mode control exposes the corresponding choice in this route; the model mode control exposes the corresponding choice in this route.

Pricing

ConfigurationPrice
Per request$10

When to Use

ScenarioWhy this model fits
Choose Sync React-1Use it when the required deliverable is specifically the video-to-video result documented for sync/lipsync/react-1.
Match the source materialSelect this route when your inputs naturally map to audio, video, emotion, model_mode.
Use its distinguishing capabilityFor Sync React-1, edit video content using text prompts - from style changes to object manipulation and scene modification In Sync React-1, this capability is applied through the exact sync/lipsync/react-1 workflow with audio as a relevant request control; the audio control exposes the corresponding choice in this route
Plan repeatable productionFor Sync React-1, video to video In Sync React-1, this capability is applied through the exact sync/lipsync/react-1 workflow with video as a relevant request control; the video control exposes the corresponding choice in this route
Confirm cost and deliveryUse the pricing combinations below and the output contract above when budgeting or automating Sync React-1 jobs.

Prompt Guide

Build the request around the exact sync/lipsync/react-1 schema. Start with required fields, then add only the controls needed for the intended output; keep URLs reachable and enum values exactly as shown in Technical Specs.

{
  "audio": "https://static.sandbase.ai/examples/sync/lipsync/react-1/input_audio_1.mp3",
  "video": "https://static.sandbase.ai/examples/sync/lipsync/react-1/input_video_0.mp4",
  "emotion": "neutral",
  "model_mode": "face"
}

Technical Specs

SpecificationValue
Model IDsync/lipsync/react-1
Execution modeasync
Required inputsNone marked required
Request fieldsaudio (string, optional); video (string, optional); emotion (string, optional, options: happy / angry / sad / neutral / disgusted / surprised); model_mode (string, optional, options: lips / face / head); temperature (number, optional, min 0, max 1); lipsync_mode (string, optional, options: cut_off / loop / bounce / silence / remap)
Outputurl (string); content_type (string)

Related Models

Start building

Send your first request

OpenAI-compatible endpoint with unified authentication and usage tracking.

Production API
Endpoint
https://api.sandbase.ai/v1/run
Model ID
sync/lipsync/react-1
# Preserve Unicode and shell metacharacters in the request body.
result=$(printf '%s' 'ewogICJtb2RlbCI6ICJzeW5jL2xpcHN5bmMvcmVhY3QtMSIsCiAgImF1ZGlvIjogImh0dHBzOi8vc3RhdGljLnNhbmRiYXNlLmFpL2V4YW1wbGVzL3N5bmMvbGlwc3luYy9yZWFjdC0xL2lucHV0X2F1ZGlvXzEubXAzIiwKICAidmlkZW8iOiAiaHR0cHM6Ly9zdGF0aWMuc2FuZGJhc2UuYWkvZXhhbXBsZXMvc3luYy9saXBzeW5jL3JlYWN0LTEvaW5wdXRfdmlkZW9fMC5tcDQiLAogICJlbW90aW9uIjogIm5ldXRyYWwiLAogICJtb2RlbF9tb2RlIjogImZhY2UiLAogICJ0ZW1wZXJhdHVyZSI6IDAuNSwKICAibGlwc3luY19tb2RlIjogImJvdW5jZSIKfQ==' \
  | base64 --decode \
  | curl --fail-with-body --silent \
      -X POST "https://api.sandbase.ai/v1/run" \
      -H "Authorization: Bearer $SANDBASE_API_KEY" \
      -H "Content-Type: application/json" \
      --data-binary @-)
run_id=$(printf '%s' "$result" | jq -r .id)
for attempt in $(seq 1 120); do
  status=$(printf '%s' "$result" | jq -r .status)
  case "$status" in completed|failed|timeout) break ;; esac
  sleep 2
  result=$(curl --fail-with-body --silent \
    -H "Authorization: Bearer $SANDBASE_API_KEY" \
    "https://api.sandbase.ai/v1/run/$run_id")
done
status=$(printf '%s' "$result" | jq -r .status)
[ "$status" = completed ] || { echo "Generation ended: $status" >&2; exit 1; }
printf '%s\n' "$result"

Choose your model

Compare models

All language models
ModelContextInput / 1MOutput / 1MReleased
Sync React-1This model
Sync Labs
———Dec 10, 2025
Sync Labs———Apr 1, 2025
Sync Labs———Sep 2, 2025
Sync Labs———Apr 6, 2026
Sync Labs———Jan 13, 2025