Spaces:
Sleeping
Sleeping
import gradio as gr | |
from model.animagine_xl import generate_animagine_xl | |
from model.animesai import generate_animesai | |
from model.generate_sdxl_with_refiner import generate_sdxl_with_refiner | |
from model.ghibli import generate_ghibli | |
from model.realistic import generate_realistic | |
from model.sd_turbo import generate_sd_turbo | |
from model.waifu import generate_waifu | |
from Text2Long_text import generate_korean_story | |
# ๋ชจ๋ธ ํจ์ ๋งคํ | |
model_id = "hakurei/waifu-diffusion" | |
MODEL_FUNCTIONS = { | |
"Animagine XL": generate_animagine_xl, | |
"Animesai": generate_animesai, | |
"SDXL+Refiner": generate_sdxl_with_refiner, | |
"Ghibli": generate_ghibli, | |
"Realistic": generate_realistic, | |
"SD Turbo": generate_sd_turbo, | |
"Waifu Diffusion": generate_waifu, | |
"ํ๊ตญ์ด ๊ธด ์ด์ผ๊ธฐ ์์ฑ": lambda prompt: generate_korean_story(prompt, max_length=100), | |
} | |
def generate_story_then_images(prompt, selected_models): | |
# 1. ์ ํ์ง ์ค 'ํ๊ตญ์ด ๊ธด ์ด์ผ๊ธฐ ์์ฑ'์ด ํฌํจ๋์ด ์์ผ๋ฉด ๋จผ์ ์คํ ๋ฆฌ๋ฅผ ์์ฑ | |
story = "" | |
if "ํ๊ตญ์ด ๊ธด ์ด์ผ๊ธฐ ์์ฑ" in selected_models: | |
story = generate_korean_story(prompt, max_length=100) | |
# 2. ์ด๋ฏธ์ง ์์ฑ ๋ชจ๋ธ๋ค์๋ ์ด์ผ๊ธฐ(์คํ ๋ฆฌ)๊ฐ ์์ผ๋ฉด ๊ทธ๊ฑธ ํ๋กฌํํธ๋ก ๋ฃ์ด์ค | |
img_prompt = story if story else prompt | |
images = [ | |
MODEL_FUNCTIONS[name](img_prompt) | |
for name in selected_models | |
if name != "ํ๊ตญ์ด ๊ธด ์ด์ผ๊ธฐ ์์ฑ" | |
] | |
return images, story | |
with gr.Blocks() as demo: | |
gr.Markdown("## ์ํ๋ ์์ฑ ๋ชจ๋ธ๋ก ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ฑฐ๋, ๊ธด ํ๊ตญ์ด ์ด์ผ๊ธฐ๋ฅผ ๋จผ์ ๋ง๋ค๊ณ ๊ทธ ์ด์ผ๊ธฐ๋ก ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.") | |
prompt = gr.Textbox(label="ํ๋กฌํํธ(ํ ์คํธ๋ฅผ ์ ๋ ฅํ์ธ์)") | |
models = gr.CheckboxGroup( | |
choices=list(MODEL_FUNCTIONS.keys()), | |
label="์ฌ์ฉํ ๋ชจ๋ธ์ ์ ํํ์ธ์" | |
) | |
gallery = gr.Gallery(label="์์ฑ ์ด๋ฏธ์ง (์ ํํ ๋ชจ๋ธ๋ณ)") | |
long_textbox = gr.Textbox(label="์์ฑ๋ ์ด์ผ๊ธฐ(ํ ์คํธ)", lines=10, interactive=False) | |
generate_btn = gr.Button("์์ฑํ๊ธฐ") | |
generate_btn.click( | |
fn=generate_story_then_images, | |
inputs=[prompt, models], | |
outputs=[gallery, long_textbox] | |
) | |
demo.launch() | |