/dreamshaper

Dreamshaper Discord Bot - Stable Diffusion XL, ChatGPT, Discord.js - Full Midjourney Clone

Primary LanguageJavaScriptMIT LicenseMIT

Dreamshaper - Stable Diffusion XL Discord midjourney style bot powered by ChatGPT, SDXL and ComfyUI

A Stable Diffusion XL Discord BOT Powered By OpenAI's ChatGPT.

This BOT uses ChatGPT API & Firebase Firestore Database & ComfyUI.

✨Features

πŸ”₯ Use slash command /dream to create images in the specified channel.

πŸ’₯ Uses Firestore Database for persistent prompt history storage & logs.

πŸ’« Easy Setup !

πŸ₯ Usage:

  • /dream - image prompt.
  • /help - Get Help.
  • /ping - Check Websocket Heartbeat && Roundtrip Latency.

πŸ“‘ Quick Start [Self-Hosting] :

0. Requirements:

1. Bot Setup:

  1. Create New Application (BOT) from Discord Developer Portal and invite that bot to your Discord Server with:
    Scopes: bot & application.commands
    Bot Permissions: 2734284602433
    Privileged Gateway Intents: PRESENCE, SERVER MEMBERS, MESSAGE CONTENT
  • Example Bot Invite URL (Replace BOT_CLIENT_ID with your bot's Client ID) :
https://discord.com/api/oauth2/authorize?client_id=BOT_CLIENT_ID&permissions=2734284602433&scope=bot%20applications.commands
  1. ⭐Star this Repo to get updates.

  2. Clone this repo:

git clone https://github.com/cryptaralex/dreamshaper

Then navigate to the folder:

cd ChatGPT-Discord-BOT
  1. Install all dependencies:
npm install
  1. To setup Environment Variables, Copy & Rename the .env.example file to .env
    Then, fill the credentials.

  2. Setup Firebase Firestore Database by following this instruction.

  3. Start the BOT:

npm run start

Or, During Development:

npm run dev

Or, In Production:

npm run prod
  1. Use the BOT πŸŽ‰

β€’ Environment Variables Setup:

  • DISCORD_CLIENT_ID - Client ID of the bot from OAuth2 section.

  • DISCORD_BOT_TOKEN - Token of the bot from Bot section.

  • OPENAI_API_KEY - Get OpenAI API Key from here.

β€’ Advanced Settings:

  • DISCORD_MAX_RESPONSE_LENGTH - Max 2000 , recomended 1900.

  • API_ENDPOINT - Set default for api.openai.com endpoint. But you can set 3rd party equivalent endpoint too.

  • DEBUG - Toggle Debug Messages. Values: true or false

  • UWU - Toggle Figlet & Gradient-String decoration. Values: true or false

  • MODEL - Name of the Model you want to use. Like, text-davinci-003 , gpt-3.5-turbo , gpt-4 etc.

  • SYSTEM_MESSAGE - This is the Initial Prompt that is sent to the Model. You can change it to anything you want to change the bot's behaviour as your requirements. Knowledge Cutoff and Current Date is always sent.

See .env.example file for more details

β€’ Database Setup:

  1. Goto Firebase Console: console.firebase.google.com (No Card Required)

  2. Click on Create a project or Add project. Give it a name and click Continue

  3. Disable Google Analytics & Click Create Project

  4. From the side-bar goto Build & then Firestore Database.

  5. Click Create Database

  6. Select Start in production mode & click Next

  7. Select a Firestore location nearest to your Server / VPS. This'll also set the Default GCP Resource Location & you can't change it later.
    Then click Enable

  8. Now goto Project settings & Service accounts.

  9. Under Firebase Admin SDK select Node.js. Then click Generate new private key and then click Generate key

  10. Important: Rename the downloaded json file to firebaseServiceAccountKey.json
    Any other name will not work here. Then put the json file in your bots directory.
    Copy FileName:

firebaseServiceAccountKey.json  <-- You need to base64 this and put it into the .env file for now, I'll switch it back to using the json before the release

✨ Tip: check out these images here

β€’ ComfyUI Setup:

  1. Follow the instructions on the ComfyUI github here
  2. Install the ComfyUI manager from here
  3. Open the included image in your ComfyUI and use the manager to install all the missing nodes.
  4. Place necessary checkpoints, lora, and upscalers in the appropriate directory. Todo: More details on this.
  5. Make sure you can generate images using the provided node graph.
  6. Edit the .env file with your installation location output path.

πŸ’¬ Support:

β›“ Others:

πŸ“ License: MIT

πŸ”‹ ChatGPT API: transitive-bullshit/chatgpt-api

πŸ“š Database: Firestore

🌐 BaaS: Firebase


--- πŸ™‚ ---