import gradio as gr import requests from PIL import Image from io import BytesIO import os from huggingface_hub import InferenceClient API_TOKEN = os.getenv("HF_API_TOKEN") # Ensure you've set this environment variable API_URL = "https://api-inference.huggingface.co/models/enhanceaiteam/Flux-uncensored" def enhance_prompt(prompt, system_prompt='You are a prompt enhancer', model="meta-llama/Llama-3.2-1B-Instruct", max_tokens=512, stream=False): enhancer = InferenceClient(api_key=API_TOKEN) response = "" for message in enhancer.chat_completion( model=model, messages=[ {"role": "system", "content": system_prompt}, {"role": "user", "content": prompt} ], max_tokens=max_tokens, stream=stream, ): response += message#.choices[0].delta.content return response.strip() # Ensure trailing whitespace is removed def generate_image(prompt, enhance=False): if enhance: prompt = enhance_prompt(prompt) headers = {"Authorization": f"Bearer {API_TOKEN}"} data = {"inputs": prompt} response = requests.post(API_URL, headers=headers, json=data) if response.status_code == 200: image_bytes = BytesIO(response.content) image = Image.open(image_bytes) return image else: return f"Error: {response.status_code}, {response.text}" title_html = """

FLUX Capacitor

""" css = """ .gradio-container { background: url(https://huggingface.co/spaces/K00B404/FLUX.1-Dev-Serverless-darn-enhanced-prompt/resolve/main/edge.png); background-size: 900px 880px; background-repeat: no-repeat; background-position: center; background-attachment: fixed; color: #000; } .dark\\:bg-gray-950:is(.dark *) { --tw-bg-opacity: 1; background-color: rgb(157, 17, 142); } .gradio-container-4-41-0 .prose :last-child { margin-top: 8px !important; } .gradio-container-4-41-0 .prose :last-child { margin-bottom: -7px !important; } .dark { --button-primary-background-fill: #09e60d70; --button-primary-background-fill-hover: #00000070; --background-fill-primary: #000; --background-fill-secondary: #000; } .hide-container { margin-top: -2px; } #title-text { font-size: 30px; font-weight: bold; color: #000; } """ # Create Gradio interface def create_ui(): with gr.Blocks(theme='Nymbo/Nymbo_Theme', css=css) as ui: gr.Markdown("## Flux Uncensored - Text to Image Generator") with gr.Row(): prompt_input = gr.Textbox(label="Enter a Prompt", placeholder="Describe the image you want to generate", lines=3) enhance_checkbox = gr.Checkbox(label="Enhance Prompt", value=True) # Checkbox for enhancing prompt generate_button = gr.Button("Generate Image") with gr.Row(): output_image = gr.Image(label="Generated Image") # Link the button to the function generate_button.click(fn=generate_image, inputs=[prompt_input, enhance_checkbox], outputs=output_image) return ui # Run the interface if __name__ == "__main__": create_ui().launch()