File size: 2,016 Bytes
c8f1f54 368f9e8 4fe456a c8f1f54 4fe456a c8f1f54 368f9e8 4fe456a c8f1f54 4fe456a c8f1f54 368f9e8 c8f1f54 4fe456a c8f1f54 368f9e8 c8f1f54 4fe456a 368f9e8 c8f1f54 368f9e8 c8f1f54 4fe456a 368f9e8 4fe456a 368f9e8 c8f1f54 4fe456a c8f1f54 368f9e8 c8f1f54 |
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 |
import gradio as gr
from diffusers import AutoPipelineForText2Image
from PIL import Image, ImageDraw, ImageFont
import torch
import random
device = "cuda" if torch.cuda.is_available() else "cpu"
pipe = AutoPipelineForText2Image.from_pretrained(
"stabilityai/sdxl-turbo",
torch_dtype=torch.float16 if device == "cuda" else torch.float32,
variant="fp16" if device == "cuda" else None
)
pipe = pipe.to(device)
MAX_SEED = 2**32 - 1
def add_watermark(image):
draw = ImageDraw.Draw(image)
font = ImageFont.load_default()
text = "SelamGPT"
margin = 10
x = image.width - draw.textlength(text, font=font) - margin
y = image.height - 20
draw.text((x, y), text, font=font, fill=(255, 255, 255))
return image
def generate(prompt, seed, randomize_seed):
if randomize_seed or seed == 0:
seed = random.randint(0, MAX_SEED)
generator = torch.Generator(device=device).manual_seed(seed)
image = pipe(
prompt=prompt,
num_inference_steps=2,
guidance_scale=0.0,
generator=generator,
).images[0]
image = add_watermark(image)
return image, seed
examples = [
"Futuristic Ethiopian city at sunset, detailed, cinematic",
"α αα΅ α«α« αα΅α₯ α¨α°α°αα¨ α¨α³αα£α α¨α°α α αα΅α α¨α³α°α¨ αα α₯ααα",
]
with gr.Blocks() as demo:
gr.Markdown("## π¨ SelamGPT - Super Fast Text-to-Image Generator")
prompt = gr.Textbox(label="Prompt", placeholder="Type your idea in English or Amharic")
run = gr.Button("Generate")
result = gr.Image(label="Generated Image")
with gr.Accordion("Advanced Settings", open=False):
seed = gr.Slider(label="Seed", minimum=0, maximum=MAX_SEED, step=1, value=0)
randomize_seed = gr.Checkbox(label="Randomize seed", value=True)
gr.Examples(examples=examples, inputs=[prompt])
run.click(fn=generate, inputs=[prompt, seed, randomize_seed], outputs=[result, seed])
if __name__ == "__main__":
demo.launch()
|