malfoyslastname / character-card-spec-v2

An updated specification for AI character cards.
81 stars 3 forks source link

Post your general questions here #3

Open malfoyslastname opened 1 year ago

malfoyslastname commented 1 year ago

If you are a regular user or developer with questions about this spec, feel free to post them in this thread. I can also be contacted at malfoyslastname@proton.me if you don't have a GitHub account, but questions in this thread are more likely to get noticed.

anon78356 commented 1 year ago

Would it be possible to add support for logit biases and author's note (prompt added at the end every few messages)?

malfoyslastname commented 1 year ago

@anon78356 This is too late to add them to the spec right now. I regret that I only fully understood author's note after NovelAI's Clio came out. It's a good piece of prompt engineering tech.

However, those fields could potentially still be included inside the cards' extensions field, for that you'd have to request individual frontends to include card.data.extensions.author_note and card.data.extensions.logit_biases fields.

CharlieDreemur commented 1 year ago

any c# version or any help guide so I can rewrite it in c#, I want to support import/export character card in my unity game.

SabinStargem commented 1 year ago

Question: would it be possible to repurpose Character Cards as a container for other types of information, and "link" cards together?

For example, a "Location Card" about a City, then link it to several other Location Cards, such as a tavern, blacksmith, king's courtyard, and so forth. The basic idea is that the AI can "hop" from one card to the next if there is need for associated information. Ask a person in the Tavern about finding a blacksmith, and they talk about the smithy and a character who has their card linked to it. In turn, that character has "Burnblessed", a magic hammer that is defined by a Item Card. Fulfill the conditions of a Quest Card, that hammer can be obtained.

What I am thinking of, is that large collections of cards could be created and chained together to make a setting more focused for the AI when it needs details. No idea if this can actually work in practice.

CharlieDreemur commented 1 year ago

hi, thank u for your suggestion, something like location card is what I already implemented and I already chain character card, main prompt card, location card, scene card(noted that a scene has many location, but all location is in one scene, for example, bed and desk are location, bedroom are the scene), magic card(let AI to spell magic such as explosion magic), emotion card(all predefined emotion), action card(all predefined action). However, though I do can chain these, the final effect is doubtful due to chatgpt3.5(not chatgpt4) limited ability and my not-well prompting skill, I wonder can u join my discord account charliedreemur and I can show u some prompts I am using? Thanks!

SabinStargem @.***> 于2023年7月8日周六 17:48写道:

Question: would it be possible to repurpose Character Cards as a container for other types of information, and "link" cards together?

For example, a "Location Card" about a City, then link it to several other Location Cards, such as a tavern, blacksmith, king's courtyard, and so forth. The basic idea is that the AI can "hop" from one card to the next if there is need for associated information. Ask a person in the Tavern about finding a blacksmith, and they talk about the smithy and a character who has their card linked to it. In turn, that character has "Burnblessed", a magic hammer that is defined by a Item Card. Fulfill the conditions of a Quest Card, that hammer can be obtained.

What I am thinking of, is that large collections of cards could be created and chained together to make a setting more focused for the AI when it needs details. No idea if this can actually work in practice.

— Reply to this email directly, view it on GitHub https://github.com/malfoyslastname/character-card-spec-v2/issues/3#issuecomment-1626999463, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVZEXRS6Z4OLAKFM6MIFCPTXPEUF5ANCNFSM6AAAAAAYE5PARE . You are receiving this because you commented.Message ID: @.***>

SabinStargem commented 1 year ago

I am not sure on how to join you on Discord, unfortunately. Got a server link?

That said, some thoughts: I think that treating Beds and Desks are locations might be inflexible. What I propose is an Object Card. In the description of the Object Card, things like the approximate size and weight of items can be found, along with whatever details are needed to make the item special. This means that clothing, weapons, food, or chairs can all be defined into a Object Card.

By making furniture into objects, they should be more interactive than being defined as a location. For example, you are trying to go down a hall, but an enemy is shooting arrows. By flipping over a table and carrying it, the player can use it as a shield. You can't do that if an item is considered to be an location, rather than something that can be moved around.

