adsnap-studio / src /workflows /generate_ad_set.py
Dewmike's picture
Initial commit with Hugging Face Whisper integration
0362b52
from typing import Dict, Any, Optional
from services import (
lifestyle_shot_by_text,
add_shadow,
create_packshot,
generate_hd_image
)
def generate_ad_set(
api_key: str,
image: Optional[bytes] = None,
prompt: Optional[str] = None,
config: Dict[str, Any] = None
) -> Dict[str, Any]:
"""
Generate a set of product ads based on configuration.
"""
if not config:
config = {}
result = {}
# Generate HD image if prompt provided
if prompt and not image:
hd_response = generate_hd_image(
api_key=api_key,
prompt=prompt,
num_results=config.get("num_results", 1),
aspect_ratio=config.get("aspect_ratio", "1:1"),
sync=config.get("sync", True)
)
result["hd_image"] = hd_response
image = hd_response.get("result_url")
# Create packshot if requested
if config.get("create_packshot", False) and image:
packshot_response = create_packshot(
api_key=api_key,
image_data=image,
background_color=config.get("background_color", "#FFFFFF")
)
result["packshot"] = packshot_response
# Add shadow if requested
if config.get("add_shadow", False) and image:
shadow_response = add_shadow(
api_key=api_key,
image_data=image,
shadow_type=config.get("shadow_type", "natural")
)
result["shadow"] = shadow_response
# Create lifestyle shot if requested
if config.get("lifestyle_shot", False) and image:
lifestyle_response = lifestyle_shot_by_text(
api_key=api_key,
image_data=image,
scene_description=config.get("scene_description", ""),
num_results=config.get("num_results", 1)
)
result["lifestyle"] = lifestyle_response
return result