NSFW sick bastard
The same prompt engine, with the gloves off
- prompt
- seed
The name is doing real work. NSFW sick bastard is not a separate generator - it's the exact same NSFW Prompt engine with the "sick" dictionary merged in, and it's the first place you'll notice that the whole pack is really one codebase with a flag flipped. Open the source and the class is literally NSFWPromptBase with SICK_MODES = True on it. Same 21 slots, same sentence assembly, same outputs - the only difference is what's in the pools it rolls from.
Why would you reach for it? Because the vanilla NSFW Prompt node is actually fairly tame. Its dictionaries describe a photo and a person and an action, but they stop at a certain line. The sick/ folder in the pack pushes past it - more explicit actions, nastier framing, "sick only" filters. If you want a batch of images that genuinely wander into the deep end, this node is the one-click pass into that territory. If you don't, ignore it and use the plain node; you already own both.
How it works
Every slot now draws from data/*.json plus sick/*.json, and the widget modes grow a third family. Where the normal node offers random / random N% / fixed values, this one adds:
random+sick/random+sick N%- roll from the merged data+sick pool, with the same chance behavior,sick only- roll strictly from thesick/dictionary (this mode only appears on non-chance slots like shot, age, body, gender),- special action modes you won't see elsewhere:
multiple+sick,partner sick only, andmultiple partner sick.
The sick/ JSON files are allowed to be empty - the pack ships every one, so you can look through them and prune what you're not into without breaking anything. And a nice safety detail: a {toy}-free action still means the toy slot is skipped, so you don't get random props stapled onto acts that don't use them.
Inputs and outputs
Identical to NSFW Prompt: seed, prefix, postfix, the full slot list (age, body, look, gender, emotion, top, bottom, hosiery, headwear, footwear, accessory, addon, toy, pose, action, cover, place, lighting, atmosphere, camera). Defaults are shifted to the random+sick variants, which tells you the author's intent: this node assumes you want the merged pool by default.
Outputs are the same two: prompt (STRING) into your CLIP encode, seed (INT) into your KSampler. Same rule as the parent node - if you want a rolled prompt to be reproducible, wire the seed out.
Install
No separate install. It ships in the same pack:
cd ComfyUI/custom_nodes
git clone https://github.com/theSharque/ComfyUI-NSFW-Prompt
Restart ComfyUI and it shows up under the prompt category. ComfyUI Manager finds the pack by title too. No extra Python dependencies, no models, no API.
Gotchas
- The randomness gets wild fast.
random+sickon every slot means a run can go somewhere you didn't intend - the escape hatch is fixing one or two slots (likeshotandplace) so the frame stays sane while the content wanders. - Age terms live in the same dictionary here, including youthful ones. Keep the age slot adult. This node is already the pack's sharpest edge; don't be the reason it gets taken down.
- Since it's the same engine, your prompt from the plain node isn't wasted - you can swap one node for the other and get a sibling result for the same seed, which is a fun way to A/B the vanilla vs. merged pools.
Inputs (24)
| Name | Type | Default | Description |
|---|---|---|---|
| seed | INT | 00–18446744073709550000 | — |
| prefix | STRING | — | |
| shot | COMBO | random+sick | 33 options: disabled, random, random+sick, sick only, an amateur photo, a professional studio photo, +27 |
| age | COMBO | random+sick | 28 options: disabled, random, random+sick, sick only, random under 30, random over 30, +22 |
| body | COMBO | random+sick | 49 options: disabled, random, random+sick, sick only, random thin, random thick, +43 |
| look | COMBO | random+sick 20% | 59 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +53 |
| gender | COMBO | woman | 19 options: disabled, random, random+sick, sick only, random women, woman, +13 |
| emotion | COMBO | random+sick 80% | 65 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +59 |
| top | COMBO | random+sick 20% | 72 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +66 |
| bottom | COMBO | random+sick 20% | 92 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +86 |
| hosiery | COMBO | random+sick 80% | 62 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +56 |
| headwear | COMBO | random+sick 20% | 48 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +42 |
| footwear | COMBO | random+sick 20% | 71 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +65 |
| accessory | COMBO | random+sick 80% | 75 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +69 |
| addon | COMBO | random+sick 50% | 63 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +57 |
| toy | COMBO | random+sick 20% | 107 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +101 |
| pose | COMBO | random+sick 50% | 81 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +75 |
| action | COMBO | random+sick | 172 options: disabled, random, random+sick, multiple, multiple+sick, partner sick only, +166 |
| cover | COMBO | random+sick 50% | 57 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +51 |
| place | COMBO | random+sick 80% | 82 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +76 |
| lighting | COMBO | random+sick 20% | 58 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +52 |
| atmosphere | COMBO | random+sick 20% | 69 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +63 |
| camera | COMBO | random+sick 80% | 54 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +48 |
| postfix | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| seed | INT | — |