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 each companion has an unlock event that give his ending priority. If you unlock only the event for Kuma, you will always have the Kuma lewd ending. If you do more that one unlocking event, it is randomized between the companion with the unlock event done.
The unlocking event for each companion is :
- Garrett : His additional quest in the sewer (after beating the first boss) (confirmed by the dev)
- Fief : The final part of the tournament in the first city (confirmed by the dev)
- Karl : The two days off
- Kuma : (?) From the pattern of the other three, this is an optionnal event
Edit : Changed things to take more into account what the dev said a few posts after.