Nodes/ComfyUI-NSFW-Prompt/NSFW sick bastard
ComfyUI Node

NSFW sick bastard

The same prompt engine, with the gloves off

By theSharque·Created 2 months ago·Updated about a month ago· 8
NSFW sick bastard
    • prompt
    • seed
    seed0
    prefix
    shotrandom+sick
    agerandom+sick
    bodyrandom+sick
    lookrandom+sick 20%
    genderwoman
    emotionrandom+sick 80%
    toprandom+sick 20%
    bottomrandom+sick 20%
    hosieryrandom+sick 80%
    headwearrandom+sick 20%
    footwearrandom+sick 20%
    accessoryrandom+sick 80%
    addonrandom+sick 50%
    toyrandom+sick 20%
    poserandom+sick 50%
    actionrandom+sick
    coverrandom+sick 50%
    placerandom+sick 80%
    lightingrandom+sick 20%
    atmosphererandom+sick 20%
    camerarandom+sick 80%
    postfix

    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 the sick/ 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, and multiple 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+sick on every slot means a run can go somewhere you didn't intend - the escape hatch is fixing one or two slots (like shot and place) 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.
    Categoryprompt

    Inputs (24)

    NameTypeDefaultDescription
    seedINT00–18446744073709550000
    prefixSTRING
    shotCOMBOrandom+sick33 options: disabled, random, random+sick, sick only, an amateur photo, a professional studio photo, +27
    ageCOMBOrandom+sick28 options: disabled, random, random+sick, sick only, random under 30, random over 30, +22
    bodyCOMBOrandom+sick49 options: disabled, random, random+sick, sick only, random thin, random thick, +43
    lookCOMBOrandom+sick 20%59 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +53
    genderCOMBOwoman19 options: disabled, random, random+sick, sick only, random women, woman, +13
    emotionCOMBOrandom+sick 80%65 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +59
    topCOMBOrandom+sick 20%72 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +66
    bottomCOMBOrandom+sick 20%92 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +86
    hosieryCOMBOrandom+sick 80%62 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +56
    headwearCOMBOrandom+sick 20%48 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +42
    footwearCOMBOrandom+sick 20%71 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +65
    accessoryCOMBOrandom+sick 80%75 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +69
    addonCOMBOrandom+sick 50%63 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +57
    toyCOMBOrandom+sick 20%107 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +101
    poseCOMBOrandom+sick 50%81 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +75
    actionCOMBOrandom+sick172 options: disabled, random, random+sick, multiple, multiple+sick, partner sick only, +166
    coverCOMBOrandom+sick 50%57 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +51
    placeCOMBOrandom+sick 80%82 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +76
    lightingCOMBOrandom+sick 20%58 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +52
    atmosphereCOMBOrandom+sick 20%69 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +63
    cameraCOMBOrandom+sick 80%54 options: disabled, random, random+sick, random 100%, random+sick 100%, random 80%, +48
    postfixSTRING

    Outputs (2)

    NameTypeDescription
    promptSTRING
    seedINT