File size: 3,201 Bytes
5546580
 
 
 
 
 
b939335
 
 
5546580
 
 
b939335
 
 
5546580
 
 
 
 
 
ac7dd69
88edf1a
ac7dd69
 
 
 
 
 
5546580
 
 
 
88edf1a
3484400
 
 
 
acb1ed0
 
 
 
 
5546580
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b939335
 
 
 
 
 
 
 
 
 
 
 
 
3d08d5f
2acca7b
5546580
05024ea
5546580
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import discord
import gradio_client
import gradio as gr
import os
import threading

#todos
#alert

# Get Gradio client
jojogan = gradio_client.Client("akhaliq/JoJoGAN")

#new
deepfloydif = gradio_client.Client("DeepFloyd/IF")

# 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):

        # if the bot has this role, it won't run
        OFFLINE_ROLE_ID = 1103676632667017266  # 1103676632667017266 = @offline-bot
        guild = message.guild
        bot_member = guild.get_member(self.user.id)
        if any(role.id == OFFLINE_ROLE_ID for role in bot_member.roles):
            return
        
        # don't respond to ourselves
        if message.author == self.user:
            return

        # if the message author doesn't have this role, the bot won't run
        REQUIRED_ROLE_ID = 900063512829755413 # 900063512829755413 = @verified
        if not any(role.id == REQUIRED_ROLE_ID for role in message.author.roles):
            return            

        # channels where bot will accept commands
        ALLOWED_CHANNEL_IDS = [1100458786826747945] # 1100458786826747945 = #bot-test
        if message.channel.id not in ALLOWED_CHANNEL_IDS:
            return

        if message.content.find("!help") != -1:
            await message.reply("Use !jojo !disney !spidey or !sketch. Have fun!", mention_author=True)

        style = None
        if message.content.startswith('!jojo'):
            style = 'JoJo'
        if message.content.startswith('!disney'):
            style = 'Disney'
        if message.content.startswith('!spidey'):
            style = 'Spider-Verse'
        if message.content.startswith('!sketch'):
            style = 'sketch'

        if style:
            if message.attachments:
                attachment = message.attachments[0]
                im = jojogan.predict(attachment.url, style)
                await message.reply(f'Here is the {style} version of it', file=discord.File(im))
            else:
                await message.channel.send("No attachments to be found...Can't animify dat! Try sending me an image πŸ˜‰")

        #new
        #deepfloydif
        if message.content.startswith('!deepfloydif'):
            text_input = message.content[12:].strip()
            if text_input:
                im = deepfloydif.predict(text_input)
                im_bytes = BytesIO()
                im.save(im_bytes, 'PNG')
                im_bytes.seek(0)
                await message.reply(f'Here is the image generated for the input "{text_input}"', file=discord.File(im_bytes, 'output.png'))
            else:
                await message.channel.send("No text input provided. Please provide some text after the !deepfloydif command.")
    
              

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