File size: 3,568 Bytes
5546580 c41bcc3 5654dca 3d72860 c41bcc3 bc12f7c c41bcc3 89a3df9 c41bcc3 2a9e01b 81ba37f 249ac1a c41bcc3 b939335 c41bcc3 5546580 c41bcc3 b3352a3 744e267 cc2fbe1 2998219 6de149e 9650ea7 b3352a3 9650ea7 b3352a3 5668de1 eaa3171 03d7576 eaa3171 4497812 03d7576 b3352a3 9650ea7 6a5c10c bc0d1ce b3352a3 9dad23e 43f86b9 da77733 b3352a3 5546580 b3352a3 5546580 c41bcc3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
import discord
import os
import threading
import gradio as gr
import requests
import json
import random
import time
import re
from discord import Embed, Color
from discord.ext import commands
# test
from gradio_client import Client
from PIL import Image
#from ratelimiter import RateLimiter
#
from datetime import datetime
from pytz import timezone
#
import asyncio
zurich_tz = timezone("Europe/Zurich")
def convert_to_timezone(dt, tz):
return dt.astimezone(tz).strftime("%Y-%m-%d %H:%M:%S %Z")
DFIF_TOKEN = os.getenv('HF_TOKEN')
dfif = Client("huggingface-projects/IF", DFIF_TOKEN)
#sdlu = Client("huggingface-projects/stable-diffusion-latent-upscaler", DFIF_TOKEN)
#----------------------------------------------------------------------------------------------------------------------------------------------
# Set up discord bot
class MyClient(discord.Client):
async def on_ready(self):
print('Logged on as', self.user)
#------------------------------------------
async def on_message(self, message):
#ctx = await self.get_context(message)
#ex: !dfif sleepy cat
if message.content.startswith('!dfif'):
#ex: sleepy cat
prompt = str(message.content)[5:]
number_of_images = 4
current_time = int(time.time())
random.seed(current_time)
seed = random.randint(0, 2**32 - 1)
stage_1_results, stage_1_param_path, stage_1_result_path = dfif.predict(prompt, "blur", seed, number_of_images, 7.0, 'smart100', 50, api_name="/generate64")
png_files = [f for f in os.listdir(stage_1_results) if f.endswith('.png')]
if png_files:
first_png = png_files[0]
second_png = png_files[1]
third_png = png_files[2]
fourth_png = png_files[3]
first_png_path = os.path.join(stage_1_results, first_png)
second_png_path = os.path.join(stage_1_results, second_png)
third_png_path = os.path.join(stage_1_results, third_png)
fourth_png_path = os.path.join(stage_1_results, fourth_png)
img1 = Image.open(first_png_path)
img2 = Image.open(second_png_path)
img3 = Image.open(third_png_path)
img4 = Image.open(fourth_png_path)
combined_image = Image.new('RGB', (img1.width * 2, img1.height * 2))
combined_image.paste(img1, (0, 0))
combined_image.paste(img2, (img1.width, 0))
combined_image.paste(img3, (0, img1.height))
combined_image.paste(img4, (img1.width, img1.height))
combined_image_path = os.path.join(stage_1_results, 'combined_image.png')
combined_image.save(combined_image_path)
sent_message = await message.reply('Here is the combined image. React with the image number you want to upscale!', file=discord.File('combined_image.png'))
#----------------------------------------------------------------------------------------------------------------------------------------------
DISCORD_TOKEN = os.environ.get("GRADIOTEST_TOKEN", None)
intents = discord.Intents.default()
intents.message_content = True
client = MyClient(intents=intents)
def run_bot():
client.run(DISCORD_TOKEN)
threading.Thread(target=run_bot).start()
def greet(name):
return "Hello " + name + "!"
demo = gr.Interface(fn=greet, inputs="text", outputs="text")
demo.launch() |