Spaces:
Running
on
Zero
Running
on
Zero
HURA Implementation
Browse files
app.py
CHANGED
|
@@ -747,8 +747,7 @@ def on_input_image_change(image_path):
|
|
| 747 |
return None, gr.update()
|
| 748 |
img, img_path = convert_to_rgba_png(image_path)
|
| 749 |
width, height = img.size
|
| 750 |
-
|
| 751 |
-
return [img_path, gr.update(width=width, height=height)]
|
| 752 |
|
| 753 |
def update_sketch_dimensions(input_image, sketch_image):
|
| 754 |
# Load the images using open_image() if they are provided as file paths.
|
|
@@ -1268,6 +1267,7 @@ with gr.Blocks(css_paths="style_20250314.css", title=title, theme='Surn/beeuty',
|
|
| 1268 |
with gr.Row():
|
| 1269 |
apply_lut_button = gr.Button("Apply Filter to Input Image", elem_classes="solid", elem_id="apply_lut_button")
|
| 1270 |
apply_lut_to_sketch_button = gr.Button("Apply Filter to Sketch", elem_classes="solid", elem_id="apply_lut_to_sketch_button")
|
|
|
|
| 1271 |
with gr.Row():
|
| 1272 |
lut_example_image = gr.Image(type="pil", label="Filter (LUT) Example Image", value=constants.default_lut_example_img)
|
| 1273 |
with gr.Row():
|
|
@@ -1285,35 +1285,21 @@ with gr.Blocks(css_paths="style_20250314.css", title=title, theme='Surn/beeuty',
|
|
| 1285 |
label="Select a Filter (LUT) file to populate the LUT File Name field",
|
| 1286 |
examples_per_page = 25,
|
| 1287 |
)
|
| 1288 |
-
|
| 1289 |
-
lut_file.change(get_filename, inputs=[lut_file], outputs=[lut_filename])
|
| 1290 |
-
lut_filename.change(show_lut, inputs=[lut_filename, input_image, lut_intensity], outputs=[lut_example_image], scroll_to_output=True)
|
| 1291 |
-
lut_intensity.change(show_lut, inputs=[lut_filename, input_image, lut_intensity], outputs=[lut_example_image])
|
| 1292 |
-
apply_lut_button.click(
|
| 1293 |
-
lambda lut_filename, input_image, lut_intensity: gr.Warning("Please upload an Input Image to get started.") if input_image is None else apply_lut_to_image_path(lut_filename, input_image, lut_intensity)[1],
|
| 1294 |
-
inputs=[lut_filename, input_image, lut_intensity],
|
| 1295 |
-
outputs=[input_image],
|
| 1296 |
-
scroll_to_output=True
|
| 1297 |
-
)
|
| 1298 |
-
apply_lut_to_sketch_button.click(
|
| 1299 |
-
lambda lut_filename, sketch_image, lut_intensity: gr.Warning("Please upload an Input Image to get started.") if input_image is None else apply_lut_to_image_path(lut_filename, replace_with_sketch_image(sketch_image, False), lut_intensity)[1],
|
| 1300 |
-
inputs=[lut_filename, sketch_image, lut_intensity],
|
| 1301 |
-
outputs=[sketch_image],
|
| 1302 |
-
scroll_to_output=True
|
| 1303 |
-
)
|
| 1304 |
with gr.Accordion("Color Composite", open = False):
|
| 1305 |
with gr.Row():
|
| 1306 |
composite_color = gr.ColorPicker(label="Color", value="#ede9ac44")
|
| 1307 |
composite_opacity = gr.Slider(label="Opacity %", minimum=0, maximum=100, value=50, interactive=True)
|
| 1308 |
with gr.Row():
|
| 1309 |
-
composite_button = gr.Button("Composite to Input Image", elem_classes="solid")
|
| 1310 |
-
composite_sketch_button = gr.Button("Composite to Sketh", elem_classes="solid")
|
|
|
|
| 1311 |
with gr.Accordion("Blur", open = False):
|
| 1312 |
with gr.Row():
|
| 1313 |
blur_amount = gr.Slider(label="Blur Amount", minimum=0, maximum=100, value=5, interactive=True)
|
| 1314 |
with gr.Row():
|
| 1315 |
blur_button = gr.Button("Blur Input Image", elem_classes="solid")
|
| 1316 |
blur_sketch_button = gr.Button("Blur Sketch", elem_classes="solid")
|
|
|
|
| 1317 |
with gr.Accordion("Generate Hex Hura Background", open = False):
|
| 1318 |
hex_components = hex_hura.render()
|
| 1319 |
with gr.Row():
|
|
@@ -1621,7 +1607,7 @@ with gr.Blocks(css_paths="style_20250314.css", title=title, theme='Surn/beeuty',
|
|
| 1621 |
input_image.input(
|
| 1622 |
fn=on_input_image_change,
|
| 1623 |
inputs=[input_image],
|
| 1624 |
-
outputs=[input_image,sketch_image], scroll_to_output=True,
|
| 1625 |
)
|
| 1626 |
###################### sketchpad ############################
|
| 1627 |
btn_sketch_alpha_composite.click(
|
|
@@ -1651,16 +1637,45 @@ with gr.Blocks(css_paths="style_20250314.css", title=title, theme='Surn/beeuty',
|
|
| 1651 |
|
| 1652 |
#################### model end ########################################
|
| 1653 |
########### special effects ###############
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1654 |
composite_button.click(
|
| 1655 |
fn=lambda input_image, composite_color, composite_opacity: gr.Warning("Please upload an Input Image to get started.") if input_image is None else change_color(input_image, composite_color, composite_opacity),
|
| 1656 |
inputs=[input_image, composite_color, composite_opacity],
|
| 1657 |
outputs=[input_image]
|
| 1658 |
)
|
| 1659 |
composite_sketch_button.click(
|
| 1660 |
-
fn=lambda sketch_image, composite_color, composite_opacity: gr.Warning("Please upload an Sketch Image to get started.") if
|
| 1661 |
inputs=[sketch_image, composite_color, composite_opacity],
|
| 1662 |
outputs=[sketch_image]
|
| 1663 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1664 |
blur_button.click(
|
| 1665 |
fn=lambda input_image, blur_amount: gr.Warning("Please upload an Input Image to get started.") if input_image is None else blur_image(input_image, blur_amount),
|
| 1666 |
inputs=[input_image, blur_amount],
|
|
@@ -1669,7 +1684,10 @@ with gr.Blocks(css_paths="style_20250314.css", title=title, theme='Surn/beeuty',
|
|
| 1669 |
fn=lambda sketch_image, blur_amount: gr.Warning("Please upload an Sketch Image to get started.") if sketch_image is None else blur_image(sketch_image, blur_amount),
|
| 1670 |
inputs=[sketch_image, blur_amount],
|
| 1671 |
outputs=[sketch_image])
|
| 1672 |
-
|
|
|
|
|
|
|
|
|
|
| 1673 |
################ end special effects ############################
|
| 1674 |
#use conditioned_image as the input_image for generate_input_image_click
|
| 1675 |
generate_input_image_from_gallery.click(
|
|
@@ -1704,31 +1722,31 @@ with gr.Blocks(css_paths="style_20250314.css", title=title, theme='Surn/beeuty',
|
|
| 1704 |
outputs=[sketch_image, sketch_image]
|
| 1705 |
)
|
| 1706 |
|
| 1707 |
-
output_grid_tilt.
|
| 1708 |
fn=transform_grid,
|
| 1709 |
inputs=[output_image, output_grid_tilt, output_grid_rotation],
|
| 1710 |
-
outputs=[output_image]
|
| 1711 |
)
|
| 1712 |
-
output_grid_rotation.
|
| 1713 |
fn=transform_grid,
|
| 1714 |
inputs=[output_image, output_grid_tilt, output_grid_rotation],
|
| 1715 |
-
outputs=[output_image]
|
| 1716 |
)
|
| 1717 |
-
output_overlay_composite.
|
| 1718 |
fn=combine_images_with_lerp,
|
| 1719 |
inputs=[input_image, output_image, output_overlay_composite],
|
| 1720 |
-
outputs=[overlay_image], scroll_to_output=True
|
| 1721 |
)
|
| 1722 |
-
output_blend_multiply_composite.
|
| 1723 |
fn=multiply_and_blend_images,
|
| 1724 |
inputs=[input_image, output_image, output_blend_multiply_composite],
|
| 1725 |
-
outputs=[overlay_image],
|
| 1726 |
scroll_to_output=True
|
| 1727 |
)
|
| 1728 |
-
output_alpha_composite.
|
| 1729 |
fn=alpha_composite_with_control,
|
| 1730 |
inputs=[input_image, output_image, output_alpha_composite],
|
| 1731 |
-
outputs=[overlay_image],
|
| 1732 |
scroll_to_output=True
|
| 1733 |
)
|
| 1734 |
add_border_button.click(
|
|
|
|
| 747 |
return None, gr.update()
|
| 748 |
img, img_path = convert_to_rgba_png(image_path)
|
| 749 |
width, height = img.size
|
| 750 |
+
return [img_path, gr.update(width=width, height=height), gr.update(value=width), gr.update(value=height)]
|
|
|
|
| 751 |
|
| 752 |
def update_sketch_dimensions(input_image, sketch_image):
|
| 753 |
# Load the images using open_image() if they are provided as file paths.
|
|
|
|
| 1267 |
with gr.Row():
|
| 1268 |
apply_lut_button = gr.Button("Apply Filter to Input Image", elem_classes="solid", elem_id="apply_lut_button")
|
| 1269 |
apply_lut_to_sketch_button = gr.Button("Apply Filter to Sketch", elem_classes="solid", elem_id="apply_lut_to_sketch_button")
|
| 1270 |
+
apply_lut_to_hura_button = gr.Button("Apply Filter to HURA", elem_classes="solid", elem_id="apply_lut_to_hura_button")
|
| 1271 |
with gr.Row():
|
| 1272 |
lut_example_image = gr.Image(type="pil", label="Filter (LUT) Example Image", value=constants.default_lut_example_img)
|
| 1273 |
with gr.Row():
|
|
|
|
| 1285 |
label="Select a Filter (LUT) file to populate the LUT File Name field",
|
| 1286 |
examples_per_page = 25,
|
| 1287 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1288 |
with gr.Accordion("Color Composite", open = False):
|
| 1289 |
with gr.Row():
|
| 1290 |
composite_color = gr.ColorPicker(label="Color", value="#ede9ac44")
|
| 1291 |
composite_opacity = gr.Slider(label="Opacity %", minimum=0, maximum=100, value=50, interactive=True)
|
| 1292 |
with gr.Row():
|
| 1293 |
+
composite_button = gr.Button("Composite to Input Image", elem_classes="solid", elem_id="composite_to_input_button")
|
| 1294 |
+
composite_sketch_button = gr.Button("Composite to Sketh", elem_classes="solid", elem_id="composite_to_sketch_button")
|
| 1295 |
+
composite_hura_button = gr.Button("Composite to HURA", elem_classes="solid", elem_id="composite_to_hura_button")
|
| 1296 |
with gr.Accordion("Blur", open = False):
|
| 1297 |
with gr.Row():
|
| 1298 |
blur_amount = gr.Slider(label="Blur Amount", minimum=0, maximum=100, value=5, interactive=True)
|
| 1299 |
with gr.Row():
|
| 1300 |
blur_button = gr.Button("Blur Input Image", elem_classes="solid")
|
| 1301 |
blur_sketch_button = gr.Button("Blur Sketch", elem_classes="solid")
|
| 1302 |
+
blur_hura_button = gr.Button("Blur HURA", elem_classes="solid")
|
| 1303 |
with gr.Accordion("Generate Hex Hura Background", open = False):
|
| 1304 |
hex_components = hex_hura.render()
|
| 1305 |
with gr.Row():
|
|
|
|
| 1607 |
input_image.input(
|
| 1608 |
fn=on_input_image_change,
|
| 1609 |
inputs=[input_image],
|
| 1610 |
+
outputs=[input_image, sketch_image, hex_components["width_slider"], hex_components["height_slider"]], scroll_to_output=True,
|
| 1611 |
)
|
| 1612 |
###################### sketchpad ############################
|
| 1613 |
btn_sketch_alpha_composite.click(
|
|
|
|
| 1637 |
|
| 1638 |
#################### model end ########################################
|
| 1639 |
########### special effects ###############
|
| 1640 |
+
lut_file.change(get_filename, inputs=[lut_file], outputs=[lut_filename])
|
| 1641 |
+
lut_filename.change(show_lut, inputs=[lut_filename, input_image, lut_intensity], outputs=[lut_example_image], scroll_to_output=True)
|
| 1642 |
+
lut_intensity.release(show_lut, inputs=[lut_filename, input_image, lut_intensity], outputs=[lut_example_image], queue=False)
|
| 1643 |
+
apply_lut_button.click(
|
| 1644 |
+
lambda lut_filename, input_image, lut_intensity: gr.Warning("Please upload an Input Image to get started.") if input_image is None else apply_lut_to_image_path(lut_filename, input_image, lut_intensity)[1],
|
| 1645 |
+
inputs=[lut_filename, input_image, lut_intensity],
|
| 1646 |
+
outputs=[input_image],
|
| 1647 |
+
scroll_to_output=True
|
| 1648 |
+
)
|
| 1649 |
+
apply_lut_to_sketch_button.click(
|
| 1650 |
+
lambda lut_filename, sketch_image, lut_intensity: gr.Warning("Please upload an Input Image to get started.") if input_image is None else apply_lut_to_image_path(lut_filename, replace_with_sketch_image(sketch_image, False), lut_intensity)[1],
|
| 1651 |
+
inputs=[lut_filename, sketch_image, lut_intensity],
|
| 1652 |
+
outputs=[sketch_image],
|
| 1653 |
+
scroll_to_output=True
|
| 1654 |
+
)
|
| 1655 |
+
apply_lut_to_hura_button.click(
|
| 1656 |
+
lambda lut_filename, hura_image, lut_intensity: gr.Warning("Please create a HURA to get started.") if hex_components["target_image"] is None else apply_lut_to_image_path(lut_filename, hura_image, lut_intensity)[1],
|
| 1657 |
+
inputs=[lut_filename, hex_components["target_image"], lut_intensity],
|
| 1658 |
+
outputs=hex_components["target_image"],
|
| 1659 |
+
scroll_to_output=True
|
| 1660 |
+
)
|
| 1661 |
+
|
| 1662 |
composite_button.click(
|
| 1663 |
fn=lambda input_image, composite_color, composite_opacity: gr.Warning("Please upload an Input Image to get started.") if input_image is None else change_color(input_image, composite_color, composite_opacity),
|
| 1664 |
inputs=[input_image, composite_color, composite_opacity],
|
| 1665 |
outputs=[input_image]
|
| 1666 |
)
|
| 1667 |
composite_sketch_button.click(
|
| 1668 |
+
fn=lambda sketch_image, composite_color, composite_opacity: gr.Warning("Please upload an Sketch Image to get started.") if sketch_image is None else change_color(sketch_image, composite_color, composite_opacity),
|
| 1669 |
inputs=[sketch_image, composite_color, composite_opacity],
|
| 1670 |
outputs=[sketch_image]
|
| 1671 |
)
|
| 1672 |
+
composite_hura_button.click(
|
| 1673 |
+
fn=lambda hura_image, composite_color, composite_opacity: gr.Warning("Please create a HURA to get started.") if hex_components["target_image"] is None else change_color(hura_image, composite_color, composite_opacity),
|
| 1674 |
+
inputs=[ hex_components["target_image"], composite_color, composite_opacity],
|
| 1675 |
+
outputs=hex_components["target_image"],
|
| 1676 |
+
scroll_to_output=True
|
| 1677 |
+
)
|
| 1678 |
+
|
| 1679 |
blur_button.click(
|
| 1680 |
fn=lambda input_image, blur_amount: gr.Warning("Please upload an Input Image to get started.") if input_image is None else blur_image(input_image, blur_amount),
|
| 1681 |
inputs=[input_image, blur_amount],
|
|
|
|
| 1684 |
fn=lambda sketch_image, blur_amount: gr.Warning("Please upload an Sketch Image to get started.") if sketch_image is None else blur_image(sketch_image, blur_amount),
|
| 1685 |
inputs=[sketch_image, blur_amount],
|
| 1686 |
outputs=[sketch_image])
|
| 1687 |
+
blur_hura_button.click(
|
| 1688 |
+
fn=lambda hura_image, blur_amount: gr.Warning("Please create a HURA to get started.") if hex_components["target_image"] is None else blur_image(hura_image, blur_amount),
|
| 1689 |
+
inputs=[hex_components["target_image"], blur_amount],
|
| 1690 |
+
outputs=[hex_components["target_image"]])
|
| 1691 |
################ end special effects ############################
|
| 1692 |
#use conditioned_image as the input_image for generate_input_image_click
|
| 1693 |
generate_input_image_from_gallery.click(
|
|
|
|
| 1722 |
outputs=[sketch_image, sketch_image]
|
| 1723 |
)
|
| 1724 |
|
| 1725 |
+
output_grid_tilt.release(
|
| 1726 |
fn=transform_grid,
|
| 1727 |
inputs=[output_image, output_grid_tilt, output_grid_rotation],
|
| 1728 |
+
outputs=[output_image], queue=False
|
| 1729 |
)
|
| 1730 |
+
output_grid_rotation.release(
|
| 1731 |
fn=transform_grid,
|
| 1732 |
inputs=[output_image, output_grid_tilt, output_grid_rotation],
|
| 1733 |
+
outputs=[output_image], queue=False
|
| 1734 |
)
|
| 1735 |
+
output_overlay_composite.release(
|
| 1736 |
fn=combine_images_with_lerp,
|
| 1737 |
inputs=[input_image, output_image, output_overlay_composite],
|
| 1738 |
+
outputs=[overlay_image], queue=False, scroll_to_output=True
|
| 1739 |
)
|
| 1740 |
+
output_blend_multiply_composite.release(
|
| 1741 |
fn=multiply_and_blend_images,
|
| 1742 |
inputs=[input_image, output_image, output_blend_multiply_composite],
|
| 1743 |
+
outputs=[overlay_image], queue=False,
|
| 1744 |
scroll_to_output=True
|
| 1745 |
)
|
| 1746 |
+
output_alpha_composite.release(
|
| 1747 |
fn=alpha_composite_with_control,
|
| 1748 |
inputs=[input_image, output_image, output_alpha_composite],
|
| 1749 |
+
outputs=[overlay_image], queue=False,
|
| 1750 |
scroll_to_output=True
|
| 1751 |
)
|
| 1752 |
add_border_button.click(
|