Among the things that pleasantly surprised me about Z-Image is how well it understands emotions and turns them into facial expressions. It’s not perfect (it doesn’t know all of them), but it handles a wider range of emotions than I expected—maybe because there’s no censorship in the dataset or training process.

I decided to run a test with 30 different feelings to see how it performed, and I really liked the results. Here’s what came out of it. I've used 9 steps, euler/simple, 1024x1024, and the prompt was:

Portrait of a middle-aged man with a <FEELING> expression on his face.

At the bottom of the image there is black text on a white background: “<FEELING>”

visible skin texture and micro-details, pronounced pore detail, minimal light diffusion, compact camera flash aesthetic, late 2000s to early 2010s digital photo style, cool-to-neutral white balance, moderate digital noise in shadow areas, flat background separation, no cinematic grading, raw unfiltered realism, documentary snapshot look, true-to-life color but with flash-driven saturation, unsoftened texture.

Where, of course, <FEELING> was replaced by each emotion.

PS: This same test also exposed one of Z-Image’s biggest weaknesses: the lack of variation (faces, composition, etc.) when the same prompt is repeated. Aside from a couple of outliers, it almost looks like I used a LoRa to keep the same person across every render.