Update app.py
Browse files
app.py
CHANGED
|
@@ -112,11 +112,13 @@ def process(image, bg):
|
|
| 112 |
pred_pil = transforms.ToPILImage()(pred)
|
| 113 |
mask = pred_pil.resize(image_size)
|
| 114 |
|
| 115 |
-
if bg.startswith("#"):
|
| 116 |
color_rgb = tuple(int(bg[i:i+2], 16) for i in (1, 3, 5))
|
| 117 |
background = Image.new("RGBA", image_size, color_rgb + (255,))
|
| 118 |
-
|
| 119 |
background = bg.convert("RGBA").resize(image_size)
|
|
|
|
|
|
|
| 120 |
|
| 121 |
# Composite the image onto the background using the mask
|
| 122 |
image = Image.composite(image, background, mask)
|
|
@@ -126,10 +128,14 @@ def process(image, bg):
|
|
| 126 |
|
| 127 |
with gr.Blocks(theme=gr.themes.Ocean()) as demo:
|
| 128 |
with gr.Row():
|
| 129 |
-
in_video = gr.Video(label="Input Video")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 130 |
stream_image = gr.Image(label="Streaming Output", visible=False)
|
| 131 |
out_video = gr.Video(label="Final Output Video")
|
| 132 |
-
submit_button = gr.Button("Change Background")
|
| 133 |
with gr.Row():
|
| 134 |
fps_slider = gr.Slider(
|
| 135 |
minimum=0,
|
|
@@ -137,13 +143,14 @@ with gr.Blocks(theme=gr.themes.Ocean()) as demo:
|
|
| 137 |
step=1,
|
| 138 |
value=0,
|
| 139 |
label="Output FPS (0 will inherit the original fps value)",
|
|
|
|
| 140 |
)
|
| 141 |
-
bg_type = gr.Radio(["Color", "Image", "Video"], label="Background Type", value="Color")
|
| 142 |
-
color_picker = gr.ColorPicker(label="Background Color", value="#00FF00", visible=True)
|
| 143 |
-
bg_image = gr.Image(label="Background Image", type="filepath", visible=False)
|
| 144 |
-
bg_video = gr.Video(label="Background Video", visible=False)
|
| 145 |
with gr.Column(visible=False) as video_handling_options:
|
| 146 |
-
video_handling_radio = gr.Radio(["slow_down", "loop"], label="Video Handling", value="slow_down")
|
| 147 |
|
| 148 |
def update_visibility(bg_type):
|
| 149 |
if bg_type == "Color":
|
|
|
|
| 112 |
pred_pil = transforms.ToPILImage()(pred)
|
| 113 |
mask = pred_pil.resize(image_size)
|
| 114 |
|
| 115 |
+
if isinstance(bg, str) and bg.startswith("#"):
|
| 116 |
color_rgb = tuple(int(bg[i:i+2], 16) for i in (1, 3, 5))
|
| 117 |
background = Image.new("RGBA", image_size, color_rgb + (255,))
|
| 118 |
+
elif isinstance(bg, Image.Image):
|
| 119 |
background = bg.convert("RGBA").resize(image_size)
|
| 120 |
+
else:
|
| 121 |
+
background = Image.open(bg).convert("RGBA").resize(image_size)
|
| 122 |
|
| 123 |
# Composite the image onto the background using the mask
|
| 124 |
image = Image.composite(image, background, mask)
|
|
|
|
| 128 |
|
| 129 |
with gr.Blocks(theme=gr.themes.Ocean()) as demo:
|
| 130 |
with gr.Row():
|
| 131 |
+
in_video = gr.Video(label="Input Video", interactive=True if isinstance(bg, str) and bg.startswith("#"):
|
| 132 |
+
color_rgb = tuple(int(bg[i:i+2], 16) for i in (1, 3, 5))
|
| 133 |
+
background = Image.new("RGBA", image_size, color_rgb + (255,))
|
| 134 |
+
elif isinstance(bg, Image.Image):
|
| 135 |
+
background = bg.convert("RGBA").resize(image_size))
|
| 136 |
stream_image = gr.Image(label="Streaming Output", visible=False)
|
| 137 |
out_video = gr.Video(label="Final Output Video")
|
| 138 |
+
submit_button = gr.Button("Change Background", interactive=True)
|
| 139 |
with gr.Row():
|
| 140 |
fps_slider = gr.Slider(
|
| 141 |
minimum=0,
|
|
|
|
| 143 |
step=1,
|
| 144 |
value=0,
|
| 145 |
label="Output FPS (0 will inherit the original fps value)",
|
| 146 |
+
interactive=True
|
| 147 |
)
|
| 148 |
+
bg_type = gr.Radio(["Color", "Image", "Video"], label="Background Type", value="Color", interactive=True)
|
| 149 |
+
color_picker = gr.ColorPicker(label="Background Color", value="#00FF00", visible=True, interactive=True)
|
| 150 |
+
bg_image = gr.Image(label="Background Image", type="filepath", visible=False, interactive=True)
|
| 151 |
+
bg_video = gr.Video(label="Background Video", visible=False, interactive=True)
|
| 152 |
with gr.Column(visible=False) as video_handling_options:
|
| 153 |
+
video_handling_radio = gr.Radio(["slow_down", "loop"], label="Video Handling", value="slow_down", interactive=True)
|
| 154 |
|
| 155 |
def update_visibility(bg_type):
|
| 156 |
if bg_type == "Color":
|