modelscope/DiffSynth-Painter
14
1from .base import VideoProcessor2 3 4class AutoVideoProcessor(VideoProcessor):5 def __init__(self):6 pass7 8 @staticmethod9 def from_model_manager(model_manager, processor_type, **kwargs):10 if processor_type == "FastBlend":11 from .FastBlend import FastBlendSmoother12 return FastBlendSmoother.from_model_manager(model_manager, **kwargs)13 elif processor_type == "Contrast":14 from .PILEditor import ContrastEditor15 return ContrastEditor.from_model_manager(model_manager, **kwargs)16 elif processor_type == "Sharpness":17 from .PILEditor import SharpnessEditor18 return SharpnessEditor.from_model_manager(model_manager, **kwargs)19 elif processor_type == "RIFE":20 from .RIFE import RIFESmoother21 return RIFESmoother.from_model_manager(model_manager, **kwargs)22 else:23 raise ValueError(f"invalid processor_type: {processor_type}")24 25 26class SequencialProcessor(VideoProcessor):27 def __init__(self, processors=[]):28 self.processors = processors29 30 @staticmethod31 def from_model_manager(model_manager, configs):32 processors = [33 AutoVideoProcessor.from_model_manager(model_manager, config["processor_type"], **config["config"])34 for config in configs35 ]36 return SequencialProcessor(processors)37 38 def __call__(self, rendered_frames, **kwargs):39 for processor in self.processors:40 rendered_frames = processor(rendered_frames, **kwargs)41 return rendered_frames42 