File size: 2,749 Bytes
5546580 7fa9e07 11ad260 7fa9e07 11ad260 7fa9e07 956c50d 2998219 e0461c3 11ad260 b56f69c c378b04 9650ea7 11ad260 d7fdc0e 11ad260 9650ea7 fad843f a697e01 2afeadf 2d3687c 2afeadf 85b6226 a697e01 0fd21c2 2afeadf 3189729 9b3563d 3189729 2afeadf 3189729 9b3563d 3189729 85b6226 2afeadf 8d38d87 602130d 0e6b97a 75abc54 8d38d87 2afeadf 3189729 8d38d87 5546580 11ad260 5546580 dbb572b 5546580 dbb572b 740e062 dbb572b 8d38d87 0fd21c2 8d38d87 0fd21c2 8d38d87 |
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 109 110 111 112 113 114 115 116 |
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
import asyncio
import shutil # for doing image movement magic
import concurrent.futures
DFIF_TOKEN = os.getenv('HF_TOKEN')
DISCORD_TOKEN = os.environ.get("GRADIOTEST_TOKEN", None)
jojogan = Client("akhaliq/JoJoGAN", DFIF_TOKEN)
intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.command()
async def lunar(ctx):
await ctx.message.add_reaction('π€')
@bot.command()
async def jojo(ctx):
attachment = await discord_before(ctx)
if attachment:
asyncio.create_task(generation(ctx, attachment))
#await generation(ctx, attachment)
async def discord_before(ctx):
if ctx.message.attachments:
await asyncio.gather(
ctx.message.add_reaction('π€'),
ctx.message.add_reaction('β')
)
attachment = ctx.message.attachments[0]
return attachment
else:
await asyncio.gather(
ctx.send(f"{ctx.author.mention} No attachments to be found... Can't animify dat! Try sending me an image π"),
ctx.message.add_reaction('β')
)
return None
async def generation(ctx, attachment):
if attachment:
style = 'JoJo'
im = await asyncio.to_thread(jojogan.predict, attachment.url, style)
#im = jojogan.predict(attachment.url, style)
await asyncio.gather(
ctx.send(f'{ctx.author.mention} Here is the jojo version of it'),
ctx.send(file=discord.File(im)),
ctx.message.remove_reaction('β', bot.user),
ctx.message.add_reaction('β
')
)
#--------------------------------------------------------
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()
#--------------------------------------------------------
'''
async def discord_after(ctx, im):
await asyncio.gather(
ctx.send(f'{ctx.author.mention} Here is the jojo version of it'),
ctx.send(file=discord.File(im)),
ctx.message.remove_reaction('β', bot.user),
ctx.message.add_reaction('β
')
)
'''
'''
def blocking_io():
#generate
#return image
async def main():
loop = asyncio.get_running_loop()
exeresult = await loop.run_in_executor(
None, blocking_io)
print('default thread pool', exeresult)
'''
|