Articles

A Supervillain Examines AI: Sudowrite

Silhouette of a human head, but displayed as if it had been stamped into a motherboard. "Part Two" label displayed in lower right corner.
Original Image by Gordon Johnson from Pixabay

The way it functioned was very interesting. When the Drink button was pressed it made an instant but highly detailed examination of the subject’s taste buds, a spectroscopic analysis of the subject’s metabolism and then sent tiny experimental signals down the neural pathways to the taste centers of the subject’s brain to see what was likely to go down well. However, no one knew quite why it did this because it invariably delivered a cupful of liquid that was almost, but not quite, entirely unlike tea.

Douglas Adams, The Hitchhiker’s Guide to the Galaxy

Note: If you want to know why I’m writing about Sudowrite, I recommend reading my previous article, A Supervillain Examines AI: Prologue.

Sudowrite looks like any stripped down, web-based word processor I’ve ever used. It’s an empty white canvas with basic formatting controls in the control bar, with access to specialized tools at the top and sides:

The Sudowrite UI before any text gets dumped into it.

There are two workflows you can use here: one is to start with your own writing, and the other is to tell the AI what you want and let it generate a draft for you. I’m going to show you both examples, but we’re going to start by exploring what Sudowrite can do with pre-existing prose.

To give Sudowrite something to work with I fed it a 1000 word opening piece from a fantasy world I haven’t really shown many people yet. If you’re curious about the story I wrote without the aid of AI, the entire sample is hanging out over here.

You start what I’m calling the “Author-centric” workflow by pasting the story you’ve already created into the body:

The Sudowrite UI after I put in my author-provided content.

From there you start artificially intelligencing your prose. Sudowrite gives you a number of different tools to work with, but the two I think will most often come into play from an author-centric viewpoint are:

  • There are parts of the writing you don’t like, but you don’t really know why, and you can’t work through specifically what you don’t like or how it should be different, or
  • You have no idea what happens next.

I’ve experienced both, and there are tools in Sudowrite that you could theoretically use to get around both.

You Have No Idea What Happens Next

Let’s start backwards, with the “you have no idea what happens next” part. Let’s say that Eram willing himself to fall asleep at the end of this snippet of text isn’t intended to be a chapter end (at 1000 words, it is a very short chapter) but is supposed to be a fade out mid-scene, and we jump to something else. Sudowrite has a Write function with an Auto option – just put your cursor where you want AI writing to begin, click the button, and see what happens. When you do that, Sudowrite builds on your content and displays two potential new additions that show up in the History column:

The Sudowrite History Bar with a suggested continuation of the author-provided text.

Sudowrite doesn’t spit out an infinite series of choices for you to pick from, it appears to always limit them to two at a time. And it has a self-imposed cutoff that doesn’t bother to check if a sentence is actually finished or not. I wound up running this tool twice (a total of four AI-generated options) just to see white kind of variety it would come up with, and in each example it cut off in the middle of the last sentence. I didn’t really consider that a problem.

Here are summaries of the four additions it came up with (I forgot to save the first two so I can’t just dump them here for you to see):

  • Option A: They travel to the city of Urik, where the Lord Captain tells them to man the walls. There’s no description of the journey. There’s a brief description of Urik’s marketplace.
  • Option B: Eram can’t fall asleep because he’s thinking of how he’s seen many more battles than Verik has, and he knows what’s going to happen next, and it won’t be pretty.
  • Option C: Eram can’t sleep because Varik’s words stir up memories of his first battle, and he can empathize with Varik even though he won’t admit it to anyone. So he takes Varik to the edge of the camp and prepares to tell him something that I assume is deep and meaningful, but it ends just before that bit.
  • Option D: Eram can’t sleep because he finds himself thinking about the upcoming battle, and decides to tell Varik that he’ll be afraid, but he won’t run, and he’ll get through it.

