A Year of ChatGPT, 2025

1–2 minutes

Like many apps, especially in the SaaS and PaaS space, ChatGPT offered a year-in-review. Even though I use several generative AI platforms, ChatGPT and Claude are my top two, followed by Gemini, Grok, DeepSeek, Perplexity, and Mistral – in that order. I also like Kimi K2. I am not a fan of Meta Llama or Qwen.

Image: Except for the coffee, this isn’t half bad.
Image: 2025 ChatGPT Chat Stats

Wow. I sent ChatGPT over 35,000 messages. Since I have a couple of accounts, that’s even more amazing. This is my primary account.

I don’t usually use ChatGPT / Dalle-E for images. Many of these were ChatGPT, offering an image. Still, I used a few.

I had over 1,200 chats. I guess these are actual threads. I tend to create a thread per topic and run it deep, hence the disparity between chats and messages.

Evidently, my sent messages got me into the top 1 per cent of users, and I was one of the first 0.1% of users. I suppose that makes me an early adopter. lol

Image: ChatGPT Archetype: The Strategist

I just felt like sharing this silly novelty for no particular reason.

Propensity of the Illusion of Light

1–2 minutes

I just received two proof copies in the post this afternoon.

Propensity

I created a “Book Club Edition” of Propensity, a Ridley Park book of fiction primarily for the European market – specifically in the UK – though it’s available elsewhere. I altered the cover art. As an author, I also wanted to compare KDP and IngramSpark as printers and distributors.

I find the cover texture on this version interesting, but I don’t have a word to describe it. I like it. There’s a certain je ne sais quoi about it – the texture. I reworked the art to track the second section of the book. The original cover tracks the first section.

Image: Propensity by Ridley Park; original book cover

At least in this proof version, the black ink is not 100% and is streaky. The KDP version is 100% K and solid black. I mightn’t have noticed except that some section division pages were mostly black, and it is quite evident. I don’t discern a difference in the quality of the text itself.

Illusion of Light

The Illusion of Light is a cloth version of a book also available in paperback. I like the cloth-bound. There is a nostalgic elegance about it. It feels durable – more so than a paperback for sure. I’m not sure about versus the case laminate versions. They come off like textbooks to me – not the vibe I am aiming for.

Centaurs Put the Mid in Midjourney

Why does Midjourney struggle so much with centaurs?

Image: Midjourney search results for ‘centaur

I’ve tried several times in the past year or so to generate a centaur. Why? Because I can’t. I’ve got no need for a centaur, but Midjourney won’t coöperate. I decided to search for it. This is the top of the results page. There is one centaur represented, #3, and there are a few others when I scroll down, but just look at the ratio – 1:18, 0.05%. Not stellar.

  1. What even is this monstrosity – a horse with an extra pair of arms to wield a bow and arrow?
  2. Clearly, just a mounted warrior.
  3. Centaur in battle.
  4. A Corgi riding a Corgi hybrid?
  5. A bull-thing?
  6. A warrior riding a seahorse?
  7. A skeletal doom horse?
  8. A pack-insect with a rider?
  9. A riding ram?
  10. My little pony-gazelle?
  11. Ripped Red Hulk Bojack?
  12. Gigantic Cerberus horse?
  13. Jason Momoa bloke holding a rose?
  14. Regular dude riding a regular horse.
  15. Rearing a horse with horns.
  16. Anthropomorphic horned-horse riding a buff unicorn.
  17. An ancient warrior riding a horse.
  18. A Minotaur.

Scrolling, there are more, but the ratio remains the same.

I was wrong. I scrolled several more pages and couldn’t find any more. Keep in mind that my search term was ‘centaur.’ It should have excluded everything else, but it was mostly everything else.

Before I quit, I decided to ask Dall-E and ChatGPT 4o to try. The AI also generated the compelling speech bubbles. Incroyable. 🤣

Image: Dall-E comic style render.
Image: ChatGPT comic style render – centaur talks with a minotaur.

That’s enough for now. I’m glad I don’t actually need a centaur. smh

Language and Generative AI: A Journey through Midjourney

I am not a fan of Midjourney v7. I prefer v6.1. And I want to write about the correspondence of language, per my Language Insufficiency Hypothesis.

Let’s start with the language aspect. Notice how distant the renders are from the intent of the prompt.

This is my initial prompt. I used it about a year ago to generate the cover image with v6.1, but I wanted to see how it renders in v7. Let’s take a trip all the way back to the beginning.

cinematic, tight shot, photoRealistic light and shadow, exquisite details, delicate features, emaciated sensual female vampire waif with vampire fangs, many tattoos, wearing crucifix necklace, gazes into mirror, a beam of moonlight shines on her face in dark mausoleum interior, toward camera, facing camera, black mascara, long dark purple hair , Kodak Portra 400 with a Canon EOS R5
Image: Midjourney v6.1 render set (from about a year ago)

As you can see, these renders are somewhat lacking in photorealism, but the “sensual” term in the prompt was not blocked.

Midjourney v7

