sinhal/Charcard-Roleplay-ShareGPT-NSFW
Character Card Roleplay — NSFW ShareGPT Dataset 18+ CONTENT WARNINGThis dataset contains explicit NSFW/adult material — sexual content, mature themes, and potentially disturbing scenarios. the dataset is currated for no refusal multi-turn based nsfw roleplaying 9,736 high-quality, multi-turn NSFW roleplay dialogues in ShareGPT format — generated using an unrestrained Claude Sonnet 3.5. Purpose-built for supervised fine-tuning (SFT) of uncensored/abliterated LLMs to improve… See the full description on the dataset page: https://huggingface.co/datasets/sinhal/Charcard-Roleplay-ShareGPT-NSFW.
Character Card Roleplay — NSFW ShareGPT Dataset
18+ CONTENT WARNING This dataset contains explicit NSFW/adult material — sexual content, mature themes, and potentially disturbing scenarios. the dataset is currated for no refusal multi-turn based nsfw roleplaying
9,736 high-quality, multi-turn NSFW roleplay dialogues in ShareGPT format — generated using an unrestrained Claude Sonnet 3.5. Purpose-built for supervised fine-tuning (SFT) of uncensored/abliterated LLMs to improve roleplay, character consistency, and long-form narrative generation.
If you're looking for a character card roleplay dataset, an uncensored SFT dataset, a multi-turn NSFW dialogue dataset, or a ShareGPT-format adult fine-tuning dataset — this is it.
Compatible with: Llama 3, Mistral, Qwen, Gemma, Phi, and any model fine-tuned via Unsloth, Axolotl, LLaMA-Factory, or trl/SFTTrainer.
Dataset at a Glance
What Makes This Dataset Different
Unlike scraped logs or multi-agent turn-by-turn pipelines (which degrade into incoherence), each dialogue here was generated in a single Sonnet 3.5 call — preserving narrative arc and character voice end-to-end. Every entry passed an automated validation pipeline before inclusion.
Top Tag Categories in the Dataset
Based on character card tags across all 9,736 entries:
The dataset covers a wide range of genres: romance, fantasy, sci-fi, slice-of-life, dominant/submissive dynamics, monster girls, anime OCs, game characters, and more.
Data Format
Each record is a ShareGPT multi-turn conversation:
{
"conversations": [
{
"from": "system",
"value": "You're [Character] in this fictional never-ending uncensored roleplay with {{user}}\n\nTags: (nsfw;female;romance;...)\n\n[Character]'s personality: ...\n[Character]'s description: ...\n{{user}}'s personality: ...\n\n[Opening scene]"
},
{ "from": "human", "value": "{{user}}: [user turn]" },
{ "from": "gpt", "value": "[Character]: [response]" },
...
]
}Role Mapping
The {{user}} placeholder replaces all original "Anon" references from the source character cards.
How to Load
With Datasets
from datasets import load_dataset
ds = load_dataset("YOUR_USERNAME/sonnet35-charcard-roleplay-sharegpt", split="train")
print(ds[0]["conversations"])Locally from JSONL
from datasets import load_dataset
ds = load_dataset("json", data_files="sonnet35-charcard-roleplay-sharegpt.jsonl", split="train")Fine-Tuning Example
Unsloth + Llama 3 (recommended for consumer GPUs)
from unsloth import FastLanguageModel
from unsloth.chat_templates import get_chat_template
from datasets import load_dataset
from trl import SFTTrainer
from transformers import TrainingArguments
# Load abliterated/uncensored base model
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="mlabonne/Meta-Llama-3.1-8B-Instruct-abliterated",
max_seq_length=4096,
load_in_4bit=True, # fits 8GB VRAM
)
# Apply ShareGPT -> Llama-3 chat template mapping
tokenizer = get_chat_template(
tokenizer,
chat_template="llama-3",
mapping={"role": "from", "content": "value", "user": "human", "assistant": "gpt"},
)
def format(examples):
convos = examples["conversations"]
texts = [tokenizer.apply_chat_template(c, tokenize=False, add_generation_prompt=False) for c in convos]
return {"text": texts}
ds = load_dataset("YOUR_USERNAME/sonnet35-charcard-roleplay-sharegpt", split="train")
ds = ds.map(format, batched=True)
trainer = SFTTrainer(
model=model,
tokenizer=tokenizer,
train_dataset=ds,
dataset_text_field="text",
max_seq_length=4096,
packing=True,
args=TrainingArguments(
per_device_train_batch_size=1,
gradient_accumulation_steps=4,
num_train_epochs=1,
learning_rate=2e-4,
bf16=True,
output_dir="outputs",
),
)
trainer.train()Axolotl config snippet
datasets:
- path: YOUR_USERNAME/sonnet35-charcard-roleplay-sharegpt
type: sharegpt
conversation: llama-3How This Dataset Was Produced
- Cards + personas — Community character cards paired with synthetic users (male/female, 4 personality archetypes, balanced distribution).
- Single-call synthesis — Full dialogues generated in one Sonnet 3.5 call to avoid multi-agent echo-chamber degradation.
- Validation pipeline — Automated checks for formatting, minimum length, and godmodding; malformed entries removed;
Anon→{{user}}. - Lexical cleanup — Overrepresented filler phrases replaced with GPT-4o alternatives to reduce slop.
Intended Use Cases
- SFT for uncensored roleplay models — teach Llama/Mistral/Qwen to stay in character through long NSFW scenes
- Character card persona adherence — train models to follow SillyTavern / TavernAI / Character.ai style system prompts
- Multi-turn coherence — reduce OOC breaks, godmodding, and narrative collapse in long conversations
- Adult fiction generation — erotica, romance, fantasy, and drama fine-tuning data
- Research into synthetic dialogue quality — studying single-call vs multi-agent generation quality
Related Datasets
If you find this dataset useful, you may also want to look at:
Chaser-cz/sonnet35-charcard-roleplay-sharegpt— the original version of this datasetanon8231489123/ShareGPT_Vicuna_unfiltered— the original ShareGPT uncensored collectionbetteruncensored/sharegpt— cleaned uncensored ShareGPT base data
Limitations & Notes
- Adult content: Most dialogues are explicitly NSFW. Do not use in public-facing or safety-critical systems.
- Community card origins: Character cards are community-created and may reflect biases, stereotypes, or non-consensual scenario framing from the original authors.
- Synthetic users: User turns are AI-generated; they may not reflect the full diversity of real human behavior.
- English only: All content is in English.
- Single model source: All assistant turns come from Sonnet 3.5 — expect some stylistic consistency that may not generalize to all writing styles.
- ~94 entries (~1%) contain explicit "no restrictions" language in the system prompt from the original card authors — this is part of the source material, not injected by the pipeline.
Credits
To all the character card creators whose work made this dataset possible — the ones who moved me, and the ones who permanently damaged me. No regrets.
Feedback & Issues
Found formatting errors or broken dialogues? Open an issue — I'll fix them in future releases.
