n9hFlddlmZddlmZddlZddlmZddlm Z ddl m Z m Z m Z GddZdS))ImageN) transforms)AutoModelForImageSegmentation)DictListAnycReZdZddZdeeefdeeeeffdZdS)EndpointHandlerctjddd|_tjddgd|jd|jd |_dS) Nzimage-segmentationzbriaai/RMBG-2.0T)modeltrust_remote_codehighhighestrcudar)rfrom_pretrainedr torchset_float32_matmul_precisiontoeval image_size)selfpaths /content/RMBG-2.0/handler.py__init__zEndpointHandler.__init__sw2BCW_pEIJJJ  *FI+>q+ABBB f &datareturnc 2d}tjtj|tjtjgdgdg}|dd}t j|}||d d}tj 5| |d }dddn #1swxYwY|d}tj|} | |j} || |d d d d gS) Nr)g ףp= ?gv/?gCl?)gZd;O?gy&1?g?inputsr rrzno_bg_image.pngtrue) image_pathmask)rComposeResizeToTensor Normalizegetropen unsqueezerrno_gradr sigmoidcpusqueeze ToPILImageresizesizeputalphasave) rrrtransform_imager%image input_imagespredspredpred_pilr&s r__call__zEndpointHandler.__call__s! $,  j ) )   ! !  !6!6!68M8M8M N N.    XXh++  :&&&u--77::==fEE ]__ A AJJ|,,R088::>>@@E A A A A A A A A A A A A A A AQx!!*:(**400uz** t $%%% &v6677sADDDN)r ) __name__ __module__ __qualname__rrstrrrr=rrr r s_''''8T#s(^8T#s(^0D888888rr )PILrmatplotlib.pyplotpyplotpltr torchvisionr transformersrtypingrrrr rBrrrJs """"""666666""""""""""!8!8!8!8!8!8!8!8!8!8r