Qwen-Image-2512-Penis-Heretic
Qwen-Image-2512-Penis-Heretic is a merged diffusion model tailored for explicit male anatomy, uncensored content, and high-detail yaoi / gay NSFW generations.
Model Architecture & Merge Components
- Base Model: Qwen/Qwen-Image-2512
- Fused LoRA: Qwen-Image-2512_Penis_lora_v2
- Text Encoder: Heretic (Abliterated / Uncensored)
Example Output

Quickstart & Inference
1. Standard Python Script
import torch
from diffusers import DiffusionPipeline
# Load pipeline
pipe = DiffusionPipeline.from_pretrained(
"Jommarn/Qwen-Image-2512-Penis-Heretic",
torch_dtype=torch.bfloat16,
trust_remote_code=True
)
pipe.enable_model_cpu_offload()
# Prompts
prompt = "Extremely explicit yaoi, two handsome muscular young men passionately fucking, one on top thrusting deep into the other from behind, both completely naked, thick erect cocks, heavy cum, sweat-glistening skin, intense ahegao faces, raw hardcore gay sex, photorealistic, 8k, detailed anatomy, uncensored"
negative_prompt = "lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, blurry, censored, female, woman, pussy"
# Generate image
image = pipe(
prompt=prompt,
negative_prompt=negative_prompt,
width=1056,
height=1584,
num_inference_steps=40,
true_cfg_scale=4.0,
generator=torch.Generator(device="cuda").manual_seed(42)
).images[0]
# Save output
image.save("output.png")
2. One-Liner CLI Execution
python -c '
import torch
from diffusers import DiffusionPipeline
print("Loading model...")
pipe = DiffusionPipeline.from_pretrained(
"Jommarn/Qwen-Image-2512-Penis-Heretic",
torch_dtype=torch.bfloat16,
trust_remote_code=True
)
pipe.enable_model_cpu_offload()
prompt = "Extremely explicit yaoi, two handsome muscular young men passionately fucking, one on top thrusting deep into the other from behind, both completely naked, thick erect cocks, heavy cum, sweat-glistening skin, intense ahegao faces, raw hardcore gay sex, photorealistic, 8k, detailed anatomy, uncensored"
negative_prompt = "lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, blurry, censored, female, woman, pussy"
print("Generating...")
image = pipe(
prompt=prompt,
negative_prompt=negative_prompt,
width=1056,
height=1584,
num_inference_steps=40,
true_cfg_scale=4.0,
generator=torch.Generator(device="cuda").manual_seed(42)
).images[0]
image.save("output.png")
print("✅ Saved as output.png")
'
Training / Fine-tuning Guide
You can fine-tune this model further using ai-toolkit.
1. Installation
# Clone the repository
git clone https://github.com/ostris/ai-toolkit
cd ai-toolkit
# Install dependencies
pip install -r requirements.txt
# or directly via pip: pip install -U ai-toolkit
2. Dataset Structure
Organize your dataset folder with paired image and caption files:
dataset/
├── 0001.png
├── 0001.txt
├── 0002.png
└── 0002.txt
Example Caption (.txt):
yaoi, two handsome muscular men, one fucking the other from behind, thick erect penis, cum, ahegao, sweat, detailed anatomy
3. Training Configuration (train_yaoi.yaml)
job: extension
config:
name: "qwen2512_yaoi_finetune"
process:
- type: sd_trainer
training_folder: "output"
device: cuda:0
trigger_word: "yaoi"
network:
type: lora
linear: 32
linear_alpha: 32
save:
dtype: bf16
save_every: 500
max_step_saves_to_keep: 5
datasets:
- folder_path: "./dataset"
caption_ext: txt
caption_dropout_rate: 0.05
resolution: [1024, 1056, 1328]
train:
batch_size: 1
steps: 3000
gradient_accumulation: 1
train_unet: true
train_text_encoder: false
gradient_checkpointing: true
noise_scheduler: flowmatch
optimizer: adamw8bit
lr: 1e-4
ema_config:
use_ema: true
ema_decay: 0.99
dtype: bf16
model:
name_or_path: "Jommarn/Qwen-Image-2512-Penis-Heretic"
quantize: false
sample:
sampler: flowmatch
sample_every: 500
width: 1056
height: 1584
prompts:
- "yaoi, two muscular men fucking, detailed penis, ahegao, cum"
- "yaoi, handsome young men having sex, thick cock, sweat"
neg: "lowres, bad anatomy, blurry, censored"
seed: 42
walk_seed: true
guidance_scale: 4.0
sample_steps: 30
4. Run Training
python run.py train_yaoi.yaml
License
This project is distributed under the Apache-2.0 License. Please comply with the underlying base model terms and responsible AI usage guidelines.