SillyTavern / SillyTavern-Extras

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

Could we expand on why this was deprecated? #246

Closed towardreal closed 4 weeks ago

towardreal commented 1 month ago

I totally appreciate that it can be a drain on the limited free time an open-source maintainer has to run two major repositories (and several others too). If that's the reason for the deprecation then :+1: that's fine - but perhaps it could be helpful to instead seek contributors with a deadline, as deprecating this is a huge loss to SillyTavern that just cannot be resolved with client-side implementations.

It's also stated that the vast majority of extensions are available in SillyTavern now. In a sense, you could argue it's true; in reality and from a technical perspective, it's very much not true - what you have in SillyTavern is either a limited equivalent or complete absence of functionality. There is not a single extensional that was ported 1:1 to SillyTavern.

This isn't to criticise the unpaid labor of love everyone's contributed; this is only to drive home the point that there really was value here, even if it was a pain in the butt to maintain.

If we put out a call for active maintainers who committed to "owning" the issues that were raised and keeping everything maintained, would we be open to un-deprecating this? If not, again it might be nice to have an explanation of why, e.g. "Deprecated becaause the feature gain is mostly minimal" or "Deprecated due to being too convoluted and consuming too much time" etc.

Cohee1207 commented 1 month ago

I don't want people to think that they're missing out if they don't use Extras API. There is absolutely no need to run a separate Python env for basic extension functions, it was a chore to support. Everything has a replacement, even RVC got a non-Extras source lately, it was the last of major functions not being ported due to no alternatives and no proper APIs.

  1. Stable Diffusion/TTS - literally dozens of sources already supported.
  2. Captioning - multimodal models (GPT-4V, Llava, etc) provide much better captions.
  3. Summary - BART is very limited, only 1024 tokens of context, summarizing with a proper LLM provides much better results.
  4. Web search - available as a Node server plugin. https://github.com/SillyTavern/SillyTavern-WebSearch-Selenium/
  5. RVC - collaborated on https://github.com/daswer123/rvc-python
  6. Embeddings/classification - covered by transformers.js running in Node.
  7. Talkinghead - poor quality, not optimized, requires CUDA. VRM/Live2d provide much better performance and quality.
towardreal commented 4 weeks ago

Thanks for the detailed reply. There's some factors in there I underestimated, so I appreciate that.

I think we're talking past each other / maybe the point is getting lost in my long message.

The extras API was useful because it provided all of those in one place; with many of those being advantageous to run on a GPU - so that meant you could run extras on a system with an available GPU. The alternative requires manually resolving all the third-party tooling, but how much effort is required for set-up and on-going maintenance (e.g. dealing with version upgrades) is an unknown to me.

There's a bunch of information here that I wasn't aware of; particularly the fact there's the possibility to run server-side modules in the core SillyTavern API. I'm going to give all of this a go. Apologies for any wasted time. Still sad to see the extras API go but with that information, I can't really advocate to keep it!