General Information:
SNOFS was trained on natural language, 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)
THANS FOR LORA YOU ARE KING ! But I think this is Lokr too? There are tons of people waiting for the king's Lora :D
Please make a version for z base
:-D zimage only produces minced meat genitals .. it would be a waste of time for zimage to create such a lora .. just switch to flux2klein
@bloodforce88 I mean that's why the Lora is necessary lol,to fix that
Pls on your next update full nelson, suspended congress, superman and if possible jack o pose <3 Thank you so much for your amazing work
The Klein 9b 1.1 lora really fills in the gaps on another lora that I'm using. Now I'm really happy with the results. So thank you. I highly recommend merging this one in if another lora isn't quite enough.
it could be lame question, but can klein v2 version be used in edit mode?
I haven't tested it and it wasn't specifically trained on any types of edits, but it should. When I tested V1 I actually found the distilled model better than the base model for edits with the lokr, for what it's worth.
@Ashen3 I have noticed this version alters faces from reference images more than the previous version. Its more times than not, but more than the old one.
V1.1 works very well with character LoRAs (using Klein 9B non-base). By the way, a small guide on how to properly train concepts for Klein 9B would be ideal for people like me who create LoRAs from time to time. What resolution do you train at with AI Toolkit? Is 512 only too low?
I'll probably do a training guide on my Patreon that now has a whopping 1 subscriber ;)
But to answer your direct question, yeah, 512 is too low. I know people get away with it for small training runs but even for those I don't go (only) that low. All you need to do is look at a 512x512 image that's been downrezzed from 1024x1024 and see all of the detail you're missing. For large training runs like SNOFS though, models will often 'forget' how to do higher resolution images if you train for too long on a smaller resolution. SNOFS for Klein 9b was trained at 512, 768, 1024, and 1280 sizes so far. I'll probably do a 1536 run (lower batch size, higher gradient accumulation) at some point to finish it off.
Technically these newer models are better with that sort of thing than older ones but, all said, you can't beat more pixels.
ok, you are in another level
I think this is the best lora/lokr of its kind so far.
Goat Klein Lora. Thanks for your work!
goon quality increased
thanks!
This lora works the best for me, but it forces pubic hair, no matter the prompt. Sometimes it'll make proper shaved smooth but it's random I feel, I haven't managed to get it to obey through prompting.
same. its my only real complaint about the lora, everything else is fantastic
From what I've tested putting pubic hair in the negative prompt (as long as you're at a cfg higher than 1) should work/help. "Shaved pubic area" is usually how it's prompted in my dataset for the positive prompt.
this model is seriously INCREDIBLE and I would highly recommend it to absolutely every body.
bro if you can pledge to making it better at doing gay shit I will sign up to your Patreon RIGHT NOW.
If someone had a dataset out there that I could add in I'd consider it, but only if I knew the captions and images were perfect so they didn't screw up the rest of the model. Unfortunately I wouldn't know what to add myself - and, going to be honest - don't really feel like spending hours looking at gay porn/fixing the captions for it.
V1.1 Workd amazingly well with the image edit also, the best spicy lora so far for klein 9B👍.
I am trying to use this in Drawthings and it appears to do nothing (even when I turn it all the way up to 250%). Any ideas?
(Flux Klein 9b)
I figured it out - drawthings does not support LOKR
this Lokr Not Lora. To use it in Draw Things, you first need to convert it to LoRa. Also, you need to either use the fp16 model or enable "Merge Always" in Draw Things settings for LoRa to work. You'll thank me. Because I try very and finally found the solution this way. https://github.com/kritikrap/LoKr-to-LoRa-Converter/tree/main
wait huh? the downloaded file just worked for me?....
I can add it as a lora with no extra work but it works like absolute trash
@bullshiz Check the file directory, it's probably 4KB.
@OG_OG the download came in as a safetensor file and was 1gb ... its still generating trash tho
can you share your draw things ai settings? strength, sampler, steps, etc?
@bullshiz You can find the answers here Because we shouldn't make noise under the model. https://discord.gg/fM5YBf3G
@bullshiz And also read the readme section on GitHub.
I'm not sure how well that person's conversion script works, but I also uploaded a version merged in with the base model here that should work with everything:
https://civitai.com/models/2416142?modelVersionId=2716480
@Ashen3 Very kind thanks
LOVE this Lora. Gives the best results for women, but for some reason I often end up with some pretty disturbing interpretations of dicks. Any experience with this and tips on how to get normal looking dicks in my results? Thank you!
Be sure to use the word "penis" instead of "dick" or "cock"
Try the lora called Klein9BGeneralPenis-v1-0. Weight: 0.3
suggested settings? can't get this to work
Can't get neither Qwen nor Klein version to do anal, any tips?
Bro this looks SO GOOD! I've been waiting 3 years for something that can easily create real life looking porn like this. Thanks a lot!
keep getting missing anus/butthole
What would be your setting for distilled ? Base with 50 steps gives good results, but so far anything with distilled at around 10 steps is worse.
for me i use SGM_Uniform for the scheduler and Deis for the sampler. i set aura flow to 40. and gen for 16 steps. not sure if that helps but it has been working for me.
this is the best NSFW lora for flux 2 klein, but facial variety gets reduced by alot if this is active. so it has a same-face problem. could you try to improve that in next version?
Super good. Re-trained a character LoRA with this baked in, the results are much improved versus base.
How did you retrain your character lora with this baked in?
@Mallek3 You can apply a "base LoRA" in OneTrainer, although I did have to remap the model.diffusion_model. keys to avoid an error. Probably works in musubi-tuner as well.
Appreciate it. I'm using AI-Toolkit currently, but I should clearly try the other options available for LoRA training as well. Thanks!
@liftweights is remapping a complicated process? I've wasted many hours trying to figure out how to train on a finetuned model with ai-toolkit and musubi with zero luck.
@Bobarker33 Not especially complicated, no. I think it was a one-line code change in one of the dependencies. If you try applying this as a base LoRA and it gives you an error, I can probably point you in the right direction.
@liftweights This is the error I get when I run it with this lora as the lora base model
Selected layers: 144
Deselected layers: 9
Note: Enable Debug mode to see the full list of layer names
Traceback (most recent call last):
File "E:\AI\OneTrainer\modules\module\LoRAModule.py", line 736, in load_state_dict
module.load_state_dict(state_dict, strict=strict)
File "E:\AI\OneTrainer\modules\module\LoRAModule.py", line 115, in load_state_dict
return super().load_state_dict(state_dict, strict, assign)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\AI\OneTrainer\venv\Lib\site-packages\torch\nn\modules\module.py", line 2629, in load_state_dict
raise RuntimeError(
RuntimeError: Error(s) in loading state_dict for LoRAModule:
Missing key(s) in state_dict: "alpha", "lora_down.weight", "lora_up.weight".
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "E:\AI\OneTrainer\modules\ui\TrainUI.py", line 712, in __training_thread_function
trainer.start()
File "E:\AI\OneTrainer\modules\trainer\GenericTrainer.py", line 141, in start
self.model_setup.setup_model(self.model, self.config)
File "E:\AI\OneTrainer\modules\modelSetup\Flux2LoRASetup.py", line 62, in setup_model
model.transformer_lora.load_state_dict(model.lora_state_dict)
File "E:\AI\OneTrainer\modules\module\LoRAModule.py", line 738, in load_state_dict
raise RuntimeError(f"Error during loading of module key \"{module.prefix}\"") from e
RuntimeError: Error during loading of module key "transformer.transformer_blocks.0.attn.to_q."
@Bobarker33 You can remap the problematic keys here:
```
OneTrainer\venv\src\diffusers\src\diffusers\loaders\single_file_utils.py
```
Look for the FLUX2_TRANSFORMER_KEYS_RENAME_DICT and add an entry "model.diffusion_model.": "". This strips the prefix and allows the loader to proceed, at least on my machine.
will you train on z image too?
fuck z image
Is it only me or it creates penisses upside down all the time. Penis canal is always top of penis.
Yes! I thought it was just me lol
@ObsidianDreams Same same
Fantastic work, easily the best nudity LoRa for Flux2 Klein 9B. Just wow! Looking forward to further development and refinements.
Try the settings, I get more than just good results with them and almost the speed of the Distilled version.
Take the base version fp8 use 2 k-sampler advance. Use the Turbo Lora with rank64 in the first with strength 0.15 in the second ksampler the Turbo Lora rank128 with strength 1. For the first ksampler you use cfg 3.5-4.0 for the second cfg 1.0. Steps a total of 10-12 steps divided between both samplers, for me it works well with 6 steps in the first and 4 in the second. Take Dpm++2m on both with SGM uniform. In addition, I have the custom node "Flux2-Klein-Enhancer" Contrast -0.5 normalize strength to 0.10 and simply leave the rest at default. So I have perfect prompt follow and the quality is more than just good. I also tested all the resolutions and have the best quality with 1248x1824 and prompt follow-up.
can you share example workflow if possible?
Details
Files
klein_snofs_v1_1.safetensors
Mirrors
1-klein_snofs.safetensors
klein_snofs_v1_1.safetensors
KLEIN_SNOFS.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein_sex.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1_abc.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1_1.safetensors
KLEIN_SNOFS.safetensors
klein_snofs_v1_1-mid_1972981-vid_2695876.safetensors
klein_snofs_v1_1.safetensors
klein_snofs_v1.safetensors
klein_snofs_v1_1-mid_1972981-vid_2695876.safetensors















