Spaces:
Running
on
Zero
Running
on
Zero
| import spaces | |
| import gradio as gr | |
| from stablepy import Preprocessor | |
| PREPROCESSOR_TASKS_LIST = [ | |
| "Canny", | |
| "Openpose", | |
| "DPT", | |
| "Midas", | |
| "ZoeDepth", | |
| "DepthAnything", | |
| "HED", | |
| "PidiNet", | |
| "TEED", | |
| "Lineart", | |
| "LineartAnime", | |
| "Anyline", | |
| "Lineart standard", | |
| "SegFormer", | |
| "UPerNet", | |
| "ContentShuffle", | |
| "Recolor", | |
| "Blur", | |
| "MLSD", | |
| "NormalBae", | |
| ] | |
| preprocessor = Preprocessor() | |
| def process_inputs( | |
| image, | |
| name, | |
| resolution, | |
| precessor_resolution, | |
| low_threshold, | |
| high_threshold, | |
| value_threshod, | |
| distance_threshold, | |
| recolor_mode, | |
| recolor_gamma_correction, | |
| blur_k_size, | |
| pre_openpose_extra, | |
| hed_scribble, | |
| pre_pidinet_safe, | |
| pre_lineart_coarse, | |
| use_cuda, | |
| ): | |
| if not image: | |
| raise ValueError("To use this, simply upload an image.") | |
| preprocessor.load(name, False) | |
| params = dict( | |
| image_resolution=resolution, | |
| detect_resolution=precessor_resolution, | |
| low_threshold=low_threshold, | |
| high_threshold=high_threshold, | |
| thr_v=value_threshod, | |
| thr_d=distance_threshold, | |
| mode=recolor_mode, | |
| gamma_correction=recolor_gamma_correction, | |
| blur_sigma=blur_k_size, | |
| hand_and_face=pre_openpose_extra, | |
| scribble=hed_scribble, | |
| safe=pre_pidinet_safe, | |
| coarse=pre_lineart_coarse, | |
| ) | |
| if use_cuda: | |
| def wrapped_func(): | |
| preprocessor.to("cuda") | |
| return preprocessor(image, **params) | |
| return wrapped_func() | |
| return preprocessor(image, **params) | |
| def preprocessor_tab(): | |
| with gr.Row(): | |
| with gr.Column(): | |
| pre_image = gr.Image(label="Image", type="pil", sources=["upload"]) | |
| pre_options = gr.Dropdown(label="Preprocessor", choices=PREPROCESSOR_TASKS_LIST, value=PREPROCESSOR_TASKS_LIST[0]) | |
| pre_img_resolution = gr.Slider( | |
| minimum=64, maximum=4096, step=64, value=1024, label="Image Resolution", | |
| info="The maximum proportional size of the generated image based on the uploaded image." | |
| ) | |
| pre_start = gr.Button(value="PROCESS IMAGE", variant="primary") | |
| with gr.Accordion("Advanced Settings", open=False): | |
| with gr.Column(): | |
| pre_processor_resolution = gr.Slider(minimum=64, maximum=2048, step=64, value=512, label="Preprocessor Resolution") | |
| pre_low_threshold = gr.Slider(minimum=1, maximum=255, step=1, value=100, label="'CANNY' low threshold") | |
| pre_high_threshold = gr.Slider(minimum=1, maximum=255, step=1, value=200, label="'CANNY' high threshold") | |
| pre_value_threshold = gr.Slider(minimum=1, maximum=2.0, step=0.01, value=0.1, label="'MLSD' Hough value threshold") | |
| pre_distance_threshold = gr.Slider(minimum=1, maximum=20.0, step=0.01, value=0.1, label="'MLSD' Hough distance threshold") | |
| pre_recolor_mode = gr.Dropdown(label="'RECOLOR' mode", choices=["luminance", "intensity"], value="luminance") | |
| pre_recolor_gamma_correction = gr.Number(minimum=0., maximum=25., value=1., step=0.001, label="'RECOLOR' gamma correction") | |
| pre_blur_k_size = gr.Number(minimum=0, maximum=100, value=9, step=1, label="'BLUR' sigma") | |
| pre_openpose_extra = gr.Checkbox(value=True, label="'OPENPOSE' face and hand") | |
| pre_hed_scribble = gr.Checkbox(value=False, label="'HED' scribble") | |
| pre_pidinet_safe = gr.Checkbox(value=False, label="'PIDINET' safe") | |
| pre_lineart_coarse = gr.Checkbox(value=False, label="'LINEART' coarse") | |
| pre_use_cuda = gr.Checkbox(value=False, label="Use CUDA") | |
| with gr.Column(): | |
| pre_result = gr.Image(label="Result", type="pil", interactive=False, format="png") | |
| pre_start.click( | |
| fn=process_inputs, | |
| inputs=[ | |
| pre_image, | |
| pre_options, | |
| pre_img_resolution, | |
| pre_processor_resolution, | |
| pre_low_threshold, | |
| pre_high_threshold, | |
| pre_value_threshold, | |
| pre_distance_threshold, | |
| pre_recolor_mode, | |
| pre_recolor_gamma_correction, | |
| pre_blur_k_size, | |
| pre_openpose_extra, | |
| pre_hed_scribble, | |
| pre_pidinet_safe, | |
| pre_lineart_coarse, | |
| pre_use_cuda, | |
| ], | |
| outputs=[pre_result], | |
| ) | |