Spaces:
Running
Running
File size: 2,442 Bytes
f86ef0c 55f4105 f86ef0c 521a864 f86ef0c 37d740a 55f4105 cd28a2d 8fb92bc cd28a2d f86ef0c f5b7834 f86ef0c 9e8c24d f86ef0c 1b0d98c eb5cb7c f86ef0c 6b98730 3eb21bd e577eb4 8172e17 cd28a2d 7c7de36 e577eb4 8172e17 9e8c24d 7c7de36 9e8c24d f86ef0c |
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 |
import gradio as gr
import requests
import io
import random
import os
from PIL import Image
from deep_translator import GoogleTranslator
from langdetect import detect
API_URL = "https://api-inference.huggingface.co/models/openskyml/dalle-3-xl"
API_TOKEN = os.getenv("HF_READ_TOKEN") # it is free
headers = {"Authorization": f"Bearer {API_TOKEN}"}
def query(prompt, model, is_negative=False, steps=20, cfg_scale=7, seed=-1):
language = detect(prompt)
if language == 'ru':
prompt = GoogleTranslator(source='ru', target='en').translate(prompt)
print(prompt)
if model == 'DALL-E 3 XL':
API_URL = "https://api-inference.huggingface.co/models/openskyml/dalle-3-xl"
payload = {
"inputs": prompt,
"is_negative": is_negative,
"steps": steps,
"cfg_scale": cfg_scale,
"seed": seed
}
image_bytes = requests.post(API_URL, headers=headers, json=payload).content
image = Image.open(io.BytesIO(image_bytes))
return image
css = """
footer {visibility: hidden !important;}
"""
with gr.Blocks(css=css) as dalle:
with gr.Tab("Базовые настройки"):
with gr.Row():
with gr.Column(elem_id="prompt-container"):
text_prompt = gr.Textbox(label="Prompt", placeholder="Описание изображения", lines=1, elem_id="prompt-text-input")
model = gr.Radio(label="Модель", value="DALL-E 3 XL", choices=["DALL-E 3 XL"])
with gr.Tab("Расширенные настройки"):
negative_prompt = gr.Textbox(label="Negative Prompt", placeholder="Чего не должно быть на изображении", value="text, blurry, fuzziness", lines=1, elem_id="negative-prompt-text-input")
steps = gr.Slider(label="Sampling Steps", value=20, minimum=1, maximum=30, step=1)
cfg = gr.Slider(label="CFG Scale", value=1, minimum=1, maximum=20, step=1)
seed = gr.Slider(label="Сид", value=-1, minimum=-1, maximum=2147483647, step=1)
with gr.Row():
text_button = gr.Button("Генерация", variant='primary', elem_id="gen-button")
with gr.Row():
image_output = gr.Image(type="pil", label="Изображение", elem_id="gallery")
text_button.click(query, inputs=[text_prompt, model, negative_prompt, steps, cfg, seed], outputs=image_output)
dalle.launch(show_api=False) |