I Rolled Character Portraits From My Cyberpunk Novella Using Midjourney

I enjoy using Midjourney.

There’s the mindless time sink, where you roll out whatever nonsense comes into your head, as well as the more thoughtful moments of trying to churn out something kind of interesting and dazzling that could make a good wallpaper or backdrop.

Earlier this week, however, I wondered if I could use it to create something that wasn’t so spur of the moment. If it could help me illustrate something a bit more tangible.

I started wondering what would happen if I used it to try and generate portraits for the characters from my recently published cyberpunk crime novella Heist.

A few questions that came to mind were:

Would it be possible to create images similar to what I had in my head? Or would I end up only getting things that were wildly different?

And what about if I used snippets of text from the novella. Would that make it easier or would Midjourney have one of its classic misunderstandings and spit something hilarious out?

John Barker

Our antihero protagonist, Barker is something of a one time criminal mastermind who’s already a couple years past his prime. He’s experienced, practically fearless, but by the end of Act 1 of the novella, finds himself broke, grievously wounded, and likely betrayed.

The first difficulty in rendering him in Midjourney was actually the scant few scenes where I described what he looked like.

While the story was told over his shoulder, most of his appearance was fed in bits and pieces when it seemed relevant (and I did consciously try to avoid an info dump with him… can’t say I did the same with the others).

In this case, I typed up a prompt describing him as a sort of elevator pitch, and the result after a couple of rolls was honestly not far off the mark of how I imagined him looking and hopefully described him enough in the novella itself.

This man has seen some shit and has likely come to accept it.

Meera Galatas-Sarwar

The first of our two femme fatales in the story. Meera is another antihero who has a tangled past with Barker and is now running a crew of her own (and much more successfully than our protagonist).

She approaches him at the end of Act 1 with an offer he can’t refuse, and helps take us off to the races as our crew puts together an impossible heist against the city’s top mega corporation.

In this case, I filled the prompt with a good chunk of her description when she first walks into the book and meets Barker (who’s hiding at a rundown Neo-Manichaean temple).

Would she even trust herself?

Midjourney has a tendency to do wonky things with people’s eyes, and if you look closely enough there’s a bit of that here, but overall not too far off.

In the story, she’s someone with questionable loyalties and allegiance, and I think our art bot did a decent job at giving her both a sense of allure as well as danger.

Eva Richter

Richter is our snarky, eager-to-piss-people-off corporate security agent. For much of the story, she’s a foil to Barker’s character and persona. Maybe by the end they come to somewhat trust, if not at least respect one another?

Okay, to be fair, calling her a femme fatale isn’t exactly accurate. She has some of the characteristics of the trope, but in this case she’s also a turncoat from the corporation who joins our crew in the heist.

No shits to give, not today.

Getting Midjourney to generate a good version of her was tough. The main issue was getting it to generate someone who looks like they’ve been around the block a few times.

Richter, after all, is also a disgruntled war veteran, so I wanted Midjourney to get me someone who didn’t quite look they were last year’s homecoming queen. Still, it took a few rolls.

Josef Lenczycki

“Joe” is an aging Neo-Manichaean adept who runs a run-down temple in the lower levels of the city. He takes Barker in after his run goes to shit and nurses him back to health.

The Neo-Manichaeans in these world are primarily a religious movement that’s focused on escaping the body and embracing the technological future. Many of their adherents are more machine than muscle, and Joe is no exception.

What can I do for ya?

In this case, I used some of the direct description from the novella and it gave the bot some interesting things to work with. Here we have a man who’s not quite gone over to the other side, but has had no shortages of body modifications in the meantime.

I tried getting something like the above while also clothed in some old robes, but after a couple of tries I stuck with this image and moved on.


Our boy Marek here is the muscle of the crew. One of Meera’s people who carries something a chip on his shoulder, and acts like he has a grudge against Barker.

Say hello to your new best friend.

Pairing him up (or even putting him in the same room) with Barker doesn’t always go well. You can’t have cyberpunk crime noir without angry emotionless men sometimes getting into fights, after all.


Meet the tech head of the crew.

One mean techno granny

As is apparent, she’s also the oldest of the bunch – and in a cyberpunk setting where people are obsessed with youth and beauty – the fact that she looks her age is itself some sort of near criminal rebellion.


A man of few words and a sort of classic gunslinger – albeit one who’s given a cybernetic eye and drug-enhanced reflexes.

Looking for the next vantage point

For the first few rolls, I tried my hardest to get one of him with a cigarette (he’s perpetually hand-rolling his rigs – something the others find quaint and dated).

However, while Midjourney can do a lot of things, it can’t do people smoking cigarettes very well. The closest I got was something like a vapourizer, albeit with a tube stuck up his nose. That’s a post for another day.

