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)

'''