Spaces:
Running
on
Zero
Running
on
Zero
| from .base import VideoProcessor | |
| class AutoVideoProcessor(VideoProcessor): | |
| def __init__(self): | |
| pass | |
| 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 | |
| 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 | |