import gradio as gr import os import random import time from zipfile import ZipFile import tempfile import string import time directory = tempfile.mkdtemp(dir="./") imagens = [] model = gr.Interface.load( "models/dreamlike-art/dreamlike-photoreal-2.0", ) #o = os.getenv("P") o = "V" m_out = ("""

Please choose a Simpler Prompt, or Upgrade for faster loading.

""") loading=("""
""") def add_random_noise(prompt, noise_level=1.00): if noise_level == 0: noise_level = 0.00 if noise_level == None: noise_level = 1.00 percentage_noise = noise_level * 5 num_noise_chars = int(len(prompt) * (percentage_noise/100)) noise_indices = random.sample(range(len(prompt)), num_noise_chars) prompt_list = list(prompt) noise_chars = list(string.ascii_letters + string.punctuation + ' ' + string.digits) noise_chars.extend(['😍', 'ðŸ’Đ', '😂', 'ðŸĪ”', '😊', 'ðŸĪ—', '😭', '🙄', '😷', 'ðŸĪŊ', 'ðŸĪŦ', 'ðŸĨī', 'ðŸ˜ī', 'ðŸĪĐ', 'ðŸĨģ', '😔', 'ðŸ˜Đ', 'ðŸĪŠ', '😇', 'ðŸĪĒ', '😈', 'ðŸ‘đ', 'ðŸ‘ŧ', 'ðŸĪ–', 'ðŸ‘―', '💀', '🎃', '🎅', '🎄', '🎁', '🎂', '🎉', '🎈', '🎊', 'ðŸŽŪ', 'âĪïļ', '💔', '💕', '💖', '💗', 'ðŸķ', 'ðŸą', '🐭', 'ðŸđ', 'ðŸĶŠ', 'ðŸŧ', 'ðŸĻ', 'ðŸŊ', 'ðŸĶ', '🐘', 'ðŸ”Ĩ', '🌧ïļ', '🌞', '🌈', 'ðŸ’Ĩ', 'ðŸŒī', '🌊', '🌚', 'ðŸŒŧ', 'ðŸŒļ', 'ðŸŽĻ', '🌅', '🌌', '☁ïļ', '⛈ïļ', '❄ïļ', '☀ïļ', 'ðŸŒĪïļ', '⛅ïļ', 'ðŸŒĨïļ', 'ðŸŒĶïļ', '🌧ïļ', 'ðŸŒĐïļ', 'ðŸŒĻïļ', 'ðŸŒŦïļ', '☔ïļ', '🌎ïļ', 'ðŸ’Ļ', '🌊ïļ', '🌈']) for index in noise_indices: prompt_list[index] = random.choice(noise_chars) return "".join(prompt_list) def build(): def zip_files(): zip_name = f"{b.prompt.split(' ')[0]}_{random.randint(0, 10000)}.zip" with ZipFile(zip_name, "w") as zipObj: for file in b.imagens: zipObj.write(file, os.path.basename(file)) b.imagens = [] return zip_name def clear(): return gr.update(value=0),gr.update(value=0) def start(): stamp = time.time() return gr.update(value=stamp),gr.update(value=0) def end(stamp): ts = stamp + 360 ti = time.time() if ti > ts and stamp != 0: return gr.update(value=1),gr.HTML.update(f"{m_out}",visible=True) else: return gr.update(value=0),None def im_fn(prompt,noise_level,h=None): try: if h == o: prompt_with_noise = add_random_noise(prompt, noise_level) imagem = model(prompt_with_noise) b.prompt = prompt b.imagens.append(imagem) return imagem elif h != o: return(None,None) except Exception as E: return None, None def cl_fac(): return "",gr.HTML.update(f"{loading}") with gr.Blocks() as b: b.imagens: list = [] with gr.Row(): with gr.Column(): prompt = gr.Textbox(label="Prompt", placeholder="Enter a prompt") noise_level = gr.Slider(minimum=0.0, maximum=10, step=0.1, label="Noise Level between images.") with gr.Column(): with gr.Row(): btn1 = gr.Button("Generate") btn2 = gr.Button("Clear") message=gr.HTML("
") message2=gr.HTML("",visible=False) with gr.Row(): out1 = gr.Image() out2 = gr.Image() with gr.Row(): out3 = gr.Image() out4 = gr.Image() with gr.Row(): out5 = gr.Image() out6 = gr.Image() with gr.Row(): # btn3 = gr.Button("Download") caixa = gr.File(file_count="multiple", file_types=["text", ".json", ".csv", "image"]) with gr.Row(visible=False): h_variavel=gr.Textbox(value="V") t_state=gr.Number() t_switch=gr.Textbox(value=0) auto= gr.Image() def clear_all(): return "",None,None,None,None,None,None,None,None,1,gr.HTML.update("
") fac_b = gr.Textbox(value="",visible=False) def noth(): return gr.HTML.update("
") #a1=btn1.click(noth,None,btn1,every=1) btn1.click(cl_fac,None,[fac_b,message],show_progress=False) b1=btn1.click(start,None,[t_state,t_switch],show_progress=True) sta = t_state.change(end,t_state,[t_switch,message2],every=1,show_progress=True) b2=btn1.click(im_fn,[prompt,noise_level,h_variavel],[out1,], show_progress=True) b3=out1.change(im_fn,[prompt,noise_level,h_variavel],[out2,], show_progress=True) b4=out2.change(im_fn,[prompt,noise_level,h_variavel],[out3,], show_progress=True) b5=out3.change(im_fn,[prompt,noise_level,h_variavel],[out4,], show_progress=True) b6=out4.change(im_fn,[prompt,noise_level,h_variavel],[out5,], show_progress=True) b7=out5.change(im_fn,[prompt,noise_level,h_variavel],[out6], show_progress=True) b8=out6.change(noth,None,[message], show_progress=False) b8=out6.change(zip_files,None,[caixa], show_progress=False) swi=t_switch.change(clear,None,[t_switch,fac_b], cancels=[sta,b2,b3,b4,b5,b6,b7],show_progress=False) #btn2.click(noth,None,message,cancels=[b1,sta,b2,b3,b4,b5,swi],show_progress=False) btn2.click(clear_all, None,[fac_b,prompt,out1,out2,out3,out4,out5,out6,t_state,t_switch,message],cancels=[b1,sta,b2,b3,b4,b5,b6,b7,b8,swi],show_progress=False) # btn3.click(zip_files,None,[caixa],show_progress=False) # caixa.change(noth,None,[message],show_progress=False) b.queue(concurrency_count=100).launch(show_api=False) build()