Malaji71 commited on
Commit
6ee37e6
·
verified ·
1 Parent(s): 307a239

Update models.py

Browse files
Files changed (1) hide show
  1. models.py +44 -27
models.py CHANGED
@@ -91,42 +91,59 @@ class BagelAPIAnalyzer(BaseImageAnalyzer):
91
  return False
92
 
93
  def _get_professional_prompt(self, analysis_type: str = "multimodal") -> str:
94
- """Get professional prompt created by professional_photography.py"""
95
  try:
96
- # Let professional_photography.py create the complete prompt with full knowledge base
97
- enhanced_context = self.professional_analyzer.generate_enhanced_context("")
98
 
99
- if analysis_type == "cinematic":
100
- # Use the professional analyzer to format cinematic prompt
101
- prompt = self.professional_analyzer.format_bagel_enhancement_prompt(
102
- base_prompt="Analyze this image with complete professional cinematography expertise for cinema-quality generation.",
103
- enhanced_context=enhanced_context
104
- )
105
- elif analysis_type == "flux_optimized":
106
- # Use the professional analyzer to format FLUX prompt
107
- prompt = self.professional_analyzer.format_bagel_enhancement_prompt(
108
- base_prompt="Analyze this image with complete professional photography knowledge for photorealistic prompt generation.",
109
- enhanced_context=enhanced_context
110
- )
111
- else:
112
- # Use the professional analyzer to format multimodal prompt
113
- prompt = self.professional_analyzer.format_bagel_enhancement_prompt(
114
- base_prompt="Analyze this image with complete professional cinematography knowledge for multi-engine prompt generation.",
115
- enhanced_context=enhanced_context
116
- )
 
 
 
 
 
 
 
 
 
 
 
 
117
 
118
  return prompt
119
 
120
  except Exception as e:
121
- logger.warning(f"Professional prompt generation failed: {e}")
122
- # Fallback to basic professional prompt
123
- return """Analyze this image using complete professional cinematography expertise. Provide exactly two sections:
124
 
125
- 1. DESCRIPTION: Complete professional visual analysis using your full cinematography knowledge - identify the photographic plane (wide shot, close-up, medium shot), camera angle (eye level, low angle, high angle), lighting type (golden hour, natural daylight, dramatic), and composition technique (rule of thirds, leading lines, symmetrical). Describe the specific subject, action, and context in detail.
126
 
127
- 2. CAMERA_SETUP: Recommend specific professional equipment based on your scene analysis - camera body, lens specifications, aperture settings, ISO, and any special techniques.
 
 
 
 
 
 
128
 
129
- Apply your complete professional cinematography knowledge."""
130
 
131
  def _save_temp_image(self, image: Image.Image) -> str:
132
  """Save image to temporary file for API call"""
 
91
  return False
92
 
93
  def _get_professional_prompt(self, analysis_type: str = "multimodal") -> str:
94
+ """Get professional prompt that teaches BAGEL to use the complete knowledge base"""
95
  try:
96
+ # Import the complete knowledge base
97
+ from professional_photography import EXPERT_PHOTOGRAPHY_KNOWLEDGE
98
 
99
+ # Create the teaching prompt with the complete structure
100
+ prompt = f"""Analiza esta imagen con conocimiento cinematográfico profesional completo. Estructura tu respuesta así:
101
+
102
+ GRAMÁTICA: [PLANO] of [SUJETO] [ACCIÓN] [CONTEXTO], [ILUMINACIÓN], [COMPOSICIÓN], shot on [CÁMARA], [LENTE], [CONFIGURACIÓN]
103
+
104
+ BUSCA ESTOS CAMPOS:
105
+
106
+ PLANO: Consulta photographic_planes completo:
107
+ {EXPERT_PHOTOGRAPHY_KNOWLEDGE.get('photographic_planes', {})}
108
+ - Encuentra el plano que coincida exactamente
109
+
110
+ SUJETO + ACCIÓN: Describe exactamente lo que ves - persona, objeto, qué está haciendo
111
+
112
+ CONTEXTO: Describe el ambiente/entorno completamente - ubicación, elementos del fondo
113
+
114
+ ILUMINACIÓN: Consulta lighting_principles completo:
115
+ {EXPERT_PHOTOGRAPHY_KNOWLEDGE.get('lighting_principles', {})}
116
+ - Encuentra el tipo de iluminación que coincida
117
+
118
+ COMPOSICIÓN: Consulta composition_rules completo:
119
+ {EXPERT_PHOTOGRAPHY_KNOWLEDGE.get('composition_rules', {})}
120
+ - Encuentra la técnica de composición que se aplica
121
+
122
+ CONFIGURACIÓN TÉCNICA: Consulta scene_types completo:
123
+ {EXPERT_PHOTOGRAPHY_KNOWLEDGE.get('scene_types', {})}
124
+ - Encuentra el setup de cámara apropiado para el tipo de escena
125
+
126
+ USA TODA LA BASE DE DATOS EXPERT_PHOTOGRAPHY_KNOWLEDGE COMPLETA.
127
+
128
+ Completa cada campo con la información específica que encuentres. Responde en el formato de gramática especificado."""
129
 
130
  return prompt
131
 
132
  except Exception as e:
133
+ logger.warning(f"Professional knowledge base access failed: {e}")
134
+ return """Analiza esta imagen con conocimiento cinematográfico profesional. Estructura tu respuesta así:
 
135
 
136
+ GRAMÁTICA: [PLANO] of [SUJETO] [ACCIÓN] [CONTEXTO], [ILUMINACIÓN], [COMPOSICIÓN], shot on [CÁMARA], [LENTE], [CONFIGURACIÓN]
137
 
138
+ BUSCA Y COMPLETA CADA CAMPO:
139
+ - PLANO: wide shot, medium shot, close-up, etc.
140
+ - SUJETO + ACCIÓN: exactamente lo que ves
141
+ - CONTEXTO: ambiente y entorno
142
+ - ILUMINACIÓN: tipo de luz
143
+ - COMPOSICIÓN: técnica utilizada
144
+ - CONFIGURACIÓN TÉCNICA: cámara y lente apropiados
145
 
146
+ Usa tu conocimiento profesional completo para completar cada campo."""
147
 
148
  def _save_temp_image(self, image: Image.Image) -> str:
149
  """Save image to temporary file for API call"""