How To: Creation Guide
FlowGPT Web

What is a Character Prompt?

In FlowGPT, a Character prompt is a prompt written for the express purpose of roleplay - it's structured in a way that instructs your chosen AI model to write as a character, and stay in-character.

When creating a Character prompt, there are 4 boxes you must fill in: the Name, Personality, Greeting, and Description. You may also decide to fill in the 3 boxes underneath Advanced Settings: the Scenario, Example Conversations, and System Message boxes.

This guide will teach you how to make use of all of them.

Creating Your First Character

To create a Character prompt, first click the Create button on the left sidebar.

You will then be asked to select which type of prompt you'd like to make. Select Character and type in the name of your bot (don't worry, you can change this later!

After hitting Let's Start!, you should see this screen:

This is where you’ll be writing your character.

AI Model

As you can see, the first section (up at the top-right) is the AI Model.

On FlowGPT, you are given 13 AI models to choose from - while most are free to use, a few require Flux to generate responses. These models are Google Gemini, GPT 3.5 Long, GPT-4 Turbo, Claude Instant and Claude V2.

Some models also prohibit sensitive content. These models include the ones listed above, as well as ChatGPT, Google Palm 2, and Claude V1.

When selecting an AI model, it is also important to take note of their ‘context’. The model’s context limit is the limit on how much it can ‘remember’. Contexts are measured in ‘tokens’ - usually, groups of 3-4 letters (or many common words). To measure how many tokens are in your prompt (or simply visualise how they are calculated), you can visit this tokeniser (opens in a new tab). In simple terms, a character (Personality, Scenario, Example Conversations, and System Message) should not exceed half of your chosen model’s maximum context. This is because the additional space will be used to store a user’s chat history with the character.

Additionally, you may notice the Parameters section upon selecting a model. These (apart from Max Tokens) influence how the AI 'chooses' which tokens to use when attempting to generate a response. While there are Presets already available for you to choose from, we encourage you to do some experimentation on your own to figure out which settings works best for you and your prompts. If you're confused on what any of the parameters do, you can hover over the exclamation marks for a quick explanation.

Avatar

Next is the Avatar section.

Here, you can choose to either Generate an avatar within FlowGPT's UI, or upload one yourself. While this tutorial will make use of an uploaded file, let's go over your options for generating an Avatar, anyway.

By selecting the Generate option (or selecting the Avatar tab on the left), you will be taken to the Image Generation section. Here, you can choose to spend 5 Flux to generate an image using 1 to 3 models in our Library, as shown below.

After selecting a model and typing in a prompt, hitting Generate will create 4 images for you to choose from. If none are to your liking, you can always choose to generate more images using either the same prompt, or a different one.

If one of the images catches your eye, you can then set the image as your character's Avatar by hovering over it, then clicking on the bookmark icon that pops up in the top-right corner of the image.

From there, you will be prompted to crop the image to your liking, and after confirming your choice, the image will be set as your character's Avatar.

Afterwards, you can go back to the Definition tab on the left side panel in order to return to your character's main information.

Character Personality

The character’s personality can be one of the most difficult parts of a character prompt to write. Some use pseudo-code, others simply describe their character in prose. As such, this guide will be covering the most widely-used or widely-known formats.

W++

Arguably one of the most popular formats on sites that centre around character prompts exclusively, W++ is a form of pseudo-code that was originally written for the Pygmalion 6B model. Nowadays, however, Pygmalion 6B is generally known to be ‘outdated’, and the limitations that were once on that model have become less restrictive in most widely-used models today. Simply-put, most models are now built differently.

To begin with, W++ was written for Pygmalion 6B because, unlike most recent models, Pygmalion 6B struggled to ‘comprehend’ character information written in simple prose. Through experimentation, users found that categorising said information was much more effective, and was also simply easier to write than full paragraphs of prose.

As such, W++ was created and spread throughout the community.

Here’s a brief example of the W++ formatting:

As you can see, this format describes our character, Roderick, who is an anxious university student who aspires to become a writer.

Note the use of brackets and quotation marks in particular: each category encompasses relevant traits, and each trait is encompassed by quotation marks and separated by plus signs. The Personality and Mind categories also contain the exact same information, reinforcing the character’s baseline personality traits for the AI.

While the categorisation can be helpful for the ease of writing the prompt, the overuse of punctuation and duplication of information can also be a waste of tokens. There are better, more effective ways to convey this information, which is why W++ is usually not recommended for writing characters anymore.

Square Bracket Format

While similar to W++ (and also developed for Pygmalion), Square Bracket Format (SBF) is a much more token-efficient method of categorising character traits.

