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