Styles on the AI Horde

Styles on the AI Horde

Almost since the early days of the AI Horde we've been curating a git repository with pre-defined image generation styles. This was initially started so that people would have an easy way to generate images through our official AI Horde Discord bot, but also to to be used by our fediverse bots for people to generate directly on social media interactively.

A "style" as we define it, is merely a collection of image generation parameters, and a predefined prompt, with areas that the user's prompt can be injected. For example our pixelart style is using the following prompt

pixel-art, {p}, low-res, blocky, pixel art style, 16-bit graphics###sloppy, messy, blurry, noisy, highly detailed, ultra textured, photo, realistic{np}

In this prompt, the {p} and {np} are replaced by the user's prompt and negative respectively, so one can can easily request say, a Pirate Ship in pixel art, by simply passing that style. This would auto-select an appropriate model, resolution and other more advanced parameters which most people might not care to tweak, such as cfg scale and even specialized LoRas and TIs.

A Pirate Ship in the pixelart style

We kept expanding our style repository, by running competitions in our discord server, as well as by allowing anyone to suggest some cools ones they came up with. We also added style collections, which was a way to group multiple styles together under one name, so that one can generate with a random style belonging to that group.

While many of our front-ends like Artbot added support for styles, but it was always a struggle to keep the styles updated as it wasn't easy to just let anyone contribute. So I felt this functionality didn't get the amount of traction it deserved. Not to mention I didn't particularly like using GitHub as a CDN.

To improve this situation, I decided to onboard styles directly into the AI Horde. Now our users can craft their own styles and share them with their friends or the public. If you feel the existing pixelart style isn't particularly good, you can just make your own at any complexity you desire, and see directly how much traction it gains.

To use a style, someone simply needs to give you a name, like Bright Anime. Alternatively you can add the user to ensure there's no name conflict, like so fluisteren#27764::Bright Anime. Finally you can also use the style UUID, but we've made it so that its easier to share styles with each other in chats.

With styles being on-boarded to the AI Horde proper, not only do you get full access to all possible parameters to specify for your style, but you also get validation of the style parameters as soon as you onboard it on the horde. So if you select, for example, a model like Flux and a sampler other than euler_a, you will get a warning about it.

The only thing required to make a style is to get the customizer role (which you can request manually in our social channels) or the trusted role, by running your own worker for a while. This is mostly to prevent anonymous abuse of the system.

But that's not all, the AI Horde also supports styles for text generations, so you can use this functionality to fill the text for a chat bot, or add the correct instructions for the various instruct modes LLMs use.

One can also still create style collections, consisting of multiple styles, even of different users. So one can say make a collection just of anime styles, or another might make one just containing their own "latest" style etc. Collections do not even require the customizer or trusted role and are open to everyone to create their own.

Finally to reward popular style creators and promote a little noble competition, each time a style is invoked it will transfer 2 kudos from the requestor to the owner of the style as a little "thank you" note (regardless of amount of images). We hope this will become another way for users to collect kudos when they do not have a powerful GPU to use. On top of that, each style records how many times it's been used, which can be used for sorting the styles by popularity.

Currently none of our existing front-ends support the styles functionality, but this should be coming in the next few weeks as the integrators start on-boarding this functionality.

Another interesting aspect of this new functionality is that it's not limited only the AI Horde integrations. Any software or service using text or image generation can plug into the style endpoints of the horde and allow their communities to benefit and share styles and collections with each other, even if they do not use the AI Horde for generations. All one needs to do is load a style details and parse them for their own generation parameters.

With 2.5K new lines of code added, this is one of our more ambitious new features in recent months. We hope that styles will become a much more approachable way for less technical people to jump into Generative AI and to support people sharing their personal touch with others, even outside of the Haidra umbrella.