Create Consistent Character Images in Midjourney

Using Midjourney, you can create consistent character images in different poses. That’s something we often need for scenario-based learning. You often want images of characters in different poses and with different expressions to support the story. Changing character expressions provides intrinsic feedback and shows consequences for different choices in a branching scenario. While numerous AI image generation tools can create single images of a character, none of them were very good about creating consistent characters until recently. The randomness of AI means the faces and details change quite a bit, even with the same prompt. You could minimize the variance, but it always required some manual cleanup of the images outside of the AI tool.

Now, with the character reference feature, you can create characters in Midjourney. It’s not perfect, but it’s a significant improvement from anything available even six months ago. In this post, I’ll walk you step-by-step through the process I used to create consistent character images in Midjourney.

Examples of a character in different poses

I created the characters in my project management branching scenario in Midjourney. This was an experiment, and a good opportunity to test out what’s possible. For that scenario, I needed several characters:

  • Samantha, the lead developer
  • Jake, the senior developer
  • Alex, the UI designer
  • Zahra, the client
  • Elena, the external consultant

As you can see in these images of Samantha, they’re not perfect. Her facial features shift a little bit between images. Her hair is longer in the two images on the top than the two images on the bottom. Beyond the deliberate change in shirt (which was part of my prompt), there are inconsistencies in jewelry and shirt collar style. But even with those flaws, these were pretty good.

A collage of 4 images of a multiracial woman character created in Midjourney. The images show similar, but not identical, facial features and outfit.

The other characters are similar; they’re not perfect, but they look like the same character. They’re certainly similar enough to tell the story. The facial features were generally more consistent for these other characters than for Samantha.

A collage of 8 images of characters created in Midjourney, with two poses for each of four characters, showing the results of creating consistent characters

Create the initial character image in Midjourney

If you haven’t tried Midjourney before, you can follow their quick start directions to set up an account and get started. The lowest paid basic plan will work, and you can pay $10 for one month to test it out without committing. Currently, you need to use Discord, but they’re testing a website interface as well.

Prompts for new images start with the command /imagine. I started with a prompt for Samantha’s character.

/imagine A multiracial woman with curly brown hair wearing a light blue blouse. She is working in a modern office and using a computer with two monitors. Photorealistic

Note that this wasn’t a very long or detailed prompt. You can provide more detail, but I started with a fairly basic prompt in my testing.

After a short wait, Midjourney provided four images.

Results of a character creation prompt in Midjourney with 4 thumbnail images of a multiracial woman

I liked the top right image best, so I upscaled (enlarged) that image by selecting U2.

Upscaled character image in Midjourney with options in Discord

This image will be the source or reference for the character images.

Create additional images from the character reference image

In Midjourney, you use the –cref property in a prompt to ask to use the original as a character reference. Note that this works best with images created in Midjourney, rather than photos of real people or other external reference images.

  1. Start the prompt with /imagine.
  2. Include the basic description of the character from the source
  3. Add whatever changes you want in expression, pose, outfit, location, etc.
  4. At the end of the prompt, include –cref URL (with the link to the image)

Here’s the next prompt I used:

A multiracial woman wearing a light blue blouse is sitting in a modern conference room. Her arms are crossed and she looks frustrated. Close up on her face. Photorealistic. --cref https://s.mj.run/t6XWU90IoHs
4 character images in Midjourney with the prompt listed above

I tried a few other variations to change the pose and get different expressions. The pattern for the prompt is always the same: Basic description, changes, –cref. I upscaled the best image(s) from each set.

A multiracial woman wearing a light blue blouse is sitting in a modern conference room. Her arms are crossed and she looks frustrated. Close up on her face, profile view. Photorealistic. --cref https://s.mj.run/t6XWU90IoHs

Then, I changed her blouse color. Even though I asked for a full body image, it ignored that part of the prompt. I didn’t get any difference from asking for a close up portrait or a full body image.

