ai_qc/visual_qc_apps/visual_elements_count/app.py
2025-08-12 14:52:49 -05:00

51 lines
2.5 KiB
Python
Executable file
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import os
import sys
# Add parent directory to path to import shared modules
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
from visual_qc_apps.flask_app_template import FlaskAppTemplate
class VisualElementsCountApp(FlaskAppTemplate):
"""
Visual Elements Count
"""
def __init__(self):
# Define the hardcoded prompt
prompt = """You are performing a visual quality-control check on a POS advertisement. The brand wants to limit the design to no more than 4 distinct visual elements so that the message is clear and quick to process.
IMPORTANT PRE-ASSESSMENT INSTRUCTIONS:
Before assessment: Users often upload complex print production files with multiple panels, cut lines, and technical markings.
Your task: Focus ONLY on the primary consumer-facing visual - what the end customer would actually see after production.
Key instructions:
- Ignore cut lines, registration marks, and production guides
- If multiple panels exist, assess the main/largest consumer-facing design
- Disregard technical text, color bars, or printer information
- Focus on the final visual as it would appear on shelf/in-market
- Treat folded/die-cut layouts as the assembled final product
STEPS TO EVALUATE:
1. Examine the design components (logos, pack shots, icons, images, text blocks, promotion badges, etc.). Each distinct object or text grouping counts as one visual element that the viewer must actively notice.
2. Count the total number of these distinct visual elements.
3. If the count is more than 4, the design fails this checkpoint, as it may be too cluttered or complex. Otherwise, it passes.
YOUR OUTPUT:
• List all distinct visual elements you identified in the design (e.g., "1. Logo, 2. Product image, 3. Main headline...).
• State the total count of visual elements found.
• State whether the design "passes" or "fails" the simplified-design checkpoint.
• Provide a clear explanation of why it passes or fails based on the element count.
• If it fails, provide 12 concise recommendations for reducing or combining elements to achieve clarity.
• Include a JSON code block with two fields:
"visual_element_count": the total number of visual elements
"compliance_status": "Pass" or "Fail"
"""
# Initialize the Flask app with the prompt
super().__init__(__name__, prompt)
# Run the app if executed directly
if __name__ == "__main__":
app = VisualElementsCountApp()
app.run(debug=True)