There are 7 endings : Good end (win, Sana pure), Bad end (lose to Gustav), Very bad end (kill Gustav with the super skill) and the 4 lewd ends for each companion (Garrett, Fief, Kuma and Karl).
For the lewd ends, Sana need obviously to be lewd (4 or 5 ?) and then an ending is chosen randomly. But if you spend time with one companion and not the others, you will get this companion ending in priority. If you do it with more than one companion, this is randomized between these companions.
What I mean for spend time is that you do event with them, here are my hypothesis for each :
- Garrett : story event studying at his house and lever in the sewer, for both choose to saw H-scene, his bad end
- Fief : finish the tournament, maybe some other event in the dungeon ?
- Kuma : timed event in the dungeon, H-scene in the clearing, scene in the VIP area
- Karl : the two days off
Maybe I forgot some or not all events that I listed are relevant.