Spaces:
Running
on
Zero
Running
on
Zero
Commit
·
1592dab
1
Parent(s):
65cb7d4
Add BiRefNet-Lite-2K model, add model choosing option in tab_batch.
Browse files- app.py +11 -6
- app_local.py +11 -6
app.py
CHANGED
|
@@ -61,7 +61,7 @@ def FB_blur_fusion_foreground_estimator(image, F, B, alpha, r=90):
|
|
| 61 |
class ImagePreprocessor():
|
| 62 |
def __init__(self, resolution: Tuple[int, int] = (1024, 1024)) -> None:
|
| 63 |
self.transform_image = transforms.Compose([
|
| 64 |
-
transforms.Resize(resolution),
|
| 65 |
transforms.ToTensor(),
|
| 66 |
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),
|
| 67 |
])
|
|
@@ -74,6 +74,7 @@ class ImagePreprocessor():
|
|
| 74 |
usage_to_weights_file = {
|
| 75 |
'General': 'BiRefNet',
|
| 76 |
'General-Lite': 'BiRefNet_lite',
|
|
|
|
| 77 |
'Portrait': 'BiRefNet-portrait',
|
| 78 |
'DIS': 'BiRefNet-DIS5K',
|
| 79 |
'HRSOD': 'BiRefNet-HRSOD',
|
|
@@ -102,8 +103,8 @@ def predict(images, resolution, weights_file):
|
|
| 102 |
try:
|
| 103 |
resolution = [int(int(reso)//32*32) for reso in resolution.strip().split('x')]
|
| 104 |
except:
|
| 105 |
-
resolution =
|
| 106 |
-
print('Invalid resolution input. Automatically changed to 1024x1024.')
|
| 107 |
|
| 108 |
if isinstance(images, list):
|
| 109 |
# For tab_batch
|
|
@@ -182,7 +183,7 @@ tab_image = gr.Interface(
|
|
| 182 |
fn=predict,
|
| 183 |
inputs=[
|
| 184 |
gr.Image(label='Upload an image'),
|
| 185 |
-
gr.Textbox(lines=1, placeholder="Type the resolution (`WxH`) you want, e.g., `1024x1024`.
|
| 186 |
gr.Radio(list(usage_to_weights_file.keys()), value='General', label="Weights", info="Choose the weights you want.")
|
| 187 |
],
|
| 188 |
outputs=ImageSlider(label="BiRefNet's prediction", type="pil"),
|
|
@@ -195,7 +196,7 @@ tab_text = gr.Interface(
|
|
| 195 |
fn=predict,
|
| 196 |
inputs=[
|
| 197 |
gr.Textbox(label="Paste an image URL"),
|
| 198 |
-
gr.Textbox(lines=1, placeholder="Type the resolution (`WxH`) you want, e.g., `1024x1024`.
|
| 199 |
gr.Radio(list(usage_to_weights_file.keys()), value='General', label="Weights", info="Choose the weights you want.")
|
| 200 |
],
|
| 201 |
outputs=ImageSlider(label="BiRefNet's prediction", type="pil"),
|
|
@@ -206,7 +207,11 @@ tab_text = gr.Interface(
|
|
| 206 |
|
| 207 |
tab_batch = gr.Interface(
|
| 208 |
fn=predict,
|
| 209 |
-
inputs=
|
|
|
|
|
|
|
|
|
|
|
|
|
| 210 |
outputs=[gr.Gallery(label="BiRefNet's predictions"), gr.File(label="Download masked images.")],
|
| 211 |
api_name="batch",
|
| 212 |
description=descriptions+'\nTab-batch is partially modified from https://huggingface.co/spaces/NegiTurkey/Multi_Birefnetfor_Background_Removal, thanks to this great work!',
|
|
|
|
| 61 |
class ImagePreprocessor():
|
| 62 |
def __init__(self, resolution: Tuple[int, int] = (1024, 1024)) -> None:
|
| 63 |
self.transform_image = transforms.Compose([
|
| 64 |
+
transforms.Resize(resolution),
|
| 65 |
transforms.ToTensor(),
|
| 66 |
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),
|
| 67 |
])
|
|
|
|
| 74 |
usage_to_weights_file = {
|
| 75 |
'General': 'BiRefNet',
|
| 76 |
'General-Lite': 'BiRefNet_lite',
|
| 77 |
+
'General-Lite-2K': 'BiRefNet_lite-2K',
|
| 78 |
'Portrait': 'BiRefNet-portrait',
|
| 79 |
'DIS': 'BiRefNet-DIS5K',
|
| 80 |
'HRSOD': 'BiRefNet-HRSOD',
|
|
|
|
| 103 |
try:
|
| 104 |
resolution = [int(int(reso)//32*32) for reso in resolution.strip().split('x')]
|
| 105 |
except:
|
| 106 |
+
resolution = (1024, 1024) if weights_file not in ['General-Lite-2K'] else (2560, 1440)
|
| 107 |
+
print('Invalid resolution input. Automatically changed to 1024x1024 or 2K.')
|
| 108 |
|
| 109 |
if isinstance(images, list):
|
| 110 |
# For tab_batch
|
|
|
|
| 183 |
fn=predict,
|
| 184 |
inputs=[
|
| 185 |
gr.Image(label='Upload an image'),
|
| 186 |
+
gr.Textbox(lines=1, placeholder="Type the resolution (`WxH`) you want, e.g., `1024x1024`.", label="Resolution"),
|
| 187 |
gr.Radio(list(usage_to_weights_file.keys()), value='General', label="Weights", info="Choose the weights you want.")
|
| 188 |
],
|
| 189 |
outputs=ImageSlider(label="BiRefNet's prediction", type="pil"),
|
|
|
|
| 196 |
fn=predict,
|
| 197 |
inputs=[
|
| 198 |
gr.Textbox(label="Paste an image URL"),
|
| 199 |
+
gr.Textbox(lines=1, placeholder="Type the resolution (`WxH`) you want, e.g., `1024x1024`.", label="Resolution"),
|
| 200 |
gr.Radio(list(usage_to_weights_file.keys()), value='General', label="Weights", info="Choose the weights you want.")
|
| 201 |
],
|
| 202 |
outputs=ImageSlider(label="BiRefNet's prediction", type="pil"),
|
|
|
|
| 207 |
|
| 208 |
tab_batch = gr.Interface(
|
| 209 |
fn=predict,
|
| 210 |
+
inputs=[
|
| 211 |
+
gr.File(label="Upload multiple images", type="filepath", file_count="multiple"),
|
| 212 |
+
gr.Textbox(lines=1, placeholder="Type the resolution (`WxH`) you want, e.g., `1024x1024`.", label="Resolution"),
|
| 213 |
+
gr.Radio(list(usage_to_weights_file.keys()), value='General', label="Weights", info="Choose the weights you want.")
|
| 214 |
+
],
|
| 215 |
outputs=[gr.Gallery(label="BiRefNet's predictions"), gr.File(label="Download masked images.")],
|
| 216 |
api_name="batch",
|
| 217 |
description=descriptions+'\nTab-batch is partially modified from https://huggingface.co/spaces/NegiTurkey/Multi_Birefnetfor_Background_Removal, thanks to this great work!',
|
app_local.py
CHANGED
|
@@ -61,7 +61,7 @@ def FB_blur_fusion_foreground_estimator(image, F, B, alpha, r=90):
|
|
| 61 |
class ImagePreprocessor():
|
| 62 |
def __init__(self, resolution: Tuple[int, int] = (1024, 1024)) -> None:
|
| 63 |
self.transform_image = transforms.Compose([
|
| 64 |
-
transforms.Resize(resolution),
|
| 65 |
transforms.ToTensor(),
|
| 66 |
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),
|
| 67 |
])
|
|
@@ -74,6 +74,7 @@ class ImagePreprocessor():
|
|
| 74 |
usage_to_weights_file = {
|
| 75 |
'General': 'BiRefNet',
|
| 76 |
'General-Lite': 'BiRefNet_lite',
|
|
|
|
| 77 |
'Portrait': 'BiRefNet-portrait',
|
| 78 |
'DIS': 'BiRefNet-DIS5K',
|
| 79 |
'HRSOD': 'BiRefNet-HRSOD',
|
|
@@ -102,8 +103,8 @@ def predict(images, resolution, weights_file):
|
|
| 102 |
try:
|
| 103 |
resolution = [int(int(reso)//32*32) for reso in resolution.strip().split('x')]
|
| 104 |
except:
|
| 105 |
-
resolution =
|
| 106 |
-
print('Invalid resolution input. Automatically changed to 1024x1024.')
|
| 107 |
|
| 108 |
if isinstance(images, list):
|
| 109 |
# For tab_batch
|
|
@@ -182,7 +183,7 @@ tab_image = gr.Interface(
|
|
| 182 |
fn=predict,
|
| 183 |
inputs=[
|
| 184 |
gr.Image(label='Upload an image'),
|
| 185 |
-
gr.Textbox(lines=1, placeholder="Type the resolution (`WxH`) you want, e.g., `1024x1024`.
|
| 186 |
gr.Radio(list(usage_to_weights_file.keys()), value='General', label="Weights", info="Choose the weights you want.")
|
| 187 |
],
|
| 188 |
outputs=gr.Image(label="BiRefNet's prediction", type="pil", format='png'),
|
|
@@ -195,7 +196,7 @@ tab_text = gr.Interface(
|
|
| 195 |
fn=predict,
|
| 196 |
inputs=[
|
| 197 |
gr.Textbox(label="Paste an image URL"),
|
| 198 |
-
gr.Textbox(lines=1, placeholder="Type the resolution (`WxH`) you want, e.g., `1024x1024`.
|
| 199 |
gr.Radio(list(usage_to_weights_file.keys()), value='General', label="Weights", info="Choose the weights you want.")
|
| 200 |
],
|
| 201 |
outputs=gr.Image(label="BiRefNet's prediction", type="pil", format='png'),
|
|
@@ -206,7 +207,11 @@ tab_text = gr.Interface(
|
|
| 206 |
|
| 207 |
tab_batch = gr.Interface(
|
| 208 |
fn=predict,
|
| 209 |
-
inputs=
|
|
|
|
|
|
|
|
|
|
|
|
|
| 210 |
outputs=[gr.Gallery(label="BiRefNet's predictions"), gr.File(label="Download masked images.")],
|
| 211 |
api_name="batch",
|
| 212 |
description=descriptions+'\nTab-batch is partially modified from https://huggingface.co/spaces/NegiTurkey/Multi_Birefnetfor_Background_Removal, thanks to this great work!',
|
|
|
|
| 61 |
class ImagePreprocessor():
|
| 62 |
def __init__(self, resolution: Tuple[int, int] = (1024, 1024)) -> None:
|
| 63 |
self.transform_image = transforms.Compose([
|
| 64 |
+
transforms.Resize(resolution),
|
| 65 |
transforms.ToTensor(),
|
| 66 |
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),
|
| 67 |
])
|
|
|
|
| 74 |
usage_to_weights_file = {
|
| 75 |
'General': 'BiRefNet',
|
| 76 |
'General-Lite': 'BiRefNet_lite',
|
| 77 |
+
'General-Lite-2K': 'BiRefNet_lite-2K',
|
| 78 |
'Portrait': 'BiRefNet-portrait',
|
| 79 |
'DIS': 'BiRefNet-DIS5K',
|
| 80 |
'HRSOD': 'BiRefNet-HRSOD',
|
|
|
|
| 103 |
try:
|
| 104 |
resolution = [int(int(reso)//32*32) for reso in resolution.strip().split('x')]
|
| 105 |
except:
|
| 106 |
+
resolution = (1024, 1024) if weights_file not in ['General-Lite-2K'] else (2560, 1440)
|
| 107 |
+
print('Invalid resolution input. Automatically changed to 1024x1024 or 2K.')
|
| 108 |
|
| 109 |
if isinstance(images, list):
|
| 110 |
# For tab_batch
|
|
|
|
| 183 |
fn=predict,
|
| 184 |
inputs=[
|
| 185 |
gr.Image(label='Upload an image'),
|
| 186 |
+
gr.Textbox(lines=1, placeholder="Type the resolution (`WxH`) you want, e.g., `1024x1024`.", label="Resolution"),
|
| 187 |
gr.Radio(list(usage_to_weights_file.keys()), value='General', label="Weights", info="Choose the weights you want.")
|
| 188 |
],
|
| 189 |
outputs=gr.Image(label="BiRefNet's prediction", type="pil", format='png'),
|
|
|
|
| 196 |
fn=predict,
|
| 197 |
inputs=[
|
| 198 |
gr.Textbox(label="Paste an image URL"),
|
| 199 |
+
gr.Textbox(lines=1, placeholder="Type the resolution (`WxH`) you want, e.g., `1024x1024`.", label="Resolution"),
|
| 200 |
gr.Radio(list(usage_to_weights_file.keys()), value='General', label="Weights", info="Choose the weights you want.")
|
| 201 |
],
|
| 202 |
outputs=gr.Image(label="BiRefNet's prediction", type="pil", format='png'),
|
|
|
|
| 207 |
|
| 208 |
tab_batch = gr.Interface(
|
| 209 |
fn=predict,
|
| 210 |
+
inputs=[
|
| 211 |
+
gr.File(label="Upload multiple images", type="filepath", file_count="multiple"),
|
| 212 |
+
gr.Textbox(lines=1, placeholder="Type the resolution (`WxH`) you want, e.g., `1024x1024`.", label="Resolution"),
|
| 213 |
+
gr.Radio(list(usage_to_weights_file.keys()), value='General', label="Weights", info="Choose the weights you want.")
|
| 214 |
+
],
|
| 215 |
outputs=[gr.Gallery(label="BiRefNet's predictions"), gr.File(label="Download masked images.")],
|
| 216 |
api_name="batch",
|
| 217 |
description=descriptions+'\nTab-batch is partially modified from https://huggingface.co/spaces/NegiTurkey/Multi_Birefnetfor_Background_Removal, thanks to this great work!',
|