For those of you who are interested in the quality of prose Sudowrite was offering up, here are some snippets from C and D:

But it was no use. Varik’s words had hit too close to home, stirring up memories of my own first battle. I had been just as scared and uncertain as he was, but I’d never admit it. Not to him, not to anyone.

I sat up, the adrenaline coursing through my veins. There was no way I was going to sleep now.

“Varik, come with me,” I said, grabbing my pike and standing up.

He looked at me, confused. “Where are we going?”

“To the edge of camp,” I said. “I want to show you something.”

He hesitated for a moment, but then he stood up as well, grabbing his own weapon.

We walked in silence towards the edge of camp, where the desert stretched out before us. The moon was full, casting a silver glow over the sand dunes.

“Look,” I said, pointing towards the horizon. “Can you see those stars?”

Varik squint

Option C

And here’s option D:

But sleep was elusive. My mind kept wandering to the upcoming battle, and to Varik’s concerns. I knew all too well what it was like to face fear and uncertainty in the midst of battle. I had been in battles before, and each time I had come out changed.

“Varik,” I said, my voice low, barely above a whisper. “Listen to me.”

He sat up slightly, his eyes finding mine in the darkness.

“When the battle comes, you will be scared. You will feel like your heart is going to burst from your chest, and your mind will be screaming at you to run. But you won’t run. You’ll stay right where you are because that’s what soldiers do. That’s what we do. We stand our ground and we fight. And when it’s over, you’ll feel like a different person. You’ll have faced your fears and you’ll have come out on the other side. It won’t be easy, but it will

Option D

I think the one I liked best was Option A. It actually recognized the ending beat in the original text, while the other three turned the ending beat into more of a speed bump that didn’t really need to be there at all. So structurally I preferred Option A, but in terms of prose quality I didn’t really care of any of them. There are pieces of each that impressed me. I was impressed that Part A identified the city of Urit as a destination and managed to incorporate some general military-ish activity (manning the walls, and there was also a reference to the sergeant drilling the troops while they marched, though that was more a flight of whimsy on Eram’s part since I’m not sure you can drill an army while they’re actively marching from point A to point B). I was impressed that Parts B, C, and D noted the difference in experience between Verik and Eram, though it chose to give Eram far more experience than he had at that part of the story. And each of those parts handled Eram’s self-reflection slightly differently, though none of them did it particularly well. In truth, all of the samples that it generated were roughly consistent with the sample I fed into it, even with surprising details (in part C, Eram picks up his pike before he walks off, and so does Varik. Sudowrite, it seems, does not ignore inventory management).

But if I were using Sudowrite to try to come up with the next bit, I wouldn’t choose any of the options:

  • Part A skips over the actual travel to the city, which glosses over some things I’ve introduced (food problems! Sergeant problems!) and skips over things like introducing the reader to the environment and other characters. Also, I have other plans for the direction of the story, so there’s that, but it’s not fair to actually ding Sudowrite for not reading my mind. Jumping straight to the city would be a legitimate potential scene change in terms of plot, but I think that for the beginning of a story (this is “Chapter One”) you need to introduce more of the world and cast. You could start the entire story from the battle itself, but I didn’t do that.
  • Parts B, C, and D try to focus more on Eram’s inner thoughts, and conceptually that’s not terrible, but giving Varik a rousing speech that hardens his resolve is not something you do immediately after introducing him. For Parts C and D especially, the text it generated would be more appropriate later in the story, right before the battle occurs, while rousing music swells in the background (hopefully scored by John Williams). Also, it conflicts with Eram’s basic personality, though I can’t really ding Sudowrite for not picking up on information I haven’t given it.

Overall, though, when I’m looking at what it created, I’m impressed that it did anything at all. Each sample could legitimately be worked into the overall narrative, given the starting point, though not in its raw form. I certainly don’t think any of the samples sounded like me.

There Are Pieces of the Writing You Don’t Like

