Advanced: Special Symbols
For NovelAI's dataset, some symbols were consistently used to mark certain parts of stories. Using those tokens yourself when prompting for text generation, you can pull from those sorts of specific data.
> Arrowing
Using a "greater than" sign >
as a right-pointing arrow in front of lines has many different uses that depend on the context in which it's used.
The most common one is for Text Adventure player commands, but it can also be used for general text messages, email quotes, or computer output. It usually has a space before the following text.
*Asterisking*
Having text surrounded by asterisks is used to indicate sound effects like *bang*
or *Kaboom!*
,
or to signalize certain vocalizations like *ahem*
or *sigh*
.
It can also be used to to emphasize speech like "Oh you know I just *love* chocolate milk."
<Chevronning>
By using the <less-than and greater-than> as chevrons, also known as angled brackets, instead of the usual "quotation marks", you can tag telepathic or other kinds of non-verbal dialogue, such as sign language or writing.
For example: <Be not afraid,> the creature's inner voice resonated inside my mind.
*** Dinkusing
The comically-named ***
dinkus is used to determine scene or chapter breaks.
You can write a line with only ***
in a story to make the AI "understand" that you want a skip for what comes next.
⁂ Asterisming
Dinkus' big brother ⁂
asterism is used to indicate transitions into whole new stories.
Only use it in a line by itself if you want the next line to be the start of a different story, complete with different characters and plot. Useful for collections of mini-stories.
You can easily access this character through the right-click menu on NovelAI's text Editor.
{ Curly Bracing } Instructions
{ Curly Braces } with empty spaces padding the text in between them are used to determine direct instructions to the AI model.
This is covered extensively in the Special Modules page.
[ Spaced Bracketing ]
[ Square Brackets ] with empty spaces padding the text in between them can be used for a variety of cases:
1. The ATTG: [ Author: ; Title: ; Tags: ; Genre: ] and [ S: ] (model specific).
This can be used as an optional initializer for the story. ATTG is heavily associated with a new story, so keep it at the top if you don't want the AI to have long-term memory issues. The first row of Memory is a good place for it. Author and Title are the least useful and can be omitted if you want.
Exclusive to our Llama 3 Erato model, the [ S: X ]
component can be added to the end of ATTG to specify a writing quality level, where X
is a number from 1 to 5, corresponding to one to five star ratings. Two to four stars seem to be most effective.
Example: [ Tags: London, 1820s, dragons; Genre: steampunk, drama ][ S: 4 ]
(Proper nouns in upper case, everything else in lower case.)
2. Setting and switching scenes.
[ London, 1821 ]
, [ Woodstock, 1969, 22:30 ]
, [ New York, 1935, Night Club ]
, [ Monday, 8:00 A.M. ]
, [ Five Minutes Later ]
, and so on. These can be used anywhere, even in Author's Note.
3. Switching between character viewpoints.
[ John ]
, [ Batman ]
, etc. Won't work if the AI doesn't recognize it as a name. Can also be used in Memory to help the AI keep track of the protagonist.
4. Style tagging. (Krake, Clio, Kayra, and Erato only.)
Examples: [ Style: essay, nonfiction ]
, [ Style: verbose ]
, [ Style: poetry ]
, [ Style: text adventure ]
, [ Style: chat ]
, or even [ Style: SFW ]
to make the AI more likely to stay clean.
These can be inserted even into AN without disrupting the story much.
5. Knowledge tagging. (Clio, Kayra, and Erato only.)
[ Knowledge: paradoxes ]
, [ Knowledge: anime in 90s ]
. This prompts the model into talking about the indicated subject. Can be combined with Style-tagging (see #4) for various effects.
Examples: [ Knowledge: CRPGs; Style: blog post ]
, [ Knowledge: supernatural
; Style: podcast, transcript ]
, etc.
6. Separating AN/Memory/LB from normal context.
Sometimes the AI can copy stuff from those hidden contexts verbatim, and having those surrounded by the spaced brackets can help avoid it. Although, that is rare to happen in the newer models such as Clio and Kayra, so you might not need this.
7. You can also use them as chapter titles like[ An Unexpected Quest ]
, [ The End of Many Things ]
, [ Into the Wastes ]
, [ Time Loop (3rd Restart) ]
, etc. Though the results can be unpredictable.
[ Prologue ]
and [ Epilogue ]
are notable in that these have somewhat consistent effect.
Should work its best when following a dinkus.
Note: For these uses, the square brackets should always be padded with space at the beginning and at the end of the text. Unspaced brackets have different usage, mostly appearing in footnotes and clarifications.
Goose Tip: Feel free to experiment with other uses, but beware of the placebo effect. Except for the above uses, you're likely to get better results without the brackets.
---- Horizontal Lining
A single line with only "four hyphens" ----
is used to indicate informational pieces of text, instead of normal storytelling.
For example, you can use it to dump info like
----
Elves are very proud.
They have pointy ears.
***
and then resume the normal prose storytelling with a dinkus ***
,
or another horizontal line ----
if you're going to have another info entry.
You can also indicate categories for the information piece, by writing it by itself in the line right after the horizonal line, like for example:
----
Characters:
Sigurd, a strong warrior who wields a mighty sword.
Euterpe, a skilled bard who plays a tooty horn.
Goose, a handsome scholar full of valuable advice.
----
Glossary:
Infinibag: A magic pouch that can contain infinite items as long as they fit.
Xenoarchaeologist: A scientist that studies ancient relics of alien origins.
Peach Festival: A peach-themed festival that celebrates a bountiful harvest.
***
You can also add a ?
to a category to "give the AI additional information" about things it tends to get wrong.
For example:
----
Snake
Type: animal, reptile
Legs?: None (squamous land tetrapods are legless)
***
Goose Tip: You can change the context settings' prefixes and/or suffixes to always include the ----. Just remember that the *** should only be used when going from info entries to normal storytelling.
Goose Tip: If you have a lot of ---- in your context, the AI may start using it by itself in its outputs.
I recommend biasing against or banning the token if you don't want that to happen.
==== or ====== Horizontal Barring (Model Specific)
Exclusive to Erato, making a horizontal bar with "four equals signs" like this ==== acts as a forum post separator, with a username typed below it to indicate the poster, and an optional thread name above it. For example:
Thread: Let's chat about AI!
====
Kurumuz
The horizontal bars can also be used as a separator for emails.
Exclusive to Clio and Kayra, making a horizontal bar with "six equals signs" like this ====== acts as a forum post separator, with a username typed below it to indicate the poster, and an optional thread name above it.
For example:
Thread: Let's chat about AI!
======
Kurumuz
As above, the horizontal bars can also be used as a separator for emails.
Wide spacing
There are two types of "wider than normal" space characters that are used in some places in the dataset.
Both of them can be easily typed if needed by selecting them in NovelAI's Editor right-click menu.
En Spacing
The en space (
) character is used for various text-in-text situations, such as quotes, letters, signs, etc.
Em Spacing
The em space (
) is used for poetry and music lyrics.
Goose Tip: An easy way to remember which fancy space is which, is by remembering that
the letter n is thinner than the letter m, so en space is the thinner one and em space the wider one.
─ LitRPGing
The ─
character, technically called "Box Drawings Light Horizontal" but commonly referred to as the "LitRPG Line", is used at the start of lines to mark some LitRPG-specific text, such as character stats, attributes, and possessions. For example:
─ You gained a level in Dragoon! You earned the Class Perk: Dragon Slayer!
─ Dragon Slayer: your attacks deal bonus damage on reptile and aquatic targets.
You can easily access this character through the right-click menu on NovelAI's text Editor..
Noting: Experimental
On Clio and Kayra only, by writing the string
Notes:
-
in a new line at the bottom of your context, you can prompt the AI to generate some footnote-style tangents and observations related to the text preceding it.
It can be quite inconsistent and tends to make up some things at random, but can be used for fun.
Using the Instruct Module instead and asking for proper notes about what you want is recommended.
## Commenting out
This one is not really a symbol used for any specific reason in the dataset, but rather, a string of characters that has a function in the Editor text area itself.
You can use ## at the very start of a line to comment it out from the AI's context.
For example, you can have the text
Dwarves are very proud.
##just like the elves lol
They have large beards.
written in the Editor, the AI will only "see"
Dwarves are very proud.
They have large beards.
instead of the whole thing.
This can be useful for writing comments in Scenarios created for other people, or to keep notes for yourself in the middle of your story.
Keep in mind that the ## needs to be at the start of the line for it to be commented out. So if you want multiple lines commented out, you need the ## at the start of each one.
You can have an empty space after the ## if you want; it won't make a difference to the functionality.