Spaces:
Running
on
Zero
Running
on
Zero
File size: 3,764 Bytes
7abf701 a6021dc 8ea8af0 7abf701 5114b0d 7abf701 8ea8af0 a6021dc 8ea8af0 a6021dc 8ea8af0 a6021dc 8ea8af0 7abf701 8ea8af0 7abf701 5114b0d a2b21c2 5114b0d 7abf701 3319cd3 a2b21c2 7abf701 f4e88b8 797e81e a2b21c2 7abf701 8ea8af0 a2b21c2 7abf701 8ea8af0 a2b21c2 8ea8af0 a2b21c2 8ea8af0 7abf701 8ea8af0 a2b21c2 7abf701 8ea8af0 7abf701 a6021dc 7abf701 8ea8af0 a6021dc 7abf701 4ff5580 |
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 |
import gradio as gr
import numpy as np
import random
import spaces
import torch
from diffusers import DiffusionPipeline
from transformers import pipeline
# Translation pipeline and hardware settings
device = "cuda" if torch.cuda.is_available() else "cpu"
translator = pipeline("translation", model="Helsinki-NLP/opus-mt-ko-en", device=device)
dtype = torch.bfloat16
pipe = DiffusionPipeline.from_pretrained("black-forest-labs/FLUX.1-schnell", torch_dtype=dtype).to(device)
MAX_SEED = np.iinfo(np.int32).max
MAX_IMAGE_SIZE = 2048
@spaces.GPU()
def infer(prompt, seed=42, randomize_seed=False, width=1024, height=1024, num_inference_steps=4, progress=gr.Progress(track_tqdm=True)):
if randomize_seed:
seed = random.randint(0, MAX_SEED)
generator = torch.Generator().manual_seed(seed)
# Korean input detection and translation
if any('\uAC00' <= char <= '\uD7A3' for char in prompt):
print("Translating Korean prompt...")
translated_prompt = translator(prompt, max_length=512)[0]['translation_text']
print("Translated prompt:", translated_prompt)
prompt = translated_prompt
image = pipe(
prompt = prompt,
width = width,
height = height,
num_inference_steps = num_inference_steps,
generator = generator,
guidance_scale=0.0
).images[0]
return image, seed
examples = [
["[ํ๊ธ] [์คํ์ผ: ๋ชจ๋] [์์: ๋นจ๊ฐ๊ณผ ๊ฒ์ ] [์ปจ์
: ์๋น] [ํ
์คํธ: '๋ง์๋์ง'] [๋ฐฐ๊ฒฝ: ์ฌํ]"],
["[Style: Corporate] [Color: Navy and Silver] [Concept: Finance] [Text: 'TRUST'] [Background: Professional]"],
["[Style: Dynamic] [Color: Purple and Orange] [Concept: Creative Agency] [Text: 'SPARK'] [Background: Abstract]"],
["[Style: Minimalist] [Color: Red and White] [Concept: Sports] [Text: 'POWER'] [Background: Clean]"]
]
css = """
footer {visibility: hidden}
.container {max-width: 850px; margin: auto; padding: 20px}
.title {text-align: center; margin-bottom: 20px}
#prompt {min-height: 50px}
#result {min-height: 400px}
.gr-box {border-radius: 10px; border: 1px solid #ddd}
"""
with gr.Blocks(theme="Yntec/HaleyCH_Theme_Orange", css=css) as demo:
gr.HTML("<h1 class='title'>LOGO Generator AI</h1>")
with gr.Column(elem_id="container"):
with gr.Group():
prompt = gr.Text(
label="PROMPT",
placeholder="Text input Prompt (Korean input supported)",
lines=2
)
run_button = gr.Button("Generate Logo", variant="primary")
with gr.Row():
result = gr.Image(label="Generated Logo", show_label=True)
with gr.Accordion("Advanced Settings", open=False):
with gr.Row():
seed = gr.Slider(label="Seed", minimum=0, maximum=MAX_SEED, step=1, value=0)
randomize_seed = gr.Checkbox(label="Random Seed", value=True)
with gr.Row():
width = gr.Slider(label="Width", minimum=256, maximum=MAX_IMAGE_SIZE, step=32, value=512)
height = gr.Slider(label="Height", minimum=256, maximum=MAX_IMAGE_SIZE, step=32, value=512)
num_inference_steps = gr.Slider(label="Quality", minimum=1, maximum=50, step=1, value=4)
gr.Examples(
examples=examples,
fn=infer,
inputs=[prompt],
outputs=[result, seed],
cache_examples="lazy"
)
gr.on(
triggers=[run_button.click, prompt.submit],
fn=infer,
inputs=[prompt, seed, randomize_seed, width, height, num_inference_steps],
outputs=[result, seed]
)
demo.launch() |