Malaji71 commited on
Commit
7cdab93
·
verified ·
1 Parent(s): 1227ff0

Create config.py

Browse files
Files changed (1) hide show
  1. config.py +136 -0
config.py ADDED
@@ -0,0 +1,136 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Configuration file for FLUX Prompt Optimizer
3
+ Clean, simple, and focused configuration
4
+ """
5
+
6
+ import os
7
+ import torch
8
+ from typing import Dict, Any
9
+
10
+ # Application Configuration
11
+ APP_CONFIG = {
12
+ "title": "🚀 FLUX Prompt Optimizer",
13
+ "description": "Advanced image analysis and Flux prompt optimization",
14
+ "version": "2.0.0",
15
+ "author": "Pariente AI Research"
16
+ }
17
+
18
+ # Model Configuration
19
+ MODEL_CONFIG = {
20
+ # Primary analysis model - choose one
21
+ "primary_model": "florence2", # or "bagel"
22
+
23
+ # Florence-2 settings
24
+ "florence2": {
25
+ "model_id": "microsoft/Florence-2-base",
26
+ "torch_dtype": torch.float16,
27
+ "device_map": "auto",
28
+ "trust_remote_code": True,
29
+ "max_new_tokens": 1024
30
+ },
31
+
32
+ # Bagel-7B settings (via API)
33
+ "bagel": {
34
+ "api_url": "https://huggingface.co/spaces/Malaji71/Bagel-7B-Demo",
35
+ "timeout": 30,
36
+ "max_retries": 3
37
+ }
38
+ }
39
+
40
+ # Device Configuration
41
+ def get_device_config() -> Dict[str, Any]:
42
+ """Determine optimal device configuration"""
43
+ device_config = {
44
+ "device": "cpu",
45
+ "use_gpu": False,
46
+ "memory_efficient": True
47
+ }
48
+
49
+ if torch.cuda.is_available():
50
+ device_config.update({
51
+ "device": "cuda",
52
+ "use_gpu": True,
53
+ "gpu_memory_gb": torch.cuda.get_device_properties(0).total_memory / 1e9
54
+ })
55
+ elif hasattr(torch.backends, 'mps') and torch.backends.mps.is_available():
56
+ device_config.update({
57
+ "device": "mps",
58
+ "use_gpu": True
59
+ })
60
+
61
+ return device_config
62
+
63
+ # Processing Configuration
64
+ PROCESSING_CONFIG = {
65
+ "max_image_size": 1024,
66
+ "image_quality": 95,
67
+ "supported_formats": [".jpg", ".jpeg", ".png", ".webp"],
68
+ "batch_size": 1,
69
+ "timeout_seconds": 60
70
+ }
71
+
72
+ # Flux Prompt Rules
73
+ FLUX_RULES = {
74
+ "remove_patterns": [
75
+ r',\s*trending on artstation',
76
+ r',\s*trending on [^,]+',
77
+ r',\s*\d+k\s*',
78
+ r',\s*\d+k resolution',
79
+ r',\s*artstation',
80
+ r',\s*concept art',
81
+ r',\s*digital art',
82
+ r',\s*by greg rutkowski',
83
+ ],
84
+
85
+ "camera_configs": {
86
+ "portrait": ", Shot on Hasselblad X2D 100C, 90mm f/2.5 lens at f/2.8, professional portrait photography",
87
+ "landscape": ", Shot on Phase One XT, 40mm f/4 lens at f/8, epic landscape photography",
88
+ "street": ", Shot on Leica M11, 35mm f/1.4 lens at f/2.8, documentary street photography",
89
+ "default": ", Shot on Phase One XF IQ4, 80mm f/2.8 lens at f/4, professional photography"
90
+ },
91
+
92
+ "lighting_enhancements": {
93
+ "dramatic": ", dramatic cinematic lighting",
94
+ "portrait": ", professional studio lighting with subtle rim light",
95
+ "default": ", masterful natural lighting"
96
+ }
97
+ }
98
+
99
+ # Scoring Configuration
100
+ SCORING_CONFIG = {
101
+ "max_score": 100,
102
+ "score_weights": {
103
+ "prompt_quality": 0.3,
104
+ "technical_details": 0.25,
105
+ "artistic_value": 0.25,
106
+ "flux_optimization": 0.2
107
+ },
108
+
109
+ "grade_thresholds": {
110
+ 95: {"grade": "LEGENDARY", "color": "#059669"},
111
+ 90: {"grade": "EXCELLENT", "color": "#10b981"},
112
+ 80: {"grade": "VERY GOOD", "color": "#22c55e"},
113
+ 70: {"grade": "GOOD", "color": "#f59e0b"},
114
+ 60: {"grade": "FAIR", "color": "#f97316"},
115
+ 0: {"grade": "NEEDS WORK", "color": "#ef4444"}
116
+ }
117
+ }
118
+
119
+ # Environment Configuration
120
+ ENVIRONMENT = {
121
+ "is_spaces": os.getenv("SPACE_ID") is not None,
122
+ "is_local": os.getenv("SPACE_ID") is None,
123
+ "log_level": os.getenv("LOG_LEVEL", "INFO"),
124
+ "debug_mode": os.getenv("DEBUG", "false").lower() == "true"
125
+ }
126
+
127
+ # Export main configurations
128
+ __all__ = [
129
+ "APP_CONFIG",
130
+ "MODEL_CONFIG",
131
+ "get_device_config",
132
+ "PROCESSING_CONFIG",
133
+ "FLUX_RULES",
134
+ "SCORING_CONFIG",
135
+ "ENVIRONMENT"
136
+ ]