Hi naudh1r!
1) The log would be most helpful in diagnosing this. Please note that NSFW CG won't show if there's more than 1 girl currently on screen. If that's not the case, check the log to see whether the LLM output the "cg" action on the line in that scene or maybe "hide"d the girl's prematurely.
2) This is intended behavior. "Sleeping" just means any sexual act, and kiss automatically triggers when the sleeping together milestone is hit. I didn't want to add an extra conditional relationship modifier for sleeping together, but haven't kissed yet
Viewing post in v0.2.0 - Known Bugs, feedback, suggestions
Hi, I checked the logs and you're right: the model hid April's sprite right before the CG, in the same actions list, so the NSFW CG was never shown: "actions": ["hide:april_valentine", "cg:fellatio"]
FYI I was using Gemini through OpenRouter, not the API directly. I don't think the route matters here though, since the reply fits the schema either way. It looks like the model misread "hide: everybody else first" and hid the girl herself.
BTW, Thanks for looking into it so quickly, and thanks for making the game. I've been having a lot of fun with it. Cant wait for upcoming feature update. Do you have any roadmap to share?
That sounds awesome! Funny timing, since I've been experimenting with something similar on my own build: characters sometimes send a photo in DMs or post one to the feed, rendered on the same ComfyUI setup as the CGs, with what they'll send depending on the relationship and their traits. So I'm really curious how your Photos tab will work. Will the player pick what to generate, or do the characters decide? Happy to share what I learned if it's useful, but no pressure. I'll wait for your version either way.
Yes, mostly by never making the player wait on it. It's also an optional toggle in Settings ("No photos on Bunnyboard"), so anyone who doesn't want image gen during gameplay just turns it off, and the characters aren't even offered the option to send one.
With it on:
- Feed posts: rendered in the background while the player is busy with the slot. A post with a picture is held back until its picture exists, and the renders start once you commit to a scene, so they run while you play it and the posts are on the feed by the time you check it. They render one at a time, so the GPU is never asked for two at once.
- DMs: her text arrives immediately, and the photo follows as a separate bubble with a loading placeholder that fills in when ComfyUI finishes. On my PC that's around 30 seconds, which doesn't feel too bad in a chat, but I can't verify how long it takes on other machines. Since nothing waits on it, a slower GPU should only mean the photo arrives later, not that the game stalls.
- Failures: if ComfyUI errors or doesn't answer within 3 minutes, the post or bubble shows "Image failed to generate" with a reroll button instead of hanging. A picture that finishes after that still fills itself in. The text was already written, so a reroll only redraws the picture, with no extra LLM call.
So for the feed there's no waiting at all, and in DMs the only wait is for the picture itself, never for the game. Sprites and CGs are still generated up front in Character Manage, so during play the photos have ComfyUI to themselves.
If you'd like to see how it's done, would you be okay with me posting a link to my repo here? It's a fork of your mirror with the feature added, and I'm happy to keep it out of the comments if you'd rather not have it public.
Your ideas are ones that I considered too. Waiting 30 seconds in a text conversation is sort of unacceptable for me in terms of gameplay smoothness, but the loading idea is great actually: you can still continue the convo/enter a scene while it's loading I'm assuming? That's actually how the photos feature is implemented right now, so all I need is to instruct the text prompt to add an extra field for an image prompt when it feels like it. Thanks for the idea!
Oh, the current photos feature uses frontier image model for generation, since local image models aren't good enough for prompt adherence. So that means a larger concern for me is cost. I feel like allowing images to be generated during text/feed might cause prices to skyrocket very quickly. I suppose a setting helps with that but it feels like something that it would be expensive for me to even test lol
You're welcome to post the repo. I might take a look, but usually the details of the implementation are what is interesting to me, not the actual code, so what you've provided is already more than sufficient. Thanks for sharing
Yes, exactly. The photo shows as a loading bubble and you can keep texting, close the phone, or go into a scene while it draws. The reply box stays usable the whole time, and the picture just fills in when it's ready.
Makes sense about cost. My version is built entirely around local generation on the player's own ComfyUI, so cost never came up for me, and how to handle it with a frontier model is your call.
On local models and prompt adherence, I hit the same problem, so I tried not sending the local model prose. The LLM writes a short caption of the photo, like "lying on her bed in her swimsuit, looking at the camera." Then code turns that caption into Danbooru tags, which the checkpoint understands much better than sentences:
- Outfit: if the caption mentions her swimsuit or gym kit, it uses her own outfit tags for it.
- Coverage: it works out what's still covering her and what the camera can see. For example, a photo from behind never mentions her chest.
- Pose: it picks pose and hand tags from the caption's wording, like lying down, sitting, or holding something.
For consistency I also added optional body fields per character (build, chest, hips, backside), each picked from a short list of tags the checkpoint knows and checked against each other, so her body stays the same across sprites, CGs and photos.
It's still far from perfect and needs more tuning. Outfits only roughly match her sprite, and odd captions can drift. But since the game already renders CGs locally with ComfyUI from the same kind of tags, I figured why not reuse that for photos too. It's the same pipeline and the same checkpoint, just pointed at something new, and it costs nothing extra for players who already have it set up.
One more design note: what she's willing to send is decided from the save before the model is asked (nothing if she's annoyed or hostile, flirty after a kiss, more only with a reason like a crush or having slept together), and her caption is checked so the model can't go past that. That keeps it in character.
Here's the repo if you want to look: https://github.com/naudh1r/venus-university/tree/photo-feature
It's your mirror with only the photo feature added, and each commit message explains the reasoning behind that change.
Thanks for taking the time, and good luck with the update!