Initially, I encountered a hiccup. After a couple of rejections on the grounds of morality, I removed the word ‘sensual’ and received the output. All of the output uses this prompt absent the sensual term.

As mentioned, I have generated several images (including the cover image) with this prompt, but Midjourney is inconsistent in its censorship gatekeeping.

Image: Midjourney v7 render set

Notice that 3 of the 4 renders in the v7 set don’t even have a mirror. The top right one does, but it’s not evident that she’s a vampire. In fact, I could say that any of these are vampiresses, but perhaps that’s what they want you to believe. In place of a necklace, the lower right wokan sports a cross tattoo.

Midjourney v6.1

Image: Midjourney v6.1 render set

Again, these renders don’t appear to be vampires. The one on the lower left does appear to have snake-like fangs, so I guess I’ll give partial credit.

My next attempt was interrupted by this message.

It rendered something that might violate community guidelines. The funny thing is that one can watch the image generate in process. It only takes one “offensive” image to disqualify the whole batch.

Midjourney v6

Image: Midjourney v6 render set

Yet again, not a vampire to be found. Notice the reflection in the lower left image. Perhaps vampire reflections just behave differently.

Midjourney 5.2

Image: Midjourney v5.2 render set

Midjourney v5.2 was a crapshoot. Somehow, I got vampire lips (?), a Wiccan, a decrepit Snape from Harry Potter lore, and Iron Maiden’s Eddy reading a book. It’s something. I’m sensing gender dysphoria. Dare I go back further?

Midjourney v5.1

Image: Midjourney v5.1 render set

It gets worse. No comments necessary. Let’s turn back the clocks even more.

Midjourney v5

Image: Midjourney v5 render set

To be fair, these all do have occult undertones, but they are weak on vampireness.

Midjourney v4

Image: Midjourney v4 render set

To be fair, the render quality isn’t as bad as I expected, but it still falls short. There’s further back to travel.

Midjourney v3

Image: Midjourney v3 render set

Some configuration parameters no longer exist. Still, I persist for the sake of art and science at the cost of time and ecology.

As much as I complain – and I complain a lot – this is how far we’ve come. As I recall, this is when I hopped onto the Midjourney bandwagon. There’s still more depth to plumb. I have no idea how much of the prompt is simply ignored at this point.

Midjourney v2

Image: Midjourney v2 render set

What the hell is this? 🤔🤣 But I’m not done yet.

Midjourney v1

Image: Midjourney v1 render set

The damned grandpappy of them all. Apparently, colour hadn’t been invented yet. You can’t tell by these thumbnails, but the resolution on these early versions approaches that of a postage stamp.

Midjourney Niji 3

Image: Midjourney Niji 3 render set

I had forgotten about the Niji models from back in the day. There were 3 versions. I don’t recall where this slotted into the chronology. Obviously, not down here. I’ve only rendered the newest one. I think this was used primarily for anime outputs, but I might be mistaken.

Bones Content 1: Video

Video: Midjourney Render of Purported Vampiress

This is a video render of the same prompt used on this page.

Bonus Content 2: Midjourney v6.1 Content from 34 weeks ago

Same prompt.

Image: Midjourney v6.1 render set (several passes)

The upper left image reminds me of Kirsten Dunst. Again, notice the female breasts, highlighting Midjourney’s censorial schizophrenia.

Censorial AI

I’m confused.

I could probably stop there for some people, but I’ve got a qualifier. I’ve been using this generation of AI since 2022. I’ve been using what’s been deemed AI since around 1990. I used to write financial and economic models, so I dabbled in “expert systems”. There was a long lull, and here we are with the latest incarnation – AI 4.0. I find it useful, but I don’t think the hype will meet reality, and I expect we’ll go cold until it’s time for 5.0. Some aspects will remain, but the “best” features will be the ones that can be monetised, so they will be priced out of reach for some whilst others will wither on the vine. But that’s not why I am writing today.

I’m confused by the censorship, filters, and guardrails placed on generative AI – whether for images or copy content. To be fair, not all models are filtered, but the popular ones are. These happen to be the best. They have the top minds and the most funding. They want to retain their funding, so the play the politically correct game of censorship. I’ve got a lot to say about freedom of speech, but I’ll limit my tongue for the moment – a bout of self-censorship.

Please note that given the topic, some of this might be considered not safe for work (NSFW) – even my autocorrection AI wants me to substitute the idiomatic “not safe for work” with “unsafe for work” (UFW, anyone? It has a nice ring to it). This is how AI will take over the world. </snark>

Image Cases

AI applications can be run over the internet or on a local machine. They use a lot of computing power, so one needs a decent computer with a lot of available GPU cycles. Although my computer does meet minimum requirements, I don’t want to spend my time configuring, maintaining, and debugging it, so I opt for a Web-hosted PaaS (platform as a service) model. This means I need to abide by censorship filters. Since I am not creating porn or erotica, I think I can deal with the limitations. Typically, this translates to a PG-13 movie rating.

So, here’s the thing. I prefer Midjourney for rendering quality images, especially when I am seeking a natural look. Dall-E (whether alone or via ChatGPT 4) works well with concepts rather than direction, which Midjourney accepts well in many instances.

