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()