File size: 1,378 Bytes
bbe7ddd
de0a6cb
758daeb
 
5db7bfe
6c41fdf
e04ef84
 
 
924c36b
758daeb
6c41fdf
 
 
 
758daeb
 
 
 
de0a6cb
6c41fdf
8dd67e8
 
 
de0a6cb
16108ce
de0a6cb
85c1371
 
 
 
0ea6823
6c41fdf
924c36b
85c1371
 
 
de0a6cb
6c41fdf
dfde0fa
de0a6cb
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
import os
import gradio as gr
from openai import OpenAI
client = OpenAI(api_key=os.getenv("API_KEY"))

def generate_image(prompt, code, size_512):
    if code != os.getenv("code"):
        raise gr.Error("❗ Не верный ключ!")
        return None
    size = "256x256" if size_512 else "1024x1024"
    response = client.images.generate(
        model="dall-e-3",
        prompt=prompt,
        size=size,
        n=1,
    )

    image_url = response.data[0].url
    print(image_url)
    return image_url

css = """
footer {visibility: hidden !important;}
"""
# Создание интерфейса с помощью Gradio
with gr.Blocks(css=css, theme='YTheme/Sketch') as demo:
    with gr.Row():
        with gr.Column():
            with gr.Row():
                code = gr.Textbox(label="Ключ доступа", type="password")
            with gr.Row():
                prompt_input = gr.Textbox(label="Описание изображения", lines=3)
            with gr.Row():
                size_512_checkbox = gr.Checkbox(label="256x256", value=False)
            submit_btn = gr.Button("Генерация", variant='primary')
        with gr.Column():
            image_output = gr.Image(label="Изображение")
    
    submit_btn.click(fn=generate_image, inputs=[prompt_input, code, size_512_checkbox], outputs=image_output)

demo.launch()