Features
- Instant avatar cloning — zero-shot from a single still image.
- Voice- or text-driven — drive the avatar with an existing audio clip, or generate the driving voice from text in the same request with the TTS API (including voice cloning).
- Streaming delivery — a dedicated streaming endpoint returns the video as a fragmented-MP4 byte stream, so playback can start before the clip is complete.
Try it in the playground
The fastest way to preview the model is the playground. Pick an avatar, paste text, and press play.Generate avatars with the API
Higgs Avatar is in public preview. API usage is currently free and rate-limited while we improve reliability, latency, and model quality.
POST /v1/videoscreates a job and returns a Video object withvideo_id.GET /v1/videos/{video_id}polls the Video object untilstatusis"completed".GET /v1/videos/{video_id}/contentdownloads the rendered MP4.
ref_image (the still photo the avatar is generated from) plus exactly
one driving input: an input audio clip (audio-to-video) or an input_tts text request
(text-to-video).
Drive with an audio clip
Pass the driving voice ininput (an http(s) URL, data URI, or base64). The avatar lip-syncs and
moves to that audio. The driving audio sets the video length and is capped at 60 s.
Drive with text
Skip the audio clip and synthesize the driving voice from text in the same request: put a speech request underinput_tts (the same body as
POST /v1/audio/speech). Pick a speaker with voice, or clone one with ref_audio. Provide
exactly one of input or input_tts.
Upload local files
Send the body asmultipart/form-data to upload a local ref_image (and input audio) directly,
with no base64 encoding. input_tts is passed as a JSON-string field.
Retrieve and download
GET /v1/videos/{video_id}returns the Video object —status(queued→in_progress→completed|failed),progress,size,error. Always JSON.GET /v1/videos/{video_id}/contentdownloads the rendered MP4 bytes once the video iscompleted(a404until then).
Sizes
size is one of three presets — pick the aspect ratio that matches your reference image so
the subject is not cropped:
Limits
A request that violates a limit returns a
4xx with an error code — e.g.
invalid_image_format, payload_too_large, audio_too_long, input_too_long,
invalid_size, or model_not_found.
Stream the video
For live playback, POST the same body to/v1/videos/stream (a non-standard extension). The
response body is the
fragmented MP4 byte
stream — frames arrive as they are generated, so playback can start before the full clip is ready
(append the chunks to an MSE SourceBuffer in the browser, or write them to a .mp4 file). The
video id comes back in the X-Video-Id header, and the full MP4 is stored too — so a later
GET /v1/videos/{video_id}/content still works.