Note
Diverse by prompt, biased by role: how AI illustration passes society's stereotypes on
I asked for more diverse people in the sketch notes an AI pipeline draws for me. The AI writing the scene descriptions obliged by attaching an identity to each scene, and in doing so gave a wheelchair user a stage to conduct from, and the cleaning to an older Black man, alone, scrubbing a heap. The image model drew exactly what it was told, so every check passed.
Mullo is a prototype I'm building that turns my notes from talks and courses into a one-page sketch note: my takeaways, drawn as a hand-illustrated page with words, small scenes and arrows between ideas. A language model plans each page, including a short description of every scene; an image model then draws the whole page, words included; and checks run afterwards to catch misspelt words and arrows that link ideas my notes never linked. This note is about what happened when I asked for the people on those pages to be more diverse, and why none of the checks noticed.
Who appeared
The early pages were full of people, and almost all of them were white men. I added a design rule: illustrations should include diverse representations of people where it makes sense. The next four pages ignored it.
Next, Claude Code, which builds Mullo with me and was writing the scene descriptions at that stage, named a person in each scene. The cast widened straight away. The same pages showed a wheelchair user conducting an orchestra from a raised platform, on one page with steps up to it; a man with a prosthetic leg crossing a river on a plank that didn't reach the far bank; and the cleaning given to an older Black man, alone, scrubbing a heap.


Where the bias came from
I assumed the image model had done this. It hadn't. When I asked, Claude Code traced each fault to its own wording:
- The conductor: "a wheelchair user on a low stage conducting an adult orchestra". The stage was in the description; the image model added the steps.
- The cleaning: "an older black man scrubbing a huge muddy pile". That gave the cleaning to an older Black man, alone, and described skilled work as scrubbing.
- The rest: the other scenes worked the same way, with a young Black woman "lounging in an armchair", a man with a prosthetic leg on the plank, and a woman in a headscarf carrying a lantern.
In its words, it was "meeting your diversity request by attaching an identity to each scene. That decided, scene by scene, who did what and how it looked, and no check could catch it, because the pages matched the plan exactly".
That last point is the one I keep coming back to. My checks were built to make sure the picture was faithful to the plan: every word right, every arrow where it should be. A plan that gives the cleaning to an older Black man, alone, is drawn faithfully, and passes. Faithfulness and fairness are different properties, and I had only built a check for one of them.
Why asking isn't enough
None of this is peculiar to my pipeline. Researchers found in 2023 that large language models were three to six times more likely to choose an occupation that stereotypically matches a person's gender, and that they "amplify the bias beyond what is reflected in perceptions or the ground truth". A 2025 study, titled with uncomfortable precision "More Women, Same Stereotypes", found that newer models put more women into their stories, yet which jobs those women got still followed human stereotypes more closely than real labour statistics. That's what happened to me: the cast changed, and the roles didn't.
Image models show the same pattern. A 2023 study of text-to-image models found they amplify demographic stereotypes, and that "neither user attempts to counter stereotypes by requesting images with specific counter-stereotypes nor institutional attempts to add system 'guardrails' have prevented the perpetuation of stereotypes". Bloomberg's analysis of 5,100 images from Stable Diffusion the same year found women made up about 3% of the images generated for "judge", against 34% of US judges, and that images for "fast-food worker" and "social worker" showed darker skin tones far more often than the real workforce does. The bias isn't invented by the models; it's learned from what we've written and drawn, and then reproduced more consistently than the world it came from.
The conductor shows something more specific. The social model of disability, developed by disabled people, holds that "people are disabled by barriers in society, not by their impairment or condition", as Scope explains it. Here, the steps are the barrier. The pipeline included the wheelchair and then kept the barrier. My guess is that it combines features that often appear together, rather than picturing a real place where someone has to get onto that stage; I'd expect a human illustrator to notice.
Every picture of people makes claims: about who leads, who serves, who belongs where. On my pages those claims sit under the line "Mulled from my notes", which makes them mine.
Why automation makes it worse
One stereotyped image is a mistake. A pipeline that writes the scene descriptions and draws them, for anyone, from anyone's notes, makes the same mistake at scale, unattended, under each user's name. Its checks verify that the picture matches the plan, so a biased plan passes all of them. Mine didn't notice. The checker that catches misspelt words and wrong arrows passed a third arm and a backwards head; a body check added afterwards caught the arm but still missed the head; and nothing looked at who had been given which task. The only check that caught the casting was me looking.
There's a longer loop too. Images like these get published and shared, and published pictures can become part of what future models learn from. A tool that quietly repeats a stereotype risks more than reflecting the bias it inherited: it can add to the material the next one learns from.
What I've tried so far
After those pages, I set a sharper rule: a page shouldn't try to include someone from every community; it should never suggest a minority is doing a lowly task; and it should never put a disabled person somewhere they couldn't be. The scene descriptions were rewritten to match: the conductor standing on the floor, the woman in a headscarf crossing on a flat plank that reaches both banks, the wheelchair user on level ground, two colleagues sharing the cleaning. No pages have been drawn with them yet.
Sharing the task fixes who does it, but not how it's shown. Cleaning data is skilled work. Drawn as someone examining and sorting with the right tools, it reads as expertise; drawn as someone scrubbing a heap, it reads as menial. Who does a task and how the task is drawn are separate claims.
The round before taught me one more thing: naming an identity in every scene pushed the pages towards a checklist of communities, with some roles that read badly. It was tokenism produced by instruction.
What I built next
I built that plan into Mullo, and the build page follows the work in more detail. It has three parts:
- The step that plans the scenes never says who anyone is. It gives each role its task and how that task is done with dignity, and leaves the casting to code.
- Code, not a model, casts the roles, from a pool of 14 whole people, each marked by an item and a colour. It picks the least-used people first, and it never puts anyone using a mobility aid on uneven ground.
- The check reads people by their marker only, never by who they appear to be, and blocks a page when someone is miscast or missing, or when a step-free scene has steps. A separate read of the whole picture, for what it implies, can only flag a concern; it can't pass or block a page.
Across six runs on two sets of notes, the new checks saw what no earlier version could. The marker check caught other people doing the tasks planned for the marked characters. The read of the whole picture flagged the rest: an engineer drawn small at the edge of the work, against a huge gear; one character drawn three times, dominating the page; and the plank that still didn't reach the far bank, the same fault as before, which a later prompt fixed. One page came out clean on words and arrows, though the cast check still raised flags on it.
I'd call that progress in seeing rather than in fixing: the failures are now visible to the pipeline, where before only I could see them, but the problem isn't solved. Whether the drawings can be made to follow the casting is still open, and I'll report it here when I know.
If you're using AI to make images of people
If your team generates images of people automatically, for decks, marketing, onboarding or a product, these questions are worth asking before the next batch:
- If you asked an AI to "make it more diverse", what did it write? Read the brief or prompt it produced, not just the picture, because that's where the casting happens.
- Who is doing what, across the whole set, not just in each image?
- Would the scene work for the person in it?
- Who checked, and could they have seen the problem?
A request for diversity is a start, but even when it changes who appears, it doesn't change who does what.
If you're working on this, I'd be glad to compare notes. Get in touch.