import gradio as gr import os import sys import random import string import time from queue import Queue from threading import Thread text_gen = gr.Interface.load("models/Gustavosta/MagicPrompt-Stable-Diffusion") proc1 = gr.Interface.load("models/dreamlike-art/dreamlike-photoreal-2.0") 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 def send_it1(inputs, noise_level, proc=proc1): global request_counter request_counter += 1 timestamp = f"{time.time()}_{request_counter}" prompt_with_noise = add_random_noise(inputs, noise_level) + f" - {timestamp}" while queue.qsize() >= queue_threshold: time.sleep(2) queue.put(prompt_with_noise) output = proc(prompt_with_noise) return output import random import random import time # ... (existing code) import random import time # ... (existing code) def get_prompts(prompt_text): global request_counter request_counter += 1 timestamp = f"{time.time()}_{request_counter}" options = [ "Cyberpunk android", "2060", "newyork", ", style of laurie greasley" , "studio ghibli" , "akira toriyama" , "james gilleard" , "genshin impact" , "trending pixiv fanbox" , "acrylic palette knife, 4k, vibrant colors, devinart, trending on artstation, low details" ", Editorial Photography, Shot on 70mm lens, Depth of Field, Bokeh, DOF, Tilt Blur, Shutter Speed 1/1000, F/22, 32k, Super-Resolution, award winning,", ", high detail, warm lighting, godrays, vivid, beautiful, trending on artstation, by jordan grimmer, huge scene, grass, art greg rutkowski ", ", highly detailed, digital painting, artstation, illustration, art by artgerm and greg rutkowski and alphonse mucha.", ", Charlie Bowater, stanley artgerm lau, a character portrait, sots art, sharp focus, smooth, aesthetic, extremely detailed, octane render,solo, dark industrial background, rtx, rock clothes, cinematic light, intricate detail, highly detailed, high res, detailed facial features", ", portrait photograph" , "realistic" , "concept art" , "elegant, highly detailed" , "intricate, sharp focus, depth of field, f/1. 8, 85mm, medium shot, mid shot, (((professionally color graded)))" ," sharp focus, bright soft diffused light" , "(volumetric fog),", ",Cinematic film still" ," (dark city street:1.2)" , "(cold colors), damp, moist, intricate details" ,"shallow depth of field, [volumetric fog]" , "cinematic lighting, reflections, photographed on a Canon EOS R5, 50mm lens, F/2.8, HDR, 8k resolution" , "cinematic film still from cyberpunk movie" , "volumetric fog, (RAW, analog, masterpiece, best quality, soft particles, 8k, flawless perfect face, intricate details" , "trending on artstation, trending on cgsociety, dlsr, ultra sharp, hdr, rtx, antialiasing, canon 5d foto))" , "((skin details, high detailed skin texture))" , "(((perfect face))), (perfect eyes)))", # Add other prompt options here... ] if prompt_text: chosen_option = random.choice(options) return text_gen(f"{prompt_text}, {chosen_option} - {timestamp}") else: return text_gen("", timestamp) # Existing code... # Existing code... with gr.Blocks(css=".gradio-container {background-color: #fdf7e6;} footer{display:none !important;}",) as demo: gr.HTML("""
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,
""") with gr.Column(elem_id="col-container"): with gr.Row(variant="compact"): input_text = gr.Textbox( lines=8, label="Short Prompt", show_label=False, max_lines=10, placeholder="Enter a basic idea and click 'Magic Prompt'. Got no ideas? No problem, Simply just hit the magic button!", ).style( container=False, textarea={'height': '400px'} ) see_prompts = gr.Button("โจ Magic Prompt โจ").style(full_width=False) 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.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="Dreamlike Diffusion 1.0", show_label=False, show_share_button=False) output2 = gr.Image(label="Dreamlike Diffusion 1.0", show_label=False, show_share_button=False) see_prompts.click(get_prompts, inputs=[input_text], outputs=[prompt], queue=False) run.click(send_it1, inputs=[prompt, noise_level], outputs=[output1]) run.click(send_it1, inputs=[prompt, noise_level], outputs=[output2]) gr.HTML("""โค๏ธUnleash your creative side and generate mesmerizing images with just a few clicks! Enter a spark of inspiration in the "Basic Idea" text box and click the "Magic Prompt" button to elevate it to a polished masterpiece. Make any final tweaks in the "Full Prompt" box and hit the "Generate Images" button to watch your vision come to life. Experiment with the "Noise Level" for a diverse range of outputs, from similar to wildly unique. Let the fun begin!โค๏ธ