import gradio as gr import requests import io import random import os import time import numpy as np from PIL import Image, ImageEnhance 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 add_noise(image, intensity=25): """ Добавляет цифровой шум к изображению. :param image: Изображение (PIL.Image) :param intensity: Интенсивность шума (от 0 до 255) :return: Изображение с шумом (PIL.Image) """ # Преобразуем изображение в массив NumPy img_array = np.array(image) # Генерируем шум noise = np.random.randint(-intensity, intensity, img_array.shape, dtype=np.int32) # Добавляем шум к изображению noisy_array = np.clip(img_array + noise, 0, 255).astype(np.uint8) # Преобразуем массив обратно в изображение noisy_image = Image.fromarray(noisy_array) return noisy_image 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 = 480 new_height = 960 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% # Добавление цифрового шума image = add_noise(image, intensity=2.5) # Интенсивность шума 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("