GitHub Actions
Deploy to Hugging Face Space: product-image-update-port-10
18faf97
# ----------------------------------------------------------------------
# API CONFIGURATION
# ----------------------------------------------------------------------
API_TITLE = "Product Image Update"
API_VERSION = "1.0.0"
API_DESCRIPTION = """
## Product Image Processing
Process product images with:
- Background removal
- Object detection
- Smart cropping and padding
- Base64 encoding
### Endpoints:
- `/api/predict` - Process single image
- `/api/rb_and_crop` - Shopify webhook endpoint
- `/api/batch` - Batch processing
- `/health` - Health check
- `/api/docs` - API documentation
"""
API_HOST = "0.0.0.0"
API_PORT = 7860
SERVER_RELOAD = False
# ----------------------------------------------------------------------
# GPU DURATION SETTINGS
# ----------------------------------------------------------------------
GPU_DURATION_SHORT = 60
GPU_DURATION_MEDIUM = 90
GPU_DURATION_LONG = 120
# ----------------------------------------------------------------------
# ERROR MESSAGES
# ----------------------------------------------------------------------
ERROR_INVALID_PAYLOAD = "Invalid payload structure"
ERROR_INVALID_FIELDS = "Invalid fields in payload"
ERROR_NO_VALID_URLS = "No valid image URLs provided"
ERROR_NO_PROCESSED_IMAGES = "No images were successfully processed"
ERROR_MODEL_NOT_LOADED = "Models are not loaded yet"
ERROR_PROCESSING_FAILED = "Image processing failed"
# ----------------------------------------------------------------------
# RESPONSE STATUS CODES
# ----------------------------------------------------------------------
STATUS_SUCCESS = "success"
STATUS_ERROR = "error"
STATUS_PARTIAL_SUCCESS = "partial_success"
STATUS_PROCESSED = "processed"
STATUS_NOT_PROCESSED = "not_processed"
# ----------------------------------------------------------------------
# HTTP STATUS CODES
# ----------------------------------------------------------------------
HTTP_OK = 200
HTTP_BAD_REQUEST = 400
HTTP_NOT_FOUND = 404
HTTP_METHOD_NOT_ALLOWED = 405
HTTP_UNPROCESSABLE_ENTITY = 422
HTTP_INTERNAL_SERVER_ERROR = 500
# ----------------------------------------------------------------------
# PROCESSING CONFIGURATION
# ----------------------------------------------------------------------
MAX_IMAGE_SIZE = 10 * 1024 * 1024
SUPPORTED_IMAGE_FORMATS = ["jpg", "jpeg", "png", "webp"]
DEFAULT_PRODUCT_TYPE = "General"
BATCH_SIZE = 5
DOWNLOAD_TIMEOUT = 30
PROCESSING_TIMEOUT = 120
# ----------------------------------------------------------------------
# MODEL CONFIGURATION
# ----------------------------------------------------------------------
MODEL_CACHE_DIR = "/tmp/models"
USE_MIXED_PRECISION = True
ENABLE_MODEL_CACHING = True
# ----------------------------------------------------------------------
# LOGGING CONFIGURATION
# ----------------------------------------------------------------------
LOG_LEVEL = "INFO"
LOG_FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
# ----------------------------------------------------------------------
# SYSTEM LIMITS
# ----------------------------------------------------------------------
MAX_CONCURRENT_REQUESTS = 10
MAX_BATCH_SIZE = 20
MEMORY_CLEANUP_THRESHOLD = 80