Colburn Randall

The patriarch sitting at the top of the city’s mega corporation.

Colburn is the progenitor to dozens, if not hundreds of offspring – a man who is impossibly aged and using all his powers to prolong his life past what should have been its natural conclusion.

Let’s play guess my age.

Through most of the story, he’s an elusive figure – more myth than embodied person – until a pivotal scene near the end that puts most of what happened up until that point into context.

He’s also another one that gave me a hard time.

Every time I described the character using passages from the novella, he came out looking like a grumpy, possibly alcoholic, ex-university professor sitting on a bench and waiting for the last train to the suburbs.

Not quite the figure I had in mind.

The best I could get was by really changing my descriptions. In the end, I got something pretty close – albeit with strangely metallic monster hands. Not sure where Midjourney pulled those from.

Gabriel Randall

Another from the Randall famo;y- Gabriel is the golden boy of the corporate can, and has an important connection to Barker’s past. Like most of his family (and even characters in the novella) he’s the type who lays plans into plans into plans.

He’s got big plans.

This one actually got churned out with almost no alterations from the way he was described as looking in the novella.

Minakshi Randall

And lastly, to have a bit of fun, I generated someone who isn’t exactly a character in the novel, so much as fixture.

We’re talking about the overhyped goddess whose image is seen peeking out of holograms, plastered on old-style billboards, and who everyone obsesses over in the metaverse – Minakshi Randall, the consumer-facing element of the family whose purpose is to keep entertained and shopping, rather than doing literally anything else.

Perfectly ludicrous.

She’s one part-Kardashian, one part-Bollywood star, and possibly only exists in advertising. Describing he wasn’t difficult, and the images that Midjourney churned out were as aptly gonzo and over the top as I imagine most of the advertising in this world to be.

In Conclusion

Overall, I’m fairly happy with the results of my Midjourney experiment. Obviously, using a bot to generate character art isn’t as top tier as one would get from a professional artist.

In my case, I am neither a professional artist nor know any out in the wild. Until I do, having a tool where I can prompt out images based on some of my own descriptions from the novella has at least led to a pretty enjoyable afternoon of experimentation.


Books I Read in 2022

In 2022, I read 30 books (novels, graphic novels). The complete list looks like:

Last House on Needless Street – Catriona Ward
1777 BC the year civilization collapsed – Eric H Cline
The Marco Effect – Jussi Adler Olsen
The Hanging Girl – Jussi Adler Olsen
Summer Bludgeon – Various (Unsettling Reads)
The Crystaks of Mida – Sharon Green
Talking about Detective Fiction – PD James
The Death of Stalin – Nury & Robin
Batman Year One – Frank Miller
Ronin – Frank Miller
Perfume – Patrick Suskind
Blind Willow, Sleeping Woman – Haruki Murakami
Malorie – Josh Malerman
Mirror Man – Lars Kepler
Maus – Art Spiegelman
The Silent Patient – Alex Michaelides
The Cathars – Sean Martin
Hyperion – Dan Simmons
Fall of Hyperion – Dan Simmons
Endymion – Dan Simmons
Rise of Endymion – Dan Simmons
Terror – Dan Simmons
They Thirst – Robert R. McCammon
The Devotion of Suspect X – Keigo Higashino
Technocolor Time Machine – Harry Harrison
Cibola Burn – James SA Corey
Nemesis Games – James SA Corey
Babylon’s Ashes – James SA Corey
Persepolis Rising – James SA Corey
Stories of Your Life and Others – Ted Chiang

Some highlights:

I’ve again gotten hooked on The Expanse series by Corey. For some reason, when I started reading these the other year, I stopped at book 3 (probably because the TV show season 4 had just come out and I wanted to binge it without thinking). This time around I finally got around to continuing the series (since the TV show ended) and it’s been quite pleasant and surprising – particularly book 7 with the surprise time jump and new narrative direction.

Olsen’s Department Q series continues to be addictive and enjoyable Scandinavian Noir with its wonderful cast of characters revolving around curmudgeony detective Carl Morck.

Revisiting my love of graphic novels has also been a nice change of pace.

The Disappointments (and there were many)

The first book of the year was also, well, the worst.

The Last House On Needless street was an incredibly hyped “horror” story. Everyone sang its praises, including apparently Stephen King. It even started off strong, with intriguing ideas tossed in all over the place and the promise of going somewhere but…

I think it was around page 30 where I realized how the book was probably going to end. I hoped that I had gotten it wrong – no way the book would end like that, the author would have seen through and lined up some other twist. After all, the ending that came in my mind was probably the dumbest way the book could end. It had to be something else.

But unfortunately not the case. Not the case at all.