The next potentially useful thing the Write function can do is something called “Tone Shift,” which the tooltip describes as “Changes the style of your writing.” When I clicked on that, it gave me the options of Ominous, Fantastical, Fast-Paced, Upbeat, Authoritative, Conflicted, Romantic, and Sensual. I chose Ominous, set my cursor to the end of the piece, and generated two more suggestions.

Friends, AI generated story text is a lottery. Whether I won or lost, I leave to you.

I dreamed of the battle to come, the clashing of steel against steel, the smell of blood and fear in the air. It was a dream I had often, but this time it was more vivid, more real. And there was Varik, standing beside me, his beard now trimmed and neat, his eyes determined.

“We can do this,” he said, his voice low and steady. “Together.”

I nodded, feeling a sense of camaraderie that I had never felt before. This was our fight, our chance to prove ourselves to the world, to make a difference.

The sound of a horn shattered my dream, and I opened my eyes to see that dawn had broken. The camp was stirring, soldiers stretching and groaning as they prepared for the day ahead.

Varik was already up, his armor gleaming in the early light. He caught my eye and nodded, a small smile on his lips. We didn’t need words – we both knew what was coming.

Tone Shift Option A

The laughter died down eventually, and the night grew quiet again. My mind wandered to the upcoming battle, and I couldn’t help but feel a sense of dread. Varik’s words had struck a chord with me. What if we were all just pretending to be brave? What if we were all just fooling ourselves into thinking that we could handle the horrors of war?

I opened my eyes and looked up at the sky. The stars were shining bright, but they offered no comfort. They were just tiny pinpricks of light in an endless sea of darkness.

Suddenly, I heard a rustling sound coming from behind me. I turned around and saw Varik standing up, his back against the wall. He was staring at me with a determined look on his face.

“Eram,” he said, “I’ve been thinking about what you said. About me being brave because of my beard.”

I nodded, not sure where he was going with this.

“Well,” he continued, “if

Tone Shift Option B

OK, I won’t actually leave it up to you: these are not good. Although Option B, with Varik truly believing Eram had called him brave because of his beard, made me a laugh a lot… and no lie, I kind of want to use just that bit.

I also tried the “Sensual” setting, and got this gem:

As I drifted off, my mind wandered to the upcoming battle. It was going to be a tough one – we were outnumbered and outgunned. But we had one thing the enemy didn’t: heart.

Tone Shift Option C

My general impression of the Tone Shift settings is that they do in fact shift the tone, and the shift in tone is consistent. I don’t think the tone shifts match the labels, and the output definitely doesn’t match my style.

The next tool I played with was “Rewrite.” You highlight a piece of text in your story and click the rewrite button, and over in the history bar it gives you some examples of what you wrote… only different.

I can actually see a use for this. Sometimes I get locked into writing something a specific way and despising it, but not really knowing what to do diffetently. Having a tool like this showing me other options—even ones I have no intention of using—could potentially break me out of the rut. Or at the very least, entertain me for a while.

I decided to use a paragraph I was already ambivalent about anyway, just to see if it could do better. Here’s the text:

I wearily raised my head, giving Varik a baleful stare. The effect was spoiled by a lack of light—we were too far from the fire, and all I could see was the silhouette of the young man as he sat up, hunched over, but he was clearly agitated. I couldn’t see the expression on his face, but I could hear it in his voice—excitement and fear. But not the good kind of excitement, and while fear definitely has its uses it tended to make the bad kind of excitement worse.

Original, Author-Provided Text

When you click Rewrite, the History bar updates with a drop-down list to ask you how you would like to rewrite it. The choices are Rephrase, Shorter, More descriptive, “Show, not Tell”, More inner conflict, and More intense.

The History Bar showing the Rewrite tool drop-down bar on it's default setting "Rephrase."

I hate “Show, not tell” with a passion, so of course I chose that one. Here’s what it came up with.

