o
    ॵi                     @   s   d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZ d dlmZ e Zejejejd	G d
d deZdS )    )AnyDict)	Pipelines)
inpainting)
OutputKeys)InputPipeline)	PIPELINES)Tasks)
get_logger)module_namec                       s   e Zd Zdef fddZdedeeef fddZdeeef deeef fdd	Z	d
eeef deeef fddZ
  ZS )VideoInpaintingPipelinemodelc                    s$   t  jdd|i| td dS )z
        use `model` to create video inpainting pipeline for prediction
        Args:
            model: model id on modelscope hub.
        r   zload model doneN )super__init__loggerinfo)selfr   kwargs	__class__r   e/home/ubuntu/.local/lib/python3.10/site-packages/modelscope/pipelines/cv/video_inpainting_pipeline.pyr      s   z VideoInpaintingPipeline.__init__inputreturnc                 C      |S Nr   )r   r   r   r   r   
preprocess      z"VideoInpaintingPipeline.preprocessc              	   C   sV   t |d \}}}}|d urtjdiS t | j|d |d |d ||| tjdiS )Nvideo_input_pathdecode_error	mask_pathvideo_output_pathDone)r   video_processr   OUTPUTinpainting_by_model_balancer   )r   r   r    fpswhr   r   r   forward    s   

zVideoInpaintingPipeline.forwardinputsc                 C   r   r   r   )r   r+   r   r   r   postprocess/   r   z#VideoInpaintingPipeline.postprocess)__name__
__module____qualname__strr   r   r   r   r   r*   r,   __classcell__r   r   r   r   r      s
    
"*r   N)typingr   r   modelscope.metainfor   %modelscope.models.cv.video_inpaintingr   modelscope.outputsr   modelscope.pipelines.baser   r   modelscope.pipelines.builderr	   modelscope.utils.constantr
   modelscope.utils.loggerr   r   register_modulevideo_inpaintingr   r   r   r   r   <module>   s   