Skip to content

Create Your Own Characters

In this tutorial, we will create our own character and do a video call with it in a React app.

We only need one image of the character, and we can start calling the character immediately, no training required.

Helpful links:

Create an account at dev.runwayml.com.

Dev portal login page

Once you log in, you will see an “Characters” tab at the top bar.

Click on the “Create a Character” button.

Characters tab with Create a Character button

Avatar creation form

Here are some tips for choosing a good character image:

  • Use high-quality, front-facing photos with good lighting
  • Ensure the face is clearly visible and centered
  • Avoid images with multiple people or obstructions
  • Recommended: 16:9 aspect ratio

Upload character image

You can click the “play” button to hear each voice option, then select the one you like. There are also options to customize the voice.

Input “Instructions” for your character. For example: “Your name is xxx, you are a customer service support for a company called xxx. You help users with their questions.”

Instructions input

If you’d like to tell your character to say something at the beginning of every conversation, input a “Starting script”. For example: “Hello, my name is xxx, how can I help you?“

If you have longer text files that your character should know about, feel free to upload a .txt file there. For example, a .txt file of the product information that your character should know about.

Click on “Create Character”.

You will see a character page like this — copy the “Avatar ID”. It is a UUID that has 32 hex digits (e.g., 8be4df61-93ca-11d2-aa0d-00e098032b8c).

Character page showing Avatar ID

3. Use the custom character in your React app

Section titled “3. Use the custom character in your React app”

If you haven’t already, check out the previous Quickstart tutorial or React app template and follow the instructions in the README to run the app.

Once you get the app running, update the code in two places:

1. Go to my-avatar-app/app/page.tsx and update MY_AVATAR’s id to the ID of the avatar you just created. Optionally, you can also update the name or imageUrl.

const MY_AVATAR = {
id: "8be4df61-93ca-11d2-aa0d-00e098032b8c",
name: "Yining",
imageUrl:
"https://runway-static-assets.s3.us-east-1.amazonaws.com/calliope-demo/tutorial/yining-character.jpeg",
};

2. Go to my-avatar-app/app/api/avatar/connect/route.ts and update the avatar type to "custom".

const avatar = { type: "custom" as const, avatarId: avatarId };

Now if you run the app again, you should see your own character on the page and you can start a conversation with it.

Custom character in the app

Active video call with custom character


That’s it! There are so many applications for custom characters — we’re excited for you to create your own. Please reach out to us if you have any questions via Runway support.