Very early on, the novel made it clear it was using the “unreliable narrator” trope pretty liberally, and being no stranger to having apparently read other books, it jumped out that more likely than not this wasn’t a true horror book but that everything was in the main character’s head more or less.

And it was. After over two hundred pages of build up, it pulled out the big “gotcha” that was neither a surprise, nor pleasant, nor anything really. I suppose some folks must have found it surprising (such as people who have never read, say, a book like One Flew Over the Cuckoo’s Nest), but it was sadly just a confirmation of my first fear of what would be the worst ending to the book, and then the slow pain of watching it actually be the case.

Not great.

The second biggest disappointment was another book that pulled a “gotcha” out right at the end which I also guessed (albeit, about 50% of the way through the book) – The Silent Patient. While this “twist” was also unfortunate, predicatable, and kind of unfair, the book was nevertheless written with a fun sort of manic, no-shits-to-give energy up until that point that I would probably read another book by Michaelides… but not so with Ward.

The third true disappointment was 1777 BC The Year Civilization Ended. True, it was about 1777 BC, but a more appropriate name for the book would have been “A brief history of royal paperwork from the ancient world” or “The exciting hidden lives of financial ledgers.” Yes, there is an interesting narrative in there somewhere, but it’s largely buried under the authors (most likely) graduate work on papyrus, tablets, and other material remains.

And the final pair of disappointments in the year of many, were books 3 and 4 of Simmons’ Hyperion series. For some time I had ranked the first book of the series as one of the all time great science fiction novels. I still might, but it was inevitably lessened by the catastrophes that made up the final two books. Where the first was a brilliant collection of literary science fiction stories bound together by mystery and thematic beauty, and the second a more traditional space opera, I have few words of praise after that.

Book 3 (Endymion) had some promising elements but it is ultimately reduced by the appearance of a direct sequel fourth book that is one part meandering, two parts auteur excess, and a sprinkling of bloviating kumbaya. I can compare it to Moby Dick in the sense that both books fill up more pages with descriptive, fascinating nothing that does little to propel a story along and in fact more often than not kills it on the spot.

And then there’s the creepy voyeurism of a middle aged author having a strange fixation on teenage heroines (both here and in Terror too, for that matter). In the age of #MeToo and more awareness of sexual misconduct, it’s hard to read any story about a much older man who befriends a teenager only to later become lovers with them. Making the teenager a willful, “adult” spirit does little to hide the sense of grooming that goes on and what comes across as some honestly creepy wish fulfillment on part of the author.

Needless to say, it was hardly a powerful conclusion to the series, nor a strong incentive to come back to it any time soon.


AI Art – Evolution of Hyperion’s Shrike Using Midjourney

A late stage evolution of trying to create the Shrike.

The Shrike is one of the more memorable creatures of science fiction.

Appearing in Dan Simmons’ Hyperion Cantos as an enigmatic and dangerous entity that travels through space and time, the metallic Shrike acts as a primary foil or antagonist in the first two volumes, before becoming something of a wild card / deus ex machina in the concluding two volumes.

However, more than its role in the plot, it’s probably so well remembered due to the way its described. Being impossibly tall, four armed, and covered head to toe in razor sharp blades, the creature decidedly isn’t something you’d want to run into in a dark alley.

Despite (or perhaps due to) all the wild descriptions of the monster, I’ve seen some radically different interpretations from artists trying to describe what exactly this monstrosity looks like.

We were given some interpretations on the front covers of the novels. However, as is common to sci-fi / fantasy book covers, the illustrations were a little hockey / a little comfy, resulting in the beast looking like a tall dude with a couple of spikes. Workable, but not exactly the stuff of nightmares.

So, because apparently I’m the kind of person who wants to see more stuff right out of nightmares, I decided to give generating a shrike image using Midjourney – the art “AI” (machine learning) that everyone is going wild for (either loving or hating).

I chose Midjourney due to familiarity but also because (from experience) it is quite good at generating freaky humanoids and generally terrifying pictures from its prompts.

Unfortunately, I didn’t get there as quickly as I was hoping.

First Attempt at Generating the Shrike

For my first attempt, I went simple.

hyperion shrike

My hope was that there would be enough artists impressions out there (and the books well known enough) that I would get what I wanted right out of the gate.

Unfortunately, and as I should have known better, Midjourney has a way of surprising you.

Here’s what I got:

A “hyperion shrike” aka “a lovely bird.”

Right. Shrikes are types of birds.

And there are certainly infinitely more images of those than the elusive time travelling monster from some books first written back in the late 80s.

In any event, those are at the very least some fairly handsome birds and I’ll have to remember this prompt if I find myself needing more like them for any random reason.

Second Attempt at Generating the Shrike

