From aaee407af42cbcca8404dcc74a8e4119fbe27b24 Mon Sep 17 00:00:00 2001 From: Benjamyn Love Date: Sat, 10 Dec 2022 02:26:35 +1100 Subject: [PATCH] Bot now does degen things ;) --- requirements.txt | 3 +- testing.ipynb | 22 +++++----- weeeabot.py | 111 ++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 123 insertions(+), 13 deletions(-) diff --git a/requirements.txt b/requirements.txt index 503dba9..3aed5b2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ -discord.py \ No newline at end of file +discord.py +aiohttp \ No newline at end of file diff --git a/testing.ipynb b/testing.ipynb index f488cc2..84e488f 100644 --- a/testing.ipynb +++ b/testing.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 32, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -13,14 +13,14 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "payload = {\n", - " \"prompt\": \"view from behind web developer sitting in a chair, sfw\",\n", - " \"styles\": [\"default\"],\n", - " \"steps\": 28,\n", + " \"prompt\": \"cute girlhand on cheek eyes closed thinking hard, sfw\",\n", + " \"styles\": [\"Bot\"],\n", + " \"steps\": 70,\n", " \"seed\": -1,\n", " \"n_iter\": 1,\n", " \"height\": 1024,\n", @@ -39,25 +39,25 @@ "\n", "payload.update(override_payload)\n", "\n", - "# url = \"https://art.jurydoak.com/sdapi/v1\"\n", - "url = \"http://localhost:7860/sdapi/v1\"" + "url = \"https://art.jurydoak.com/sdapi/v1\"\n", + "# url = \"http://localhost:7860/sdapi/v1\"" ] }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "" + "" ], "text/plain": [ "" ] }, - "execution_count": 58, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -95,7 +95,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.8" + "version": "3.10.8 (main, Nov 1 2022, 14:18:21) [GCC 12.2.0]" }, "orig_nbformat": 4, "vscode": { diff --git a/weeeabot.py b/weeeabot.py index 95a8633..71dab05 100644 --- a/weeeabot.py +++ b/weeeabot.py @@ -1,4 +1,9 @@ import discord +import requests +import aiohttp +import asyncio +from base64 import b64decode +import json from sys import exit try: @@ -13,16 +18,120 @@ intents.message_content = True client = discord.Client(intents=intents) +nsfw_enabled = True +steps = 28 +seed = -1 +url = "https://art.jurydoak.com" + +async def gen_image(message): + # global sess + + sess = aiohttp.ClientSession(url) + + payload = { + "prompt": "cute girlhand on cheek eyes closed thinking hard, sfw", + "styles": ["Bot"], + "steps": steps, + "seed": seed, + "n_iter": 1, + "height": 1024, + "negative_prompts": "nsfw, not safe for work, nudity, multiple keyboards", + "cfg_scale": 12 + } + + settings = { + "filter_nsfw": not nsfw_enabled, + "samples_save": True, + } + + override_payload = { + "override_settings": settings + } + + payload.update(override_payload) + user_prompt = " ".join(message.content.split(' ')[1:]) + payload['prompt'] = user_prompt + # url = "https://art.jurydoak.com/sdapi/v1" + + image_req = await sess.post("/sdapi/v1/txt2img", json=payload) + x = await image_req.json() + image_req.close() + await sess.close() + + image = x['images'][0] + # image = requests.post(f"{url}/txt2img", json=payload).json()['images'][0] + with open('/tmp/image.png', 'wb') as f: + f.write(b64decode(image)) + + e = discord.Embed() + upload_file = discord.File("/tmp/image.png", filename="image.png") + e.set_image(url="attachment://image.png") + e.title = user_prompt + await message.channel.send("", file=upload_file, embed=e) + + @client.event async def on_ready(): + + bot_setup_id = 775489296932405319 + channel = client.get_channel(bot_setup_id) + await channel.send(f"Awake and ready to degen, NSFW: {nsfw_enabled}, STEPS: {steps}") + await client.change_presence(activity=discord.Game(name="Thinking degenerate thoughts...")) + + # text_channel_list = [] + # for server in discord.Client.servers: + # for channel in server.channels: + # if channel.type == "text": + # text_channel_list.append(channel) + + # print(text_channel_list) print(f'We have logged in as {client.user}') + @client.event async def on_message(message): + global nsfw_enabled if message.author == client.user: return if message.content.startswith('$hello'): - await message.channel.send('Hello!') + print(message.content) + await message.channel.send('Hopefully queued the image') + await gen_image(message) + + if message.content.startswith('$degen'): + await message.channel.send('Disabling kink mode' if nsfw_enabled else 'Enabling kink mode') + if nsfw_enabled: + nsfw_enabled = False + else: + nsfw_enabled = True + + if message.content.startswith("$steps"): + global steps + try: + num = int(message.content.split(" ")[1]) + steps = num + await message.channel.send(f"Setting steps to {steps}") + except: + pass + + + if message.content.startswith("$seed"): + global seed + try: + num = int(message.content.split(" ")[1]) + seed = num + await message.channel.send(f"Setting seed to {seed}") + except: + pass + + if message.content.startswith("$host"): + global url + try: + host = message.content.split(" ")[1] + url = host + await message.channel.send(f"Setting host to {host}") + except: + pass client.run(discord_client_token)