Nox Prompt NSFW Action Director
Choreography for adult scenes, with consent beats
- action_prompt
- action_summary
- safety_notes
- preset_status
The regular Action Director choreographs a heroic sprint. Nox Prompt NSFW Action Director choreographs the adult equivalent - and it's the sibling node in the pack's 18+ toolkit that handles motion rather than staging. Where NSFW Designer picks the pose, wardrobe, and explicitness, this node adds the heat, the beat structure, and - more usefully than you might expect - consent and aftercare language. The README is explicit that it shares its schema with the SFW Action Director: every dropdown has a Custom Input escape hatch, and its action_prompt is meant to be handed to the Builder or Combiner while the safety output gets archived.
How it works
Curated vocabulary in constants.py, same as its SFW sibling. Required primary_action plus optional secondary_action, tempo, and interaction_mode resolve against the action dictionaries, each with prompt text and a summary. The adult-specific fields do the real work here: heat_descriptor controls intensity, environment_mood sets the scene, soundscape adds the audio layer, consent_focus and boundary_notes keep the scene consensual, and aftercare_plan and safety_props are exactly what they sound like - a soft landing and the props that make a scene safe. Those last few are the honest differentiator of this node; you're not going to find "aftercare plan" in most prompt tooling.
Every dropdown has a Custom Input option and matching *_custom field plus *_notes. include_safety_note defaults on and appends the pack's adult-safety text, overridable via custom_safety_note.
Inputs and outputs that matter
Required: primary_action. Add heat_descriptor, consent_focus, and boundary_notes and you've got a scene with guardrails. Outputs: action_prompt (feed to Builder/Combiner positive conditioning), action_summary (the plain-language recap), safety_notes (the consent/safety text - archive it for your compliance log, don't encode it), and preset_status.
Installing it
Pack install, once. ComfyUI Manager: search "Nox Prompter", install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/jamesk9526/NoxPrompter-ComfyUI-CustomNode
Restart, find the NoxPrompter category. No dependencies, no models.
Gotchas
Pack-level: the README's ComfyNoxPrompter URL and folder name are stale. Node-level: the pack's NSFW flow is Designer + ActionDirector → Nox Prompt NSFW AIO fusion node (which merges outputs and dedupes negatives), so if you're doing full adult scenes, run this through that rather than hand-merging - the README warns against trimming the safety strings downstream. And scope reality check: these are text guardrails, not a content filter. The node writes consent language into the prompt and archives safety notes; it won't stop an uncensored checkpoint from rendering whatever it renders. If your platform requires enforcement, that has to happen downstream, not here.
Inputs (28)
| Name | Type | Default | Description |
|---|---|---|---|
| primary_action | COMBO | Sensual Caress | 45 options: None, sensual_fingering, dildoplay, dildo plunge, striptease, Lap Dance On A Pillow, +39 |
| secondary_actionopt | COMBO | None | 29 options: None, Touch Genitals, dildoplay, dildo plunge, Body Grind, Lip Bite, +23 |
| tempoopt | COMBO | Slow Tease | 13 options: None, orgasmic_rush, teasing_tempo, Slow Tease, Languid Flow, Measured Build, +7 |
| interaction_modeopt | COMBO | Solo Self-Admiration | 25 options: None, dildoplay, dildo plunge, Couple's Dance, Mutual Tease, Shared Focus, +19 |
| propsopt | STRING | — | |
| environment_moodopt | STRING | — | |
| heat_descriptoropt | STRING | — | |
| camera_languageopt | STRING | — | |
| soundscapeopt | STRING | — | |
| dialogue_hookopt | STRING | — | |
| consent_focusopt | STRING | enthusiastic consent, explicit verbal check-ins | — |
| boundary_notesopt | STRING | — | |
| aftercare_planopt | STRING | — | |
| safety_propsopt | STRING | — | |
| beat_emphasisopt | STRING | — | |
| risk_notesopt | STRING | — | |
| primary_action_customopt | STRING | — | |
| secondary_action_customopt | STRING | — | |
| tempo_customopt | STRING | — | |
| interaction_mode_customopt | STRING | — | |
| primary_notesopt | STRING | — | |
| secondary_notesopt | STRING | — | |
| tempo_notesopt | STRING | — | |
| interaction_notesopt | STRING | — | |
| 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 |
|---|---|---|
| action_prompt | STRING | — |
| action_summary | STRING | — |
| safety_notes | STRING | — |
| preset_status | STRING | — |