huggingbots / app.py
lunarflu's picture
lunarflu HF Staff
[tasks] import
d11f62f
raw
history blame
2.1 kB
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
from gradio_client import Client
from PIL import Image
#from ratelimiter import RateLimiter
import asyncio
import shutil # for doing image movement magic
DFIF_TOKEN = os.getenv('HF_TOKEN')
DISCORD_TOKEN = os.environ.get("GRADIOTEST_TOKEN", None)
df = Client("huggingface-projects/IF", DFIF_TOKEN)
jojogan = Client("akhaliq/JoJoGAN", DFIF_TOKEN)
intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix='!', intents=intents)
#---------------------------------------------------------------------------------------------------------------------------
async def generate_jojo_image(ctx):
if ctx.message.attachments:
attachment = ctx.message.attachments[0]
await ctx.message.add_reaction('πŸ€–')
await ctx.message.add_reaction('βŒ›')
style = 'JoJo'
im = jojogan.predict(attachment.url, style)
await ctx.send(f'{ctx.author.mention} Here is the {style} version of it')
await ctx.send(file=discord.File(im))
await ctx.message.remove_reaction('βŒ›', bot.user)
await ctx.message.add_reaction('βœ…')
else:
await ctx.send(f"{ctx.author.mention} No attachments to be found... Can't animify dat! Try sending me an image πŸ˜‰")
await ctx.message.add_reaction('❌')
#----------------------------------------------------------------------------------------------------------------------------
@bot.command()
async def jojo(ctx):
# task test
task = asyncio.create_task(generate_jojo_image(ctx))
await task
#----------------------------------------------------------------------------------------------------------------------------
def run_bot():
bot.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()