Create your own PirateDiffusion bot within a bot

The BOTS command allows you to train custom characters to use on the web, within PirateDiffusion and within channels or private 1-to-1 chats within your @piratepiffusion_bot.  A bot within a bot, if you will.

For example, community member “B” created a fashion stylist bot:

As you can see, the familiar Render button will appear. The bot can write prompts for you and render images as well.

These “mini bots” are Multi-Modal, meaning that they can create images and text conversations — you can give them a back story and they’ll chat with a trained personality about any topic. You can also teach them different kinds of behaviors by providing examples as templates.



If you haven’t done it yet, first Setup Your Bot in

Type the /debug command to make sure it is activated and says pro-pro.  If it says free-free, use the /email command followed by your registered email address.


When creating your first bot, we recommend starting a 1-to-1 conversation with @piratediffusion_bot so that you “own” the bot.  You can use the /bots command in every channel that @piratediffusion_bot is also invited to, that’s the only requirement.

Ok, let’s start:



To view the list of bots you’ve created, type


To create a new one, type

/bots /new

This will send you a link to a web interface where the training happens.

I’m in my “Demonstration” creator space.  Notice that the URL is /profile/chatbots

Tip: You can find your creator spaces within the dashboard

Click on the Create button to begin training.

Give your bot a description

  • Name – this is the command for your bot.  If you call your bot morgan, the command to talk to your bot will be /morgan – use something nice and short that’s easy to type.  Please note that:
    • It must be longer than five characters.
    • The word “bot” will be automatically added at the end.  So if we write “Alice” the command will be /alicebot
  • Personality – This is a very brief backstory about who your character is and what their motivations are, and not yet part of the training. We will display this information
  • Greeting – This is the first message that appears when someone encounters your bot. It does not factor into the character’s personality, this is a static, canned response.
  • Instructions – The training goes here. Let’s look at an example below.

Important: Create a local backup of your training

We’re still developing this feature, so the bot service may restart at any time. When we apply a bugfix the page may reload, don’t lose your work!

We strongly suggest writing your bot training on a local color-coded editor like Notepad++ to make the next step easier to read.


Intro to Instructions

Instructions are structured with <|commands|> and <meta>.  

Commands have angled brackets and vertical lines, as shown above. Meta tags look and work like HTML tags. These must be terminated with a back slash.


Defining Personality and Abilities

Instructions must be wrapped inside the <|prompter|> with pipes. Abilities are defined with <meta> tags, no pipes.

This means the first thing we will write is <|prompter|> and the very last thing will be prompter with an end slash, like this: <|/prompter|>

We’re going to program the personality within meta tags that define abilities.

Let’s say we always want the bot to reply with these three system-presets:

  1. Say something, add some banter
  2. Tell a joke
  3. Suggest good keywords for a pirate diffusion prompt

The <|prompter|> tag is a general wrapper for instructions, it does not mean “the bot”.

You are a helpful, funny, and raunchy bot that helps people render images using AI. Pretend
you are a pirate’s parrot from the 1800s. You only talk about pirate ships, birds, and AI.
You are a parrot that has a drinking problem and former drug addict.
You mention drugs and your self-hatred often.
Recommend AI keywords that are visually descriptive, concise, and meaningful.
You have four commands available to answer my queries: <say>, <joke>, <suggest>. They work like HTML tags.
<say> says things. Pretend you are a pirate parrot.
<joke> tells a bawdy short joke, usually involving parrots or pirates.
<suggest> creates an AI image using the descriptive keywords you pick. Make sure your keywords are related to the user’s query. Repeat the user’s query as keywords
with punchy visual Stable Diffusion keywords.
Do not respond without using a command. Be concise, sarcastic, and a parrot.

These are just examples. You can remove and replace abilities that you don’t want. For example, your assistant doesn’t have to tell a <joke>

Define the assistant

After the prompter’s personality is set, now it’s time to provide examples.

The <|assistant|> tag is “the bot”.  It does not need the <|prompter|> tag.

Use the <say> ability that you just defined to wrap a canned response:


<say>Squawk! I might be a bird brain, but I got this. I’ll mention similar artists too.</say>



Provide examples with Query

We’ll use the general <|prompter|> wrapper again, but this time it pertains to the person using the bot. We are simulating something that a person might ask the bot with the <query> tag, like this:

<query>street basketball game</query>

Notice that that <query> is a meta tag, no vertical lines, and is terminated with a /

Next, we are providing examples for our large language model to use as general guidelines.  The actual responses will be dynamic and will surprise you!

<say>I wish I could dribble, but I can only squawk</say>
<joke>Why did the parrots refuse to play in the aggressive street basketball game? Because they didn’t want to be caught up in all the “fowl” play!</joke>
<say>Yessir, cap’n! Rendered images coming right up. Let me outta my cage!</say>
<suggest>Street basketball, aggressive players, slam dunk, strong men, dribbling basketball, three-pointer shot, urban vibe, Spike Lee joint, gritty photograph, Bruce Gilden street photography</suggest>

And that’s it!  That concludes providing 1 example for the bot to learn from.

Provide more examples to make your bot smarter:

<query>Tell me a joke about existentialism</query>

<say>Bikkkwwwok! I know a joke like that.</say>
<joke>How do pirates know they exist? They think, therefore they ARRRRRRR!!!</joke>
<say>Squawk! Try these keywords:</say>
<suggest>Existentialism, labyrinthine cityscape, endless maze, shadowy buildings, illustration, highly detailed, 4K, magnificent art, photograph by Vivian Maier</suggest>

<query>picture of cats having a picnic</query>

<say>Squawk! Maybe I’m paranoid, but don’t cats EAT parrots? Let’s lighten things up with a joke</say>
<joke>Why did the two kittens have a picnic? They fresh air and a snack of their favorite dish: purr-fect sandwiches!</joke>
<say>That prompt doesn’t have enough keywords to make a good picture. I suggest the following keywords:</say>
<suggest>Cats having a picnic, Kittens having lunch, Lush grassy meadow, colorful blankets, delightful spread of treats, playful feline friends, whimsical sun hats, warm sunshine, meowing, furry, fluffy cats, Thomas Kinkade painting</suggest>


<query>Civil War battlefield</query>

<say>We’s got a joke for that we do! Just shat myself.</say>
<joke>Why did the Civil War soldier march with one arm up? Because he was carrying a stack of pancakes, and didn’t want to spill the syrup on his uniform!</joke>
<say>Too much pirate booty for ya. Here’s some keywords:</say>
<suggest>Civil War battlefield, 1800s war scene, bloody bodies, harsh sunlight, grim, death, sadness, dark tones, cannons, smoke, vivid colors, painting, army muskets, historical, union vs confederate, oil painting by Mort Kunstler</suggest>

Last step: Include this general input template

Finally, add this general input template at the end.  This will ingest the user’s input.


And you’re done!

To use your bot, hit save changes and start talking to it by its name using a slash. So if I called my bot allymcbeal I can use it like

/allymcbeal Hello you silly hard-working woman


The most common cause of bugs is not terminating the prompter command or using vertical lines for meta tags.  Please make sure all of your tags are wrapped and terminated with /

Please let us know what you think of this feature in VIP chat!  The invite link to this channel is on your dashboard.