Dewmike's picture
Initial commit with Hugging Face Whisper integration
0362b52
from typing import Dict, Any, List, Optional
import requests
import base64
def add_shadow(
api_key: str,
image_data: bytes = None,
image_url: str = None,
shadow_type: str = "regular",
background_color: Optional[str] = None,
shadow_color: str = "#000000",
shadow_offset: List[int] = [0, 15],
shadow_intensity: int = 60,
shadow_blur: Optional[int] = None,
shadow_width: Optional[int] = None,
shadow_height: Optional[int] = 70,
sku: Optional[str] = None,
force_rmbg: bool = False,
content_moderation: bool = False
) -> Dict[str, Any]:
"""
Add shadow to an image.
Args:
api_key: Bria AI API key
image_data: Image data in bytes (optional if image_url provided)
image_url: URL of the image (optional if image_data provided)
shadow_type: Type of shadow ("regular" or "float")
background_color: Optional background color in hex format
shadow_color: Shadow color in hex format
shadow_offset: [x, y] offset for shadow
shadow_intensity: Shadow intensity (0-100)
shadow_blur: Shadow blur amount
shadow_width: Optional shadow width for float shadows
shadow_height: Optional shadow height for float shadows
sku: Optional SKU identifier
force_rmbg: Whether to force background removal
content_moderation: Whether to enable content moderation
Returns:
Dict containing the API response
"""
url = "https://engine.prod.bria-api.com/v1/product/shadow"
headers = {
'api_token': api_key,
'Accept': 'application/json',
'Content-Type': 'application/json'
}
# Prepare request data
data = {
'shadow_type': shadow_type,
'shadow_color': shadow_color,
'shadow_intensity': shadow_intensity,
'force_rmbg': force_rmbg,
'content_moderation': content_moderation,
'shadow_offset': shadow_offset
}
# Add image data
if image_url:
data['image_url'] = image_url
elif image_data:
data['file'] = base64.b64encode(image_data).decode('utf-8')
else:
raise ValueError("Either image_data or image_url must be provided")
# Add optional parameters
if background_color:
data['background_color'] = background_color
if shadow_blur is not None:
data['shadow_blur'] = shadow_blur
if shadow_width is not None:
data['shadow_width'] = shadow_width
if shadow_height is not None:
data['shadow_height'] = shadow_height
if sku:
data['sku'] = sku
try:
print(f"Making request to: {url}")
print(f"Headers: {headers}")
print(f"Data: {data}")
response = requests.post(url, headers=headers, json=data)
response.raise_for_status()
print(f"Response status: {response.status_code}")
print(f"Response body: {response.text}")
return response.json()
except Exception as e:
raise Exception(f"Shadow addition failed: {str(e)}")