Documentation
¶
Overview ¶
Package omniavatar provides an OmniAvatar render provider backed by the Tavus video generation API.
It implements render.Provider (Generate/Status/Download) for audio-driven talking-head generation using Tavus replicas. Tavus has no audio upload API, so it does not implement render.AudioUploader — supply a publicly fetchable GenerateRequest.AudioURL.
The adapter is constructor-based and depends only on omniavatar-core. The batteries omniavatar package registers it; import that to use it by name:
renderer, err := omniavatar.GetRenderProvider("tavus",
omniavatar.WithAPIKey(os.Getenv("TAVUS_API_KEY")),
omniavatar.WithExtension("replica_id", replicaID))
Or construct directly:
p, err := tavusomni.NewRenderProvider(tavusomni.RenderConfig{
APIKey: os.Getenv("TAVUS_API_KEY"),
})
The real-time (live) Tavus provider lives in the batteries omniavatar package (github.com/plexusone/omniavatar/providers/tavus), because its LiveKit integration depends on that package.
Index ¶
- func NewRenderProviderFromConfig(cfg registry.ProviderConfig) (render.Provider, error)
- type RenderConfig
- type RenderProvider
- func (p *RenderProvider) Download(ctx context.Context, jobID string, dst io.Writer) error
- func (p *RenderProvider) Generate(ctx context.Context, req render.GenerateRequest) (*render.Job, error)
- func (p *RenderProvider) Name() string
- func (p *RenderProvider) Status(ctx context.Context, jobID string) (*render.JobStatus, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewRenderProviderFromConfig ¶
func NewRenderProviderFromConfig(cfg registry.ProviderConfig) (render.Provider, error)
NewRenderProviderFromConfig creates a Tavus render provider from registry config. It is the registry-friendly constructor the batteries omniavatar package registers as a render.Provider factory.
Types ¶
type RenderConfig ¶
type RenderConfig struct {
// APIKey is the Tavus API key.
// Required.
APIKey string
// BaseURL is the Tavus API base URL.
// Default: https://tavusapi.com
BaseURL string
// ReplicaID is the default Tavus replica used when
// GenerateRequest.AvatarID is empty.
ReplicaID string
// HTTPClient is an optional custom HTTP client, used for both API
// calls and video downloads.
HTTPClient *http.Client
}
RenderConfig configures the Tavus render (batch video generation) provider.
type RenderProvider ¶
type RenderProvider struct {
// contains filtered or unexported fields
}
RenderProvider implements render.Provider for Tavus video generation.
Tavus has no audio upload API, so RenderProvider does not implement render.AudioUploader; callers must supply a publicly fetchable GenerateRequest.AudioURL (.wav or .mp3).
func NewRenderProvider ¶
func NewRenderProvider(cfg RenderConfig) (*RenderProvider, error)
NewRenderProvider creates a Tavus render provider.
func (*RenderProvider) Download ¶
Download streams the completed video to dst. It prefers the download URL and falls back to the stream URL.
func (*RenderProvider) Generate ¶
func (p *RenderProvider) Generate(ctx context.Context, req render.GenerateRequest) (*render.Job, error)
Generate submits a video generation job to Tavus.
GenerateRequest.AvatarID maps to the Tavus replica ID. Width and Height are not supported by the Tavus API and are ignored. Background maps best-effort: Type "video" sets background_source_url; Type "image" and "color" are unsupported. Extensions: "fast" (bool), "callback_url".
func (*RenderProvider) Name ¶
func (p *RenderProvider) Name() string
Name returns the provider name.