import gradio as gr from gradio_client import Client import os from dotenv import load_dotenv import warnings # Suppress CUDA warnings warnings.filterwarnings('ignore', category=UserWarning, module='torch.cuda') # Load environment variables load_dotenv() HF_TOKEN = os.getenv("HF_TOKEN") # Check CUDA availability and set device DEVICE = "cuda" if torch.cuda.is_available() else "cpu" def generate_diagram(prompt, width=1024, height=1024): """Generate a diagram using FLUX AI""" try: client = Client( "black-forest-labs/FLUX.1-schnell", hf_token=HF_TOKEN, ) result = client.predict( prompt, 1872187377, # seed False, # randomize_seed width, height, 4, # num_inference_steps api_name="/infer" ) return result except Exception as e: raise gr.Error(f"Error generating diagram: {str(e)}") # Enhanced examples with more detailed prompts and specific styling EXAMPLES = [ { "title": "Knowledge Tree", "prompt": """A handrawn colorful mind map diagram, educational style, vibrant colors, clear hierarchy, golden ratio layout. KNOWLEDGE ├── ACQUISITION [Brain with Lightning ~60px] │ ├── READING [Open Book with Glow] │ ├── PRACTICE [Hands-on Tools] │ └── OBSERVATION [Eye with Magnifier] ├── PROCESSING [Gear Network ~50px] │ ├── ANALYSIS [Graph Trending Up] │ └── SYNTHESIS [Puzzle Pieces] ├── RETENTION [Memory Chip ~45px] │ ├── SHORT-TERM [Quick Flash] │ └── LONG-TERM [Solid Archive] └── APPLICATION ├── CREATION [Artist Palette] └── INNOVATION [Lightbulb Constellation]""", "width": 1024, "height": 1024 }, { "title": "Digital Transformation", "prompt": """A handrawn colorful mind map diagram, tech-focused style, neon accents, circuit board patterns. DIGITAL TRANSFORM ├── CLOUD [Cloud with Data Rain ~55px] │ ├── STORAGE [Database Cluster] │ └── COMPUTING [Server Array] ├── AUTOMATION [Robot Arm ~50px] │ ├── WORKFLOWS [Flowchart] │ └── AI/ML [Neural Network] ├── SECURITY [Shield Matrix ~45px] │ ├── ENCRYPTION [Lock Code] │ └── MONITORING [Radar Screen] └── INTEGRATION ├── APIS [Puzzle Connect] └── MICROSERVICES [Building Blocks]""", "width": 1024, "height": 1024 }, { "title": "Creative Process", "prompt": """A handrawn colorful mind map diagram, artistic style, watercolor effects, flowing connections. CREATIVITY ├── INSPIRATION [Constellation Stars ~60px] │ ├── NATURE [Organic Patterns] │ └── CULTURE [Global Icons] ├── IDEATION [Floating Bubbles ~50px] │ ├── BRAINSTORM [Thunder Cloud] │ └── REFINEMENT [Diamond Polish] ├── EXECUTION [Artist Tools ~45px] │ ├── TECHNIQUE [Skilled Hands] │ └── MEDIUM [Palette Mix] └── PRESENTATION ├── GALLERY [Frame Display] └── FEEDBACK [Echo Ripples]""", "width": 1024, "height": 1024 }, { "title": "Future Cities", "prompt": """A handrawn colorful mind map diagram, futuristic style, holographic elements, sustainable themes. SMART CITY ├── MOBILITY [Hover Transport ~60px] │ ├── AUTONOMOUS [Self-Driving] │ └── CONNECTED [Network Grid] ├── ENERGY [Solar Crystal ~55px] │ ├── RENEWABLE [Green Power] │ └── STORAGE [Battery Hub] ├── LIVING [Eco Building ~50px] │ ├── VERTICAL [Sky Gardens] │ └── COMMUNITY [People Connect] └── INFRASTRUCTURE ├── AI GRID [Neural City] └── ECO SYSTEM [Nature Tech]""", "width": 1024, "height": 1024 }, { "title": "Health Evolution", "prompt": """A handrawn colorful mind map diagram, medical style, DNA helix patterns, wellness focus. HEALTH 3.0 ├── PREVENTION [Shield DNA ~60px] │ ├── LIFESTYLE [Activity Pulse] │ └── MONITORING [Health Watch] ├── TREATMENT [Caduceus Tech ~55px] │ ├── PERSONALIZED [DNA Code] │ └── REGENERATIVE [Cell Renew] ├── ENHANCEMENT [Upgrade Spiral ~50px] │ ├── COGNITIVE [Brain Boost] │ └── PHYSICAL [Body Optimize] └── INTEGRATION ├── AI HEALTH [Smart Doctor] └── COMMUNITY [Global Care]""", "width": 1024, "height": 1024 }, { "title": "Space Exploration", "prompt": """A handrawn colorful mind map diagram, cosmic style, star field background, planetary elements. SPACE FRONTIER ├── DISCOVERY [Telescope Array ~60px] │ ├── MAPPING [Star Charts] │ └── ANALYSIS [Data Stream] ├── TRAVEL [Rocket Launch ~55px] │ ├── PROPULSION [Energy Core] │ └── NAVIGATION [Space Map] ├── COLONIZATION [Dome City ~50px] │ ├── HABITATS [Life Sphere] │ └── RESOURCES [Mine Extract] └── RESEARCH ├── ASTROBIOLOGY [Life Search] └── PHYSICS [Space Time]""", "width": 1024, "height": 1024 }, { "title": "Ocean Innovation", "prompt": """A handrawn colorful mind map diagram, marine style, wave patterns, aqua themes. OCEAN TECH ├── EXPLORATION [Deep Submersible ~60px] │ ├── MAPPING [Sonar Wave] │ └── RESEARCH [Lab Bubble] ├── CONSERVATION [Marine Life ~55px] │ ├── PROTECTION [Reef Shield] │ └── RESTORATION [Growth Core] ├── HARVESTING [Sustainable Net ~50px] │ ├── ENERGY [Wave Power] │ └── RESOURCES [Bio Extract] └── MONITORING ├── AI SYSTEMS [Smart Sensors] └── ECOLOGY [Life Web]""", "width": 1024, "height": 1024 }, { "title": "Quantum Computing", "prompt": """A handrawn colorful mind map diagram, quantum style, wave-particle duality, matrix patterns. QUANTUM TECH ├── COMPUTATION [Qubit Matrix ~60px] │ ├── PROCESSING [Wave Function] │ └── ALGORITHMS [Code Quantum] ├── APPLICATIONS [Use Cases ~55px] │ ├── SIMULATION [Model World] │ └── OPTIMIZATION [Peak Find] ├── INFRASTRUCTURE [Q-Hardware ~50px] │ ├── CONTROL [Pulse Shape] │ └── COOLING [Zero Point] └── DEVELOPMENT ├── SOFTWARE [Q-Code Web] └── INTEGRATION [Classical Bridge]""", "width": 1024, "height": 1024 }, { "title": "Bio Engineering", "prompt": """A handrawn colorful mind map diagram, biological style, DNA patterns, organic flow. BIOTECH ├── GENETICS [DNA Helix ~60px] │ ├── EDITING [CRISPR Tool] │ └── SYNTHESIS [Gene Build] ├── APPLICATIONS [Lab Array ~55px] │ ├── MEDICINE [Heal Cell] │ └── AGRICULTURE [Grow Plus] ├── PLATFORMS [Bio Factory ~50px] │ ├── SENSORS [Live Detect] │ └── PROCESSORS [Cell Compute] └── INTEGRATION ├── AI BIOLOGY [Smart Life] └── ECOSYSTEM [Nature Net]""", "width": 1024, "height": 1024 }, { "title": "AI Evolution", "prompt": """A handrawn colorful mind map diagram, neural network style, digital patterns, intelligence flow. AI FUTURE ├── COGNITION [Brain Network ~60px] │ ├── LEARNING [Growth Path] │ └── REASONING [Logic Tree] ├── PERCEPTION [Sensor Array ~55px] │ ├── VISION [Eye Matrix] │ └── LANGUAGE [Word Web] ├── INTERACTION [Connect Hub ~50px] │ ├── HUMAN [Bridge Link] │ └── MACHINE [Code Path] └── EVOLUTION ├── CONSCIOUSNESS [Mind Spark] └── CREATIVITY [Art Core]""", "width": 1024, "height": 1024 } ] # Convert examples to Gradio format GRADIO_EXAMPLES = [ [example["prompt"], example["width"], example["height"]] for example in EXAMPLES ] # Create Gradio interface # Gradio interface 부분 수정 demo = gr.Interface( fn=generate_diagram, inputs=[ gr.Textbox( label="Diagram Prompt", placeholder="Enter your diagram structure...", lines=10 ), gr.Slider( label="Width", minimum=512, maximum=2048, step=128, value=1024 ), gr.Slider( label="Height", minimum=512, maximum=2048, step=128, value=1024 ) ], outputs=gr.Image(type="filepath", label="Generated Diagram"), title="🎨 FLUX Diagram Generator", description="Generate beautiful hand-drawn style diagrams using FLUX AI", article=""" ### Tips for Better Results - Use clear hierarchical structures - Include icon descriptions in brackets - Keep text concise and meaningful - Use consistent formatting ### Template Structure ``` MAIN TOPIC ├── SUBTOPIC 1 [Icon] ├── SUBTOPIC 2 [Icon] └── SUBTOPIC 3 ├── DETAIL 1 [Icon] └── DETAIL 2 [Icon] ``` """, examples=GRADIO_EXAMPLES, # EXAMPLES 대신 GRADIO_EXAMPLES 사용 cache_examples=True, theme=gr.themes.Soft(), allow_flagging="never" # 불필요한 플래깅 기능 제거 ) # Launch 부분만 수정 if __name__ == "__main__": try: demo.queue(max_size=10) # 큐 설정은 launch 전에 demo.launch( server_name="0.0.0.0", server_port=7860, share=False, show_error=True, debug=True ) except Exception as e: print(f"Error launching app: {str(e)}") raise