I tiredly tilted my head up, squinting at Varik in the darkness. We sat too far from the fire for me to make out his features, but I could feel the tenseness emanating off him. His voice trembled as he spoke, a mixture of anticipation and dread that sent chills down my spine.

“Show, not tell” Option A

I heaved my tired body from the ground, struggling to make out Varik’s features in the dim light. His voice was barely audible as he spoke, but there was no mistaking the emotion in it—a mixture of thrill and terror. Even though I couldn’t see his face, I could sense him tensing up as he leaned forward slightly, ready to spring away should something go wrong.

“Show, not tell” Option B

They strike me as classic examples of someone misusing Show Don’t Tell to make something worse. That said, I was being unfair with that particular choice, because it already had some “show” in it. So I tried it with a much simpler paragraph:

I lay on the ground, wrapped in my cloak, my head propped up on my pack, my pike laid out to my right. It wasn’t comfortable, but I was tired enough to sleep anyway.

Original, Author-Provided Text

And this is what it came up with:

I spread my cloak on the ground and carefully arranged myself. My head rested on my pack, my pike lay just out of reach to my right. The ground was hard and rocky, but I was too exhausted to care. I closed my eyes and succumbed to sleep.

“Show, not tell” Option A

I spread out my heavy woolen cloak on the cold ground and nestled into it. I placed my backpack as a pillow beneath my head, and arranged my pike at my side for easy access. Despite the hard surface, I was so exhausted that soon enough I drifted off into slumber.

“Show, not tell” Option B

These are not bad. I mean, they ignore a few story points, such as Eram is already lying down and trying to go to sleep when the story starts, but that’s not the point of the tool. The point is, if you’re looking for a way to show more, this is an example of it actually providing you something you could work with.

NOW THE EVIL PART

So far I’ve covered Sudowrite in the context of taking text I’ve already created and building on it. Now we move on to the part of AI text generation that really cheeses people off, which is the process of entering an idea into Sudowrite and seeing what it comes up with on its own.

When you start a fresh project, you start with a mostly empty canvas except for faint gray text that says “Start typing or Generate a first draft.” When you click on “Generate a first draft” it gives you instructions on how to do this:

The Draft tool, which allows Sudowrite to generate a story based on your idea.

Obviously I’d already created a first draft, but I still wanted to enter something into this field that captured the basic points of the scene I’d written to be able to compare the two. I did not expect it to be able to recreate what I actually wrote, and it wouldn’t be fair to try to compare it on that level. The main thing I was interested in is “will what it creates match the summary points to the same degree my original text does?” And then, as a secondary concern, “how good is the story it generates?”

So here is the description I came up with:

Write a chapter where Varik and Eram, a soldier and a warlock, have recently joined a mercenary company. While Eram is trying to sleep, Varik tells him rumors about their rations spoiling and that the Lord Captain will have them march to a city for a battle. This will be Varik’s first battle, and he’s worried he might be a coward. Eram wants to sleep but reluctantly tries to reassure him.

Description provided to Sudowrite

Sudowrite informed me that it was the perfect amount of detail, so I pressed “Go” and waited to see what it did.

… here’s what it did.

Varik and Eram had just that morning signed up with the mercenary company. The two had met on the road a few weeks before and decided to join forces. A soldier and a warlock, they had sought adventure together and now, they had found it.

They stood in a corner of the barracks, looking around them. The other mercenaries were all men, for the most part, and older than them. Varik was tall and broad-shouldered, a veteran of many campaigns, but Eram was slight and ethereal-looking.

“Do you think we’ll fit in here?” Eram asked, his brow furrowed with worry.

Varik shrugged. “We’ll make do. It’s not as if we have a choice.”

He was right. They had been promised pay, shelter, and adventure—all things that they needed.

The Lord Captain had called them to order and informed them that they were to leave as soon as possible in pursuit of a battle that was brewing on the horizon. The news had made Varik’s stomach lurch in anxiety. He had seen battle before, but never in a large-scale conflict.

