Spaces:
Runtime error
Runtime error
| 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") | |
| def reset_queue_periodically(): | |
| start_time = time.time() | |
| while True: | |
| if time.time() - start_time > 300: # 300 seconds = 5 minutes | |
| queue.queue.clear() | |
| start_time = time.time() | |
| time.sleep(1) | |
| def add_random_noise(prompt, noise_level=0.07): | |
| # Get the percentage of characters to add as noise | |
| percentage_noise = noise_level * 5 | |
| # Get the number of characters to add as noise | |
| num_noise_chars = int(len(prompt) * (percentage_noise/100)) | |
| # Get the indices of the characters to add noise to | |
| noise_indices = random.sample(range(len(prompt)), num_noise_chars) | |
| # Add noise to the selected characters | |
| 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(2) | |
| 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(2) | |
| 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(2) | |
| 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(2) | |
| def send_it5(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 | |
| output5 = proc1(prompt_with_noise) | |
| queue_length_counter += 1 | |
| return output5 | |
| time.sleep(2) | |
| def send_it6(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 | |
| output6 = proc1(prompt_with_noise) | |
| queue_length_counter += 1 | |
| return output6 | |
| time.sleep(2) | |
| def send_it7(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 | |
| output7 = proc1(prompt_with_noise) | |
| queue_length_counter += 1 | |
| return output7 | |
| time.sleep(2) | |
| def send_it8(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 | |
| output8 = proc1(prompt_with_noise) | |
| queue_length_counter += 1 | |
| return output8 | |
| time.sleep(2) | |
| 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(2) | |
| 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 Photoreal 2.0") | |
| output6=gr.Image(label="Dreamlike Photoreal 2.0") | |
| with gr.Row(): | |
| output7=gr.Image(label="Dreamlike Photoreal 2.0") | |
| output8=gr.Image(label="Dreamlike Photoreal 2.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() >= 15: | |
| queue.queue.clear() | |
| time.sleep(30) | |