A multiracial woman wearing a dark green blouse is sitting in a modern conference room. She is talking and using her hands to emphasize a point. Profile view, full body. Photorealistic. --cref https://s.mj.run/t6XWU90IoHs
4 images of the same character, but in a green blouse and talking and gesturing with her hands

I also tried creating some additional variations on the top left image (V1 = variations on the first image). This worked OK, although I think her face changed more in these variations. My results were better just generating new ones with the –cref parameter than creating variations. But, I got one useful image from this set.

4 images of the same character talking. The two images on the left have more differences in her facial features and look more like a different person.

Intentional diversity in characters

I used this same process with all of the other characters. By default, you probably won’t get much racial or ethnic diversity in your characters unless you deliberately prompt for it like I did. Midjourney isn’t going to start with a multiracial woman if you tell it to create a lead developer. These are the initial prompts I used to generate the initial reference images for each character.

  • Jake: A 30-year-old white man with light brown hair wearing a dark gray button-down shirt and khakis. He is sitting a modern office conference room and talking, using his hands to emphasize a point. Photorealistic
  • Alex: An Asian man in his mid-50s slightly graying hair wearing a dark red shirt. Sitting in a modern office conference room, leaning forward and listening.
  • Zahra: A woman with medium-brown skin wearing a hijab and wearing business professional clothes, talking in a modern office conference room.
  • Elena: A Latina woman in her mid-40s wearing glasses and a purple blouse sitting in a modern office conference room, photorealistic

What didn’t work: combining characters

I tried to combine the characters into a single image by expanding source images and using the “vary region” option. I did a bunch of experimenting, but I was never happy with any of the results. The scale of the characters is hard to get right, and they often aren’t really looking the right direction. After spending time testing out different ways of prompting, I decided to abandon that option. I suspect it’s possible, but it’s too time consuming. If I want to put characters together, it will be faster to edit it myself in another program.

An image with three characters sitting at a conference table together, but the scale is inconsistent. The Asian man in the middle looks much smaller than the multiracial woman and white male adjacent to him.

Character weight parameter

In addition to the –cref parameter, you can include an optional character weight parameter: –cw. Check Midjourney’s documentation for details and examples.

The –cw parameter is a number from 0 to 100. Lower scores focus on maintaining just the facial features; higher scores focus on consistency in facial features, hair, and outfits. So, if you want to change your character’s outfit, try adding a lower –cw parameter (0-25) to your prompt.

Multiple poses as the reference

If you want to try out Midjourney for character images, try creating a source image with multiple poses to start. This tip is from Rory Flynn (thanks Wesley Hall Parker for bringing it to my attention):

Character Sheet Prompt Structure:
character sheet, [subject], [wearing], studio setting, flat background, [camera/lens]; image split into 4 different pictures, shot from multiple angles –ar 16:9

Character Sheet Example:
character sheet, happy woman with grey hair, wearing a black t-shirt, studio setting, flat background, Leica M10-R; image split into 4 different pictures, shot from multiple angles –ar 16:9

Character Sheet Notes:
+ Splitting image into 4 parts gets multiple angles

Alternatives to Midjourney for consistent character creation

In the TLDC Visual Design event, Leigh Ann Morgan recommended RenderNet as an alternative AI tool for creating characters. I haven’t tested that yet, but it looks like another promising option to try.

The other option is to use something with face swapping technology like Reface.

Try it yourself

This AI character generation technology is still very new, but it’s improving all the time. The kind of consistent character images above that I generated in a few hours wouldn’t have been possible just a few months ago. This feature was just released in March, and it will improve with time. But even right now, and with very simple, non-optimized prompts, it’s possible to get usable images. With more practice prompting and as the technology continues to improve, the results will be even better.

If you use character images for your projects, I encourage you to try out Midjourney. Let me know what works well and what challenges you have in using AI for generating consistent character images.

1 thought on “Create Consistent Character Images in Midjourney”

  1. Pingback: Experiments with Midjourney Character Images - Experiencing eLearning

Leave a Reply