SillyTavern / SillyTavern-Extras

Extensions API for SillyTavern.
GNU Affero General Public License v3.0
563 stars 133 forks source link

Sprites for Custom Classify Model not Loading/Detected #228

Open Eliolocin opened 8 months ago

Eliolocin commented 8 months ago

Hi, I just installed the Extras API using the Conda method and it successfully runs on my Windows laptop with the following launch command: python server.py --enable-modules=classify --classification-model=koheiduck/bert-japanese-finetuned-sentiment

I'm only using it for its Classify module since I'm using it in a different language and it successfully classifies the text as intended:

(extras) D:\SillyExtras\SillyTavern-extras>python server.py --enable-modules=classify --classification-model=koheiduck/bert-japanese-finetuned-sentiment
Using torch device: cpu
<Classify module> Initializing text classification pipeline with model koheiduck/bert-japanese-finetuned-sentiment
No API key given because you are running locally.
 * Serving Flask app 'server'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://localhost:5100
Press CTRL+C to quit
127.0.0.1 - - [13/Mar/2024 14:37:36] "GET /api/modules HTTP/1.1" 200 -
127.0.0.1 - - [13/Mar/2024 14:37:44] "OPTIONS /api/classify/labels HTTP/1.1" 200 -
127.0.0.1 - - [13/Mar/2024 14:37:44] "GET /api/classify/labels HTTP/1.1" 200 -
127.0.0.1 - - [13/Mar/2024 14:37:45] "OPTIONS /api/classify HTTP/1.1" 200 -
Classification input:
「そっかそっか…   最近は新しい撮影もあって、本当に疲れちゃった…   でも、今日はオフだから、のんびり過ごそうと思っていたよ。」オボニャはミントアイスキャンディー をエリに渡しながら、魅惑的な笑顔でエリの頬に手を伸ばし、「最近エリちゃんと遊んだの久しぶりだよね?   いつも撮影ばっかりで、家に帰ったら寝て過ごすだけなんだ。   本当はもっと遊んで、エリちゃんの尻尾でも触りたいんだけどな~」
Classification output:
[{'label': 'POSITIVE', 'score': 0.8376659750938416}, {'label': 'NEUTRAL', 'score': 0.15402674674987793}, {'label': 'NEGATIVE', 'score': 0.008307279087603092}]
127.0.0.1 - - [13/Mar/2024 14:37:45] "POST /api/classify HTTP/1.1" 200 -

The problem is that SillyTavern is unable to load or even detect the outputted sentiment's corresponding sprite. Uploading an image through SillyTavern's web interface successfully creates a character folder with the image file in SillyTavern/public/characters, but it does not update in the SillyTavern interface: image

Even if the named emotion's image file does in fact exist in the character's sprite folder, which I've also tried manually creating instead of uploading using SillyTavern's web interface: image

This causes the sprites to not load at all, even if the Extras API returns the proper sentiment and even if the sprites do exist in the proper directory. Which is weird considering Local Server Classification works properly as intended (but it only supports English so I'm trying to use Extras to use a different classification model) so I'm thinking it is a problem with Extras itself.

Not exactly sure on which information is needed, I'll be glad to provide more. Thank you for the hard work.