File size: 7,183 Bytes
f86ef0c
 
 
 
 
 
 
521a864
742c437
f86ef0c
bf04964
0a32008
 
08c972a
6146bcd
 
 
 
60053a1
9982bae
 
0a32008
9982bae
0a32008
cd28a2d
0a32008
f00b283
f7c0284
f00b283
990502e
f00b283
34ac09b
990502e
 
db91780
 
0a32008
f00b283
260ef11
0a81284
961b0b9
f00b283
45ad881
5847e71
ac0a6da
0a32008
3341831
 
1ec9bd2
 
2f6b89f
 
6cd5e81
9e2ce11
5847e71
 
a73a7f0
 
0a32008
 
3b8a061
0a32008
c710472
 
0fee75a
713d510
064626b
 
f86ef0c
f5b7834
f86ef0c
 
 
3d995e6
 
f86ef0c
 
227d5b9
 
 
 
 
 
 
 
 
 
 
 
 
 
f86ef0c
1b0d98c
a47cafd
eb5cb7c
 
f86ef0c
6b98730
0a32008
e400ab5
3eb21bd
e577eb4
 
cb1a375
0a32008
 
 
cb1a375
0a32008
 
 
cd5275a
7c7de36
e577eb4
 
cb1a375
ef5cf54
cb1a375
ef5cf54
cb1a375
ef5cf54
cb1a375
ef5cf54
3d995e6
 
cb1a375
ef5cf54
a6c4453
0a32008
7c7de36
e400ab5
7c7de36
f7cd0b6
7c7de36
0a32008
f86ef0c
3118806
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
import gradio as gr
import requests
import io
import random
import os
from PIL import Image

API_URL = "https://api-inference.huggingface.co/models/openskyml/dalle-3-xl"
API_TOKEN = os.getenv("HF_READ_TOKEN")
headers = {"Authorization": f"Bearer {API_TOKEN}"}
timeout = 100
models_list = ["Реалистичность", "Аниме", "Disney"]
def query(prompt, model, pose, vid, is_negative="[deformed | disfigured], poorly drawn, [bad : wrong] anatomy, [extra | missing | floating | disconnected] limb, (mutated hands and fingers), blurry, text, fuzziness", steps=45, cfg_scale=8, sampler="DPM++ 2M Karras", seed=-1, strength=0.7):
    if prompt == "" or prompt == None:
        return None

    
    API_TOKEN = random.choice([os.getenv("HF_READ_TOKEN"), os.getenv("HF_READ_TOKEN_2"), os.getenv("HF_READ_TOKEN_3"), os.getenv("HF_READ_TOKEN_4"), os.getenv("HF_READ_TOKEN_5")]) # it is free
    headers = {"Authorization": f"Bearer {API_TOKEN}"}
    key = random.randint(0, 999)

    prompt = f"The {prompt} in a {pose} pose. View from {vid} | porn ultra detail, ultra elaboration, ultra quality, perfect."
    print(f'\033[1mГенерация {key}:\033[0m {prompt}')
    if model == 'Реалистичность':
        API_URL = "https://api-inference.huggingface.co/models/openskyml/dalle-3-xl"
        prompt = f"Ultra realistic porn. {prompt}"
    if model == 'Playground 2':
        API_URL = "https://api-inference.huggingface.co/models/playgroundai/playground-v2-1024px-aesthetic"
    if model == 'Openjourney 4':
        API_URL = "https://api-inference.huggingface.co/models/prompthero/openjourney-v4"
    if model == 'AbsoluteReality 1.8.1':
        API_URL = "https://api-inference.huggingface.co/models/digiplay/AbsoluteReality_v1.8.1"
    if model == 'Lyriel 1.6':
        API_URL = "https://api-inference.huggingface.co/models/stablediffusionapi/lyrielv16"
    if model == 'Animagine XL 2.0':
        API_URL = "https://api-inference.huggingface.co/models/Linaqruf/animagine-xl-2.0"
        prompt = f"Anime porn. {prompt}"
    if model == 'Counterfeit 2.5':
        API_URL = "https://api-inference.huggingface.co/models/gsdf/Counterfeit-V2.5"
    if model == 'Realistic Vision 5.1':
        API_URL = "https://api-inference.huggingface.co/models/stablediffusionapi/realistic-vision-v51"
    if model == 'Incursios 1.6':
        API_URL = "https://api-inference.huggingface.co/models/digiplay/incursiosMemeDiffusion_v1.6"
    if model == 'Anime Detailer XL':
        API_URL = "https://api-inference.huggingface.co/models/Linaqruf/anime-detailer-xl-lora"
        prompt = f"Anime porn. {prompt}"
    if model == 'epiCRealism':
        API_URL = "https://api-inference.huggingface.co/models/emilianJR/epiCRealism"
    if model == 'PixelArt XL':
        API_URL = "https://api-inference.huggingface.co/models/nerijs/pixel-art-xl"
    if model == 'NewReality XL':
        API_URL = "https://api-inference.huggingface.co/models/stablediffusionapi/newrealityxl-global-nsfw"
    if model == 'Anything 5.0':
        API_URL = "https://api-inference.huggingface.co/models/hogiahien/anything-v5-edited"
    if model == 'Vector Art XL':
        API_URL = "https://api-inference.huggingface.co/models/DoctorDiffusion/doctor-diffusion-s-controllable-vector-art-xl-lora"
    if model == 'Disney':
        API_URL = "https://api-inference.huggingface.co/models/goofyai/disney_style_xl"
        prompt = f"Disney style porn. {prompt}"
    if model == 'Аниме':
        API_URL = "https://api-inference.huggingface.co/models/digiplay/CleanLinearMix_nsfw"
        prompt = f"Anime porn. {prompt}"
    if model == 'OrangeMixs':
        API_URL = "https://api-inference.huggingface.co/models/WarriorMama777/OrangeMixs"

    
    
    
    payload = {
        "inputs": prompt,
        "is_negative": is_negative,
        "steps": steps,
        "cfg_scale": cfg_scale,
        "seed": seed if seed != -1 else random.randint(1, 1000000000),
        "strength": strength
        }

    response = requests.post(API_URL, headers=headers, json=payload, timeout=timeout)
    if response.status_code != 200:
        print(f"Ошибка: Не удалось получить изображение. Статус ответа: {response.status_code}")
        print(f"Содержимое ответа: {response.text}")
        return None
    
    try:
        image_bytes = response.content
        image = Image.open(io.BytesIO(image_bytes))
        print(f'\033[1mГенерация {key} завершена!\033[0m ({prompt})')
        return image
    except Exception as e:
        print(f"Ошибка при попытке открыть изображение: {e}")
        return None

