Dao3's picture
Update app.py
a1c20ca
raw
history blame
6.62 kB
import gradio as gr
import os
import sys
from pathlib import Path
import random
import string
import time
from queue import Queue
from threading import Thread
import emoji
text_gen=gr.Interface.load("spaces/Dao3/MagicPrompt-Stable-Diffusion")
def get_prompts(prompt_text):
if prompt_text:
return text_gen("dreamlikeart, " + prompt_text)
else:
return text_gen("")
proc1=gr.Interface.load("models/dreamlike-art/dreamlike-diffusion-1.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)
def send_it1(inputs, noise_level, proc1=proc1):
prompt_with_noise = add_random_noise(inputs, noise_level)
while queue.qsize() >= queue_threshold:
time.sleep(2)
queue.put(prompt_with_noise)
output1 = proc1(prompt_with_noise)
return output1
def send_it2(inputs, noise_level, proc1=proc1):
prompt_with_noise = add_random_noise(inputs, noise_level)
while queue.qsize() >= queue_threshold:
time.sleep(2)
queue.put(prompt_with_noise)
output2 = proc1(prompt_with_noise)
return output2
#def send_it3(inputs, noise_level, proc1=proc1):
#prompt_with_noise = add_random_noise(inputs, noise_level)
#while queue.qsize() >= queue_threshold:
#time.sleep(2)
#queue.put(prompt_with_noise)
#output3 = proc1(prompt_with_noise)
#return output3
#def send_it4(inputs, noise_level, proc1=proc1):
#prompt_with_noise = add_random_noise(inputs, noise_level)
#while queue.qsize() >= queue_threshold:
#time.sleep(2)
#queue.put(prompt_with_noise)
#output4 = proc1(prompt_with_noise)
#return output4
with gr.Blocks(css='style.css') as demo:
gr.HTML(
"""
<div style="text-align: center; max-width: 650px; margin: 0 auto;">
<div>
<h1 style="font-weight: 900; font-size: 3rem; margin-bottom:20px;">
ๅนปๆขฆ-1.0
</h1>
</div>
<p style="margin-bottom: 10px; font-size: 96%">
ๅทฎๅผ‚็จ‹ๅบฆ: ็”จๆ•ฐๅ€ผ่ฐƒ่Š‚ไธคๅผ ๅ›พ็š„ๅทฎๅผ‚็จ‹ๅบฆใ€‚ๆ•ฐๅ€ผ่ถŠๅคง๏ผŒไธคๅผ ๅ›พ็š„ๅทฎๅผ‚่ถŠๅคง๏ผŒๅไน‹่ถŠๅฐใ€‚
</p>
<p style="margin-bottom: 10px; font-size: 98%">
โค๏ธ ๅ–œๆฌข็š„่ฏ๏ผŒๅฐฑ็‚นไธŠ้ข็š„โค๏ธๅง~โค๏ธ</a>
</p>
<p style="margin-bottom: 10px; font-size: 98%">
โค๏ธ ๆŽจ่<a href="https://i-robot.life">I-Robot.Life</a>,ๅ‘็Žฐๆ›ดๅคšAIๅทฅๅ…ท โค๏ธ</a>
</p>
</div>
"""
)
with gr.Column(elem_id="col-container"):
with gr.Row(variant="compact"):
input_text = gr.Textbox(
label="Short Prompt",
show_label=False,
max_lines=2,
placeholder="่พ“ๅ…ฅไฝ ็š„ๆƒณ่ฑก๏ผˆ่‹ฑๆ–‡่ฏๆฑ‡๏ผ‰๏ผŒ็„ถๅŽๆŒ‰ๅณ่พนๆŒ‰้’ฎใ€‚ๆฒก็ตๆ„Ÿ๏ผŸ็›ดๆŽฅๆŒ‰๏ผ",
).style(
container=False,
)
see_prompts = gr.Button("โœจ ๅ’’่ฏญๆ˜พ็Žฐ โœจ").style(full_width=False)
with gr.Row(variant="compact"):
prompt = gr.Textbox(
label="Enter your prompt",
show_label=False,
max_lines=2,
placeholder="ๅฏ่พ“ๅ…ฅๅฎŒๆ•ดๆ่ฟฐ่ฏ๏ผŒๆˆ–่€…็”จๅ’’่ฏญๆ˜พ็ŽฐๆŒ‰้’ฎ็”Ÿๆˆ",
).style(
container=False,
)
run = gr.Button("โœจๅนปๆขฆๆ˜พๅฝขโœจ").style(full_width=False)
with gr.Row():
with gr.Row():
noise_level = gr.Slider(minimum=0.0, maximum=3, step=0.1, label="ๅทฎๅผ‚็จ‹ๅบฆ")
with gr.Row():
with gr.Row():
output1=gr.Image(label="Dreamlike Diffusion 1.0",show_label=False)
output2=gr.Image(label="Dreamlike Diffusion 1.0",show_label=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_it2, inputs=[prompt, noise_level], outputs=[output2])
with gr.Row():
gr.HTML(
"""
<div class="footer">
<p> <a href="https://huggingface.co/dreamlike-art/dreamlike-diffusion-1.0">Stable Diffusionๆจกๅž‹Dreamlike Diffusion 1.0็š„ไธ€ไธชๅบ”็”จ</a> ๏ผŒๆœฌๆกˆไพ‹ๆœ€ๅˆไฝœ่€…<a href="https://twitter.com/DavidJohnstonxx/">Phenomenon1981</a>ใ€‚
</p>
</div>
<div class="acknowledgments" style="font-size: 115%">
<p>
่ฟ™ไธชๆจกๅž‹ๅ’Œ<a href="https://huggingface.co/spaces/Dao3/DreamlikeArt-PhotoReal-2.0">ๅนปๆขฆๆˆ็œŸ</a>็š„ๅŒบๅˆซๆ˜ฏ๏ผšๅนปๆขฆๆˆ็œŸๆ›ด็œŸๅฎž๏ผŒ่ฟ™ไธชๆจกๅž‹ๆ›ด่™šๅนปใ€‚ </p>
</div>
<div class="acknowledgments" style="font-size: 115%">
<p>
ๅฎ‰ๅˆฉ๏ผš่ฟ˜ๆœ‰ไธ€ไธชๆฑ‰ๅŒ–้กน็›ฎ๏ผš<a href="https://tiwenti.chat/">TiwenTi.chat</a>๏ผŒ่ฟ™ๆ˜ฏไธ€ไธชChatGPT็š„ไธญๆ–‡ๆกˆไพ‹ๅบ“๏ผŒๆŒ‰็…งๅทฅๅ…ท็”จ้€”ๅ’Œ่ง’่‰ฒๆ‰ฎๆผ”็”จ้€”ๅšไบ†ๅˆ†็ฑป๏ผŒๆฌข่ฟŽๅŽป็œ‹ๅŽปๅˆ†ไบซ~ </p>
</p>
</div>
"""
)
demo.launch(enable_queue=True, inline=True)
block.queue(concurrency_count=100)