# Character Studio

> Build a reusable character in Character Studio. Generate and approve a portrait, add angles, expressions, poses and motion clips, then give it a voice.

Source: https://nodaro.ai/docs/guides/character-studio

**Character Studio** is the full-screen editor where you build a character asset: its portrait, its pictures and clips, its voice and its personality. You build a character once. Every image or video node you connect it to then works from the same approved pictures, so the person looks the same in every shot.

## Open the studio

1. Press Tab on the canvas and choose **Assets › Characters › Character Asset**.
2. Click **Studio** on the node. You can also select the node and click **Open Character Studio** in the settings panel.

The studio opens full screen on the **Profile** page. Close it to go back to the canvas. The [Character Asset](https://nodaro.ai/docs/nodes/assets/character) node then shows a summary of the character.

## What each page does

The sidebar groups the pages in the order you usually work: the character's sources, identity, visuals and voice.

| Group | Page | What you do there |
| --- | --- | --- |
| **Resources** | **References** | Upload real photos of the person, one per angle. |
| | **Pickers** | Choose structured appearance and wardrobe details. |
| | **LoRA** | Train a custom model on the character's pictures. Nodaro Cloud only; see [Character training](https://nodaro.ai/docs/guides/character-training). |
| **Identity** | **Profile** | Set the name, portrait, description, style and identity lock. |
| | **Appearance** | Generate head angles, body angles and lighting variations. |
| **Visuals** | **Expressions** | Generate the face with different emotions. |
| | **Poses** | Generate the full body in different postures. |
| | **Motions** | Generate short video clips of the character moving. |
| | **Emotion videos** | Play the reference clips stored for each emotion. |
| | **Sheet** | Compose a turnaround or a full reference sheet. |
| | **Board** | Compose a dense identity board from the character's pictures. |
| **Character** | **Voice** | Choose a voice and hear the character speak. |
| | **Personality** | Write notes on temperament, speech and movement. |

A number next to a page counts its pictures or clips. A check mark shows that **Voice** or **Personality** is filled in.

## Build a character, step by step

### Add reference photos and pickers first

On **References**, upload real photos of the person. On **Pickers**, choose appearance attributes and wardrobe. Both are added to every portrait and picture the studio generates, so the first portrait is closer to what you want.

### Fill in the profile

On **Profile**, name the character and describe the face, body, hair and clothing. Choose the style and the image model.

### Generate and approve a portrait

Choose 1, 2 or 4 **Candidates** and click **Generate**. Click the candidate you want to approve it. The portrait is the anchor for every other picture of the character.

### Build the identity anchor set

On **Appearance**, generate the five head angles. Every picture you generate afterwards uses them as references, so the face stays the same.

### Add expressions, poses and motion

Generate the expressions, poses and clips your story needs. Then connect the Character Asset node to your image and video nodes, as described in [Consistent characters](https://nodaro.ai/docs/guides/consistent-characters).

Workflow: One Character Asset gives Generate Image its approved pictures, fills in the voice of Text to Speech, and gives Lip Sync its portrait.

- Character Asset → Generate Image (assets)
- Character Asset → Text to Speech
- Text to Speech → Lip Sync (audio)
- Character Asset → Lip Sync (portrait)

## References and pickers

**References** has seven slots for real photos: **Face**, **3/4 L**, **Profile L**, **Profile R**, **3/4 R**, **Body** and **other**. Click a slot to upload a photo. The six named slots hold one photo each, and a new upload replaces the old one. The **other** slot holds as many photos as you add.

Real photos give the models extra information, so generated pictures stay closer to the real person. Nodaro sends each photo to the generations it fits. For example, the **Face** photo guides expressions, and the **Body** photo guides poses, body angles and motions. After you change the photos, the next generation uses the new ones.

**Pickers** has two structured pickers. Their choices are saved with the character and added to its own portrait and picture prompts, with no connection to make.

- **Appearance attributes** — hair, eyes, build, age, ethnicity, skin, face and more. It is the same catalog as the [Person](https://nodaro.ai/docs/nodes/creative-controls/person) picker.
- **Wardrobe** — archetype, top, bottom, outerwear, footwear, headwear, accessories, color palette, material and era.

Pickers and reference photos affect only the character's own generations. They are not sent to other nodes.

## The Profile page

### Generate and approve the portrait

1. Choose how many **Candidates** to make: 1, 2 or 4. The **Generate** button shows the total credit cost. Each candidate costs one image on the chosen model.
2. Click **Generate**. With one candidate, the result becomes the portrait when it is ready.
3. With two or four candidates, click the one you want (**Click to approve**). Approving stops the candidates that are still running.

Approving costs no credits. It also writes the **Canonical description**: a visual description of the character, 80 to 120 words long. The studio adds it to every picture it generates, and connected image and video nodes can add it to their prompts. Open it to read or edit it, up to 4,000 characters. Click **Regenerate description from current portrait** to write it again from the current portrait.

Candidates you generated but did not approve stay in a **Previous candidates** strip for 7 days, up to 5 of them. Approve one of them later if you change your mind. Point at the approved portrait to enlarge it or copy its URL.

### Identity fields

| Field | What it does |
| --- | --- |
| **Character name** | The character's name. It also becomes the name you mention: `Maya Chen` is `@maya-chen:1`. A new character starts as "Untitled character", so rename it. |
| **Appearance description** | The face, body type, hair and clothing, in your own words. |
| Gender | **male**, **female** or **other**. |
| Style | **realistic**, **anime**, **3d-pixar** or **illustration**. Use the same style for every character in a project. |
| **Base outfit** | The character's usual clothes, in free text. It is combined with the **Wardrobe** picker. |
| **Identity lock** | How strongly generations keep the face: **Off**, **Soft** or **Strict**. **Off** is the default. See [Identity lock](https://nodaro.ai/docs/guides/consistent-characters#lock-the-identity). |
| **Reference image URL** | The address of the portrait. Paste the URL of a picture you already have to use it as the portrait. |
| Image model | The model for the portrait. [Nano Banana Pro](https://nodaro.ai/docs/models/image/nano-banana-pro) is the default. |
| **Seed Prompt** | A short identity description for the portrait, such as physical traits, demeanor and distinctive features. Up to 4,000 characters. |

## Appearance: angles and lighting

The **Appearance** page has three sections. Approve a portrait first, because the angles are generated from it.

| Section | Presets | Framing |
| --- | --- | --- |
| **Head Angles** | front, 3/4 left, left profile, right profile, 3/4 right | Head and shoulders |
| **Body Angles** | front, 3/4 left, left profile, right profile, 3/4 right, back | Full body, standing naturally with the arms at the sides |
| **Lighting Variations** | daylight, night, dramatic | The same character under different light |

The box at the top counts the **Identity anchor set**: the five head angles. Once you generate them, every picture the studio makes afterwards uses them as references. Build the set before expressions and poses, and faces stay the same across all of them.

## Expressions and poses

**Expressions** shows the face with different emotions. **Poses** shows the full body in different postures.

| Page | Presets |
| --- | --- |
| **Expressions** | neutral, smile, angry, surprised, sad, talking, laughing, disgusted, fearful, smirk, crying |
| **Poses** | standing, walking, sitting, running, crouching, pointing, fighting stance, jumping, turning |

The bar at the bottom of each page works the same way:

- Click a preset to generate it. Each preset shows its credit cost.
- Choose the model: [Nano Banana Pro](https://nodaro.ai/docs/models/image/nano-banana-pro) (the default), [Nano Banana 2](https://nodaro.ai/docs/models/image/nano-banana-2), [GPT Image 2](https://nodaro.ai/docs/models/image/gpt-image-2), [GPT Image 2.5 Flare](https://nodaro.ai/docs/models/image/gpt-image-2-5-flare), [GPT Image 2.5 Sunburst](https://nodaro.ai/docs/models/image/gpt-image-2-5-sunburst) or Seedream.
- **Generate All** queues every preset that is still missing. The studio asks you to confirm when four or more generations would start.
- **Custom prompt** at the top of the page generates any other variant from your own words.
- **Real-life refs** attaches real photos to one preset, for example a real laughing face for **laughing**.
- **Import** adds a picture you already have from its URL, with no generation.

### Work with the cards

Point at a card to see its actions.

| Action | What it does |
| --- | --- |
| **Regenerate same** | Makes a new take of the same variant and replaces the card. |
| **Add variation** | Makes a new take and keeps the old card, so you can compare the two. |
| **img2img refine** | Changes the picture with a prompt, such as "more intense smile". Choose **Replace** or **Add as new**. |
| Rename | Click the name to edit it. The name is the tag that identifies the variant, for example in `@maya:1:smile`. |
| **Set as default for this character node** | Makes this picture the node's default. The node shows it, and connected nodes receive it instead of the portrait. Click again to unset it. |
| **Add as node on canvas** | Places the picture on the canvas as its own node. |
| Enlarge, copy URL, delete | View the picture full screen, copy its address, or remove it. |

Each regenerate, variation and refine costs the same as a new picture on the chosen model.

## Motions

**Motions** holds short video clips of the character, animated from its pictures. Generate a portrait first; without one, **Generate** is disabled.

- **Presets**: walking, running, waving, sitting down, fighting stance, jumping, turning around, dancing, talking gesture.
- **Models**: [Kling 2.6](https://nodaro.ai/docs/models/video/kling-2-6) (the default), [Kling 2.5 Turbo Pro](https://nodaro.ai/docs/models/video/kling-2-5-turbo-pro), [Kling 3.0](https://nodaro.ai/docs/models/video/kling-3-0), [Wan 2.6 I2V](https://nodaro.ai/docs/models/video/wan-2-6-i2v) and [Wan 2.7 I2V](https://nodaro.ai/docs/models/video/wan-2-7-i2v).
- **Cost**: a clip costs the same as an image-to-video run on the same model.

A full-body picture animates much better than a head-and-shoulders portrait. So Nodaro animates the **front** body angle when the character has one. When the character has no body angles yet, the studio first generates a front body angle, then animates it.

Motion cards have **Regenerate same** and **Add variation**, but no refine and no **Generate All**. **Import** adds a clip you already have from its URL.

**Emotion videos** plays the reference clips stored for each emotion, such as *angry* or *happy*. The page only plays clips; it does not create them.

## Sheets and boards

**Sheet** composes a reference sheet from the character's pictures. Choose a preset:

| Preset | Panels |
| --- | --- |
| **Studio · Main** | A clean turnaround for AI video reference: the head from the front, both profiles and the back, and the body from the front, the side and the back. 7 panels. |
| **Studio · Extended** | A full turnaround that adds 3/4, above and below angles. 15 panels. |

Under **Add boards**, add bands for **Expressions**, **Poses**, **Wardrobe**, **Detail** and **Palette**. A sheet holds at most 24 panels, so a board is disabled when it would go past the limit. You can also change the **Skin**, the **Aspect**, **Title / metadata** and **Panel labels**.

1. Click **Prepare *N* angles**, where *N* is the number of missing panels. Only those panels are generated, and they are saved to the character for reuse. The line above the button shows how many panels are reused and what the rest costs.
2. Click **Compose sheet** to assemble the sheet. It is available once no panel is missing.

Open a sheet full screen, copy its URL, or click **Set as node thumbnail**. The [Reference Sheet](https://nodaro.ai/docs/nodes/image/reference-sheet) node builds the same kind of sheet on the canvas.

**Board** composites 2 to 12 of the character's pictures into one dense 4K identity board. A board is the strongest single-image anchor you can give a model.

1. Click **New board**. Every picture the character owns appears, grouped by kind.
2. Select 2 to 12 pictures. A number on each one shows its place in the board.
3. Click **Generate**. A board costs the same as a 4K [Image Collage](https://nodaro.ai/docs/nodes/image/image-collage).

A character holds up to 12 boards. **Duplicate** reopens the picker with the same pictures selected, and saves the result under a new name. Click a board's name to rename it. **Cancel** on a board that is still generating refunds its credits. In the `@` mention menu, a character's boards are listed first. For boards and grids made on the canvas, read [Reference boards](https://nodaro.ai/docs/guides/reference-boards).

## Voice and personality

**Voice** gives the character a voice that other nodes reuse.

- **Browse** — choose an ElevenLabs voice from the premade voices, the public library or your own custom voices. Search and preview each one.
- **Design from text** — describe a voice, write a preview line of at least 100 characters, and click **Audition** to hear it. A designed voice is for listening only; it is not saved.
- **Voice traits** — describe the voice in free text on the selected voice, for example "deep, calm, British accent".
- **Talk** — type a line and click **Speak** to hear the character say it. With an approved portrait, **Speak + lip-sync portrait** renders a short talking clip. Speak costs the same as a [Text to Speech](https://nodaro.ai/docs/nodes/audio/text-to-speech) run, and the lip-sync clip costs the same as a [Lip Sync](https://nodaro.ai/docs/nodes/video/lip-sync) run.

Connect the character to a Text to Speech node, and the character's voice fills in that node when the workflow runs. A voice you set on the Text to Speech node itself always wins.

**Personality** has four text fields: **Mood / Temperament**, **Speech Style**, **Movement Style** and **Behavioral Notes**. They are saved with the character, but they are not added to prompts.

## Saving and versions

- **Saving is automatic.** The header shows **Saving…** and **Saved**. There is no save button.
- **Generations finish without you.** Each picture or clip is added to the character when it is ready, even if you close the studio or refresh the page.
- **Versions stay side by side.** **Add variation** keeps every take of a variant, and **Previous candidates** keeps unapproved portraits for 7 days.

## The Character Asset node on the canvas

The node is a compact summary card:

- The portrait, or the picture you set as the default, with the name, style and gender.
- A **Role** menu: the part of the character that connected nodes take by default. See [Reference roles](https://nodaro.ai/docs/guides/reference-roles).
- An **Identity lock** row: **Off**, **Soft** or **Strict**.
- Counts for **Expressions**, **Poses** and **Motions**, and marks for **Voice** and **Personality**.
- **Studio**, which opens the studio, and **Choose existing**, which binds another character.
- On Nodaro Cloud, a **Training…** badge while a model trains and a green **Trained** badge when it is ready.

Point at the picture to choose its shape: `1:1`, `3:4`, `16:9` or `9:16`. The shape also sets the aspect ratio of the character's next generations.

The node has two outputs. **Character** carries the full identity: the pictures, the canonical description, the role and the identity lock. **Image** is only the picture, for any input that accepts an image.

The settings panel adds **Inject identity description in downstream prompts**. When it is on, connected image and video nodes add the canonical description to their prompts. It needs a canonical description, so approve a portrait first.

## Use a character you already have

Click **Choose existing** on the node, or **Choose from Library / Gallery** in the settings panel.

- **My Library** lists your own characters.
- **Public Gallery** lists characters shared by the community. Choosing one copies it into your library first, then connects the node to the copy. The tab appears on multi-user installs, such as Nodaro Cloud.
- If you already copied a gallery character, the picker asks whether to use your copy or **Make a new copy**.

Once a character is bound, the buttons read **Replace** and **Replace from Library / Gallery**. Replacing brings every picture, clip, voice and personality of the new character, so connected nodes use it at once.

## Delete and restore a character

In the **My Library** tab, point at a character and click **Delete from library**. The character is archived, not destroyed. Nodes that already use it keep working.

An archived character can be restored with the API, the SDK or the CLI. If another active character has the same name, the restored one gets "(restored)" added to its name. On Nodaro Cloud, deleting a character also cancels a training in progress, refunds it, and deletes the trained model.

## Tips

- **Set pickers and references before the first portrait.** They shape the portrait, and every later picture follows the portrait.
- **Approve before you branch out.** Pictures generated before an approved portrait are less consistent, and motions need one.
- **Name the variants carefully.** The names are the tags you mention, such as `@maya:1:smile`.
- **Refine instead of rerolling.** Use **img2img refine** with **Add as new** to change a detail and keep the original.
- **Keep one style per project.** Mixing styles across characters breaks the look of a story.

## From code and agents

Everything in the studio is also available to code and AI assistants. The REST API, the SDK and the CLI create characters, generate and approve portraits, add pictures and clips, and archive and restore characters. See [Characters](https://nodaro.ai/docs/developers/api/characters).

The MCP tools include `create_character`, `update_character`, `generate_character`, `approve_portrait`, `recaption_character`, `generate_character_motion`, `list_characters` and `get_character`. The MCP tools cannot delete or restore a character. See the [MCP tools](https://nodaro.ai/docs/mcp/tools).

## Frequently asked questions

### How do I open Character Studio?

Add a Character Asset node to the canvas and click Studio on the node. You can also select the node and click Open Character Studio in the settings panel. The studio opens on the Profile page.

### Why can't I generate expressions, poses or motions yet?

They are generated from the character's portrait. Generate a portrait on the Profile page and approve it first. Until then, the studio asks you to open Profile.

### Do I need to save my character?

No. Character Studio saves as you type, and the header shows Saving and Saved. Pictures and clips are added to the character when they finish, even if you close the studio during a generation.

### What is the difference between Regenerate same and Add variation?

Regenerate same makes a new take of the same picture and replaces the card. Add variation makes a new take and keeps the old card next to it, so you can compare them.

### What happens when I delete a character?

Delete from library archives the character. Nodes that already use it keep working. An archived character can be restored with the API, the SDK or the CLI.
