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) |