| | 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 |
| |
|