BetterWaifu’s AI Hentai Generator Guide: Prompt Basics
By gerogero
Updated: November 16, 2024
AI generators are simple enough: you type in a prompt and then click “Generate” to get your image.
The question people have when they are starting out, is not ‘how do I generate’, but ‘how do I generate better images’.
This guide aims to answer that. It is the result of constant experimentation, and learnings from the BetterWaifu website, on which hundreds of thousands of images are generated every day.
Everything starts with Danbooru
To anyone trying to improve their prompts, the first suggestion in our Discord server is usually to browse Danbooru.
But for the first-time user, Danbooru is confusing as hell. It just looks like a messy jumble of images and tags. So how does it actually help us generate better waifus?
Danbooru is the largest anime imageboard in the world. Without exception, all anime AI generators use its images for training. There are many ‘booru’ sites that use the same layout, such as Rule34 and Gelbooru, but Danbooru is the largest.
On Danbooru, volunteers tag all images comprehensively by their content. These rags range from physical characterstics “large_breasts“, “red_hair” to objects “book” to actions “fellatio“.
You can use these tags directly in your prompts. (there no difference between underscore and space in prompts)
The key idea: If a tag has a lot of images, it means there was a lot of content to train the AI on that tag. Thus, BetterWaifu and other AI generators can usually generate it.
So effective prompting is a process that starts with finding good tags and using them directly in your prompts.
Basics of Tagging
- The more images a tag has, the stronger it is. The AI can only generate what it knows, and what it knows is determined by the images it’s been trained on. That means the number of tags an image has on Danbooru is usually a good estimate as to whether the AI can generate it. A very rough rule of thumb: the tag should have at least 1k images for the AI to recognize it. If there are at least 3k, there is a very high likelihood the AI can generate it accurately.
- This applies to Character tags as well. It’s important to use Danbooru’s way of writing the name, so “yor briar” can produce the correct character, however “yor forger” cannot. However, the “more tags the better” rule comes with caveats for characters. If a franchise is not very popular, it is unlikely that the generator can generate the characters in it. Furthermore, the creator of the AI model may have chosen to exclude franchises/characters for a variety of reasons.
- Be a precise minimalist. Many people like to use many filler words in their prompts. This is a technique from the old days of AI-gen, circa 2022. We don’t need to do this anymore. Too many tags cause noise and lead to lower quality results. Keep things to the strict minimum, put down only what you absolutely want to see. eg. don’t put ‘nsfw’ in the prompt when it is obviously an explicit scene already
- Prompt what you see, not what you know. Don’t use tags of stuff that is not visible in the final image in your prompt. For example, a character is commonly refered to as a ‘monster hunter’, but this has nothing to do with the image you want to generate. So exclude this.
OK I’m convinced but where do I actually find the good tags?
Start from the big Tag Group list. Here I’ll feature some groups that are particularly interesting
Breasts tags
Best tags to specify breast sizes, visibility, clothing for breast-focus
Sex Acts
Long list of assorted sex acts
Sex Positions
Sex positions including bondage positions
Nudity
Types of nudity, partial nudity, swimsuits.
Backgrounds
Background colors
Lighting
Types of lighting, can greatly impact your result
Image Composition
Angles, perspective, composition
Face
Facial expressions, emotions (including sexual), facial features
Putting the tags together: let’s prompt!
Don’t know how to start? Go and see the Tag Groups and think about what is most important visually in your dream image.
I usually like to follow a format by using 5 groups of words, with sub-categories inside.
I try to separate those concepts with newlines, it helps me to quickly make adjustment. The newlines do not affect the generation.
Keep in mind that it’s a very rough guideline. It’s ok to mix this order, especially inside a category.
1. Composition
- Style (photorealistic, color palette, etc)
- Point of view
- Light, Time of day (day, night, sunset, …)
2. Subjects
- Main subject(s) (1boy, 1girl, object, landscape, …)
(1girl is just Danbooru’s way of saying ‘1 girl’, and separating it from 2girls and 3girls and so on)
3. Actions
4. Body
- Posture
- Main features (size, weight, body type, body fat, skin color, …)
- Body elements (breast size, nipples, ass, …)
- Face related (eyes color, hairstyle, …)
- Expressions (happy, surprised, serious, determined, …)
- Clothes
5. Background
- Main environment (indoor, outdoor, …)
- Weather (wind, rain, snow, …)
- Objects (furnitures, vehicules, …)
Wait, isn’t that a big long and complicated?
Yes it is! But you don’t have to have any category you don’t want, and a single word can suffice for a category. It’s really about what level of control you want. Let’s take a look at some examples.
I’m thinking of a black maid outfit shot from below. The background doesn’t matter but I’d like cool cinematic effects. For inspiration, I would click on the links above in each of the categories and subcategories I’m interested in.
Composition: from_below, Subjects:
About prompt’s length
The prompt is split by words (or chunks of words) to transform them into numerical representation called tokens. Depending on which models are used and how tokens are normalized, certain parts of your prompt will have more or less attention. My rule of thumb: the longer the prompt, the more control you’ll have over the whole prompt.
Here’s some resources if you want to read more on that matter:
Tokens with SDXL and SD15 models – Alen Knight
Token normalization & Weight interpretation – BlenderNeko (Github)
Example
Here is an example following the structure. I usually put some break lines to have a better look on the main areas of the prompt.
sidelighting, light particles,
1girl, ginger, solo, smirk
sweat, freckles, small breasts,
ginger hair, long hair, straight hair,
blue eyes, glowing eyes, glasses, looking at viewer,
smile, smirk, grin, frown,
white tank top,
indoor, library,
sunset, sunny, daylight,
desk, chair,
As you can see, the breaklines don’t divide perfectly the 5 fields of the structure. Depending on what you want to generate, it can make more sense to visually separate smaller and longer parts. Here, the subject, actions and posture of the body are grouped together: splitting them would create a mess visually more than anything.
Use-cases
Here are some usecases and favorite keywords. I try to organise by logical group, from the most general to the more specific. I recommand to cherry-pick the one that make sense for you rather than copy-paste the all line.
You’ll also find a reference to where I place it in the structure. I’ll use an ID with the format [xx.yy], using the acronym of the category and its sub-category.
Keep in mind that some of them could also go higher or lower in the apparition order (e.g. upside down could be placed as [compos.pov] or [body.posture].
Generic
Here is what I use in almost all my prompt to influence the overall quality of the image. I usually add additional negative keywords if something that I don’t like appear, but not before. Again, I like to keep things short and simple.
Following list cover some classic cases, detailing both positive and negative prompts.
- Quality (SD1.5)
(absurdres, best quality, masterpiece:1.4),
(worst quality, low quality, lowres, normal quality:1.4) - Quality (Pony)
score_9, score_8_up, score_7_up, score_6_up, score_5_up, score_4_up,
score_6, score_5, score_4, - Details
detailed, detailed body, detailed face - Negative+
text, logo, watermark, digit, multiple views, monochrome,
bad proportions, anatomical nonsense, bad hands, bad face
Note: Negative+ is an additional list where I cherry-pick according to the situation. In my experience, negative keywords related to anatomic don’t always improve the results, so I just keep them aside in case I need it.
Scenes
- Actions [compos.style]: motion lines, emphasis lines, speed lines, afterimage, motion blur, bouncing(+hair, breasts, ass, etc), ass ripple, sweatdrop, trembling, shaking, twitching, sound effects, sparkling sweat
- Lightning [compos.light]: backlighting, dim light, rim light, dusk, sunset, dawn, sunrise, light particles, light rays, sunlight, dappled sunlight, tree shade, crack of light
- Hot [body.posture]: sweat, sweating, very sweaty, sweating profusely, sweatdrop, wet (+clothes,hair, etc), sweat clothes, hot, heat stroke, blush, full-face blush, body blush, breath, heavy breathing, steaming body,
- Gangbang [subject]: multiple boys/girls, group sex, gangbang, orgy, dogpile, love train, threesome,
Note: precise exact number with xboys/xgirls.
Subject
- Multicolored hair [subject],[hair]: multicolored hair, gradient hair, colored tips, <color-1> hair, <color-2> hair
- Smirk face [body.express]: smirk, smug, frown, doyagao,
- Yakuza [subject],[body]: yakuza, tattoo (irezumi, full-body, etc.), piercing (nose, navel, nipple, etc), makeup
- Demon [subject],[body]: demon, demon girl, horns (demon, dragon, curled, cow, etc), tail (demon, raised, etc), colored skin (red, black, etc.)
- Goblin [subject],[body]: goblin, female goblin, green skin, pointy ears, fangs
- Furry [subject]: furry, furry female, furry with [furry/non-furry], <color> fur, fang(s)