File size: 3,079 Bytes
e547b24
 
 
 
 
 
 
 
 
 
 
df85d56
4a22dd6
e547b24
 
 
 
130e6a7
6f5a32e
e547b24
 
 
 
9be63af
e547b24
 
 
130e6a7
e547b24
 
7281220
e547b24
6f5a32e
 
e547b24
 
 
 
 
 
 
e92be6e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6f5a32e
e547b24
 
6f5a32e
e547b24
 
 
02f8cfa
bc84ac0
02f8cfa
 
73f7edc
e547b24
 
8886d40
4a22dd6
02f8cfa
 
 
 
bc84ac0
130e6a7
02f8cfa
 
 
 
e547b24
130e6a7
e547b24
d82c582
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
import gradio as gr
import requests
import io
import random
import os
import time
from PIL import Image
from deep_translator import GoogleTranslator
import json

# Project by Nymbo
alto_api= "https://api-inference.huggingface.co/models/enhanceaiteam/Flux-uncensored"
API_URL = "https://api-inference.huggingface.co/models/black-forest-labs/FLUX.1-schnell"
API_TOKEN = os.getenv("HF_READ_TOKEN")
headers = {"Authorization": f"Bearer {API_TOKEN}"}
timeout = 100

def query(prompt):
    if prompt == "" or prompt == None:
        return None

    key = random.randint(0, 999)
    
    API_TOKEN = random.choice([os.getenv("HF_READ_TOKEN")])
    headers = {"Authorization": f"Bearer {API_TOKEN}"}
    
    payload = {
        "inputs": prompt
    }

    response = requests.post(API_URL, headers=headers, json=payload, timeout=timeout)
    if response.status_code != 200:
        print(f"Error: Failed to get image. Response status: {response.status_code}")
        print(f"Response content: {response.text}")
        if response.status_code == 503:
            raise gr.Error(f"{response.status_code} : The model is being loaded")
        raise gr.Error(f"{response.status_code}")
    
    try:
        image_bytes = response.content
        image = Image.open(io.BytesIO(image_bytes))

        width, height = image.size
        new_width = 640
        new_height = 1024
        left = (width - new_width) / 2
        top = (height - new_height) / 2
        right = (width + new_width) / 2
        bottom = (height + new_height) / 2
        image = image.crop((left, top, right, bottom))
        
        # Изменение экспозиции (яркости)
        enhancer = ImageEnhance.Brightness(image)
        image = enhancer.enhance(1.2)  # Увеличиваем яркость на 20%
        
        # Изменение насыщенности
        enhancer = ImageEnhance.Color(image)
        image = enhancer.enhance(0.8)  # Увеличиваем насыщенность на 50%
        
        print(f'\033[1mGeneration {key} completed!\033[0m ({prompt})')
        return image
    except Exception as e:
        print(f"Error when trying to open the image: {e}")
        return None

css = """
#app-container {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}
"""

with gr.Blocks(theme='gstaff/xkcd', css=css) as app:
    gr.HTML("<center><h1>FLUX.1-Schnell</h1></center>")
    with gr.Column(elem_id="app-container"):
        with gr.Row():
            with gr.Column(elem_id="prompt-container"):
                with gr.Row():
                    text_prompt = gr.Textbox(label="Prompt", placeholder="Enter a prompt here", lines=2, elem_id="prompt-text-input")
                    
        with gr.Row():
            text_button = gr.Button("Run", variant='primary', elem_id="gen-button")
        with gr.Row():
            image_output = gr.Image(type="pil", label="Image Output", elem_id="gallery")
        
        text_button.click(query, inputs=[text_prompt], outputs=image_output)

app.launch(show_api=True, share=True)