npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@stability/stablestudio-plugin

v0.0.1

Published

<div align="center">

Downloads

2

Readme

🔌 Plugins

🗺 Contents – ℹ️ About · 📦 Installation · 🤝 Contract · 🔮 Future

⬆️ Top-Level README

MagicalElectricPlugs

🚧 👷 PLUGINS ARE EXPERIMENTAL AND NOT FINAL 🛠 🚧

The contract and implementation are likely to change...

ℹ️ About

In order to make StableStudio easier to extend, we've ripped out the "back-end" into a plugin system.

This means you can implement an entirely different inference stack, StableStudio doesn't care if it's local or a hosted API.

⭐️ Features

We're hoping this list expands over time, but here's what's available right now...

  • 🏞 Image Generation

    All aspects of image generation are handled by plugins including the default input, how styles are implemented, how to fetch existing images, etc.

  • 🪪 Plugin Manifest

    Plugins can provide a manifest with a markdown description, author details, version information, etc.

  • ⚙️ Plugin Settings

    Plugins can declare settings which are available to the user in the settings menu.

🧪 Development

If you want to play around with an example plugin which has nice developer tooling, check out the example plugin.

You can load the UI using example plugin instead of the default Stability plugin by running...

yarn dev:use-example-plugin

Any changes you make within the example plugin will be hot-reloaded into StableStudio.

📦 Installation

This is mainly a feature intended for developers, we're likely to change how plugins work for end-users.

Never install plugins from untrusted sources!

Although they are sand-boxed to the browser, a malicious actor could read through your image history or steal your API key if you're not careful.

To install a plugin, first enable "developer mode" in the settings menu...

DeveloperMode

Now you can point to any fetch-able JavaScript file which exports a plugin...

InstallPlugin

If loaded successfully, you'll see it in the settings menu...

ExamplePlugin

That's it!

As of now, you can only have one active plugin at a time.

The main purpose of plugins in their current form is to allow developers to experiment with different inference stacks.

🤝 Contract

Check out the TypeScript source to see full documentation of the API.

Plugins are effectively just a bag of JavaScript functions.

StableStudio calls these functions for core functionality, such as createStableDiffusionImages, getStableDiffusionStyles, getStableDiffusionDefaultInput, etc.

Functionality degrades gracefully, for example, if you don't implement getStableDiffusionStyles, no styles will be shown in the UI.

🔮 Future

Plugins were mostly created to rip out calls to Stability's gRPC API, so their functionality is quite limited.

Given the importance of a robust plugin system, we're really hoping to gather feedback on how we can improve the API.

Here's what's on our mind when it comes to the future of StableStudio plugins...

  • 🧠 More Inference Stacks

    The default Stability plugin enables inference relying on Stability's API, but we're hoping to expand support for local inference.

    We're particularly interested in creating a plugin for using stable-diffusion-webui's REST API.

    Though it's not fully-ready, we're excited about the future of WebGPU, and would love to support it via a plugin.

    We've stubbed out two empty packages to house these potential plugins...

    stablestudio-plugin-webui

    stablestudio-plugin-webgpu

  • 🎨 Deeper UI Extensibility

    Currently plugins can only change "back-end" functionality. We'd love to allow plugins to create entire new features or modify existing ones.

  • 🧱 Multiple Plugins

    Only one plugin can be loaded at a time with our current implementation. Allowing multiple plugins to play nicely with each other would be a huge win.

  • 🛍 Plugin Library

    If there is enough interest and community momentum, we'd love to create a plugin library where users can easily install plugins from a curated list.