css = """
* {}
footer {visibility: hidden !important;}
"""

with gr.Blocks(css=css) as dalle:
    gr.Markdown("## 🔞 Strictly 18+ 🔞")
    gr.Markdown("This is a BETA")
    with gr.Tab("Базовые настройки"):
        with gr.Row():
            with gr.Column(elem_id="prompt-container"):
                with gr.Row():
                    image = gr.Dropdown(label="На фото", value="Naked girl", choices=["Naked girl", "Sex", "Blow job"])
                with gr.Row():
                    model = gr.Radio(label="Стиль", value="Реалистичность", choices=models_list)
                with gr.Row():
                    pose = gr.Dropdown(label="Поза", value="Cancer", choices=["Cancer", "Lying down", "on my knees", "sitting"])
                with gr.Row():
                    vid = gr.Dropdown(label="Вид", value="Random", choices=["Back", "Front", "Top", "Bottom", "Random"])
             
                

    with gr.Tab("Расширенные настройки"):
        with gr.Row():
            negative_prompt = gr.Textbox(label="Negative Prompt", placeholder="Чего не должно быть на изображении", value="[deformed | disfigured], poorly drawn, [bad : wrong] anatomy, [extra | missing | floating | disconnected] limb, (mutated hands and fingers), blurry, text, fuzziness", lines=3, elem_id="negative-prompt-text-input")
        with gr.Row():
            steps = gr.Slider(label="Sampling steps", value=35, minimum=1, maximum=100, step=1)
        with gr.Row():
            cfg = gr.Slider(label="CFG Scale", value=7, minimum=1, maximum=20, step=1)
        with gr.Row():
            method = gr.Radio(label="Sampling method", value="DPM++ 2M Karras", choices=["DPM++ 2M Karras", "DPM++ SDE Karras", "Euler", "Euler a", "Heun", "DDIM"])
        with gr.Row():
            strength = gr.Slider(label="Strength", value=0.7, minimum=0, maximum=1, step=0.001)
        with gr.Row():
            seed = gr.Slider(label="Seed", value=-1, minimum=-1, maximum=1000000000, step=1)

    
    with gr.Row():
        text_button = gr.Button("Start testing!", variant='primary', elem_id="gen-button")
    with gr.Row():
        image_output = gr.Image(type="pil", label="Изображение", elem_id="gallery")
        
    text_button.click(query, inputs=[image, model, pose, vid, negative_prompt, steps, cfg, method, seed, strength], outputs=image_output)

dalle.launch(show_api=False, share=False)