add diffutoon editing example

This commit is contained in:
Artiprocher
2024-02-05 13:59:56 +08:00
parent eab2dcbf7b
commit 7b1fe47199
4 changed files with 250 additions and 8 deletions

View File

@@ -1,15 +1,41 @@
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, **kwargs):
return SequencialProcessor(**kwargs)
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
return rendered_frames