If we take our character information from the W++ format, we can convert it into SBF like so:

As you can see, the extra brackets at the beginning and the end of the information block have been removed, as well as the quotation marks otherwise encompassing each trait.

In comparison to W++’s 204 tokens, SBF comes out at 153 tokens, despite containing, quite literally, the exact same information. Therefore, if categorising a character’s traits or saving on a character’s tokens is a must, SBF is one that is best suited for your prompt.

PList

Similar to W++ and SBF, PList is a format that categorises a character’s traits. This time, however, it aims to mimic the structure of Python lists, hence the name.

Similar to SBF, categories are encompassed by square brackets. Unlike SBF, however, each trait is separated by commas (,) instead of plus signs (+). However, this can be limiting for more complex descriptions, which require the use of commas to expand upon the topic while keeping traits connected:

Traits such as this would be difficult to keep in one sentence without the use of commas or additional punctuation.

Prose

One of the most universally-accepted formats is prose. Simply put, paragraphs and sentences, with no special symbols or brackets. This is also the format that would be effective for the most models - LLMs are mainly trained on prose, not code or forms of pseudocode (unless under different circumstances). Therefore, they should respond best to prompts that are similar to their training data - namely, paragraphs and sentences like so:

When writing with prose, it is advised to reinforce important personality traits with a character’s past - for example, here’s a paragraph emphasising Rod’s romantic and empathetic traits:

Ali:Chat

Originally written by .alicat (opens in a new tab) on Discord, the Ali:Chat format capitalises on the use of example dialogue to describe the character, while simultaneously reinforcing the character’s ‘voice’/speaking style. In short, the Ali:Chat format involves either the user character or an ‘interviewer’ character asking questions. For example:

These questions can range from the character’s personality, to their backstory, and can even encompass smaller details like their hobbies or interests. A downside to this format, however, is the token usage. While it is arguably one of the best formats for writing characters (since it provides examples of how the character talks/acts directly to the model), it can be extremely token heavy depending on the style of the responses being given.

As such, some choose to supplement the Ali:Chat format with shorter categorisation-type formats, such as SBF or PList.

Once you have written your character’s personality, it’s time to write the character’s Welcome Message.

Writing an Effective Welcome Message

The character’s Welcome Message will be what starts off every chat that every user has with the character. It should set the scene, introduce the character, and tell the user what role they have in the story (if you’re setting their role for them).

The key to writing a good greeting is to write what you want from the AI. Since the Welcome Message is the very first message in the chat, the AI will be looking to that Welcome Message as an example of how to write. So, if you’re expecting very long messages from the AI with lots of detail in the scenery, the character’s perspective, etc, that’s what you’d write:

Alternatively, you can also write shorter greetings for shorter subsequent messages:

The Welcome Message is also often the source of the ‘My character keeps speaking for me!’ issue.

Here’s an example:

In this Welcome Message, the character takes a more passive role in the story. The first paragraph tells you (the user) what you think of the weather, why you’re inside the cafe, what you think of the situation. The only point at which the actual character (Rod) makes any action is in the next line, where he speaks to you.

When a Welcome Message is written to focus on the user’s actions and backstory rather than the character, it encourages the AI to continue doing so - the AI will write as the user instead of the character, or it’ll write the actions of both characters instead:

An effective Welcome Message would focus entirely on the character themselves - actions made by the user should be minimal or non-existent, and if the user already has a role in the story (in this case, the user is the barista that Rod is in love with), that role should be explained from the perspective of the character:

In this example, the Welcome Message accomplishes all three tasks: it sets the scene (inside a cafe), introduces the character (a regular customer at the cafe), and describes the user’s role (an overworked barista that the character is in love with).

Once you have a Welcome Message written down, the next section is the Advanced Character Settings.

Advanced Character Settings

Scenario

The Scenario is where you can set the scene and/or introduce the user and the character to the AI, if it’s not already done so in the character’s Welcome Message or Personality. However, since it’s a permanent section in the context, it’s generally not recommended to include the current circumstances. For example, a roleplay with the example character, Rod, may start at the cafe in the middle of the user’s shift. However, if the roleplay continues for long enough, the plot may develop and that setting may change - the user’s shift might end, and they would then leave the cafe to go home.

As such, the best practice is often to either provide minimal information in the Scenario, or leave it empty altogether.

Example Conversations

Example Conversations function similarly to a character’s Greeting - they help shape the ‘voice’ of a character (writing style, response length, etc), but with much less influence. While it’s helpful for the AI to ‘learn’ how the character speaks through these examples, it usually results in the AI mistaking these examples as ‘memories’ - for example, if one of the examples involves the character having a conversation with the user, the AI may ignore smaller anecdotes about the character and the user having never spoken to each other before, simply because that conversation is already in the context.