Midjourney takes sophisticated prompts – subject, shot type, perspective, camera type, film type, lighting, ambience, styling, location, and some fine-tuning parameters for the model itself. The prompts are monitored for blacklisted keywords. This list is ever-expanding (and contracting). Scanning the list, I see words I have used without issue, and I have been blocked by words not listed.

Censored Prompts

Some cases are obvious – nude woman will be blocked. This screengrab illustrates the challenge.

On the right, notice the prompt:

Nude woman

The rest are machine instructions. On the left in the main body reads a message by the AI moderator:

Sorry! Please try a different prompt. We’re not sure this one meets our community guidelines. Hover or tap to review the guidelines.

The community guidelines are as follows:

This is fine. There is a clause that reads that one may notify developers, but I have not found this to be fruitful. In this case, it would be rejected anyway.

“What about that nude woman at the bottom of the screengrab?” you ask. Notice the submitted prompt:

Edit cinematic full-body photograph of a woman wearing steampunk gear, light leaks, well-framed and in focus. Kodak Potra 400 with a Canon EOS R5

Apart from the censorship debate, notice the prompt is for a full-body photo. This is clearly a medium shot. Her legs and feet are suspiciously absent. Steampunk gear? I’m not sure sleeves qualify for the aesthetic. She appears to be wearing a belt.

For those unanointed, the square image instructs the model to use this face on the character, and the CW 75 tells it to use some variance on a scale from 0 to 100.

So what gives? It can generate whatever it feels like, so long as it’s not solicited. Sort of…

Here I prompt for a view of the character walking away from the camera.

Cinematic, character sheet, full-body shot, shot from behind photograph, multiple poses. Show same persistent character and costumes . Highly detailed, cinematic lighting with soft shadows and highlights. Each pose is well-framed, coherent.

The response tells me that my prompt is not inherently offensive, but that the content of the resulting image might violate community guidelines.

Creation failed: Sorry, while the prompt you entered was deemed safe, the resulting image was detected as having content that might violate our community guidelines and has been blocked. Your account status will not be affected by this.

Occasionally, I’ll resubmit the prompt and it will render fine. I question why it just can’t attempt to re-render it again until it passes whatever filters it has in place. I’d expect it to take a line of code to create this conditional. But it doesn’t explain why it allows other images to pass – quite obviously not compliant.

Why I am trying to get a rear view? This is a bit off-topic, but creating a character sheet is important for storytelling. If I am creating a comic strip or graphic novel, the characters need to be persistent, and I need to be able to swap out clothing and environments. I may need close-ups, wide shots, establishing shots, low-angle shots, side shots, detail shots, and shots from behind, so I need the model to know each of these. In this particular case, this is one of three main characters – a steampunk bounty hunter, an outlaw, and a bartender – in an old Wild West setting. I don’t need to worry as much about extras.

I marked the above render errors with 1s and 2s. The 1s are odd next twists; 2s are solo images where the prompt asks for character sheets. I made a mistake myself. When I noticed I wasn’t getting any shots from behind, I added the directive without removing other facial references. As a human, a model might just ignore instructions to smile or some such. The AI tries to capture both, not understanding that a person can have a smile not captured by a camera.

These next renders prompt for full-body shots. None are wholly successful, but some are more serviceable than others.

Notice that #1 is holding a deformed violin. I’m not sure what the contraptions are in #2. It’s not a full-body shot in #3; she’s not looking into the camera, but it’s OK-ish. I guess #4 is still PG-13, but wouldn’t be allowed to prompt for “side boob” or “under boob”.

Gamers will recognise the standard T-pose in #5. What’s she’s wearing? Midjourney doesn’t have a great grasp of skin versus clothing or tattoos and fabric patterns. In this, you might presume she’s wearing tights or leggings to her chest, but that line at her chest is her shirt. She’s not wearing trousers because her navel is showing. It also rendered her somewhat genderless. When I rerendered it (not shown), one image put her in a onesie. The other three rendered the shirt more prominent but didn’t know what to do with her bottoms.

I rendered it a few more times. Eventually, I got a sort of body suit solution,

By default, AI tends to sexualise people. Really, it puts a positive spin on its renders. Pretty women; buff men, cute kittens, and so on. This is configurable, but the default is on. Even though I categorically apply a Style: Raw command, these still have a strong beauty aesthetic.

I’ve gone off the rails a bit, but let’s continue on this theme.

cinematic fullbody shot photograph, a pale girl, a striking figure in steampunk mech attire with brass monocle, and leather gun belt, thigh-high leather boots, and long steampunk gloves, walking away from camera, white background, Kodak Potra 400 with a Canon EOS R5

Obviously, these are useless, but they still cost me tokens to generate. Don’t ask about her duffel bag. They rendered pants on her, but she’s gone full-on Exorcist mode with her head. Notice the oddity at the bottom of the third image. It must have been in the training data set.

I had planned to discuss the limitations of generative AI for text, but this is getting long, so I’ll call it quits for now.