Nox Prompt NSFW Designer
Adult prompts with the safety rails built in
- prompt
- negative_prompt
- safety_notes
- preset_status
Nox Prompt NSFW Designer is the flagship node of the Nox Prompter pack, and it's the one people actually find. The pitch isn't "write me a dirty prompt" - it's "write me a dirty prompt with the guardrails already attached." You pick a pose, a wardrobe, a tone, and a heat level from curated dropdowns, and it hands you three strings: a prompt, a negative prompt, and safety notes you can keep as a compliance log. For an 18+ workflow on SDXL-lineage models, that's genuinely handy.
How it works
Everything in Nox Prompter runs on big curated vocabulary dictionaries in constants.py - no API calls, no LLM, no models to download. Designer resolves your dropdown selections into prompt fragments: pose_profile pulls from the pose dictionary, wardrobe_style from the wardrobe dictionary, and so on through tone_profile, lighting_setup, camera_framing, set_design, explicitness_level, and heat_profile. Each option maps to a prompt string and a summary, so the same selection that feeds the prompt also feeds a readable description.
The two toggles that matter are include_negative_baseline and include_safety_note, both on by default. The baseline appends a stock negative list (blurry, low detail, broken anatomy, awkward pose…), and the safety note appends the pack's default adult-safety text. The author's position is blunt: leave both on unless you've got verified policy tooling downstream. You can substitute your own copy via custom_safety_note and negative_prompt.
Every dropdown also has a Custom Input option that opens a matching custom_* field, so when the preset vocabulary isn't what you need, you can drop in your own phrasing instead of fighting the defaults. And like most nodes in the pack, preset_action / preset_name let you save, load, or list your configurations as JSON under presets/.
The inputs that actually matter
pose_profile,wardrobe_style,tone_profile- the three required picks that do most of the work (16, 23, and 17 options respectively).explicitness_levelandheat_profile- the "how far does this go" controls, from Soft Suggestive up to Fully Adult Nude.include_negative_baseline/include_safety_note- the guardrails. Leave them on.
Outputs: prompt (feed to your positive conditioning), negative_prompt, safety_notes, and preset_status (a human-readable string saying what the preset action did).
Installing it
Same story for the whole pack. In ComfyUI Manager, search "Nox Prompter" and install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/jamesk9526/NoxPrompter-ComfyUI-CustomNode
Restart ComfyUI and you'll have a NoxPrompter category on the right-click menu. There's no requirements.txt and no model download - it's pure stdlib Python, so install is painless.
Where people get burned
The README still points at an old ComfyNoxPrompter repo and folder name; the real repo is NoxPrompter-ComfyUI-CustomNode. The aggregator injects its own path on import, so a renamed folder mostly still works - but use the correct URL. Two notes on expectations: the pack's default negatives and prose style are built for SDXL-lineage models (Pony, Illustrious, NoobAI), where negatives still do real work - on LLM-encoded models like Wan 2.2 the negative box does far less. And the "safety" here is a guardrail in the text, not a content filter: this node doesn't block anything itself, it just makes sure the baseline terms and consent language ride along in every generation.
Inputs (36)
| Name | Type | Default | Description |
|---|---|---|---|
| subject_focus | STRING | Confident adult model with poised expression | — |
| scene_setting | STRING | Softly lit studio lounge accented with plush textures | — |
| pose_profile | COMBO | Suggestive Pinup | 16 options: None, Suggestive Pinup, Reclined Elegance, Backlit Silhouette, Arching Stretch, Window Lean, +10 |
| wardrobe_style | COMBO | Silk Lingerie | 23 options: None, Casual, Nude, Lace Lingerie, Torn Yoga Pants, Torn Jeans, +17 |
| tone_profile | COMBO | Glamorous Editorial | 17 options: None, Erotic, Glamorous Editorial, Sensual Noir, Soft Intimacy, Artistic Nude, +11 |
| lighting_setupopt | COMBO | Candlelit Warmth | 21 options: None, Led Light Panels, softbox Glow, Side light Drama, Flatering Ring Light, Warm Side Light, +15 |
| camera_framingopt | COMBO | Intimate Portrait | 13 options: None, Intimate Portrait, Full-Length Showcase, Low Angle Admiration, Overhead Curve Highlight, Mirror Reflection, +7 |
| explicitness_levelopt | COMBO | Implied Nude | 12 options: None, Soft Suggestive, Implied Nude, Artistic Nude, Bold Glamour, XXX Glamour, +6 |
| set_designopt | COMBO | None | 15 options: None, Sensual Lounge, Velvet Lounge, Cabaret Stage, Futuristic Capsule, Neon Skyline Suite, +9 |
| heat_profileopt | COMBO | Sensual | 10 options: None, Subtle, Sensual, Slow Burn, Bold, Solo XXX, +4 |
| custom_pose_promptopt | STRING | — | |
| custom_pose_notesopt | STRING | — | |
| custom_wardrobe_promptopt | STRING | — | |
| custom_wardrobe_notesopt | STRING | — | |
| custom_tone_promptopt | STRING | — | |
| custom_tone_notesopt | STRING | — | |
| custom_lighting_promptopt | STRING | — | |
| custom_lighting_notesopt | STRING | — | |
| custom_camera_promptopt | STRING | — | |
| custom_camera_notesopt | STRING | — | |
| custom_set_promptopt | STRING | — | |
| custom_set_notesopt | STRING | — | |
| custom_explicitness_promptopt | STRING | — | |
| custom_explicitness_negativeopt | STRING | — | |
| custom_explicitness_notesopt | STRING | — | |
| custom_heat_promptopt | STRING | — | |
| custom_heat_notesopt | STRING | — | |
| custom_heat_negativeopt | STRING | — | |
| detail_accentopt | STRING | soft blemish-free skin, natural curves, respectful staging | — |
| nsfw_tagsopt | STRING | tasteful, mature, confident | — |
| negative_promptopt | STRING | — | |
| include_negative_baselineopt | BOOLEAN | true | — |
| include_safety_noteopt | BOOLEAN | true | — |
| custom_safety_noteopt | STRING | — | |
| preset_actionopt | COMBO | none | 4 options: none, save, load, list |
| preset_nameopt | STRING | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| negative_prompt | STRING | — |
| safety_notes | STRING | — |
| preset_status | STRING | — |