from src.components.necklaceTryOn import NecklaceTryOn from typing import Union from PIL import Image class Pipeline: def __init__(self) -> None: self.necklaceTryOnObj = NecklaceTryOn() async def necklaceTryOn_(self, image: Image.Image, jewellery: Image.Image, storename: str) -> list[ Union[Image.Image, str]]: result, headerText, mask = self.necklaceTryOnObj.necklaceTryOn(image=image, jewellery=jewellery, storename=storename) return [result, headerText, mask] async def shoulderPointMaskGeneration_(self, image: Image.Image): mask, left, right = self.necklaceTryOnObj.shoulderPointMaskGeneration(image=image) return mask, left, right async def canvasPoint(self, image: Image.Image, jewellery: Image.Image, storename: str) -> dict: points = self.necklaceTryOnObj.canvasPoints(image=image, jewellery=jewellery, storename=storename) return points async def necklaceTryOnWithPoints_(self, image: Image.Image, jewellery: Image.Image, left_shoulder: tuple[int, int], right_shoulder: tuple[int, int], storename: str) -> list[ Union[Image.Image, str]]: result, headerText, mask = self.necklaceTryOnObj.necklaceTryOnWithPoints(image=image, jewellery=jewellery, left_point=left_shoulder, right_point=right_shoulder, storename=storename) return [result, headerText, mask] def necklaceTryOnMannequin_(self, image: Image.Image, jewellery: Image.Image): result, resized_image = self.necklaceTryOnObj.necklaceTryOnMannequin(image, jewellery) return result, resized_image