Skip to content

Core Concepts

Understanding the distinction between Avatars and Sessions is fundamental to building with the Characters API.

Avatars are persistent personas with a defined appearance, voice, and personality. Define your Avatar with a single reference image—any visual style works, from photorealistic humans to animated mascots to stylized brand characters. Configure voice, personality, knowledge base, and conversational actions.

Sessions are live WebRTC connections for real-time conversation. Each Session connects a user to an Avatar for a single interaction. Sessions have a maximum duration of 5 minutes.

Sessions progress through a defined set of states:

┌───────────┐
┌──────────┤ NOT_READY ├──────────┐
│ └─────┬─────┘ │
│ │ │
▼ ▼ ▼
CANCELLED READY FAILED
┌──┴──┐
│ │
▼ ▼
RUNNING FAILED
┌──┴──┐
│ │
▼ ▼
COMPLETED CANCELLED
StatusDescription
NOT_READYSession is being provisioned. Poll until ready.
READYSession is ready to connect. The sessionKey is available.
RUNNINGWebRTC connection is active. The conversation is in progress.
COMPLETEDSession ended normally after the conversation finished.
FAILEDSession encountered an error. Check the failure field for details.
CANCELLEDSession was explicitly cancelled before completion.

The Developer Portal provides a visual interface for managing Characters:

  1. Go to the Characters tab
  2. Click Create a Character
  3. Define your Character with a single reference image
  4. Configure voice, personality, knowledge base, and conversational actions
  5. Preview and test before deploying

The portal also lets you preview available voices and access session recordings.

Create and manage Avatars programmatically for automated workflows or dynamic Avatar generation:

import RunwayML from '@runwayml/sdk';
const client = new RunwayML();
const avatar = await client.avatars.create({
name: 'Support Agent',
referenceImage: 'https://example.com/avatar.png',
voice: {
type: 'runway-live-preset',
presetId: 'clara',
},
personality: 'You are a helpful customer support agent...',
});

See the API reference for the complete list of Avatar management endpoints.

Generate expressive Avatars from a single image with zero fine-tuning required. For best results:

  • Any visual style works: photorealistic humans, animated mascots, stylized brand characters
  • Use high-quality images with good lighting
  • Ensure the face is clearly visible and centered
  • Avoid images with multiple people or obstructions
  • Recommended aspect ratio: 1088×704

Configure your Avatar’s voice using voice presets. Avatars support full conversational expressiveness including natural speech patterns and lip-syncing. Here are some examples:

Preset IDNameStyle
claraClaraSoft, approachable
victoriaVictoriaFirm, professional
vincentVincentKnowledgeable, authoritative
voice: {
type: 'runway-live-preset',
presetId: 'clara',
}

Preview all available voices in the Developer Portal.