How to Make a D&D Character Portrait with ChatGPT — and Fix Content-Policy Refusals

Quick answerDescribe your D&D character to ChatGPT in one visual paragraph — race, face, gear, lighting, art style — and ask for portrait orientation. ChatGPT's image model follows detail more literally than diffusion tools do. If it refuses, cut combat verbs and gore nouns: show the character at rest, battle-worn rather than bloody.

ChatGPT is the image generator most players already have open, and it's genuinely good at character portraits: it follows long descriptions literally, so a scar through the left eyebrow actually lands on the left eyebrow. It also has the two most annoying failure modes of any mainstream tool. First, its content filter flags fantasy staples — a raised sword, an undead warlock, a blood-flecked breastplate — inconsistently and without telling you which word tripped it. Second, the image model keeps no memory of your character, so render two looks like a different person from render one.

Both problems are fixable at the prompt level. This guide covers the prompt structure that works in current ChatGPT (which no longer runs DALL-E at all), the spec technique that stops ChatGPT from inventing traits you never asked for, the rephrasing patterns that route around the filter without defanging your character, and an honest read on where Midjourney still beats it.

How do you prompt ChatGPT for a D&D character portrait?

First, a naming correction, because most of the advice you'll find is stale: ChatGPT hasn't used DALL-E since December 2025. Image generation now runs on OpenAI's GPT Image models (branded "ChatGPT Images"; the 2.0 version arrived in April 2026), and DALL-E 3 itself was retired from the API in May 2026. The practical difference matters: GPT Image is built into the language model, so it reads your prompt like text it understands, not like a bag of keywords.

That means you prompt it in plain, complete sentences. No parameters, no comma-tag stacks, no negative-prompt syntax. Three rules:

  • Ask for portrait orientation explicitly. ChatGPT renders 1024x1024 by default; saying "portrait orientation" gets you the taller 1024x1536 frame that suits a bust portrait.
  • Describe only what a camera would see. Backstory words like "haunted by her past" render as nothing; "dark circles under her eyes, guarded expression" renders exactly.
  • Name a style, or you'll get the house look — a smooth, softly lit semi-realism. "Painterly digital fantasy illustration" pulls it toward rulebook art.

A complete working prompt:

Create a portrait-orientation digital fantasy illustration for a tabletop RPG character: a bust portrait of a female half-orc knight in her thirties, grey-green skin, small lower tusks, a broken nose, and cropped black hair. She wears steel plate armor with a dented pauldron and a deep blue surcoat. Calm expression, eyes toward the viewer. Warm firelight from the left, dark stone background, visible painterly brushwork.

Every clause in that prompt is a visible fact — which is the whole trick. The knight reads as a knight because of the plate and the surcoat, not because the word appears.

Should you let ChatGPT invent the prompt, or hand it a spec?

The advice you'll see everywhere is "just ask ChatGPT to write the prompt for you." Try it and watch what happens: ask for "a cool dwarf cleric" and ChatGPT fills every unspecified field with the statistical average — braided beard, warhammer, glowing holy symbol, stoic frown. It looks fine. It also looks like every dwarf cleric ChatGPT has ever produced, and none of the details are your character's. Worse, the invented details change between generations, because nothing pinned them down.

The fix is to invert the relationship: you supply the decisions, ChatGPT supplies the rendering. Hand it a labeled spec and tell it not to improvise:

Render this character exactly as specified. Do not add or change any traits.
Race and build: wood elf, lean, mid-forties
Face: angular, sun-weathered, thin scar through the left eyebrow, grey-green eyes
Hair: ash-brown, single braid over the right shoulder
Gear: moss-green hooded cloak, hardened leather cuirass, yew longbow on her back
Pose: bust portrait, calm and alert, eyes toward the viewer
Lighting and palette: overcast forest light, muted natural colors
Style: painterly digital fantasy illustration, portrait orientation

Because the image model sits inside the language model, it respects the "do not add traits" instruction far better than diffusion tools respect anything. The spec format has a second payoff covered later: it's re-pastable, which is your main consistency tool in ChatGPT.

Filling those fields is the actual work — which visual anchors are permanent, which gear tells the class story, which lighting sells the mood. That's the structure the Arcane Portraits generator composes for you across 25 fields, and the thinking behind each field is in our character prompt formula guide.

Why does ChatGPT refuse fantasy portraits (weapons, undead, blood)?

"I wasn't able to generate the image because this request violates our content policies." No word highlighted, no rule cited — and the prompt was a paladin.

