Krea 2 V1:
Krea has a ton of built in knowledge about this sort of thing, which is mostly good but has some downsides - a lot of what the training did was at least start to remove anime-type tendencies from photos, such as adding sweat. I find that a workflow where you use the raw model for a few steps and then switch to the raw model with an extracted turbo LoRA really helps with diversity of output - most of my examples use that workflow, so feel free to grab it from the images.
Ideogram V1:
Keep in mind this still needs more training, but I thought it was at a good enough point to post for people to have some fun with. I wasn't sure how best to define certain things in the JSON caption conversion and so I'm also not sure what's best as far as prompting goes. You'll need to play around with it. It was trained on JSON but in my limited tests you can also just try natural language and that seems to work as well. Expect some body horror with some concepts at this point, and some fine details just aren't there yet as well.
Text captions were converted to JSON using https://github.com/Auryg/Ideogram-Json-Captioner with a lot of specific prompting, some manual fixes, and I think I need to go back over the images with some more specific fixes that can hopefully be mostly done automatically.
General Information:
SNOFS was trained on natural language (or JSON, for Ideogram), not tags. It will work best if you use full sentences to describe what you want.
Want to support my work or help fund the training of this dataset on other models? Join the Patreon in my profile, and if you do - thank you!
Not using ComfyUI/your inference software doesn't support lokr? I've put up a merged version here. You can also use the merged base model to train off of: https://civarchive.com/models/2416142/snofs-sex-nudes-and-other-fun-stuff-flux-2-klein-9b-base-and-distilled?modelVersionId=2985440
Here's a list of some of the terms that work well:
anus
blowjob
boudoir
condoms
deepthroat
braless
cowgirl position
cum
cunnilingus (be specific and maybe put kissing in the negative prompt)
deepthroat
dildo
doggystyle position
fingering
hand in panties
handjob
hitachi magic wand
implied blowjob
ipcam / nightvision ipcam
masturbating (might want to put penis in negative prompt, or specify what she's rubbing for women)
massage
missionary position
naked, nude, etc.
penis
pregnant (and can specify trimester)
prone position
reverse cowgirl position
sex
sheer
snapchat (and caption/text/etc)
selfie (and mirror selfie)
spooning position
strap-on dildo
tentacles
licking testicles
undressing
vagina
wet clothes
Depending on the version, the following might kind of work:
anal sex
anilingus
But also keep in mind that it was trained on stuff like "her panties are pulled down to her thighs," not "panty pull."
These models are under the following license:
https://huggingface.co/Ashen3/SNOFS
Flux 2 Klein 9b V1.4:
Additional training. Some of the training was done using https://github.com/BuffaloBuffaloBuffaloBuffalo/ai-toolkit-perceptual , training against depth. Considering how much of SNOFS is two people intermingled with close skin colors, it seemed like a novel idea. It did seem to rapidly help with that sort of thing. On the downside, it seemed to create a bit of a texture issue on very close up images. I did some more training after to try to bring that back and was somewhat successful, but I think I'd need to increase the weight decay to really make that happen. Since everything else was in a good state I decided to release as-is. If you do have that texture issue, try adding "goosebumps" as a negative prompt.
Flux 2 Klein 9b V1.2:
More training - anal still doesn't work super reliably. Added images with terms like 'condom-wrapped penis,' 'boudoir' and 'anilingus' (again, doesn't work super great yet).
Flux 2 Klein 9b V1.1:
Additional training means far less body horror, even on the distilled version (but, you know, still some there). When using the distilled version of the model try playing around with more steps, adding a little cfg, etc.
Flux 2 Klein 9b V1:
Flux 2 Klein's awesome VAE means it picks up fine details incredibly well. While it still needs more training, I have some other stuff to train in the meantime so I thought it was worth it to push this out now as it can do some things incredibly well. Expect some body horror, especially if you use it with the distilled version of the model for text-to-image. I found that perhaps using more steps than 4 was helpful with the distilled version, but I also didn't try it much. Using this with the base model has far less anatomy issues. I expect them both to improve further with more training.
Right now, for text-to-image I recommend the base model. For editing, I recommend the distilled model. Note that SNOFS wasn't specifically trained on any image pairs for editing.
Training details (skip to the version 1.3 details below if you just want to know what this model can at least somewhat do right now):
I trained this as a factor 4 lokr using AI Toolkit this time. I used AI-Toolkit because when I started the training the other options had issues with their lycoris output and ComfyUI.
I think my starting learning rate was way too high at 1e-4 with an effective batch size of 4-6 or so. I quickly decreased it but it was perhaps still too high starting at 5e-5. I'm running a different training run at 1e-5 right now and it's still learning quite quickly. I might try to further train this at a very low LR and see what happens instead of starting fresh. Note: this is probably largely because of my large lokr size. I wanted to ensure I had "room" for all of the concepts but it can make things spicy.
I think the main issue people are coming into with training both this and Z-Image are what timesteps you train on. This was mostly trained on a high shift value of 3-5 as in inference Flux 2 Klein stays above the 800 timestep mark for most of the generation and maybe does 1 step out of 50 at below 200. I found I needed to test as I went and see where the generations went wrong and try to adjust on the fly.
Version 1.3:
Further training to further refine things. This might be the last version; I wasn't really making this for myself and I'm guessing the community wants me to make something for Z-Image. I'll at least try that out once the base model is out.
Note that the list is not exhaustive at all. It was trained on natural language (and that's how you should prompt!), so many concepts are in there.
Version 1.2:
Further training, expanded the dataset even more.
Also, I see a lot of people mixing this with other NSFW general loras. I'd recommend you try it by itself first.
Note: While you can use the lightning lora with this, keep in mind it won't lead to the best results. It's great for testing prompts, but it tends to mess with anatomy, smooth out texture, and lead to less variation on the same prompt.
Version 1:
This past weekend I was gone. I decided to let my 5090 chug along making a lokr for Qwen on ~5,000 hand fixed captions on sex, nudes, and other fun stuff of hand picked images with hand removed watermarks. I wasn't expecting it to get so good so quickly, so I did a few more night's worth of training. I'll do some additional training at some point here but it's already good enough to play around with.
It can do basic sex positions, blowjobs, cum, selfies, dildos, snapchat selfies with captions, etc. Female genitals are still a bit hit and miss, male genitals aren't bad. With it being a lokr and it being trained on so many images it's wildly flexible and can be used with perfect likeness of other loras.
Note that sometimes it'll do the wrong sex position even if you name it, and I'm unsure why as the captions have no errors. It will perhaps clear up a bit with more training.
I used Musubi Tuner and it was a heck of time getting it to train a lokr. I had to use another lycoris library for it (which is somewhere in the issues on the github page, IIRC), but it's possible the main one has Qwen support by now. Here are my training settings, though note that I reduced my LR over time and I also started with sigmoid timestep sampling. I was training at 640x640 and 1328x1328 buckets:
accelerate launch --num_cpu_threads_per_process 1 --mixed_precision bf16 src\musubi_tuner\qwen_image_train_network.py `
--dit Q:\AI\Models\DiffusionModels\qwen_image_bf16.safetensors `
--vae Q:\AI\Models\VAE\qwen_vae_for_training.safetensors `
--text_encoder Q:\AI\Models\CLIP\qwen_2.5_vl_7b.safetensors `
--dataset_config S:\AI\Musubi\datasetWoman.toml `
--sdpa --mixed_precision bf16 `
--gradient_accumulation_steps 4 `
--timestep_sampling qinglong_qwen `
--optimizer_type adamw8bit `
--learning_rate 3e-4 --lr_scheduler linear --lr_scheduler_min_lr_ratio=1e-5 --lr_warmup_steps 150 `
--blocks_to_swap 25 `
--gradient_checkpointing --gradient_checkpointing_cpu_offload --max_data_loader_n_workers 2 --persistent_data_loader_workers `
--network_module lycoris.kohya `
--network_args "algo=lokr" "factor=10" "bypass_mode=False" "use_fnmatch=True" "target_module=Linear" `
"target_name=unet.transformer_blocks.*.attn.to_q" `
"target_name=unet.transformer_blocks.*.attn.to_k" `
"target_name=unet.transformer_blocks.*.attn.to_v" `
"target_name=unet.transformer_blocks.*.attn.to_out.0" `
"target_name=unet.transformer_blocks.*.attn.add_q_proj" `
"target_name=unet.transformer_blocks.*.attn.add_k_proj" `
"target_name=unet.transformer_blocks.*.attn.add_v_proj" `
"target_name=unet.transformer_blocks.*.attn.to_add_out" `
"target_name=unet.transformer_blocks.*.img_mlp.net.0.proj" `
"target_name=unet.transformer_blocks.*.img_mlp.net.2" `
--network_dim 1000000000 `
--save_every_n_steps 250 --max_train_epochs 10--logging_dir=logs `
--output_dir Q:/AI/Models/Trained/Loras/Musubi/QwenWoman --output_name WomanGirls
Description
More training
FAQ
Comments (62)
Actual goat 🙏
For some reasons your alpha values are 1e10 (approximated in bfloat16).
I don't experience any problems with the updated lora
@abdubambas12545 yes, you can even change the alphas to any value, and it will continue to work and even produce the same images. But 1e10 could be symptomatic of something weird with the training (overfitting, for example).
@davcha It's just the way AI toolkit does things for full-rank lokrs, oddly.
@Ashen3 oddly, indeed. Because for lokr, the update W applied to layers is alpha * A ⊗ B, so every updated layer should blow up here.
Snofs plus realism engine for editing from one image (man and woman for example) works pretty well
Realism engine is a Lora or model?
what kind of weights work well for this combo? base or distilled?
@ssnufflezz I use distilled, snofs 1, realism .6 to 1 depending
@ssnufflezz snofs 1.0, realism engine .6 to .1, distilled flux2klien9b
Just wanna share here,
9b base + snofs 1.2 (0.4) + unchained V2 (0.6) + turbo (1.0)
1.0 CFG, 6 steps, Euler
seems to give the best face consistency and quality for editing.
What unchained V2 (0.6) ?? Can you share WF ?
@CyberAImania https://civitai.com/models/2348977/klein-9b-unchained-xxx?modelVersionId=2753532
(0.6) means 0.6 strength. I'm using comfy's official klein workflow.
WF in the image: https://civitai.com/images/124135008
Realism Engine V2 is even better IMO
https://civitai.com/models/2374977/realism-engine-klein?modelVersionId=2679241
@Unscathed7928 what combo are you using? Is it with a character lora too?
@dolantrampf474 No character LoRAs. I generate the images with Grok Imagine and then edit them in Flux. I usually run SNOFS at 0.9-1 and Realism Engine at ~0.55. Sometimes I swap SNOFS for DR34MSC4PE (https://civitai.com/models/2403747/flux-4-play-aio-nsfw-flux-klein-lora-by-dr34msc4pe?modelVersionId=2702716) and sometimes I use both at once.
I do 4-6 gens per combination and pick the best ones. Went through a lot of LoRA combos and strength values before settling on these. For steps I usually go 6 on Euler or 3 on res_2s.
@Unscathed7928 should specified then better than unchained since you still use snofs combined whit engine?
@Unscathed7928 idk i tried in terms if you want to preserve faces snofs unchained combo still better.
@harpy thanks for the workflow but man i get so many amputated legs
What is the difference between using 9B Base + Turbo and the 9B Distilled?
@markdalias yea I get that often too, klein is guilty for the bad anatomy, lmao
@KitagawaYoshino You get a bit better anatomy, the overall gens looks slightly better than distilled especially when editing the person to do "some stuff"
incredibly good. thanks for sharing
Thanks will try this workflow
Any chance you can add footjobs to the mix? Great Lora!
1.2 is a huge improvement, keep it up dude! Much better at keeping face consistent in edit mode.
The new version is an improvement, but still unfortunately affects faces of character loras. Always makes them narrower, even at 1:1. The effect is stronger at other aspect ratios.
Keep in mind that at this point, when you apply SNOFS it's like having a very heavily finetuned models. Character loras trained on the base model never do that well in that scenario, sorry. It's not about training diversity or method, but simply how far the weights have shifted. I'd recommend training using a trainer where you can incorporate these weights first, or wait for my updated merged model to be uploaded.
If you're using loras used elsewhere, you might just have to do a face detailing pass with SNOFS turned down/off.
Appreciate the explanation.
GOAT
Could someone recommend a good workflow for this?
Check his example pictures. The workflow he uses are there. Just copy and paste into comfy
Can give mine a shot if you're aiming for T2I realism: https://civitai.com/images/124378639
Please make for 4B
Yea it would be great for 4B
Hello author of lora! The large model I use is Qwen-Rapid-AIO-NSFW-V19.safetensors. I simply use this large model, without adding any lora for image editing, the prompt text writes "The man enters this woman from behind, his penis is inserted into her vagina", the image effect generated in this way is very bad, although the large model itself has the nature of NSFW, but his details are still very poor, the woman's genitals are deformed, and the man's penis is also deformed, which is not a normal human sexual organ at all. Then I use the lora you developed, using the lora "snofs", I set the strength of Lora to between 0.5 and 1, or according to the original prompt, the generated picture is much more beautiful, the man's penis, the woman's pussy, are in line with the logic of reality, but, but there is a biggest problem that the penis is not inserted into the vagina, but inserted into the body area between the woman's vagina and anus, according to the descriptor to achieve insertion, but did not find a suitable position, directly inserted into the woman's body out of thin air, the labia vagina is always closed, just like a texture, can only be seen, but cannot be actually used. In addition to the penis inserted into the vagina, there is also the penis inserted into the anus, which is the same problem, the penis is not inserted exactly where I wrote in the description. How should I adjust, it has troubled me for a long time! The download link for the bottom model I used is: https://huggingface.co/Nouinhalegau/Qwen-Image-Edit-Rapid-AIO
The large model I use is the V19 version. The scheduler I am using is beta, the sampler is er_sde, the CFG is 1, and the noise is 0.85. How can I solve this problem? I uploaded two pictures, one man and one woman, and my descriptor said that their sex position was standing doggystyle, two people standing sideways facing the camera, facing the camera, and the penis was inserted into the vagina or anus.
Is there a problem with the AIO aggregated version of the large model I am using?
Your model already has the SNOFS lora (along with multiple others) merged into it, so applying this to it is effectively double-applying it. You might get away with a very low weight, but you're probably better off with a detailer lora since it's already merged. If you had that many problems with the base model nothing you do is likely to help though.
Also if this has been "troubling" you for a long time, I'd strongly suggest turning your computer off and going out and living for a year or two to hopefully get some kind of idea of what actually matters. Just sayin'.
@GnomeExplorer Haha, okay, thanks for your explanation. My frustration was just an exaggeration—it was just a whim. When I tried to generate this kind of image, the results weren’t what I hoped for. I spent about two or three hours trying, but I still couldn’t produce a decent image. Never mind, it’s not really that important.
I use this lora as a photorealism pass for 'skeleton' SDXL semi-real images to nail the exact pose I want. The lora is extremely versatile and plays very nicely with aesthetic modifications with klein. Really really wonderful lora.
Please explain . i need help
@unknowncheatssleeve022521 DM me
@SeoulSeeker do you know any nsfw motion reference ai video gen model? that supports Image 2 video? so its like motion reference but for nsfw?
This is the best NSFW lora for both Klein and Qwen. I would love to see what this could cook with the more powerful Qwen 2512.
Thanks @Ashen3!
Does anyone have a good example or prompt for missionary position? I cant get anything near missionary. Other positions work fine. Great lora other than the issue im coming accross!
Sadly, this lora only makes tiny penises.
Really? Finally!!!
because my penis is not in the training dataset
@napsumfur225 Alright. Pack it up now ! LOL
https://civitai.com/posts/27632091 Well... Don't look tiny to me at all...
@PopHorn1956 Hmm... Depends.
Great models/loras in the SNOFS series, highly appreciated. One comment regarding the Qwen line of the SNOFS loras: Qwen Image 2512 was released in the end of Dec. 2025 and is way superior to Qwen Image from before regarding anatomy and photorealistic rendering. I would say that it is much more reliable than Flux-2-Klein for complex scenes. Therefore I would like to ask if you may create a version 1.4 for Qwen Image 2512. Version 1.3 works in principle with Qwen Image 2512 but also causes some artifacts like vertical banding. Therefore such an update would be great. Thanks anyhow for your amazing work.
Z-image turbo version in plan? :D
Is there a trick to this, or am I doing something dumb? I can grab one of OP's example images for SNOFS 1.2 (klein 9b) and drag that image right into ComfyUI, exectute it, and get a wildly lower quality output. Really seems like I must have something borked, but I can't think what.
Update: I was, in fact, doing something dumb
@arsibalt What were you doing wrong?
@TINYBOXTIM I had both windows open and... accidentally downloaded the merged diffusion model into my loras folder and used it as a lora
it surprisingly kinda still functions that way. Just, you know, poorly
Hi, great model but 90% when i give a reference image it turns out with multiple or broken limbs. I tried lora at 1.0 and 0.6 but.. same. Any idea? THanks
This seems to be a problem with Klein itself,I suggest you trying the Lora spo,dpo, something like that,that focuses on fix this problem
i use klein base, i tried dpo lora and other, it not help.... and than I lowered turbo lora strength to 0.97 and use euler+simple and most of the problems with extra legs and body horror is disappeared, I think turbo lora is working a little harder than she should.
Details
Files
klein_snofs_v1_2.safetensors
Mirrors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
SNOFS-Lora9B.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
qdff5XBu.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
Flux2Klein9b_SNOFS_v1_2.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
arori_v1_2.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2.safetensors
klein_snofs_v1_2-mid_1972981-vid_2771019.safetensors
klein_snofs_v1_2-mid_1972981-vid_2771019.safetensors
klein_snofs_v1_2.safetensors



















