Hey folks!
This is a dataset of over 10,000 pure NSFW prompts pulled from Civitai's top-rated NSFW images (the ones with at least 25 heart likes and marked as 'X' level).
I filtered out cat faces or landscapes that were tagged as 'X' in the Civitai database and left with pure NSFW prompts, cleaned up the text (tags that could be removed using regex), and packed it all into an easy-to-use JSONL file.
Update: ComfyUI node
unzip the comfyui-civitai-prompts.zip and place the folder in
/ComfyUI/custom_nodes/In the "/ComfyUI/models/' directory, create a new folder and name it civitai_prompts
Place the dataset file 'prompts.jsonl ' in that folder
Restart the ComfyUI and search for "NSFW Prompt Loader"

How to use:
if your browser shows a 'not found' error or complains about CORS:
Read the README in the zip file.

Just open the included index.html in your browser, and you've got a simple web tool to browse prompts by ID or grab a random one or use the python script below to interact with the dataset. (included in the zip file in data folder)
Save the code as fetch.py or any name you prefer. Activate your Python virtual environment, navigate to the directory where the dataset is located, and run the script.
python fetch.pyimport json
import random
import os
JSONL_FILE = 'prompts.jsonl'
def load_prompts():
prompts = {}
if not os.path.exists(JSONL_FILE):
print(f"Error: {JSONL_FILE} not found.")
return prompts
with open(JSONL_FILE, 'r', encoding='utf-8') as f:
for line in f:
try:
data = json.loads(line.strip())
id_val = data.get('id')
prompt = data.get('prompt')
if id_val is not None and prompt:
prompts[id_val] = prompt
except json.JSONDecodeError:
print("Warning: Invalid JSON line skipped.")
return prompts
def retrieve_prompt(prompts, id_input):
if id_input.lower() == 'random':
if not prompts:
return "No prompts available."
random_id = random.choice(list(prompts.keys()))
prompt_text = prompts[random_id]
return f"Random ID {random_id}:\n### start ###\n{prompt_text}\n#### End ###"
else:
try:
id_val = int(id_input)
if id_val in prompts:
prompt_text = prompts[id_val]
return f"ID {id_val}:\n### start ###\n{prompt_text}\n#### End ###"
else:
return f"ID {id_val} not found."
except ValueError:
return "Invalid input. Enter an integer ID or 'random'."
# Main loop
prompts = load_prompts()
if prompts:
print(f"Loaded {len(prompts)} prompts.")
while True:
user_input = input("Enter ID (int) or 'random' (or 'exit' to quit): ").strip()
if user_input.lower() == 'exit':
break
result = retrieve_prompt(prompts, user_input)
print(result)
else:
print("No prompts loaded. Exiting.")Good luck!
