File size: 4,552 Bytes
b56f39c daf40c8 b56f39c 868c838 b56f39c 868c838 b56f39c 868c838 b56f39c |
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 117 118 119 120 121 122 123 124 125 |
import gradio as gr
import os
import sys
import random
import string
import time
from queue import Queue
from threading import Thread
proc1 = gr.Interface.load("models/segmind/SSD-1B")
def restart_script_periodically():
while True:
random_time = random.randint(540, 600)
time.sleep(random_time)
os.execl(sys.executable, sys.executable, *sys.argv)
restart_thread = Thread(target=restart_script_periodically, daemon=True)
restart_thread.start()
queue = Queue()
queue_threshold = 100
def add_random_noise(prompt, noise_level=0.00):
if noise_level == 0:
noise_level = 0.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)
# Existing code...
import uuid # Import the UUID library
# Existing code...
# Existing code...
request_counter = 0 # Global counter to track requests
# Defining the image styles and default style
IMAGE_STYLES = [
"No style",
"Cinematic",
"Photographic",
"Anime",
"Manga",
"Digital Art",
"Pixel art",
"Fantasy art",
"Neonpunk",
"3D Model"
]
DEFAULT_IMAGE_STYLE = "Cinematic"
def send_it1(inputs, noise_level, style, proc=proc1):
global request_counter
request_counter += 1
timestamp = f"{time.time()}_{request_counter}"
advanced_options = f"\nStyle: {style}\n"
negative_prompt =" "
prompt_with_noise = add_random_noise(inputs, noise_level) + f" - {timestamp}"+ advanced_options +negative_prompt
while queue.qsize() >= queue_threshold:
time.sleep(2)
queue.put(prompt_with_noise)
output = proc(prompt_with_noise)
return output
# ... (existing code)
# ... (existing code)
with gr.Blocks(css=".gradio-container {background-color: #fdf7e6;} footer{display:none !important;}",) as demo:
with gr.Column(elem_id="col-container"):
with gr.Row(variant="compact"):
prompt = gr.Textbox(
lines=8,
label="Enter your prompt",
show_label=False,
max_lines=10,
placeholder="Full Prompt",
).style(
container=False,
textarea={'height': '400px'}
)
run = gr.Button("Generate Images").style(full_width=False)
with gr.Accordion("Advanced options", open=False):
with gr.Row():
style_selection = gr.Radio(
show_label=True, container=True, interactive=True,
choices=IMAGE_STYLES,
value=DEFAULT_IMAGE_STYLE,
label='Image Style'
)
negative_prompt = gr.Textbox(label="Negative Prompt (Optional)", placeholder="Example: blurry, unfocused", lines=2)
with gr.Row():
with gr.Row():
noise_level = gr.Slider(minimum=0.0, maximum=3, step=0.1, label="Noise Level")
with gr.Row():
with gr.Row():
output1 = gr.Image(label="", show_label=False, show_share_button=False)
output2 = gr.Image(label="", show_label=False, show_share_button=False)
# Adjust the click event to include the style_selection Radio component
run.click(send_it1, inputs=[prompt, noise_level, style_selection, negative_prompt], outputs=[output1])
run.click(send_it1, inputs=[prompt, noise_level, style_selection, negative_prompt], outputs=[output2])
demo.launch(enable_queue=True, inline=True)
|