You may have seen “I forced a bot to watch” posts where someone claims to have “forced a bot” to read or watch hours of video and written it’s own script. Those weren’t real but in recent history it has become possible to do it for real in a pretty convincing way with OpenAI’s GPT-2 system.
This is an unbroken, unedited sample of GPT-2 ‘fine-tuned’ on all the TNG and DS9 scripts. Note that television scripts have have distinct formatting and style and all of that is copied perfectly by the bot. It even *almost* gets understands page numbers (in the first example – 28, 28, 28A).
UPDATE
Go to this post for better examples. Right now they are all Olive Garden themed… but may do a later post with a straightforward attempt to create realistic episodes.
28 EXT. PLAZA/SURFACE - DAY (OPTICAL)
Data and Worf as before.
DATA
(puzzled)
You left him there? He left him
there?
WORF
Yes. He had been there for
hours... then decided that I
was going to kill him.
Data frowns, he can't figure out how to phrase what
he did...
DATA
I do not understand.
WORF
You knew?
DATA
I was afraid.
They exchange a look... Data thinking quickly, is
back to the source...
DATA
(continuing)
I could have programmed some
medical bank monitors to monitor you
for a pulse response when you
could enter Klingon memory.
WORF
We would have --
STAR TREK: "The House... " - REV. 08/10/94 - ACT FOUR 45.
28 CONTINUED:
DATA
But I was afraid that it would
disrupt my memory.
PICARD
I'll tell you what I have to do.
They look at him and then Picard EXITS. Data sits in
command.
CUT TO:
28A INT. WORF'S QUARTERS
The room is DARK and distant. Worf is struggling to
regain his senses as Picard ENTERS.
WORF
Captain... everything I saw is
gone... everything.
Worf regards him for a moment... then he starts to fight
it off... he stops in surprise... he doesn't know how
all this is going to impact his relationship with
him... he's uncertain what to do... he glances at the
wall panel and frowns, surprised at the way he sees
Worf... he glances around the room and tries to
find a way to fight it off-kilter... it's pretty
night... Worf hits the wall panel and it OFF.
WORF
I was... heading somewhere.
PICARD
Worf... what's the matter?
Worf decides to break for a moment... he EXITS.
That was one the first scenes I generated that impressed me, though it cheats a bit with by being mysterious enough that it’s hard to rate how coherent it is. But you could almost see as one of the more moody and experimental character-focused episodes in Season 7 TNG. Earlier networks could copy the formatting of a TV script but they totally fell apart when you tried to actually understand the content. Even which characters were present in a scene did not stay consistent from line to line. GPT-2 handles this amazingly keeping track of not just characters but subject of conversation in a scene.
Here are some more samples chosen mostly for the humor:
DAX
I think we're lucky this was
just a bad batch of
equipment.
KIRA
I'm glad you think that.
DAX
I'm glad we're lucky.
KIRA
Okay. I'm going to let you use
the Bajoran storage bin to backup
your data on this trip.
And with that, Kira heads off down the Corridor. We
HOLD on a thoughtful Dax.
19 INT. OPS
Kira and Dax EXIT the turbolift, followed by Sisko, who
goes to the Transporter Room in frustration.
DEEP SPACE: "The Wire" - 03/01/94 - ACT ONE 12.
19 CONTINUED:
KIRA
It's not working.
DAX
I'm having trouble retuning the
transceiver. The adaptors
won't work.
KIRA
Maybe they should replace us by
rentals.
DAX
With what?
KIRA
With your arms.
DAX
With your hands.
KIRA
Your arms.
DAX
You're lifting your arms.
KIRA
My arms.
DAX
(the hurtiest)
Your arms. They're my hands.
Kira takes a beat, looks down at her arms for a moment.
KIRA
They're your hands.
(a beat)
You know what I see when I get
this...
DAX
(laughing and crying)
Kira, you never told anyone about
your arms.
DEEP SPACE: "The Wire" - 03/01/94 - ACT ONE 13.
19 CONTINUED: (2)
KIRA
When you get to the wormhole, you
should see them grow into shape-
shifters. And you'd be right...
because their arms are like that...
closer than you can get. They
grip off your arm. Bad dreams.
DAX
I thought you weren't going to talk
about me.
KIRA
I told myself I was not. But when
the time comes... I want to figure
out what we're doing and what we
are. I always figure it out.
Dax looks at her own hands. Kira's too fast for her
good measure.
KIRA
I'm holding all the cards. I'm
playing them all. I'm a prisoner
in here. I can't be happier.
DAX
You seem like you've got a lot.
KIRA
You have me all.
Kira takes one last look at her hands. Kira can't help
her enthusiasm. Her hand. Kira takes another step toward the
desk.
KIRA
You're not going to hurt me.
DAX
You're not. And that's a
good thing.
This is from a later batch where I stripped out some of the very repetitive content in the scripts before training — mostly headers and footers that repeat the exact same information every page. Another sample that was weirdly hands and arms themed:
42 INT. ENGINEERING
Geordi and Data at their respective consoles.
GEORDI
We're ready when you are, Data.
DATA
I will prepare enough data for your
desire, Commander.
GEORDI
Good. Data, what was the vessel
in which the shuttle was
launched?
DATA
The vessel was slightly more
complex than the starship I
estimate, sir. It chose a
specific set of coordinates to
target the specific
nodes on the Enterprise-D.
GEORDI
And it didn't work. That's
your fault, Data.
DATA
I fault is very fault, sir.
I should have realized that.
GEORDI
If you had, the Enterprise-C
could have taken out a few more
nodes...
DATA
I do not believe we could have
survived the attempt on the
shuttle, sir.
STAR TREK: "The Loss" - REV. 10/10/90 - ACT FOUR 51.
42 CONTINUED:
GEORDI
I know Data, it would have been
difficult for you to break into
hands and legs and grab a few
nodes... I've never run into a
shuttle in my life that didn't
get that lucky.
Geordi looks down at his hands and arms, frowning.
GEORDI
What are you so angry about?
DATA
My heart... and possibly my entire
psychology.
GEORDI
That's not good.
DATA
I am angry that Starfleet has
let you down, Commander.
GEORDI
I know... but I was relieved
that no one tried to destroy
my shuttle.
INT. DATA'S QUARTERS
Data, still in his Starfleet uniform, is sitting at a desk
working at the computer. The door CHIMES.
DATA
Enter.
The door OPENS and Geordi ENTERS.
GEORDI
Data, what are you doing here?
DATA
(stands)
This is my quarters.
He looks at the desk for a beat, then EXITS.
DATA
(continuing)
You are here to examine my
computer.
GEORDI
Computer, is there anything I can
do about your...
computer?
DATA
Computer, are you aware of what I
have just said?
GEORDI
(nods)
In case you're wondering... I've
told you something before...
DATA
I have never spoken to my computer
before.
GEORDI
That can't possibly be the case...
Data shakes his head.
DATA
I have been trying, but I
have been unable.
GEORDI
Why?
DATA
I have been trying for over
three, four nights.
GEORDI
It must be a pretty long night.
DATA
As long as it is not.
GEORDI
And what does it feel like?
DATA
I have been experiencing a
sustained, transient, and
unsteady increase in the
emotional neurotransmitter-like
activity in my cerebral cortex.
The same as if I were completely
offered a cup of tea, or a
coffee, or an air horn.
GEORDI
That sounds like someone who
has been through a lot.
Data nods.
I experimented with mixing other TV show scripts, the complete set of Frasier in this case. GPT-2 learns very quickly never to mix characters and language from the shows — too well, I wish it would mix them! But I swear the samples trained with some Frasier feel more like a sitcom:
ANGLE ON MAIN VIEWER (OPTICAL)
ANGLE ON MAIN VIEWER (OPTICAL)
Riker's face...
RIKER
Captain, I am detecting a Class-M
planet with high radiation
unaffected by the sun.
PICARD
Which planet did you detect?
RIKER
Class-M.
(beat)
I'm sure it looked like a Class-
M planet...
(beat)
What is it?
PICARD
A small planet with low surface
radiation.
RIKER
(laughs)
Not class-M.
Here’s another one that feels more like a sitcom, in particular, the repeated dialog lines are something I see a lot in the post-Frasier samples.
======== SAMPLE 15 ========
KIRA
(to Dax, explaining)
Dax, we were just talking about you.
I realize you're upset about
me, but I've always looked
good in a tuxedo.
DAX
I don't look good in a tuxedo.
I've always looked good in a
clutch, Benjamin. And I'm glad to
say, I haven't seen you since I left
the homeworld.
KIRA
(smiles)
I know you're upset, but I've
always looked good in a chiffo
uniform.
DAX
And I'm glad to see you've never worn
it anymore.
KIRA
I've never looked good in a chiffo
uniform.
DAX
Well, I've seen you look good in
it all... when you're wearing
anyone else's tux.
KIRA
(smiles)
I never look good in a chiffo
uniform.
DAX
(smiles)
I'm glad you said you were going to
be happy at the Bajoran wedding.
KIRA
(smiles)
I'm glad you said that.
Dax smiles and they walk off.
DAX
(re: the wedding)
I suppose I'll have to mention it
to someone.
KIRA
I'm not planning to.
DAX
Who's next?
KIRA
My husband.
(a beat)
I guess he'll be staying with us
this year.
DAX
He'll probably be staying with us
this year.
KIRA
I know. I just got here last
night.
DAX
I mean it's just a question of...
who?
KIRA
(beat)
I'm still not sure. I've got a
surprise planned for the next few
weeks. Besides, it sounds like
somebody's going to need a place to
keep me warm.
DAX
I'm sure they will.
KIRA
I'm sure they will.
DAX
Now what about you... are you sure
you don't want to stay with me for
a while?
KIRA
(re: the wedding)
I have a job to do... I'm a
pretty gal...
DAX
(reacts)
I hear you're married...
KIRA
That's right.
DAX
And what about Jake?
KIRA
He's leaving Starfleet.
DAX
A few weeks ago he was sent back
to the Institute.
KIRA
(reacts)
He's gone?
DAX
He's been living on the station
all his life...
KIRA
(beat)
======== SAMPLE 16 ========
This sample is as long as you can get right now the limit on the output is about 1000 words in the tiny version of GPT-2 that OpenAI let’s us play with. It would still be possible to create an entire script by taking the output from one sample and using it a ‘prompt’ to generate the next sample, over and over until you have a complete script. Since the scripts do clear structure like page and act numbers it should eventually get to ACT 5 or stick an ending on there. Maybe a project for the future.
Update 1
Update 2
Link to some complete Star Trek scripts (where I keep generating until it literally says THE END on a line).
Leave a Reply