In my second attempt, I tried to be more specific. My assumption was that I simply had to give clearer instructions about the type of Shrike I wanted generated.

So this time around I went with:

hyperion shrike ultradetailed realistic octane render four armed metallic monster of doom lord of death and pain and spikes

Off the top of my head, that seemed more appropriate – notably the parts about four arms and spikes.

From past experience, I also knew that octane render was decent for metal and inputting lords of “death” or “pain” also tended to give some pretty heavy metal album cover style renderings.

However, what I got wasn’t quite it either:

My metallic monster shrike

We definitely got the metal and the spikes and some of the dread that the Shrike could inspire, but we’re still being tainted by our lovely little “shrike” bird elements.

An improvement, at the very least, but still not really there.

I ran it through another time hoping a re-roll would clear things up, but alas.

More evil metal shrikes

Still seeing all kinds of creepy, with more spikes per square meter, but ultimately this is still some kind of cosmic bird monster.

Third Attempt at Generating the Shrike

This time, I tried using some verbage from the way the monster was described.

Because I was too lazy to open my Kindle and hunt for passages, I copied a section off the Hyperion Wiki where it described the Shrike:

a roughly humanoid entity three meters in height, with a carapace made entirely of a metal resembling chrome steel. It had four arms, with the lower pair being slightly shorter than the upper pair, and four hands tipped with scalpel-like fingerblades.


That description felt pretty spot on. However, as Midjourney does, it took it in a direction I wasn’t anticipating.

Another interpretation of the Shrike

For reasons unknown to me, we not got mostly black and white or grey scale images of our monster.

Except, where did all the spikes go? Where are our scalpel fingers?

Maybe that bottom image is what our Strike looks like when they’re taking the day off or before they’ve suited up for some human rending?

I gave it another reroll and got the following:

More metal, fewer spikes.

Well, the bottom row is definitely a weird, horrifying robot thing made of metal.

But where are my spikes?

Fourth Attempt at Generating a Shrike

This time, I decided to take a more hands-on approach. If the internet couldn’t provide one, nor even the wiki, it was time I took a stab at describing it myself.

I churned out some details and familiar keywords and went with:

7 foot tall humanoid with four arms, made of metal and covered in spooky spikes, horror art, lord of pain, made of armor, scalpel finger blades, realistic, ultradetailed, science fiction, horror art

The result?

Welcome back, spikes

Hello! Not quite there but getting close.

We now have a creepy humanoid made of metal and covered in spikes.

He was a little lacking in the arm department, so I re-rolled until I got one with four arms:

Finally a four-armed monstrosity.

Now that got me excited. Not only did I have a metal creep covered in spikes, but I got my four arms! All I had to do now was run some variants of that bad boy and I’d be all set.

Unfortunately, that’s when it hit me – there was one very distinctive aspect of the Shrike that my image was missing.

The red eyes.


Fifth Attempt at Generating the Shrike

This time I went back and edited my prompt to include some glowing red eyes:

7 foot tall humanoid with four arms and burning red eyes, made of metal and covered in spooky spikes, horror art, lord of pain, made of armor, scalpel finger blades, realistic, ultradetailed, science fiction, horror art

I was confident I would get where I wanted now with only a roll or two.

My next attempt came out looking like this:

Burning red eyes, yup.

Gotta hand it to Midjourney to creatively (or insanely) interpret things that seem so straightforward to us.

This time around we got the metal, the monster, the four arms, the spikes, but instead of red eyes, I got, well, some red highlights.

Progress. Or so it seemed.

I rolled a couple more times, but every time it refused to give me those burning eyes.

I tried instead to remaster some of them and see if that took it in the right direction:

Shrike mummy.

Unfortunately, as I’ve known for a while, remastering does odd things… sometimes ever odder than the rest of the prompts.

In the case of horror art, I always found it made things a little goofy, especially where faces are concerned.

While the one on the left is nice and nasty, he’s not too metallic. The one on the right, however, looks like an evil marionette or hand puppet.

I tried again. I got this goofy bastard:


Not quite where I wanted to take it. But at least it had red eyes.

Sixth Attempt – actually, wait, I’ve given up

By this time, I’ve more or less given up. Especially since, concurrently, a friend saw what I was trying to do, and also generate a couple dozen shrike abominations that didn’t quite fit the mold.

I decided to go back to some earlier rolls and pick a few that I did like, even if they might not match canonical descriptions by any account:


This guy is pretty good. Certainly terrifying, certainly four-armed.

Stand upright, let’s go

And how could I ever say no to this four-armed son of a bitch? Sure, not all arms are perfect, or even all that spiky, but at least he could terrify the living hell out of most humans.

So, it’s possible I’ll give it another shot in the coming days, but for now I’ll leave dejected and defeated.

My Shrike is in another prompt.