Skip to content

Flashhead

Integrate

Model id flashhead
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/flashhead?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg",
    "text": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

This request: ≈$0.068 68 API credits Run it on this page

Get API key
Open model Lipsync & Avatars Lipsync #portrait#video#streaming#real-time

Turns a face image and typed text into a talking-head video using a chosen synthetic voice

Open model · Video

Your first result goes here

Build a request below and run it with your API key. Outputs are copied to our storage, kept forever or 7 days for free.

Build a request

Controls are generated from the model schema. The code and the price update as you change them.

•required

Text for speech synthesis using ElevenLabs.

•required image_url
Drop a file, or

Face reference supplied as an image URL; a portrait is recommended.

Advanced voice · stability · seed
default Aria

Name of the voice from ElevenLabs.

default 0.5

Stability setting for the voice, ranging from 0 to 1.

Seed controlling randomness for reproducible results.

POST /run/flashhead?wait=20 quote → $0.068
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/flashhead?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg",
    "text": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Run this request

Your key stays in this browser: it is sent only to the Doitong API and saved (localStorage) only if you tick Remember. Get an API key

About Flashhead

Animates a portrait from `image_url` so it speaks the string given in `text`. Speech is synthesized for you, and you choose a `voice` (default Aria) and a `stability` value between 0 and 1. The output is a lip-synced 512x512 video at 25 FPS, and `seed` allows repeatable runs.

Parameters

Send either the canonical name or the native name, not both. Canonical names

NameType DefaultAllowed Description
image_urlrequired image
Typeurl · image
Face reference supplied as an image URL; a portrait is recommended.
textrequired
Typestring
Text for speech synthesis using ElevenLabs.
voiceoptional
Typeenum
DefaultAria
AriaRogerSarahLauraCharlieGeorgeCallumRiverLiamCharlotteAliceMatildaWillJessicaEricChris
+4 moreBrianDanielLilyBill
Name of the voice from ElevenLabs.
stabilityoptional
Typenumber
Default0.5
0 – 1
Stability setting for the voice, ranging from 0 to 1.
seedoptional
Typeinteger | null
Seed controlling randomness for reproducible results.
required Canonical name, also accepted

File parameters take a public https:// URL, a data: URI up to 10 MB, or the file_url of an upload. Files

Output

GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "flashhead",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 68,
    "usd": "0.068",
    "charged": 68,
    "refunded": 0
  },
  "input": {
    "image_url": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg",
    "text": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  },
  "output": {
    "video": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_name": "0-output.mp4",
      "file_size": 1843200
    },
    "seed": 42,
    "duration": 5,
    "timings": {}
  },
  "outputs": [
    {
      "type": "video",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_size": 1843200,
      "width": 1280,
      "height": 720,
      "duration": 5,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
Your files, your choiceEvery outputs[].url is a copy on our storage: kept forever (paid per GB-month) or 7 days for free, by your account setting or ?storage=.
Same shape on every modeltype, url, content_type, width, height and duration, for images, video and audio alike. output is the model’s own result object.
Fields of output
video
object {url, content_type, file_name, file_size}Output avatar video with lip synchronization, sized 512x512 at 25 FPS.
seed
integerSeed value applied during generation.
duration
numberVideo length measured in seconds.
timings
objectBreakdown of timing information.

For AI agents: this page as Markdown is at https://doitong.com/en-US/developers/models/flashhead.md. All models and guides: https://doitong.com/developers/llms.txt