Spaces:
Sleeping
Sleeping
| """ | |
| Configuration settings for Indian Art Generator | |
| """ | |
| import os | |
| from typing import Dict | |
| class Config: | |
| """Application configuration""" | |
| # Model Settings | |
| BASE_MODEL = os.getenv("BASE_MODEL", "stable-diffusion-v1-5/stable-diffusion-v1-5") | |
| # LoRA Weights Path | |
| # Options: | |
| # 1. Local: "./models/..." | |
| # 2. HuggingFace Hub: "username/repo-name" | |
| LORA_PATH = os.getenv("LORA_PATH", "mehradity/lora_weights") | |
| LORA_ADAPTER_NAME = os.getenv("LORA_ADAPTER_NAME", "indian_art") | |
| # Generation Defaults | |
| DEFAULT_WIDTH = int(os.getenv("DEFAULT_WIDTH", "512")) | |
| DEFAULT_HEIGHT = int(os.getenv("DEFAULT_HEIGHT", "512")) | |
| DEFAULT_STEPS = int(os.getenv("DEFAULT_STEPS", "20" if os.getenv("DEVICE") == "cpu" else "30")) | |
| DEFAULT_GUIDANCE = float(os.getenv("DEFAULT_GUIDANCE", "7.5")) | |
| DEFAULT_LORA_SCALE = float(os.getenv("DEFAULT_LORA_SCALE", "0.8")) | |
| # Device | |
| DEVICE = os.getenv("DEVICE", "cuda") | |
| # Cache dir for models (use /tmp for HF Spaces) | |
| CACHE_DIR = os.getenv("CACHE_DIR", "/tmp/huggingface") | |
| # Art-specific Negative Prompts (Cultural Preservation) | |
| # Prevents Western art styles and modern elements | |
| DEFAULT_NEGATIVE_PROMPT = """photorealistic, 3d render, photography, western art style, | |
| oil painting, renaissance, baroque, impressionist, modern abstract, | |
| graffiti, street art, pop art, contemporary western, | |
| urban elements, skyscrapers, cars, modern architecture, | |
| blurry, low quality, distorted, deformed, ugly, duplicate, | |
| bad anatomy, disfigured, poorly drawn face, mutation, mutated, extra limbs, | |
| watermark, signature, text, logo, cropped, out of frame, | |
| worst quality, low resolution, jpeg artifacts, noise, grainy, | |
| grayscale, monochrome, boring, plain background, | |
| western clothing, modern fashion, jeans, t-shirt, sunglasses, sneakers""" | |
| # Art Style Prefixes (Auto-enhance prompts) | |
| ART_STYLES: Dict[str, str] = { | |
| "madhubani": "madhubani painting, intricate double border, geometric patterns, natural dyes, no gaps, fine line work, traditional motifs,", | |
| "warli": "warli tribal art, white rice paste drawing on dark background, stick figures, traditional hut, daily life scene, harvest festival,", | |
| "gond": "gond painting, intricate dot patterns, bright flat colors, nature inspired, line work, patangarh style, dighna patterns,", | |
| "pattachitra": "pattachitra scroll art, mythological theme, bold outlines, natural colors, intricate border, odisha tradition, palm leaf texture,", | |
| "tanjore": "tanjore painting, gold foil work, rich colors, devotional iconography, embossed texture, tamil nadu style, semi-precious stones,", | |
| "miniature": "mughal miniature painting, fine detailing, persian influence, solid colors, intricate borders, court scene,", | |
| "kalamkari": "kalamkari art, hand drawn with kalam, natural dyes, mythological narratives, floral motifs, andhra pradesh style,", | |
| "phad": "phad painting, scroll narrative, bold lines, bright orange red colors, rajasthani folk, deity stories,", | |
| "mysore": "mysore painting, muted colors, intricate details, gold leaf, karnataka tradition, hindu gods,", | |
| "none": "" | |
| } | |
| # UI Configuration | |
| GRADIO_THEME = os.getenv("GRADIO_THEME", "soft") | |
| GRADIO_SHARE = os.getenv("GRADIO_SHARE", "false").lower() == "true" | |
| def validate(cls): | |
| """Validate configuration""" | |
| if cls.LORA_PATH is None: | |
| print(" Warning: LORA_PATH not set. Using base SDXL model only.") | |
| return True | |