Spaces:
Paused
Paused
File size: 4,004 Bytes
c66f90b d845598 c66f90b b1ebe1d c66f90b 248b3f8 fa7e77a ad32167 d845598 ad32167 d845598 170d76d 248b3f8 c66f90b ad32167 248b3f8 c66f90b d845598 ad32167 d845598 ad32167 f066d25 170d76d c66f90b 248b3f8 c66f90b d845598 c66f90b 170d76d 248b3f8 d845598 c66f90b 170d76d 248b3f8 c66f90b 248b3f8 d845598 c66f90b 170d76d c66f90b 248b3f8 c66f90b f066d25 248b3f8 170d76d 369d95b c66f90b 248b3f8 369d95b c66f90b f066d25 d845598 c66f90b 248b3f8 c66f90b 1d5f68d 65572dd b3d2790 515dc44 65572dd 515dc44 b3d2790 248b3f8 b3d2790 515dc44 65572dd d845598 248b3f8 d845598 4fdc62e 515dc44 1d5f68d 248b3f8 e5e829a |
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 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 |
import gradio as gr
import numpy as np
import random
import spaces
from diffusers import DiffusionPipeline
import torch
# Подключение к устройству
device = "cuda" if torch.cuda.is_available() else "cpu"
model_repo_id = "stabilityai/stable-diffusion-3-medium-diffusers"
if torch.cuda.is_available():
torch_dtype = torch.bfloat16
else:
torch_dtype = torch.float32
pipe = DiffusionPipeline.from_pretrained(model_repo_id, torch_dtype=torch_dtype)
pipe = pipe.to(device)
MAX_IMAGE_SIZE = 512
examples = [
"A border collie lying in some Fall leaves as the forest trees change colors",
"A cyberpunk cityscape with neon lights and flying cars at night",
"A fantasy castle surrounded by mountains under a pink and purple sunset",
]
@spaces.GPU(duration=30)
def infer(
prompt,
width=512,
height=512,
num_inference_steps=20,
guidance_scale=7.5,
):
# Генерация изображения
image = pipe(
prompt=prompt,
num_inference_steps=num_inference_steps,
guidance_scale=guidance_scale,
width=width,
height=height,
).images[0]
return image
class CustomTheme(gr.themes.Base):
def __init__(self):
super().__init__()
self.primary_hue = "#17181B"
self.background_fill_primary = "#17181B"
self.background_fill_secondary = "#17181B"
self.background_fill_tertiary = "#17181B"
self.text_color_primary = "#FFFFFF"
self.text_color_secondary = "#FFFFFF"
self.text_color_tertiary = "#FFFFFF"
self.input_background_fill = "#17181B"
self.input_text_color = "#FFFFFF"
css = """
/* Скрываем нижний колонтитул */
footer {
visibility: hidden;
height: 0;
margin: 0;
padding: 0;
overflow: hidden;
}
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;700&display=swap');
/* Применяем шрифты */
body, input, button, textarea, select, .gr-button {
font-family: 'Poppins', sans-serif;
background-color: #17181B !important;
color: #FFFFFF;
}
/* Настройки заголовков */
h1, h2, h3, h4, h5, h6 {
font-family: 'Poppins', sans-serif;
font-weight: 700;
color: #FFFFFF;
}
/* Стиль для текстовых полей и кнопок */
input[type="text"], textarea {
background-color: #17181B !important;
color: #FFFFFF;
border: 1px solid #FFFFFF;
}
/* Цвет кнопки Generate */
.generate-button {
background-color: #5271FF !important;
color: #FFFFFF !important;
border: none;
font-weight: bold;
}
.generate-button:hover {
background-color: #405BBF !important; /* Цвет при наведении */
}
/* Выделяем текст для Prompt */
.prompt-text {
font-weight: bold;
color: #FFFFFF;
}
"""
with gr.Blocks(theme=CustomTheme(), css=css) as demo:
with gr.Column(elem_id="col-container"):
gr.Markdown("**Prompt**", elem_classes="prompt-text")
with gr.Row():
prompt = gr.Text(
label="Prompt",
show_label=False,
max_lines=1,
placeholder="Enter your prompt",
container=False,
)
run_button = gr.Button(
"Generate",
scale=0,
variant="primary",
elem_classes="generate-button",
)
result = gr.Image(label="Result", show_label=False)
gr.Examples(
examples=examples,
inputs=[prompt],
outputs=[result],
fn=infer,
cache_examples=True,
cache_mode="lazy",
)
run_button.click(
fn=infer,
inputs=[prompt],
outputs=[result],
)
if __name__ == "__main__":
demo.launch(
server_name="0.0.0.0",
server_port=7860,
share=True,
show_api=False,
)
|