Aside from that, I think each type of card needs a naming scheme that is general purpose. For example, a Magic Card doesn't quite make sense in a scenario that is science fiction. It should instead be called a Ability Card, so that people can more easily intuit what it is used for. With that name, such a card could be used to add abilities to a superhero, special maneuvers for starfighter pilots, or a sword technique of a samurai.

When it comes to pre-defined emotions, I think you could already use character cards for that? Provided you are willing to spend the context, you can add many details to a person, including their responses to situations. If you have powerful hardware, you can try an local AI model with an 8k context limit. I am using Airoboros 65b v1.4.1-PI.

Due to the nature of AI roleplaying, it is bit of a wild west on how prompting works. I have been trying to make an NSFW monstergirl world, and so far it seems to work as intended. Mind tossing me a sample prompt of yours? I can try rewriting it, but no guarantees that it would be actually good.

CharlieDreemur commented 1 year ago

hi, here is my discord sever (https://discord.gg/zxTbmnQF), u can go to the reborn-ai, I will post everything around my game there! We can discuss together there, also I am also in the SillyTavern discord u can contact me there Best

SabinStargem @.***> 于2023年7月14日周五 00:56写道:

I am not sure on how to join you on Discord, unfortunately. Got a server link?

That said, some thoughts: I think that treating Beds and Desks are locations might be inflexible. What I propose is an Object Card. In the description of the Object Card, things like the approximate size and weight of items can be found, along with whatever details are needed to make the item special. This means that clothing, weapons, food, or chairs can all be defined into a Object Card.

By making furniture into objects, they should be more interactive than being defined as a location. For example, you are trying to go down a hall, but an enemy is shooting arrows. By flipping over a table and carrying it, the player can use it as a shield. You can't do that if an item is considered to be an location, rather than something that can be moved around.

Aside from that, I think each type of card needs a naming scheme that is general purpose. For example, a Magic Card doesn't quite make sense in a scenario that is science fiction. It should instead be called a Power Card, so that people can more easily intuit what it is used for. With that name, such a card could be used to add abilities to a superhero, special maneuvers for starfighter pilots, or a sword technique of a samurai.

When it comes to pre-defined emotions, I think you could already use character cards for that? Provided you are willing to spend the context, you can add many details to a person, including their responses to situations. If you have powerful hardware, you can try an local AI model with an 8k context limit. I am using Airoboros 65b v1.4.1-PI.

Due to the nature of AI roleplaying, it is bit of a wild west on how prompting works. I have been trying to make an NSFW monstergirl world, and so far it seems to work as intended. Mind tossing me a sample prompt of yours? I can try rewriting it, but no guarantees that it would be actually good.

— Reply to this email directly, view it on GitHub https://github.com/malfoyslastname/character-card-spec-v2/issues/3#issuecomment-1634585285, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVZEXRS4NQYTYOA4X7EDMS3XQASCBANCNFSM6AAAAAAYE5PARE . You are receiving this because you commented.Message ID: @.***>

SabinStargem commented 1 year ago

I took a brief look at your Discord server, but didn't spot any prompts or character cards to work with. I am personally not a fan of VR nor social games, so I can't give useful feedback about your project.

CharlieDreemur commented 1 year ago

I see, that's because I don't want to share my prompt in server for now because I am still working on it, what I mean is you can join my discord friend there and I can DM u my prompts (, anyway, thank for your patience! Best, Charlie

SabinStargem @.***> 于2023年7月15日周六 18:28写道:

I took a brief look at your Discord server, but didn't spot any prompts or character cards to work with. I am personally not a fan of VR nor social games, so I can't give useful feedback about your project.

— Reply to this email directly, view it on GitHub https://github.com/malfoyslastname/character-card-spec-v2/issues/3#issuecomment-1636730865, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVZEXRV4KT27YXFBBVG3MDTXQJWGPANCNFSM6AAAAAAYE5PARE . You are receiving this because you commented.Message ID: @.***>

Kaoru8 commented 1 year ago

Please consider adding the core format info (JSON string encoded in base64 inside the "Chara" EXIF metadata field) to the V2 spec readme in addition to the V1, or just add it to the top of the main readme.

Was coding my app and needed to read the data from images, wasted quite a bit of time until I found the info in the old spec.