jhj0517 commited on
Commit
64b615e
1 Parent(s): bc096a1

Add arg parser

Browse files
Files changed (1) hide show
  1. app.py +24 -7
app.py CHANGED
@@ -1,25 +1,28 @@
 
1
  import gradio as gr
2
  from gradio_image_prompter import ImagePrompter
3
- from gradio_image_prompter.image_prompter import PromptData
4
  from typing import List, Dict, Optional, Union
5
  import os
6
  import yaml
7
 
8
  from modules.sam_inference import SamInference
9
  from modules.model_downloader import DEFAULT_MODEL_TYPE
10
- from modules.paths import (OUTPUT_DIR, OUTPUT_PSD_DIR, SAM2_CONFIGS_DIR, TEMP_DIR, OUTPUT_FILTER_DIR)
11
  from modules.utils import open_folder
12
  from modules.constants import (AUTOMATIC_MODE, BOX_PROMPT_MODE, PIXELIZE_FILTER, COLOR_FILTER, DEFAULT_COLOR,
13
  DEFAULT_PIXEL_SIZE, SOUND_FILE_EXT, IMAGE_FILE_EXT, VIDEO_FILE_EXT)
14
- from modules.video_utils import extract_frames, extract_sound, get_frames_from_dir, clean_temp_dir
15
 
16
 
17
  class App:
18
  def __init__(self,
19
- args=None):
20
  self.demo = gr.Blocks()
21
  self.args = args
22
- self.sam_inf = SamInference()
 
 
 
23
  self.image_modes = [AUTOMATIC_MODE, BOX_PROMPT_MODE]
24
  self.default_mode = BOX_PROMPT_MODE
25
  self.filter_modes = [PIXELIZE_FILTER, COLOR_FILTER]
@@ -191,9 +194,23 @@ class App:
191
  outputs=[vid_output, output_file])
192
  btn_open_folder.click(fn=lambda: open_folder(OUTPUT_FILTER_DIR), inputs=None, outputs=None)
193
 
194
- self.demo.queue().launch(inbrowser=True)
 
 
 
195
 
196
 
197
  if __name__ == "__main__":
198
- demo = App()
 
 
 
 
 
 
 
 
 
 
 
199
  demo.launch()
 
1
+ import argparse
2
  import gradio as gr
3
  from gradio_image_prompter import ImagePrompter
 
4
  from typing import List, Dict, Optional, Union
5
  import os
6
  import yaml
7
 
8
  from modules.sam_inference import SamInference
9
  from modules.model_downloader import DEFAULT_MODEL_TYPE
10
+ from modules.paths import (OUTPUT_DIR, OUTPUT_PSD_DIR, SAM2_CONFIGS_DIR, TEMP_DIR, OUTPUT_FILTER_DIR, MODELS_DIR)
11
  from modules.utils import open_folder
12
  from modules.constants import (AUTOMATIC_MODE, BOX_PROMPT_MODE, PIXELIZE_FILTER, COLOR_FILTER, DEFAULT_COLOR,
13
  DEFAULT_PIXEL_SIZE, SOUND_FILE_EXT, IMAGE_FILE_EXT, VIDEO_FILE_EXT)
14
+ from modules.video_utils import get_frames_from_dir
15
 
16
 
17
  class App:
18
  def __init__(self,
19
+ args: argparse.Namespace):
20
  self.demo = gr.Blocks()
21
  self.args = args
22
+ self.sam_inf = SamInference(
23
+ model_dir=self.args.model_dir,
24
+ output_dir=self.args.output_dir
25
+ )
26
  self.image_modes = [AUTOMATIC_MODE, BOX_PROMPT_MODE]
27
  self.default_mode = BOX_PROMPT_MODE
28
  self.filter_modes = [PIXELIZE_FILTER, COLOR_FILTER]
 
194
  outputs=[vid_output, output_file])
195
  btn_open_folder.click(fn=lambda: open_folder(OUTPUT_FILTER_DIR), inputs=None, outputs=None)
196
 
197
+ self.demo.queue().launch(
198
+ inbrowser=self.args.inbrowser,
199
+ share=self.args.share
200
+ )
201
 
202
 
203
  if __name__ == "__main__":
204
+ parser = argparse.ArgumentParser()
205
+ parser.add_argument('--model_dir', type=str, default=MODELS_DIR,
206
+ help='Model directory for segment-anything-2')
207
+ parser.add_argument('--output_dir', type=str, default=OUTPUT_DIR,
208
+ help='Output directory for the results')
209
+ parser.add_argument('--inbrowser', type=bool, default=True, nargs='?', const=True,
210
+ help='Whether to automatically start Gradio app or not')
211
+ parser.add_argument('--share', type=bool, default=True, nargs='?', const=False,
212
+ help='Whether to create a public link for the app or not')
213
+ args = parser.parse_args()
214
+
215
+ demo = App(args=args)
216
  demo.launch()