|
import gradio as gr |
|
import os |
|
import sys |
|
from pathlib import Path |
|
import random |
|
import string |
|
import time |
|
from queue import Queue |
|
queue = Queue() |
|
|
|
text_gen=gr.Interface.load("spaces/Omnibus/MagicPrompt-Stable-Diffusion") |
|
proc1=gr.Interface.load("models/dreamlike-art/dreamlike-photoreal-2.0") |
|
proc5=gr.Interface.load("models/dreamlike-art/dreamlike-diffusion-1.0") |
|
|
|
|
|
import random |
|
|
|
def add_random_noise(prompt, noise_level=0.07): |
|
|
|
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) |
|
for index in noise_indices: |
|
prompt_list[index] = random.choice(string.ascii_letters + string.punctuation) |
|
return "".join(prompt_list) |
|
|
|
queue_length_counter = 0 |
|
|
|
def send_it1(inputs, noise_level, proc1=proc1): |
|
global queue_length_counter |
|
prompt_with_noise = add_random_noise(inputs, noise_level) |
|
if queue_length_counter >= 15: |
|
if not queue.empty(): |
|
queue.queue.clear() |
|
queue_length_counter = 0 |
|
output1 = proc1(prompt_with_noise) |
|
queue_length_counter += 1 |
|
return output1 |
|
time.sleep(1) |
|
|
|
def send_it2(inputs, noise_level, proc1=proc1): |
|
global queue_length_counter |
|
prompt_with_noise = add_random_noise(inputs, noise_level) |
|
if queue_length_counter >= 15: |
|
if not queue.empty(): |
|
queue.queue.clear() |
|
queue_length_counter = 0 |
|
output2 = proc1(prompt_with_noise) |
|
queue_length_counter += 1 |
|
return output2 |
|
time.sleep(1) |
|
|
|
def send_it3(inputs, noise_level, proc1=proc1): |
|
global queue_length_counter |
|
prompt_with_noise = add_random_noise(inputs, noise_level) |
|
if queue_length_counter >= 15: |
|
if not queue.empty(): |
|
queue.queue.clear() |
|
queue_length_counter = 0 |
|
output3 = proc1(prompt_with_noise) |
|
queue_length_counter += 1 |
|
return output3 |
|
time.sleep(1) |
|
|
|
def send_it4(inputs, noise_level, proc1=proc1): |
|
global queue_length_counter |
|
prompt_with_noise = add_random_noise(inputs, noise_level) |
|
if queue_length_counter >= 15: |
|
if not queue.empty(): |
|
queue.queue.clear() |
|
queue_length_counter = 0 |
|
output4 = proc1(prompt_with_noise) |
|
queue_length_counter += 1 |
|
return output4 |
|
time.sleep(1) |
|
|
|
def send_it5(inputs, noise_level, proc5=proc5): |
|
global queue_length_counter |
|
prompt_with_noise = add_random_noise(inputs, noise_level) |
|
if queue_length_counter >= 15: |
|
if not queue.empty(): |
|
queue.queue.clear() |
|
queue_length_counter = 0 |
|
output5 = proc5(prompt_with_noise) |
|
queue_length_counter += 1 |
|
return output5 |
|
time.sleep(1) |
|
|
|
def send_it6(inputs, noise_level, proc5=proc5): |
|
global queue_length_counter |
|
prompt_with_noise = add_random_noise(inputs, noise_level) |
|
if queue_length_counter >= 15: |
|
if not queue.empty(): |
|
queue.queue.clear() |
|
queue_length_counter = 0 |
|
output6 = proc5(prompt_with_noise) |
|
queue_length_counter += 1 |
|
return output6 |
|
time.sleep(1) |
|
|
|
def send_it7(inputs, noise_level, proc5=proc5): |
|
global queue_length_counter |
|
prompt_with_noise = add_random_noise(inputs, noise_level) |
|
if queue_length_counter >= 15: |
|
if not queue.empty(): |
|
queue.queue.clear() |
|
queue_length_counter = 0 |
|
output7 = proc5(prompt_with_noise) |
|
queue_length_counter += 1 |
|
return output7 |
|
time.sleep(1) |
|
|
|
def send_it8(inputs, noise_level, proc5=proc5): |
|
global queue_length_counter |
|
prompt_with_noise = add_random_noise(inputs, noise_level) |
|
if queue_length_counter >= 15: |
|
if not queue.empty(): |
|
queue.queue.clear() |
|
queue_length_counter = 0 |
|
output8 = proc5(prompt_with_noise) |
|
queue_length_counter += 1 |
|
return output8 |
|
time.sleep(1) |
|
|
|
|
|
|
|
def get_prompts(prompt_text): |
|
global queue_length_counter |
|
if queue_length_counter >= 15: |
|
if not queue.empty(): |
|
queue.queue.clear() |
|
queue_length_counter = 0 |
|
output = text_gen(prompt_text) |
|
queue_length_counter += 1 |
|
return output |
|
time.sleep(1) |
|
|
|
|
|
with gr.Blocks() as myface: |
|
with gr.Row(): |
|
|
|
input_text=gr.Textbox(label="Short Prompt") |
|
see_prompts=gr.Button("Magic Prompt") |
|
with gr.Row(): |
|
|
|
prompt=gr.Textbox(label="Enter Prompt") |
|
noise_level=gr.Slider(minimum=0.1, maximum=3, step=0.1, label="Noise Level: Controls how much randomness is added to the input before it is sent to the model. Higher noise level produces more diverse outputs, while lower noise level produces similar outputs.") |
|
run=gr.Button("Generate") |
|
|
|
with gr.Row(): |
|
like_message = gr.Button("❤️ Press the Like Button if you enjoy my space! ❤️") |
|
with gr.Row(): |
|
output1=gr.Image(label="Dreamlike Photoreal 2.0") |
|
output2=gr.Image(label="Dreamlike Photoreal 2.0") |
|
with gr.Row(): |
|
output3=gr.Image(label="Dreamlike Photoreal 2.0") |
|
output4=gr.Image(label="Dreamlike Photoreal 2.0") |
|
with gr.Row(): |
|
output5=gr.Image(label="Dreamlike Diffusion 1.0") |
|
output6=gr.Image(label="Dreamlike Diffusion 1.0") |
|
with gr.Row(): |
|
output7=gr.Image(label="Dreamlike Diffusion 1.0") |
|
output8=gr.Image(label="Dreamlike Diffusion 1.0") |
|
|
|
|
|
run.click(send_it1, inputs=[prompt, noise_level], outputs=[output1]) |
|
run.click(send_it2, inputs=[prompt, noise_level], outputs=[output2]) |
|
run.click(send_it3, inputs=[prompt, noise_level], outputs=[output3]) |
|
run.click(send_it4, inputs=[prompt, noise_level], outputs=[output4]) |
|
run.click(send_it5, inputs=[prompt, noise_level], outputs=[output5]) |
|
run.click(send_it6, inputs=[prompt, noise_level], outputs=[output6]) |
|
run.click(send_it7, inputs=[prompt, noise_level], outputs=[output7]) |
|
run.click(send_it8, inputs=[prompt, noise_level], outputs=[output8]) |
|
see_prompts.click(get_prompts, inputs=[input_text], outputs=[prompt]) |
|
|
|
|
|
|
|
myface.queue(concurrency_count=8) |
|
myface.launch(enable_queue=True, inline=True) |
|
while True: |
|
if queue.qsize() >= 20: |
|
queue.queue.clear() |
|
time.sleep(30) |
|
|