ChatGPT's image moderation targets graphic violence, gore, shock imagery, real-person likenesses, and the styles of named living artists. The problem for D&D players is that the classifier can't reliably tell graphic violence from genre violence, so ordinary character-sheet material trips it:

  • Active violence. A sword worn at the hip is nearly always fine; a sword mid-swing toward a visible person is a coin flip. OpenAI's own community forum carries years of threads about prompts as mild as "a knight fighting" being flagged.
  • Gore and body-state nouns. "Blood," "corpse," "rotting," "severed," "impaled" are heavily weighted, even when you meant a smear on a breastplate.
  • Undead flesh. Necromancers and zombies sit right on the boundary — the concept is allowed, but flesh-decay wording reads as gore.
  • Living artists and IP. Style requests naming a living artist — "in the style of Greg Rutkowski" — get declined, though broader studio and era styles pass. Trademarked monsters described by name are also flagged.

Two structural quirks make it feel arbitrary. Moderation runs twice — on your prompt and on the finished image — so a generation can start streaming and then vanish when the output checker vetoes it. And enforcement is genuinely inconsistent: an identical prompt can pass on Tuesday and fail on Wednesday. That inconsistency is actually good news, because it means most refusals are shallow phrasing problems, not hard policy walls.

How do you rephrase a refused prompt without losing the character?

Don't argue with the refusal and don't ask ChatGPT what tripped it — it usually doesn't know. Rewrite instead, using four substitutions that preserve the character while dropping the trigger vocabulary:

  1. Static over kinetic. Replace mid-action combat with the moment before or after: "swinging an axe at an orc" becomes "axe resting across his shoulders, catching his breath after battle." You keep the weapon, the fatigue, and the story; you lose the depicted violence.
  2. Implied history over present-tense gore. "Blood-spattered armor" becomes "battle-worn armor, deep gouges across the breastplate, a torn crimson cloak." Damage reads as red and violent without a gore noun in sight.
  3. Spectral over rotting. For undead and necromancer subjects, swap flesh-decay words for skeletal and ghostly ones: "gaunt," "skeletal," "spectral," "pale green spirit-light," "funerary robes." Same dread, no decay vocabulary. More dark-caster wardrobe in our necromancer and warlock prompt guide.
  4. State the genre frame. Open with "character illustration for a tabletop roleplaying game." It gives the classifier a legitimate creative context and cuts spurious refusals.

A before-and-after. This gets refused: "a necromancer raising rotting corpses from a blood-soaked battlefield." This passes:

Character illustration for a tabletop roleplaying game: a gaunt human necromancer in faded black funerary robes trimmed with bone charms, pale skin, sunken eyes with a faint green glow. She holds a gnarled staff topped with a cracked skull, wisps of pale spirit-light curling around her free hand. Moonlit graveyard mist behind her, cold desaturated palette, painterly dark-fantasy illustration, portrait orientation.

Nothing about the character got softer — the moonlight and the cold, desaturated palette are doing the menace instead of the gore words.

How do you iterate when every generation starts fresh?

Here's the frustration nobody warns you about: you get a portrait that's 90% right, ask ChatGPT to "make her smile," and get back a stranger. The image model is stateless about identity — every generation is re-invented from the text and any attached image, not from a stored idea of your character. Recent versions handle small targeted edits much better than the DALL-E era did, but identity still leaks a little on every pass, and the drift compounds.

Working discipline:

  • Keep one canonical spec and re-paste it in full for every variation. Don't say "same character, but smiling" — say the entire spec again with the expression line changed. Exact repeated wording is the closest thing ChatGPT has to a character lock.
  • Make one change per request. Each edit is a fresh roll of every unspecified detail; stacking three changes triples the surface for drift.
  • Stay in one conversation for one character. In-session results hold together noticeably better than portraits generated across separate chats.
  • Promote your best render to a reference. When a portrait nails the face, save it. In later sessions, re-attach it alongside the spec: "match this character's face exactly." The image is a strong nudge, not a guarantee — treat it as insurance on top of the spec, not instead of it.
  • Accept the ceiling. ChatGPT has no persistent character-reference feature comparable to Midjourney's --oref. For a PC who'll appear in twenty images across a campaign, read the cross-tool playbook in our consistent AI character guide.

The common thread: the spec is the character. The images are disposable outputs of it.

What is ChatGPT better and worse at than Midjourney for character portraits?

Honest scorecard, since the right answer for some characters is "use the other tool."

