Spaces:
Runtime error
Runtime error
import os | |
import cv2 | |
import sys | |
import time | |
import uuid as bandaid | |
import tarfile | |
import gradio as gr | |
from pathlib import Path | |
from PIL import Image | |
models = [ | |
"johnslegers/epic-diffusion-v1.1", | |
"andite/anything-v4.0", | |
"runwayml/stable-diffusion-v1-5", | |
"claudfuen/photorealistic-fuen-v1", | |
"naclbit/trinart_stable_diffusion_v2", | |
"nitrosocke/Arcane-Diffusion", | |
"nitrosocke/archer-diffusion", | |
"nitrosocke/elden-ring-diffusion", | |
"nitrosocke/redshift-diffusion", | |
"nitrosocke/spider-verse-diffusion", | |
"nitrosocke/mo-di-diffusion", | |
"nitrosocke/classic-anim-diffusion", | |
"dreamlike-art/dreamlike-diffusion-1.0", | |
"dreamlike-art/dreamlike-photoreal-2.0", | |
"wavymulder/wavyfusion", | |
"wavymulder/Analog-Diffusion", | |
"prompthero/midjourney-v4-diffusion", | |
"prompthero/openjourney", | |
"dallinmackay/Van-Gogh-diffusion", | |
"hakurei/waifu-diffusion", | |
"DGSpitzer/Cyberpunk-Anime-Diffusion", | |
"Fictiverse/Stable_Diffusion_BalloonArt_Model", | |
"dallinmackay/Tron-Legacy-diffusion", | |
"AstraliteHeart/pony-diffusion", | |
"nousr/robo-diffusion", | |
"CompVis/stable-diffusion-v1-4", | |
] | |
current_model = models[0] | |
text_gen1=gr.Interface.load("spaces/Omnibus/MagicPrompt-Stable-Diffusion_link") | |
text_gen2=gr.Interface.load("spaces/Omnibus/MagicPrompt-Stable-Diffusion_link") | |
text_gen3=gr.Interface.load("spaces/Omnibus/MagicPrompt-Stable-Diffusion_link") | |
text_gen4=gr.Interface.load("spaces/Omnibus/MagicPrompt-Stable-Diffusion_link") | |
text_gen5=gr.Interface.load("spaces/Omnibus/MagicPrompt-Stable-Diffusion_link") | |
text_gen6=gr.Interface.load("spaces/Omnibus/MagicPrompt-Stable-Diffusion_link") | |
text_gen7=gr.Interface.load("spaces/Omnibus/MagicPrompt-Stable-Diffusion_link") | |
text_gen8=gr.Interface.load("spaces/Omnibus/MagicPrompt-Stable-Diffusion_link") | |
models2=[ | |
gr.Interface.load(f"models/{models[0]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[1]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[2]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[3]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[4]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[5]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[6]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[7]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[8]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[9]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[10]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[11]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[12]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[13]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[14]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[15]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[16]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[17]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[18]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[19]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[20]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[21]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[22]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[23]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[24]}",live=True,preprocess=True), | |
gr.Interface.load(f"models/{models[25]}",live=True,preprocess=True), | |
] | |
def text_it(inputs,text_gen1=text_gen1): | |
go_t1=text_gen1(inputs) | |
return(go_t1) | |
def set_model(current_model): | |
current_model = models[current_model] | |
return gr.update(label=(f"{current_model}")),gr.update(label=(f"{current_model}")),gr.update(label=(f"{current_model}")),gr.update(label=(f"{current_model}")),gr.update(label=(f"{current_model}")),gr.update(label=(f"{current_model}")),gr.update(label=(f"{current_model}")),gr.update(label=(f"{current_model}")), | |
def prime_the_thing(): | |
#timestr = time.strftime("%Y%m%d-%H%M%S") | |
timestr = bandaid.uuid4() | |
if not os.path.exists(f'./frames{timestr}'): | |
os.mkdir(f'./frames{timestr}') | |
frame_box=[] | |
frame_file_box=[] | |
frame_tar_box=[] | |
go=1 | |
return timestr, go, frame_box, frame_file_box, frame_tar_box | |
def go_fn(): | |
num=1 | |
return num | |
def the_thing(inputs,input_rand, model_choice,num,top_num,timestr, frame_box, frame_file_box, frame_tar_box): | |
if num != 0: | |
if int(num) <= int(top_num): | |
#proc1= | |
inputs=f"{inputs}{input_rand}" | |
proc1=models2[model_choice] | |
output=proc1(inputs) | |
#output_pro=Image.open(output) | |
output_pro=cv2.imread(output) | |
cv2.imwrite(f"./frames{timestr}/frame-{timestr}-{num}.png",output_pro) | |
frame_file_box.append(Path(f"./frames{timestr}/frame-{timestr}-{num}.png")) | |
frame_box.append(output) | |
input_rand=f"{input_rand} " | |
if int(num) < int(top_num): | |
num=int(num)+1 | |
elif int(num)==int(top_num): | |
#frame_tar_box=[] | |
with tarfile.open(f'frames{timestr}.tar.gz','w:gz') as tar: | |
tar.add(f"./frames{timestr}",arcname=os.path.basename(f"./frames{timestr}")) | |
frame_tar_box.append(Path(f'frames{timestr}.tar.gz')) | |
else: | |
pass | |
else: | |
num=0 | |
pass | |
else: | |
print("ending") | |
return frame_box,frame_file_box,frame_tar_box,num,input_rand,frame_box,frame_file_box,frame_tar_box | |
css="""""" | |
css=""" | |
.max-h-\[55vh\]{ | |
max-height:10vh;!important; | |
} | |
""" | |
with gr.Blocks(css=css) as myface: | |
frame_box = gr.State([]) | |
frame_file_box = gr.State([]) | |
frame_tar_box = gr.State([]) | |
with gr.Row(): | |
with gr.Tab("Title"): | |
gr.HTML(""" <title>Diffusion Flood</title> | |
<div style="text-align: center;text-shadow:0px 0px 2px white,0px 0px 5px cornflowerblue;max-width:1500px;margin-top:5px;font-size:50px;height:50px;"> | |
<h1>Diffusion Flood</h1></div> | |
<br> | |
<div style="text-align:center;font-size:30px;margin-bottom:5px;"><h4>Grab a bucket!</h4></div>""") | |
with gr.Tab("Description"): | |
gr.HTML("""<div style="text-align:center;"> | |
<h4>Developing...</h4> | |
<br><h4>Select how many image you would like returned</h4> | |
<h4>Enter your Prompt</h4> | |
<h4>Select a Model (some are fast, others are slow)</h4> | |
<h4>Send it!</h4> | |
</div>""") | |
with gr.Tab("Tools"): | |
with gr.Tab("View"): | |
with gr.Row(): | |
with gr.Column(style="width=50%, height=70%"): | |
gr.Pil(label="Crop") | |
with gr.Column(style="width=50%, height=70%"): | |
gr.Pil(label="Crop") | |
with gr.Tab("Draw"): | |
with gr.Column(style="width=50%, height=70%"): | |
gr.Pil(label="Crop") | |
with gr.Column(style="width=50%, height=70%"): | |
gr.Pil(label="Draw") | |
gr.ImagePaint(label="Draw") | |
with gr.Tab("Text"): | |
with gr.Row(): | |
with gr.Column(scale=50): | |
gr.Textbox(label="", lines=8, interactive=True) | |
with gr.Column(scale=50): | |
gr.Textbox(label="", lines=8, interactive=True) | |
with gr.Tab("Color Picker"): | |
with gr.Row(): | |
with gr.Column(scale=50): | |
gr.ColorPicker(label="Color", interactive=True) | |
with gr.Column(scale=50): | |
gr.ImagePaint(label="Draw", interactive=True) | |
with gr.Tab("Style"): | |
style_switch=gr.Radio(["1", "2", "3"]) | |
style_button=gr.Button("Load Style") | |
with gr.Row(): | |
with gr.Column(): | |
with gr.Row(): | |
frame_num=gr.Textbox(label="Current",value=0,interactive=False) | |
time_box=gr.Textbox(label="Unique Bandaid", interactive=False) | |
frame_top=gr.Textbox(label="How many images?", value=10) | |
with gr.Row(): | |
model_name1 = gr.Dropdown(show_label=False, choices=[m for m in models], type="index", value=current_model, interactive=True) | |
#magic_text=gr.Textbox(label="Magic Prompt",lines=3) | |
with gr.Column(): | |
#use_short=gr.Button("Use Short Prompt") | |
#see_prompt=gr.Button("Generate Magic Prompt") | |
magic_text=gr.Textbox(label="Short Prompt",lines=1) | |
run=gr.Button("Send it!") | |
with gr.Tab("Bucket"): | |
with gr.Column(): | |
with gr.Row(): | |
with gr.Column(): | |
frames=gr.Gallery(label="Bucket o' Frames", type="filepath").style(grid=10) | |
frame_files=gr.Files() | |
frame_tar=gr.Files() | |
with gr.Row(): | |
batch_bot1=gr.Textbox(label="BB1") | |
start_frame1=gr.Textbox(label="Start Frame") | |
rand_box=gr.Textbox(value="",visible=False) | |
go_box=gr.Textbox(value=0,visible=False) | |
def short_prompt(inputs): | |
return(inputs) | |
run.click(prime_the_thing, inputs=[], outputs=[time_box,frame_num, frame_box, frame_file_box, frame_tar_box]) | |
go_box.change(go_fn,inputs=[],outputs=[frame_num]) | |
frame_num.change(the_thing, inputs=[magic_text,rand_box, model_name1, frame_num, frame_top,time_box, frame_box, frame_file_box, frame_tar_box], outputs=[frames,frame_files,frame_tar,frame_num,rand_box, frame_box, frame_file_box, frame_tar_box]) | |
#use_short.click(short_prompt,inputs=[input_text],outputs=magic_text) | |
#see_prompt.click(text_it,inputs=[input_text],outputs=[magic_text]) | |
#model_name1.change(set_model,inputs=model_name1,outputs=[output1,output2,output3,output4,output5,output6,output7,output8]) | |
myface.queue(concurrency_count=10) | |
myface.launch(enable_queue=True, inline=True, max_threads=10, show_api=False) |