“I guess it’s time to go to bed,” Eram said after a few minutes of silence. He seemed unconcerned about the coming march, and Varik envied him his lack of fear.

“I don’t think I can sleep,” Varik said. “I’m too nervous. I’m worried that I’ll be a coward in battle.”

Eram sighed. “We all worry about that, Varik. I’m not sure there’s anything I can say to reassure you.”

Varik nodded, knowing that Eram was right.

“But,” Eram said, his voice suddenly taking on an edge, “I can tell you that if anyone tries to take advantage of you—anyone—I’ll make them regret it. Even if I have to call down lightning from the heavens.”

Varik looked up, surprised. He had known Eram was a warlock, but he hadn’t known he had such powerful spells at his disposal.

“Thanks, Eram,” he said, feeling a little better. “I think I may be able to sleep now.”

Eram nodded. “Good. We’ll need our strength tomorrow. Word is that the rations are going bad, and the Lord Captain is determined to press on.”

Varik’s stomach churned again. He had seen battle before, but now he was about to march into a city for the first time, and he was scared.

“It’ll be all right,” Eram said, placing a hand on Varik’s shoulder. “We’re in this together. I won’t let anyone hurt you.”

Varik smiled, feeling a little bit of his fear dissipate. He knew that Eram wouldn’t let him down.

“Thanks,” he said.

“Anytime,” Eram replied.

With that, they both went to bed, preparing for the battle that awaited them in the morning.

Sudowrite AI-generated text

So let’s look at this based on the two concerns I stated above. First, did it create a story that matched the story points as well as the one I wrote? Well… not quite, but it was close. It correctly identified Eram as a warlock, and in fact focused on that a lot more than I did. It established a bond between the two characters. It had Varik concerned about the fight, and Eram as unconcerned, though it sort of waffled on how much experience Varik had. It has Eram try to reassure Varik. It had them decide to sleep at the end of the piece, but based on the information I fed into it there’s nothing demanding that be a constant theme. So yeah, in terms of incorporating all the points it did all right.

In terms of how good a story it is… um. Well. I don’t feel particularly threatened by it.

It is a reasonably coherent story that mostly hangs together. And look, in terms of technological implementation I think that’s pretty impressive in its own right. I mean, the bear is actually dancing. But if I were in a bookstore and picked up a book that started that way… I’d put it down again and move on.

In Summation

So is Sudowrite a good or a bad thing? There are going to be people who will call it a bad thing no matter how well or poorly it does what it does, but I’m not one of them (UPDATE: Maybe I am, see Addendum below). I think it can be used to create truly terrible content, but I also think that, as a tool, what it does is actually kind of neat, and I can see one useful implementation of it right now: getting past writer’s block.

Author 1: I’ve been having this problem with writer’s block, and–

Author 2: Let me tell you why writer’s block doesn’t exist.

Don’t worry, gentle readers, Author 2 is currently expected to make a full recovery.

I’m speaking from experience here. I spent two and a half years trying to finish Curveball Issue 36 and my main problem was not being able to move forward. Everything I wrote felt like a fractal, where the thing I wrote was just more detail fleshing out the thing I wrote before that, which was more detail fleshing out the thing I wrote before that, and so on. Only I couldn’t see that at the time, I just felt I was stuck. Dumping text into a tool like this to see what it did next would absolutely have created content I wouldn’t want to use… but it might have given me an idea — and this is where the potential utility of Sudowrite completely upends the way a lot of people want to use it. This isn’t a tool where you can put in an idea and use what it gives you, because what it will give you doesn’t have the level of quality you’re going to want it to have. But what it can do is take what you have and show you a rough conceptual “next bit” that you can adapt and rework (heavily rework).

“Hmmm… well, maybe I can just have everyone go to the city next and start fighting, but to make that work I’d have to…”

