| from .base import VideoProcessor |
|
|
|
|
| class AutoVideoProcessor(VideoProcessor): |
| def __init__(self): |
| pass |
|
|
| @staticmethod |
| def from_model_manager(model_manager, processor_type, **kwargs): |
| if processor_type == "FastBlend": |
| from .FastBlend import FastBlendSmoother |
| return FastBlendSmoother.from_model_manager(model_manager, **kwargs) |
| elif processor_type == "Contrast": |
| from .PILEditor import ContrastEditor |
| return ContrastEditor.from_model_manager(model_manager, **kwargs) |
| elif processor_type == "Sharpness": |
| from .PILEditor import SharpnessEditor |
| return SharpnessEditor.from_model_manager(model_manager, **kwargs) |
| elif processor_type == "RIFE": |
| from .RIFE import RIFESmoother |
| return RIFESmoother.from_model_manager(model_manager, **kwargs) |
| else: |
| raise ValueError(f"invalid processor_type: {processor_type}") |
|
|
|
|
| class SequencialProcessor(VideoProcessor): |
| def __init__(self, processors=[]): |
| self.processors = processors |
|
|
| @staticmethod |
| def from_model_manager(model_manager, configs): |
| processors = [ |
| AutoVideoProcessor.from_model_manager(model_manager, config["processor_type"], **config["config"]) |
| for config in configs |
| ] |
| return SequencialProcessor(processors) |
| |
| def __call__(self, rendered_frames, **kwargs): |
| for processor in self.processors: |
| rendered_frames = processor(rendered_frames, **kwargs) |
| return rendered_frames |
|
|