Skip to main content

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:

  1. The server, this handles interaction with the user. I.e., it handles incoming prompts and replies. It provides the Discord bot users interact with.
  2. 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

  1. Expose additional options, such as multiple images and model selection.
  2. Ability to run Stable Diffusion directly, with a separate worker class
  3. Prompt translations, allowing users to use prompts in their own language.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

droombot-0.2.0.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

droombot-0.2.0-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

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

Hashes for droombot-0.2.0.tar.gz
Algorithm Hash digest
SHA256 71fb557fe92ae66cc41d3006cdfaaf7016be043985c425a6f284c8e60258e46a
MD5 79cd955e158ee045126148aff465946b
BLAKE2b-256 7b5844719d3c488a73ddb07aa670a17501478cdeac99819a471d6578eb42430b

See more details on using hashes here.

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

Hashes for droombot-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4144b72184ce6fd984094060209e3431d5362cd2219792392ca7b1fc71e08bae
MD5 707edd0e96b0aee0df26e3c77437c7f6
BLAKE2b-256 e8f811a34d70ee95cd1638bb05cf7f693d3588c61e4b2d4f01fc5b2aee319aac

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page