import gradio as gr import sys import os # Add the dist directory to Python path sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'dist')) # Import obfuscated module try: from core_logic import ( generate_image_via_api_secure, get_available_models_secure, get_company_info, create_footer, get_custom_css ) except ImportError as e: print(f"Error: Obfuscated module not found: {e}") print("Current directory:", os.getcwd()) print("Files in dist:", os.listdir('dist') if os.path.exists('dist') else 'dist not found') sys.exit(1) # Configuration COMPANY_NAME = "Miragic" COMPANY_URL = "https://www.miragic.ai" CONTACT_EMAIL = "info@miragic.ai" COMPANY_LOGO_URL = "https://avatars.githubusercontent.com/u/211682198?s=200&v=4" def create_instructions_html(): """Create instructions HTML""" return """

How to use:

  1. Enter a detailed description of the image you want to generate
  2. Select a model (different models have different styles)
  3. For 'kontext' model, provide an image URL for image-to-image generation
  4. Adjust the image dimensions and other parameters
  5. Click "Generate Image" to create your AI artwork

Tip: Be specific in your prompts for better results!

""" # Get available models with error handling try: available_models = get_available_models_secure() print(f"Available models: {available_models}") except Exception as e: print(f"Error getting models: {e}") available_models = ["flux", "turbo", "kontext"] # Fallback # Create the Gradio interface with gr.Blocks(css=get_custom_css(), title=f"{COMPANY_NAME} AI Image Generator") as demo: with gr.Row(): with gr.Column(): gr.Markdown(f"""

{COMPANY_NAME} AI Image Generator 🎨

Create stunning AI-generated images with text prompts

""") gr.HTML(create_instructions_html()) with gr.Row(): # Step 1: Prompt and Settings with gr.Column(): gr.HTML("""
1. Enter Prompt & Settings
""") prompt = gr.Textbox( label="Prompt", lines=3, placeholder="Describe the image you want to generate...", value="" ) with gr.Row(): model = gr.Dropdown( choices=available_models, value="flux", label="Model" ) seed = gr.Number( label="Seed", value=-1, info="-1 for random seed" ) with gr.Row(): width = gr.Slider( minimum=256, maximum=2048, value=1024, step=64, label="Width" ) height = gr.Slider( minimum=256, maximum=2048, value=1024, step=64, label="Height" ) image_url = gr.Textbox( label="Image URL (for kontext model only)", placeholder="https://example.com/image.jpg", info="Required for image-to-image generation with kontext model" ) with gr.Row(): enhance = gr.Checkbox(label="Enhance Prompt", value=False, info="Use AI to enhance your prompt") safe = gr.Checkbox(label="Safe Filter", value=False, info="Enable strict NSFW filtering") gr.HTML("""
Note: For the 'kontext' model, you must provide an Image URL for image-to-image generation. Example: "bake_a_cake_from_this_logo" with image URL of a logo.
""") generate_btn = gr.Button( "Generate Image 🎨", elem_classes="button-gradient" ) # Step 2: Results with gr.Column(): gr.HTML("""
2. Generated Image
""") result_img = gr.Image( label="Generated Image", interactive=False, height=400 ) gr.HTML("""

If you like our AI Image Generator, please give us a ❤️ into our space!

""") signup_prompt = gr.HTML( visible=True, value=f"""

🚀 Want more AI tools?

Visit {COMPANY_NAME}.ai for unlimited access to all our AI tools!

Explore More Tools 🚀
""" ) # Examples examples = [ ["An epic fantasy landscape with floating islands, cascading waterfalls, ancient ruins, magical aurora borealis in the sky, digital painting, concept art, unreal engine 5, 4K wallpaper", "flux", 2048, 1024, -1, "", False, False], ["A serene Japanese garden with cherry blossoms, koi pond, traditional pagoda, morning mist, sunlight filtering through trees, peaceful atmosphere, ultra detailed", "flux", 2048, 1024, -1, "", True, False], ["bake_a_cake_from_this_logo", "kontext", 1024, 1024, -1, "https://avatars.githubusercontent.com/u/86964862", False, False], ["A minimalist modern living room with large windows, Scandinavian design, plants, cozy atmosphere, architectural rendering", "turbo", 1024, 1024, 42, "", False, True], ["A beautiful tropical beach with turquoise water, white sand, palm trees, sunset colors, relaxing vibe, 4K wallpaper", "turbo", 2048, 1024, -1, "", True, False], ] gr.Examples( examples=examples, inputs=[prompt, model, width, height, seed, image_url, enhance, safe], outputs=[result_img], fn=generate_image_via_api_secure, cache_examples=False, label="Example Prompts" ) # Button actions generate_btn.click( fn=generate_image_via_api_secure, inputs=[prompt, model, width, height, seed, image_url, enhance, safe], outputs=[result_img] ) # Visitor badge gr.HTML(f'') # Footer gr.HTML(create_footer()) if __name__ == "__main__": demo.launch( show_api=False, server_name="0.0.0.0", server_port=7860 )