Gemini is what I almost always use too. It can be very smutty, you just have to work with it. One thing I do recently is, in the dialogue bits, to put things like (OOC: She is excited by the new experience, despite herself, and is very turned on by the possibilities) in the middle of that part. I usually say the first few and last few lines of dialogue or other text, and let it do the middle, with a general tone instruction. This is more effective than just saying it yourself - the AI makes it emerge from the character.
Also, words like 'hint' and 'tasteful' work well. In many of my prompts, I'll describe clothing, and add "displaying a tasteful hint of cleavage". This will result in anything from no cleavage to huge amounts. Saying something pretty dirty, and then walking it back, often has the AI just ignore the walk-back.
My theory is that AI is trained on pretty smutty, sexualized sources, with guard-rails added later. So if you can give it a bit of space to 'express itself' (I know how AI works, just I can't find a better phrase without talking technically) without using certain words or aspects of an image, it mirrors the things it was trained on. It probably helps that my prompts are stupidly long, with lots of detail - I think a lot of its resources are being devoted to a particular piece of clothing or hairstyle, and that makes the smut slip through.
Oh, and I don't use the word 'smut' because I'm censoring myself. It's just that my images are pretty 'smutty' rather than massively explicit, as are yours.