CoolFace
Datasetpublic

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.

sourceHugging Facecc-by-4.0updated 1mo agoView on Hugging Face
0likes42downloads
Dataset Card

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

PropertyValue
Total dialogues9,736
FormatShareGPT (JSONL)
Avg turns per dialogue~19.6
Min / Max turns6 / 50
LanguageEnglish
Source modelClaude Sonnet 3.5 (unrestrained)
File size~165 MB
LicenseCC BY 4.0

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:

CategoryFrequency
nsfw7,680
female4,603
male3,891
dominant / submissive3,319 / 1,786
romance2,550
fantasy1,227
anime / game characters892 / 1,124
furry / monster girl604 / 418
yandere404
sfw (mixed)586

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:

json
{
  "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

ShareGPT `from`Standard LLM Role
systemsystem
humanuser
gptassistant

The {{user}} placeholder replaces all original "Anon" references from the source character cards.


How to Load

With Datasets

python
from datasets import load_dataset

ds = load_dataset("YOUR_USERNAME/sonnet35-charcard-roleplay-sharegpt", split="train")
print(ds[0]["conversations"])

Locally from JSONL

python
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)

python
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

yaml
datasets:
  - path: YOUR_USERNAME/sonnet35-charcard-roleplay-sharegpt
    type: sharegpt
    conversation: llama-3

How 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 dataset
  • —anon8231489123/ShareGPT_Vicuna_unfiltered — the original ShareGPT uncensored collection
  • —betteruncensored/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.