Blog Post

Using Predictive Narrative Intelligence to Write a Story

Jan 25th, 2022

Part of my plans for 2022 involve weaving GPT-3 text generation into Subtxt. You can see current incarnations of this in apps like sudowrite or LitRPGAdventures. The only difference?

Those apps don't have a Storyform guiding the illustrations. 😊

A Meaningful API Request

Last year, I ran a quick manual test just using the major Transits of Moulin Rouge! and the result was just a little more than encouraging (it was mind-blowing).

Here is the result for reference:

In a futuristic society, a rebel fighter and his lover have just escaped after being held in prison for two years. While attempting to reach the safety of the Rebels, they discover that their relationship has changed--for the worse. They journey to the one place that can help them save their love: The Scarred Lands…where monsters rule.

The lovers intentionally misunderstand the other person. In the first place, they are lovers, and lovers by their nature do not understand what is said to them; they hear only what they wish. For instance lovers talk about "the beauty of nature"; but to lovers themselves the beauty of nature is simply an occasion for talking together. Again, if you call a lover bad-tempered he is not offended: he knows better than anyone that a lover ought to be in a rage at everything which hinders his setting forth or returning to his loved one; when he has no excuse for making a fuss (as in poetry) he

The Lover's Swore : We make love with someone else, Yet they still are ours. The two lovers were asked to be honest about how they felt, but neither could bring themselves to say what was truly on their minds. In the end, they settled for silence.

Their life together was a long one, and they always said they were meant to be together. Now the man is alone, and doesn't know how to go on without his beloved wife. He starts to wonder why he never told her how much he really loved her. He thinks about how he used to talk to her each day at lunch, but then got too busy with work and let their communication slip. One day while staring out the window of his office, he has an epiphany: he'll wait for her under the clock at noon tomorrow. If she's late, it means she didn't get his message because...

For context, the above were sent with just four requests: each an Illustration from Subtxt based on the Thematic Conflict of that particular Transit.

I don't remember the specific Illustrations used, but just from this brief MVP of generating a meaningful narrative one gets that sense of completeness absent in other projects.

Developing Useful Writing Prompts

Of course, it doesn't hurt that many of the writers already using Subtxt are published writers or established in the film industry. Their suggestions and recommendations for writing prompts and creativity-inspired tools take Subtxt to a completely different level.

Today I was working with John Dusenberry, Head of Story at Warner Bros. Animation, on a way to leverage these technologies to better explain and define the difference between an Illustration (Storytelling) and a Source of Thematic Conflict (Storyforming).

The current modal for a Storybeat in Subtxt looks like this:

A Storybeat in Subtxt

As you can see, the Illustration--the superficial storytelling of what is going on, rests above the surface. The Source of Conflict, what drives the Storybeat thematically, lies beneath the surface. This visual relationship between the two is crucial towards understanding how a story works (rather than simply queuing a database of other stories).

Knowing the Illustration to be above surface, I was inspired earlier this week to make a connection in the Storyform to reinforce this idea:

  • the Focus & Direction of a Throughline ends up in an Illustration
  • the Problem & Solution of a Throughline ends up in the Thematic Conflict

Without getting too deep into the woods of Dramatica theory, the Focus and Direction of a Throughline is where awareness and attention is placed, i.e. what is assumed to be the problem of a Throughline. The Problem is where the conflict truly lies with the Solution marking the resolution point.

Asked to develop new writing prompts to facilitate this, I riffed on the First Transit of Simba's Main Character Throughline from The Lion King.

For reference, Simba's First Transit is Progress. His Focus and Direction are Oppose and Support, and his true Problem is Avoid. Translated, these Storypoints mean that in the First Act of a story, Simba will focus on others contradicting or opposing him, and in response will show support for others or hang out with those who support him--while his real problem is that he is driven to Avoid responsibility.

Sounds just like him.

Running the Illustration Prompts manually using the backend of Subtxt directly, I'm came up with the following--just as encouraging as the original Moulin Rouge! test almost a year ago:

First Draft of Meaningful Text Generation

There will be some universal "generation" icon on the right - a spark or something like that - which will reach out and generate something like this:

Simba didn't realize he was going to have to deal with the consequences of his actions when he denied a man's death. He was just trying to be nice.

and if you didn't like that, you could hit it again and get:

Simba always feels like he has to choose between being himself or pleasing his father. He's afraid that if he stands up for himself, his father will disown him. But when he sees someone else standing up for themselves, he feels inspired to do the same.

Behind the scenes, I'm sending out a request for a Focus of Oppose and a Direction of Support within a Context of Progress.

And then I would do the same on the bottom, but just send out a Problem of Avoid within a Context of Progress:

Simba's real problem is that running away from someone moves him in a positive direction. That's why he ran away from his father and his mother. He was always running away, trying to find something better.

Or, even better:

Simba is running away from his problems. He's moving in a positive direction, but he's not really solving anything.

And then when I add Activity, Resistance, and Growth to the request I get:

The problem with running away from someone is that it moves you in a positive direction. That's great if you're trying to get away from the bad guys, but not so great if you're trying to get away from yourself.

I'm calling this Predictive Narrative Intelligence, or PNI, to distinguish it from other projects.

GPT-3 in Subtxt will be more than simply something that writes your story for you, it will be a tool for teaching how how a story works behind the scenes, so you can make the final decision as to what works best for your artistic vision.

And I'm looking forward to installing it into Subtxt sometime later this year.