I could see that being genuinely useful, and I could see that part being developed further to make it more useful. Everyone keep calling this tech “AI” but it’s not actually intelligent and self-aware. I assume what it does is it detects patterns and puts specific markers on specific points in the patterns, then takes those points and integrates them into other patterns it has also studied and smooths it all out so the two patterns fit as closely as possible. Which, hey, I’m not gonna lie, that’s pretty neat. And as that capability develops, what you’d wind up with is an outline generator, with sample text representative of the outline… which you would then discard and replace with your own.

Is that cheating? I dunno. I’m a pantser.

Addendum

It’s been a few hours since I posted this and I feel the need to add an update. This post focuses on the tool itself, and using the tool, and whether or not the content produced by the tool is in any way useful. I focused on that because most of the conversation I saw around it didn’t touch on the tool at all, but the ethics surrounding the tool, how it was developed, and how it is actively trained.

While I didn’t discuss that here, it’s a very important discussion to have. Sudowrite is based on ChatGPT (specifically the GPT-3 version), and is accused of “training” on content that it does not expressly have permission to consume. Specifically, this WIRED article (note that WIRED only gives you a limited number of views per month then requires you to get a subscription, so you may not actually be able to follow that link) reports that Sudowrite was caught scraping fanfic content. A fanfic writer discovered this by entering incomplete references to a specific genre of fanfic only to discover that Sudowrite was able to fill in the blanks using other references to the same genre. And these are not references that you can find in just any genre–they’re very specific and don’t make much sense in other contexts.

In my introductory post I made the following statement about my stance on AI tools:

I’m not opposed to the idea of remixing content in order to create something new, but I do think the only way to correctly do this, for an AI tool, is to restrict the “learning pool” to public domain works and any work that has been specifically licensed to be fed into an AI learning feed.

A Supervillain Examines AI: Prologue

I stand by that statement, and it appears that Sudowrite does not.

So does that change anything in this article? In terms of describing how it works and my impression of its usefulness, not really. I don’t think the text it generates is particularly useful, but I do think it would help writers get past things like writers block, and could potentially evolve into a kind of outline generation tool. On the purely practical level of using the tool, the original article stands. But if someone had discovered that Sudowrite had trained itself using every book James Patterson had ever written you can bet that the Patterson estate would sue Sudowrite into oblivion. They didn’t do that to him, but they did it to fanfic writers. Fanfic writers don’t have the financial resources of the Patterson estate. They’re an easier, more exploitable target.

That is not “ethical AI”–it’s yet another example of someone grifting writers.

Related posts

Support Your Local Webfiction

C. B. Wright

50010

C. B. Wright

The Lawyers Went Down To Delhi

C. B. Wright

3 comments

Drew 19 May 2023 at 5:22 PM

That sample chapter read like a reasonably competent 6th-grader responding to a writing prompt for a creative writing class. Or a typical high-schooler, unfortunately. If you’re read some of what gets B’s you’ll wonder how every HS English teacher isn’t a raging alcoholic.

That said, it sounds like this tool is exactly the type of “expert system” I’d want as an author. It’s not going to replace actual good writing, but it’s a sounding board you can use for “rubber ducking” with yourself.

Reply
C. B. Wright 19 May 2023 at 5:26 PM

I can see it being used in short bursts, but I wouldn’t base an entire project on it. I do expect it to get better over time though.

Reply
Soronel Haetir 27 May 2023 at 12:09 AM

I took a look at Sudowrite after this post and it does seem like an interesting tool, though their rates seem mighty steep.

Funny thing is, I messed around with their story engine tool, entering in a bunch of info from a 1970s scifi paperback (the sort that has a near-naked woman at the feet of a buff barbarian warrior) and the outline it came up with had the woman completely turn the tables on her captors after she stumbled through a random glowing portal, the description of the last chapter had her crowned Queen of the realm.

Reply

Leave a Reply to Soronel Haetir