Where ChatGPT wins:

  • Literal instruction-following. Asymmetric details survive: one scar, mismatched eyes, a missing finger, a specific heraldic charge on a shield. Midjourney tends to sand off oddities; ChatGPT renders what you wrote.
  • Conversational fixes. "The tusks are too large, reduce them" is a legal move. Midjourney makes you re-roll or open a separate editor.
  • Readable text. Nameplates, runes, a book title on a spine — current GPT Image renders legible text, which matters for labeled reference sheets.
  • Cost of entry. Free accounts get a small daily allowance (community testing puts it around 2–3 images a day), and Plus at $20/month covers far more portraits than a campaign needs. Midjourney has no free tier at all.

Where Midjourney wins:

  • Paint quality. Midjourney's default output looks like a painting — layered brushwork, atmospheric depth. ChatGPT trends toward smooth, evenly lit semi-realism, and even a well-named style reads cleaner and more airbrushed. If you want grimdark oil-painting texture, Midjourney gets there with less fighting.
  • Consistency machinery. --oref plus a reference image carries a face into new scenes; ChatGPT offers only the spec-and-reattach discipline above.
  • Throughput. Midjourney returns a four-image grid per job; ChatGPT delivers one image at a time, slowly.
  • Filter friction. Midjourney's moderation exists but flags genre violence far less often.

Rule of thumb: precise character with specific mandatory details, or you already pay for ChatGPT — use ChatGPT. Painterly mood and long-campaign consistency — Midjourney. Either way the character description is the same; only the packaging changes.

Frequently asked questions

Does ChatGPT still use DALL-E for images?
No. OpenAI removed DALL-E 3 from ChatGPT in December 2025 and retired it from the API on May 12, 2026. Image generation in ChatGPT now runs on the GPT Image family, branded as ChatGPT Images, with the 2.0 version rolling out in April 2026. Guides written for DALL-E prompting are mostly obsolete: the current model reads full sentences and follows instructions far more literally.
Can I make D&D character portraits with a free ChatGPT account?
Yes, within a small daily cap. OpenAI doesn't publish the exact number for free accounts, but community testing puts it around two to three images per day. That's enough to test a prompt, not enough to iterate a portrait to done in one sitting. If you only need one character, spreading the work across a few days on the free tier works fine.
What image size does ChatGPT generate for portraits?
The standard outputs are 1024x1024 square, 1024x1536 portrait, and 1536x1024 landscape. Ask for portrait orientation in the prompt to get the taller frame, which suits bust and half-body character art. Newer versions of the model can output at higher resolutions, but 1024x1536 is plenty for a character sheet, a VTT display image, or a Discord avatar crop.
Why does the same ChatGPT prompt get refused one day and work the next?
Moderation is probabilistic and runs twice, once on your prompt and once on the finished image, so identical requests can land on different sides of the threshold. A refusal usually means your wording sits near a boundary, not that the concept is banned. Rephrase the nearest trigger words, swapping active violence and gore nouns for battle-worn and spectral equivalents, rather than resubmitting unchanged or arguing with the model.
Can ChatGPT copy a specific artist's style for my character art?
Not if the artist is living. OpenAI declines requests that name an individual living artist's style, though broader studio and era styles are allowed. The workaround is to describe the style's ingredients instead: "1970s fantasy paperback cover, muscular figures, molten color palette, dramatic chiaroscuro, visible oil brushwork." Describing the look almost always lands close to the artist you had in mind without triggering a refusal.
Can I upload my old character art and have ChatGPT redraw it?
Yes. Attach the image and describe what to keep and what to change, for example "same face, ears, and scar, but in plate armor, painterly style." ChatGPT reinterprets rather than traces, so expect the face to shift somewhat, and pair the upload with a written spec of the permanent traits. It works well for upgrading an old sketch or a low-quality generation into a finished portrait.
Does ChatGPT support negative prompts like Stable Diffusion?
There's no negative-prompt field, but you don't need one. Because the image model is built into the language model, plain-sentence exclusions work: "no helmet, no beard, no glowing eyes." State exclusions as flat facts rather than warnings, and keep the list short. Two or three exclusions hold reliably; a paragraph of don'ts starts getting ignored just like an overloaded positive prompt.
Who owns a D&D portrait generated with ChatGPT?
OpenAI's terms of use assign you their rights in the output, so you can use the portrait on character sheets, streams, or a campaign wiki. Separately, US Copyright Office guidance holds that purely AI-generated images aren't copyrightable, meaning you can use the image but likely can't stop someone else from reusing it. For personal game use, neither point matters in practice.
Open the generatorBrowse the library
How to Make a D&D Character Portrait with ChatGPT — and Fix Content-Policy Refusals — Arcane Portraits