| | import gradio as gr |
| | from shared.utils.plugins import WAN2GPPlugin |
| | from preprocessing.matanyone import app as matanyone_app |
| |
|
| | class VideoMaskCreatorPlugin(WAN2GPPlugin): |
| | def __init__(self): |
| | super().__init__() |
| | self.name = "Video Mask Creator" |
| | self.version = "1.2.0" |
| | self.description = "Create masks for your videos with Matanyone. Now fully integrated with the plugin system." |
| | self._is_active = False |
| | |
| | self.matanyone_app = matanyone_app |
| | self.vmc_event_handler = self.matanyone_app.get_vmc_event_handler() |
| |
|
| | def setup_ui(self): |
| | self.request_global("download_shared_done") |
| | self.request_global("download_models") |
| | self.request_global("server_config") |
| | self.request_global("get_current_model_settings") |
| | |
| | self.request_component("main_tabs") |
| | self.request_component("state") |
| | self.request_component("refresh_form_trigger") |
| | |
| | self.add_tab( |
| | tab_id="video_mask_creator", |
| | label="Video Mask Creator", |
| | component_constructor=self.create_mask_creator_ui, |
| | position=1 |
| | ) |
| |
|
| | def create_mask_creator_ui(self): |
| | matanyone_tab_state = gr.State({ "tab_no": 0 }) |
| | self.matanyone_app.display( |
| | tabs=self.main_tabs, |
| | tab_state=matanyone_tab_state, |
| | state=self.state, |
| | refresh_form_trigger=self.refresh_form_trigger, |
| | server_config=self.server_config, |
| | get_current_model_settings_fn=self.get_current_model_settings |
| | ) |
| |
|
| | def on_tab_select(self, state: dict) -> None: |
| | |
| | if not self.download_shared_done: |
| | self.download_models() |
| | self.vmc_event_handler(state, True) |
| | self._is_active = True |
| |
|
| | def on_tab_deselect(self, state: dict) -> None: |
| | if not self._is_active: |
| | return |
| | |
| | self.vmc_event_handler(state, False) |
| | self._is_active = False |