A Discord Bot for generating images from text prompts
Project description
Droombot
Droombot is a discord bot for generating images from text prompts.
At current, it uses an API call to Stability.ai to generate images. A future version may support running Stable Diffusion directly.
https://user-images.githubusercontent.com/7782240/229916443-2cc0aa4d-188b-47c1-947e-9fd1708f4fba.mp4
Installing
:zap: Note: this step is not necessary if using a Container (see below)
Run the following, preferably in a virtual environment, to install droombot
pip install droombot
How to run
:zap: Note: this step is not necessary if using a Container (see below)
Configure your environment (see configuration options below), and make sure a redis instance is running on your network (we recommend using a container).
To start the bot, run the following in the virtual environment:
droombot server
To start a worker, run the following in the virtual environment
droombot worker
How to use in discord
Use the /prompt command to type your prompt. This by default uses whatever model
Stability AI now considers its "core". You can also select Stable Diffusion 3 and
Stable Diffusion 3 Turbo models by appending -m sd3 or -m sd3-turbo to your
prompt.
You can give individual words in your prompt more some weight by doing something like
the following;
A table with (red:0.5) raspberries and (purple:0.5) blueberries.
Components
Droombot consists of two components:
- The
server, this handles interaction with the user. I.e., it handles incoming prompts and replies. It provides the Discord bot users interact with. - One or more
workers. These handle the actual image generation.
Redis is used as a message broker between the server and the worker(s).
Configuration
All configuration is handled via environment variables. See the following table
| Environment variable | Description | Is Required |
|---|---|---|
DISCORD_BOT_TOKEN |
Token for your discord application | Yes |
DISCORD_GUILD_IDS |
Comma-separated list of guild (server) ids you want to allow access to the bot | Yes |
STABILITY_API_KEY |
API key from Stability AI | Yes |
REDIS_HOST |
Hostname of Redis instance | No, defaults to localhost |
REDIS_PORT |
Port of Redis instance | No, defaults to 6379 |
REDIS_KEY_LIFETIME |
Number of seconds for keys to expire | No, defaults to 300 |
MAX_REQUESTS_PER_MINUTE |
Maximum number of requests per minute to any remote services | No, defaults to 100 |
Container
Droombot can run as a container. For a howto using Docker or Podman, see the container docs.
Future plans
- Expose additional options, such as multiple images and model selection.
- Ability to run Stable Diffusion directly, with a separate worker class
- Prompt translations, allowing users to use prompts in their own language.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file droombot-0.2.0.tar.gz.
File metadata
- Download URL: droombot-0.2.0.tar.gz
- Upload date:
- Size: 13.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.6 Linux/5.15.0-107-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71fb557fe92ae66cc41d3006cdfaaf7016be043985c425a6f284c8e60258e46a
|
|
| MD5 |
79cd955e158ee045126148aff465946b
|
|
| BLAKE2b-256 |
7b5844719d3c488a73ddb07aa670a17501478cdeac99819a471d6578eb42430b
|
File details
Details for the file droombot-0.2.0-py3-none-any.whl.
File metadata
- Download URL: droombot-0.2.0-py3-none-any.whl
- Upload date:
- Size: 18.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.6 Linux/5.15.0-107-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4144b72184ce6fd984094060209e3431d5362cd2219792392ca7b1fc71e08bae
|
|
| MD5 |
707edd0e96b0aee0df26e3c77437c7f6
|
|
| BLAKE2b-256 |
e8f811a34d70ee95cd1638bb05cf7f693d3588c61e4b2d4f01fc5b2aee319aac
|