huggingbots / app.py
lunarflu's picture
lunarflu HF Staff
v0.6 deepfloydif test
b939335
raw
history blame
3.2 kB
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()