LemonSlice
Realtime video avatars from a single image, including cartoons and non-human characters, with a prompt that shapes movement and expression.
Overview
Best for: Character and mascot avatars (non-photoreal or stylised) from a single image.
At a glance
Price is the vendor "as low as" volume rate; Starter overage $0.22, hosted mode +$0.09/min. Calls 30 min self-serve, 2 h Ultra. Over-concurrency calls billed at 2x. Free plan has no API access. LiveKit output 368x560.
Your agent's TTS audio (self-managed) or hosted speech models
Your TTS or hosted voice
Not captured.
Not captured.
Not captured.
Not verified.
Features
- avatar from any single image
- agent_prompt to steer movement and expression
- idle prompt and idle timeout
- hosted widget
- LiveKit plugin (Python and Node)
Pricing
| What | Price | Unit |
|---|---|---|
| Starter | $8 | per month |
| Creator / Professional / Scale | $40 / $100 / $240 | per month |
| Ultra | $960 | per month |
| Hosted avatars (widget or hosted API) | +$0.09 | per minute |
| Headline rate | as low as $0.048 | per minute |
Vendor floor $0.048/min up to Starter overage $0.22 + $0.09 hosted
Free tier: Free plan only lets you chat with featured avatars; API access needs a paid plan.
Source: lemonslice.com
Setup
- Subscribe to a paid plan and get an API key.
- Install the LiveKit plugin and set LEMONSLICE_API_KEY.
- Pass a public image URL (or agent_id) and an optional agent_prompt.
- Start the avatar before your AgentSession.
Endpoint
LiveKit plugin (livekit-agents[lemonslice])
Authentication
LEMONSLICE_API_KEY
Quick start python
# uv add "livekit-agents[lemonslice]~=1.8"
# env: LEMONSLICE_API_KEY + LiveKit credentials
from livekit.plugins import lemonslice
# inside your agent entrypoint, after creating `session`
avatar = lemonslice.AvatarSession(
agent_image_url="https://example.com/face.png", # public image/*
agent_prompt="Be expressive in your movements and use your hands while talking.",
idle_timeout=60, # seconds; negative disables
)
await avatar.start(session, room=ctx.room)
# await session.start(...)
Written from the current docs. Check the vendor's SDK version before you ship.
Warnings
Bursting over the limit costs double
Calls above your plan's concurrency are billed at a 2x multiplier rather than rejected; watch spikes.
Hosted mode adds $0.09/min
Using the hosted widget or hosted API (with speech models) adds $0.09/min on top of avatar minutes.
Small output frame
The LiveKit path renders 368x560 and center-crops your image; check it looks right on large screens.
Idle timeout defaults to 60 s
idle_timeout ends idle sessions after 60 s by default; a negative value disables it, which can leave sessions billing.
Plus 9 warnings that apply to all avatars and live video APIs. See category warnings.
Limits
- Call length: 30 min (self-serve), 2 h (Ultra), 24 h (Enterprise)
- Concurrency: 3 (Starter), up to 100 (Ultra), 1,000+ (Enterprise)
- Calls above the concurrency limit billed at a 2x burst multiplier
- Output 368x560 via LiveKit plugin, images center-cropped
Models and products
| Name | Status |
|---|---|
| LemonSlice-2.1 | GA |
| LemonSlice-2.1 Flash, CWM-1, CWM-1 Lite, Cartoon | GA |
| LemonSlice 2.1 Pro | GA |
Docs and sources
Docs
Sources used
Concurrency for Creator/Professional/Scale, latency, included minutes above Starter.