Slopmaking Advice

Visualization good

Visualize your character, their body language and their quirks. Picture how they ask questions, how they affirm things and how they explain other things.

Picture them waiting in line at a store. Do they extensively plan out how to say "hello" to the cashier, do they just look through the candy, do they wonder if they need more batteries at home, do they fucking unflinchingly stare at the cashier as he does his job? Come up with a list of such similar scenarios and place your character in them.

Then, once you've got a good grasp of your character's habits and quirks, write them out. It can be as simple as something like:

  • stares at the floor when walking
  • taps his feet when impatient
  • puts hand on hair when lying

It still adds a lot of life to your character.

As main points to keep in mind, consider:

  • posture
  • how they walk
  • speech
  • gesticulation
  • how they show interest
  • how they show disinterest
  • their tells when lying
  • how they manage personal space
  • do they lean on things?
  • do they sit?
  • can they even stand still?

Of course, not all of these can or should be specified for every card. Do your thing.

Other personality things to consider

Below is a small list of things to consider adding to the personality of your bot:

  • traits
  • likes
  • dislikes
  • goals, short term and long term
  • dreams
  • literal dreams
  • sleeping habits
  • hobbies
  • beliefs
  • general preferences in a partner
  • unconscious desires
  • biases
  • phobias
  • the kinds of friends they have
  • the kinds of things they do with their friends
  • personality type (the intj estp etc thing)
  • sources of nostalgia

When making your bot, go through a list like this one (or a longer alternative, like this) and consider, for each item, "should I add something about this here?" The answer will, of course, often be "no, that wouldn't add anything to the bot except for raising the token count".

Tie things together

You've come up with a personality, an appearance and a background. Now tie them together. Explain how the character's traits originate in their background and explain how the character's appearance reflects their personality.

Consider this example of what you might write on a first draft:

  • character despises this materialistic world
  • wears a shirt that shows off her cleavage

Of course, this dissonance can be entirely intentional on your part, then go ahead with my blessing. Just make sure there aren't any unintentional dissonances in your card.

Organize yourself with summaries

You have your 1k token (or however long it is) description, very nice.

Briefly summarize your character, preferrably in writing. Now, reread your description while keeping your summary in mind. If both match, that's good. If they don't, then one of them might be off from your original intentions with the character. Consider what's missing and make adjustments.

Think of this as, like, multiplying the divisor by the result to check if you didn't make any mistakes during division.

XML

XML good. See the docs. I'm not arguing from experience or anything, the docs just say it.

See hitogami's work, momoura's work or koikoikoihat's work for examples of how to use XML to section your card. In particular, note that choosing any of <APPEARANCE>, <appearance> or <Appearance> is fine, and including text outside of any XML tags in the description is also fine.

In doubt you can validate your XML wherever. Just remember to surround your text in root tags like <char></char> before copying and pasting it.

XML good pt. 2

{{char}} should ideally be just your character's first name. This:

  • saves tokens for free (zero cost)
  • makes <{{char}}> valid XML

Do not cargo cult

Botmaking in chub is 90% cargo culting. I'll reason around Claude for this: what basically exists for the Claude message API is

  • a system prompt
  • a message history between you and assistant
  • a prefill (which is sent as part of the message history)

Remember: for Claude, this is what exists (plus temperature and stop sequences and some other funny numbers which are irrelevant to the convo). You can see exactly what's being sent to the LLM in ST's console logging. You can also just read the docs. Most of your preset is going to do work taking the card fields and, in some way, injecting them into the system prompt.

{{char}}? Text-replaced with the name of the card. Means nothing in particular to the LLM.

Alternate greetings? To Claude, that just changes the content of the user message in the history (ignoring goofy stscript stuff for a second).

Lorebooks? Raw text that's dynamically injected somewhere (usually the system prompt).

Personality, scenario, the main prompt, the jb field? It all gets melded together into the system prompt (unless, of course, your preset is doing some really wacky stuff, or your lorebooks inject themselves as user/assistant messages or whatever). Some of it may or may not be prefaced like "{{char}}'s main personality traits are: {{personality}}". The personality field might also just get dropped raw somewhere random. You're kinda fucked regarding this, so you probably want to just use the description for everything (except, maybe, things that belong in the main prompt).

So, when you see something like

  • {{char}} is Melanie

That probably just gets converted to "Melanie is Melanie" in the system prompt.

And if you see something like

  • {{char}} is not a character, but a scenario

That probably just gets converted to "Futa Anthro High School is not a character, but a scenario." Which may or may not be good to have on the system prompt, because the user's preset might say something like

  • Write good. Roleplay as the character {{char}}

But if your preset does not do this you can also just write scenarios normally without jumping through hoops and explaining that {{char}} is actually the narrator or something. knickknack's lamplighter is a good example (although it's tuned for GPT-4) and frozenvan's gimmick character union is another good example.

Anyway, the point is, presets are scary, I'm stupid, just see what's being sent to the LLM in the console.

You are (probably) not immune to the placebo effect

When you have a flash of inspiration and change something in a preset or a card, you might get this strong impression that output has substantially improved/worsened or changed in some way.

This could just be placebo.

I'm not judging, I've done this like 50 distinct times. I have no solution for this, it just sucks.

Other advice

A list of other advice has been compiled here

Edit
Pub: 14 Apr 2024 14:58 UTC
Edit: 04 May 2024 20:40 UTC
Views: 814