Visual Prompt Engineering

No upcoming meetings

This workshop is designed for Midjourney.

Most art generators are based on Stable Diffusion, which was state-of-the-art when released but is now several generations behind Midjourney. DALL-E has likewise been outclassed by Midjourney. Because the difference in quality is so large, this workshop is focused exclusively on Midjourney. However, many of the techniques will apply to Stable Diffusion with some adaptation.

Midjourney offers a limited free trial — please make sure to register an account before starting the workshop, otherwise you won't be able to follow along.

AI art prompt engineering is an artistic skill, and the techniques you learn in this workshop can help you acquire the following Skills, among others:

  • [Meditative] Aesthetic Exploration
  • [Meditative] Hone Your Craft
  • [Meditative] 80/20 Fundamentals

Instructional Material

Parts of a Prompt [35 minutes]

Midjourney is flexible enough that you can describe an image in natural language and it will do a decent job of drawing it. However, if you want to target a specific style or setting, you will need to structure your prompts more mechanically.

Subject [5 minutes]

The subject part of the prompt defines the objects you want to render. Try to write this part of the prompt in a terse, concise manner.

Example. Some potential subjects might be:

  • an hourglass on a table
  • a green marble and gold cube
  • a skull with gears inside it

Notice how all of the examples above are pretty short and evocative. If someone said these subjects to you, you would have a pretty good idea of what the other person was looking for.

This approach channels the AI's creativity into the places you don't care about, while keeping it focused in the places you already have figured out. For example, an hourglass on a table doesn't specify the background, or whether there should be other items on the table — those details aren't something we care about, so we let the AI handle the grunt work of figuring them out.

Tip. If you want to draw a hand and it doesn't come out well, add intricately detailed fingers after the subject part of the prompt.

Instructions [5 minutes]

Take a few minutes and enter the following commands in Midjourney:

  • /imagine prompt: a vase --q 2 --v 5
  • /imagine prompt: a person --q 2 --v 5
  • /imagine prompt: a house --q 2 --v 5

Your exact results will be different, but you should get approximately the correct subject. However, you won't have any control over the style of the image yet.

Style Primitives [15 minutes]

The style part of the prompt defines the artistic style of the image. You can use multiple style primitives and the AI will merge them — for example, ink illustration creates a black-and-white image, but you can combine it with full color to make it draw it in color. The results of combining style primitives like this can be unpredictable.

Example.

  • dramatic shadows, black shadows, intense
  • striking black and white, ink illustration
  • art nouveau, bioluminescent

Instructions [15 minutes]

Look through the Midjourney Style Reference and pick three style primitives that you like. Render the following prompt, replacing the <style> with your style primitive each time. Then, work with your cohort to create a new style made up of at least three primitives that all of you like.

/imagine prompt: a tree. in the style of <style> --q 2 -- v 5

Camera Angles [10 minutes]

The camera angle defines where you want the "camera" of the render to be positioned. This is typically used to change the vibe of an image. Use the following keywords to define your camera angle:

  • close shot Position the camera very close to the subject. Ideal for close-up images of a single object. When used on a person, typically only draws their face.
  • medium shot Position the camera moderately close to the subject. Ideal for images of an object plus a bit of surroundings. When used on a person, typically draws the entire person.
  • far shot Position the camera far away from the subject. Ideal when you want a sweeping vista, such as a landscape.
  • over the shoulder shot Position the camera just over and behind someone's shoulder.
  • low angle shot Position the camera near the ground, looking up at the subject. Ideal when you want to make something look imposing or threatening.
  • high angle shot Position the camera above and looking down at the subject. Ideal when you want to make something look small or dramatic.
  • dutch angle shot Twist the camera, as if you were tilting your head. Usually introduces a sense of unease or tension.
  • aerial shot Position the camera far, far above the subject, as if it was in a helicopter flying overhead.

Midjourney isn't always good about obeying camera angles and these won't work for every prompt.

Instructions [10 minutes]

Render the following prompt with each of the different camera angles.

/imagine prompt: a man in a grassy field. <camera angle> --q 2 --v 5

Parameters [5 minutes]

At this point, you're probably wondering what that --q 2 and --v 5 stuff at the end of the prompts does. Those are the model parameters, or special keywords that change the model's mode of operation. Midjourney has a number of parameters, but here are the most important ones:

Parameter What it does
--q 2 Changes the quality of the image. Higher values cost more GPU time. It's usually best to set it to the max of 2, since Midjourney's subscriptions are pretty generous with their GPU hours.
--v 5 Changes the model version. Mostly not useful. Set to --niji to use the anime model and --v 5 to use the latest general-purpose Midjourney. (--v 5 can do anime as well, and unless you want a generic anime style you're usually better off with --v 5.)
--ar 2:1 Changes the aspect ratio of the render. 2:1 = landscape, 1:2 = portrait.
--stylize 1000 Change the stylization. Ranges from 0-1000, higher numbers have a bigger effect. The exact result varies based on your style string.

Instructions [5 minutes]

Take your prompt from the Style section above (with the multi-keyword style definition), and render it at the following stylize levels:

  • --stylize 250
  • --stylize 500
  • --stylize 750
  • --stylize 1000

Which one do you like best?

Break [5 minutes]

Take a five-minute break.

Putting It All Together [50 minutes]

Now that you know the basic parts of a prompt, it's time to look at how to assemble them. Midjourney weights words earlier in the prompt heavier than words later in the prompt. Thus, you generally want to follow this pattern:

[concise style string] of [subject]. [camera angle]. [full style string] [parameters].

Generally speaking, you should define your concise style string with the following template: <adjective> <noun>

Example.

Here are some possible concise style strings:

  • black and white illustration
  • pencil sketch
  • stained glass
  • golden hour photograph
  • anime screenshot
  • ornate painting

Basic Challenge [10 minutes]

Work with your cohort to use the template above to assemble the prompt parts you came up with in the previous sections.

Example. Suppose that I have the following prompt parts:

  • Subject: a glittering gemstone
  • Style: dark fantasy, cinematic lighting, shimmering light
  • Camera angle: close shot
  • Parameters: --q 2 --v 5

Then I might combine them into this:

/imagine prompt: hyperrealistic photograph of a glittering gemstone. close shot. dark fantasy, cinematic lighting, shimmering light. --q 2 --v 5

Render your assembled prompt and tweak it until it gives you a result you like.

Advanced Challenge [40 minutes]

Now that you know the basics of Midjourney prompt engineering, it's time to tackle something a bit harder. Work with your cohort to duplicate this workshop's banner art.

Start by analyzing the image — what styles do you think make it up? You will find the Midjourney Style Primitives Reference helpful for this.

Once you have an idea, try it out. Experiment and refine your prompt. You won't be able to get it exact, but you should be able to come fairly close.

Add the following parameter to your prompts to use the same RNG seed that I used. --seed 98723479854

If you get stuck, you can use the hints below:

Community Notes

This section contains links and information that Guildmembers found helpful.

Write a Note

You must be signed in to write a note.