Spaces:
Build error
Build error
import gradio as gr | |
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, pipeline | |
import torch | |
from langs import LANGS | |
import numpy as np | |
import modin.pandas as pd | |
from PIL import Image | |
from diffusers import DiffusionPipeline #EulerDiscreteScheduler | |
device1 = "cuda" if torch.cuda.is_available() else "cpu" | |
pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-2-1", safety_checker=None) | |
pipe = pipe.to(device1) | |
pipe1 = pipeline('text-generation', model='daspartho/prompt-extend') | |
TASK = "translation" | |
CKPT = "facebook/nllb-200-distilled-600M" | |
model = AutoModelForSeq2SeqLM.from_pretrained(CKPT) | |
tokenizer = AutoTokenizer.from_pretrained(CKPT) | |
device = 0 if torch.cuda.is_available() else -1 | |
def translate(text): | |
""" | |
Translate the text from source lang to target lang | |
""" | |
src_lang = "zho-Hans" | |
tgt_lang = "eng_Latn" | |
max_length = 400 | |
translation_pipeline = pipeline(TASK, | |
model=model, | |
tokenizer=tokenizer, | |
src_lang=src_lang, | |
tgt_lang=tgt_lang, | |
max_length=max_length, | |
device=device) | |
result = translation_pipeline(text) | |
return result[0]['translation_text'] | |
#prompt | |
def extend_prompt(prompt): | |
return pipe1(prompt+',', num_return_sequences=1)[0]["generated_text"] | |
#stable diffusion | |
def genie (prompt, negative_prompt, scale, steps, seed): | |
generator = torch.Generator(device=device1).manual_seed(seed) | |
images = pipe(prompt, negative_prompt=negative_prompt, width=768, height=768, num_inference_steps=steps, guidance_scale=scale, num_images_per_prompt=1, generator=generator).images[0] | |
return images | |
with gr.Blocks() as demo: | |
gr.Markdown( | |
""" # <center>🥳💬💕 - Stable Diffusion All in One,随时随地,想画就画!</center> | |
### <center>🤖 - 让有人文关怀的AI造福每一个人!AI向善,文明璀璨!山水AI - Enable the future!</center> | |
""" | |
) | |
with gr.Row().style(equal_height=True): | |
inp1 = gr.Textbox(label = "请输入中文提示词", lines=1) | |
button = gr.Button("翻译成英文吧") | |
out1 = gr.Textbox(label = "翻译后的英文提示词", lines=1) | |
button.click(translate, [inp1], [out1]) | |
with gr.Row().style(equal_height=True): | |
inp2 = out1 | |
btn1 = gr.Button("让您的提示词更详细一些吧") | |
out2 = gr.Textbox(label = "更详细的英文提示词(可编辑此内容)", lines=1) | |
btn1.click(extend_prompt, [inp2], [out2]) | |
with gr.Row().style(equal_height=True): | |
inp3 = out2 | |
inp4 = gr.Textbox(label="反向关键词:删除不想要的图片特点(选填)", placeholder = "low quality, illustration", lines=1) | |
inp5 = gr.Slider(1, 25, 10, label="提示词的符合度", info="数值越大,图片越符合提示词,但同时画质会下降") | |
inp6 = gr.Slider(30, maximum=100, value=50, step=1, label="生成图片的步数", info="数值越大,图片越清晰,但运行时间会变长") | |
inp7 = gr.Slider(minimum=1, step=1, maximum=999999999999999999, randomize=True, label="seed", info="生成一个随机数") | |
with gr.Row().style(equal_height=True): | |
btn2 = gr.Button("开始生成图片吧") | |
out3 = gr.Image(label="为您生成的专属图片") | |
btn2.click(genie, [inp3, inp4, inp5, inp6, inp7], [out3]) | |
gr.Markdown( | |
""" ### <center>注意❗:请不要输入或生成会对个人以及组织造成侵害的内容,此程序仅供科研、学习及娱乐使用。用户输入或生成的内容与程序开发者无关,请自觉合法合规使用,违反者一切后果自负。</center> | |
### <center>Powered by [Stable Diffusion](https://github.com/Stability-AI/stablediffusion). Thanks to [Manjushri](https://huggingface.co/Manjushri).</center> | |
""" | |
) | |
gr.HTML(''' | |
<div class="footer"> | |
<p>🎶🖼️🎡 - It’s the intersection of technology and liberal arts that makes our hearts sing. - Steve Jobs | |
</p> | |
</div> | |
''') | |
demo.queue().launch(show_error=True) |