v0.3.0¶
Release Date: 2026-07-27
Adds the local render provider — on-device audio-driven talking-head video generation on Apple Silicon, no cloud API required.
Highlights¶
- Local render provider:
providers/liveportrait-joyvasa— the first on-device engine, using LivePortrait + JoyVASA (MIT/Apache, fully-free)
Added¶
providers/liveportrait-joyvasa— local render provider connecting to a Python gRPC server on Apple Silicon (MPS)- Local provider registered in
providers/allfor auto-discovery via:
Usage¶
import (
"github.com/plexusone/omniavatar"
"github.com/plexusone/omniavatar-core/render"
_ "github.com/plexusone/omniavatar/providers/liveportrait-joyvasa"
)
// No API key needed for local provider
provider, _ := omniavatar.GetRenderProvider("liveportrait-joyvasa")
// Upload local audio (returns local:// URL)
audioURL, _ := provider.(render.AudioUploader).UploadAudio(ctx, "narration.wav", f)
job, _ := provider.Generate(ctx, render.GenerateRequest{
AvatarID: "john", // avatar bundle name
AudioURL: audioURL,
})
status, _ := render.Wait(ctx, provider, job.ID, 3*time.Second)
provider.Download(ctx, job.ID, outFile)
Setup¶
The provider requires a running Python server. Start it with:
See the omniavatar-core local render guide for full setup instructions and avatar bundle format.
Performance¶
On Apple Silicon (M-series):
| Metric | Value |
|---|---|
| Resolution | 512×512 |
| Speed | ~5 min for 13.7s output |
| Memory | ~4GB with model loaded |