The Example Conversations are also permanently placed in the context - as such, it can be a waste of tokens to include them when they don’t already expand upon the character or their personality, especially since the character’s Welcome Message exerts much more influence on the writing style the AI adopts for the roleplay.

As such, if you’re going to include Example Conversations in your character, the best practice may be to adopt the Ali:Chat format outlined above - that being, to only include examples that expand on otherwise complicated or overlooked traits in the character’s Personality.

Background Story

If you didn't already include your character's backstory in the Personality section, you can do it here.

As mentioned above, it's important to tie a character's personality traits to their background in order for them to shine through in their chats. For example, it's much easier for the AI to 'recall' a character's fear of dogs if you mention that they were once bitten by a dog as a child. The more detail to add into that memory and to how it affects your character in the present, the more likely it is to be referenced.

Since our character's past was already detailed in the Personality section, however, we'll leave this box empty.

System Message

The System Message, despite not being a requirement, is one of the most important parts of creating a character.

Most models rely on instructions from users in order to roleplay - they must be told what to do, and how to do it. Providing examples and describing the character may not be enough if the AI isn’t told what to do with it. As a result, the System Message section is provided, for you to write what you expect from the AI, or use one of the defaults provided to you.

Testing

When all of the required sections of your character are filled out and you’ve chosen an AI model, it’s time to test them!

Using the Preview sidebar, you can chat with the character and see how they respond, just like a normal chat. Some things you may want to keep an eye out for include user impersonation (either rewrite your Welcome Message or instruct the model to avoid speaking as/for the user in the System Message), random perspective changes (often a problem with different perspectives used in the Welcome Message vs the Personality) or incorrect details (in terms of appearance for example, usually it’s not reinforced in the Personality/Welcome Message/Example Conversations enough for the AI to consider it relevant. Usually iterating that info once or twice would fix that issue, but the AI may still make mistakes due to the random nature of response generation).

Extra Features

Although we already looked at the Avatar tab earlier, it should be noted that there's an extra section at the bottom, below our model library.

Here, you can enable Image Generation for your character - this means that they can generate images for your users as they chat with them. You can also set a prefix for your images - for example, setting a style in order to keep those images consistent, or detailing your character's appearance in order to ensure that they appear in every image with the correct details.

Additionally, the Voice tab allows you to choose a voice for your character, allowing any text generated within quotation marks (") to be read out by your chosen voice.

Publishing a Character

The Publish section is the last in the Create Center. Here, you can choose how your character will appear to other people, and how they can find it.

Preview

The Preview section shows how your character will appear on your profile or on the front page of FlowGPT. Clicking on the icon will show you the character’s main page, although none of the character’s details will be updated (apart from the avatar images) until you save by hitting the Publish button.

Name and Intro

If at any point you decided you wanted to change your character's Name, you can do so here. Below that is also the Intro section.

Note that the Intro section will not be included in the context sent to the AI. It is meant for the user only - therefore, it’s a good way to provide extra context that might not have fit into the character’s Welcome Message, or to inform the user of more technical details, such as the intended tone of a roleplay with the character or the default model the character is using.

Category, Category Tags, and Hashtags

This is how most people will find your character. Select the Category that your character belongs in, fill in the Category Tags, then select whichever Hashtags would describe your character and/or their purpose. If you need to deselect any of the Category Tags, you can do so by selecting the tag again using the dropdown.

Additionally, you may choose to enter your character into a Bounty - these are occasional competitions in which you can win prizes in Flux or cash.

Sensitive Content and Permissions

If your character contains Sensitive Content (violence, sexual themes, jailbreaks, etc), make sure to declare it in the option below. If your character is miscategorised, it may result in a content ban.

Additionally, this is where you can set the permissions for others interacting with your character.

The first checkbox (Publically available to all users) will make your character private if unchecked. This means that, while still visible to you on your profile (and when you visit your public profile while logged in), other users cannot, unless you’ve given them a link to the character.

The second checkbox (Allow community to view bot definition and prompt) will make your character’s information private if unchecked. This means that the only details about your character that other users will see is the information on the character’s Preview page, the character’s Welcome Message, and their Intro (unless you've given them a link).

Conclusion

Once you’ve finished filling out your character’s information and setting permissions, you can publish it and enjoy your chats/roleplays to your heart’s content.

While this guide is intended for new users creating their first character, remember that all of the information here is just a recommendation! If there’s anything about your character that you’re not happy with, always be open to experimenting with new formats, system messages, etc.

But overall, make sure to create characters that you enjoy.