From 3722d48696d2bcfa390971d7c0f7e4da452fe2c4 Mon Sep 17 00:00:00 2001 From: Haoming Date: Thu, 23 Oct 2025 11:04:47 +0800 Subject: [PATCH] canvas height --- modules/ui.py | 8 ++++---- modules_forge/forge_canvas/canvas.py | 4 ++-- modules_forge/shared_options.py | 1 + 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/ui.py b/modules/ui.py index c18a09e2..e753b801 100644 --- a/modules/ui.py +++ b/modules/ui.py @@ -538,19 +538,19 @@ def create_ui(): img2img_selected_tab = gr.Number(value=0, visible=False) with gr.TabItem("img2img", id="img2img", elem_id="img2img_img2img_tab") as tab_img2img: - init_img = ForgeCanvas(elem_id="img2img_image", height=512, no_scribbles=True) + init_img = ForgeCanvas(elem_id="img2img_image", no_scribbles=True) add_copy_image_controls("img2img", init_img) with gr.TabItem("Sketch", id="img2img_sketch", elem_id="img2img_img2img_sketch_tab") as tab_sketch: - sketch = ForgeCanvas(elem_id="img2img_sketch", height=512, scribble_color=opts.img2img_sketch_default_brush_color) + sketch = ForgeCanvas(elem_id="img2img_sketch", scribble_color=opts.img2img_sketch_default_brush_color) add_copy_image_controls("sketch", sketch) with gr.TabItem("Inpaint", id="inpaint", elem_id="img2img_inpaint_tab") as tab_inpaint: - init_img_with_mask = ForgeCanvas(elem_id="img2maskimg", height=512, contrast_scribbles=opts.img2img_inpaint_mask_high_contrast, scribble_color=opts.img2img_inpaint_mask_brush_color, scribble_color_fixed=True, scribble_alpha=opts.img2img_inpaint_mask_scribble_alpha, scribble_alpha_fixed=True, scribble_softness_fixed=True) + init_img_with_mask = ForgeCanvas(elem_id="img2maskimg", contrast_scribbles=opts.img2img_inpaint_mask_high_contrast, scribble_color=opts.img2img_inpaint_mask_brush_color, scribble_color_fixed=True, scribble_alpha=opts.img2img_inpaint_mask_scribble_alpha, scribble_alpha_fixed=True, scribble_softness_fixed=True) add_copy_image_controls("inpaint", init_img_with_mask) with gr.TabItem("Inpaint sketch", id="inpaint_sketch", elem_id="img2img_inpaint_sketch_tab") as tab_inpaint_color: - inpaint_color_sketch = ForgeCanvas(elem_id="inpaint_sketch", height=512, scribble_color=opts.img2img_inpaint_sketch_default_brush_color) + inpaint_color_sketch = ForgeCanvas(elem_id="inpaint_sketch", scribble_color=opts.img2img_inpaint_sketch_default_brush_color) add_copy_image_controls("inpaint_sketch", inpaint_color_sketch) with gr.TabItem("Inpaint upload", id="inpaint_upload", elem_id="img2img_inpaint_upload_tab") as tab_inpaint_upload: diff --git a/modules_forge/forge_canvas/canvas.py b/modules_forge/forge_canvas/canvas.py index f040b179..a0b4126f 100644 --- a/modules_forge/forge_canvas/canvas.py +++ b/modules_forge/forge_canvas/canvas.py @@ -122,7 +122,7 @@ class LogicalImage(gr.Textbox): class ForgeCanvas: - def __init__(self, no_upload=False, no_scribbles=False, contrast_scribbles=False, height=512, scribble_color="#000000", scribble_color_fixed=False, scribble_width=25, scribble_width_fixed=False, scribble_alpha=100, scribble_alpha_fixed=False, scribble_softness=0, scribble_softness_fixed=False, visible=True, numpy=False, initial_image=None, elem_id=None, elem_classes=None): + def __init__(self, no_upload=False, no_scribbles=False, contrast_scribbles=False, height=None, scribble_color="#000000", scribble_color_fixed=False, scribble_width=25, scribble_width_fixed=False, scribble_alpha=100, scribble_alpha_fixed=False, scribble_softness=0, scribble_softness_fixed=False, visible=True, numpy=False, initial_image=None, elem_id=None, elem_classes=None): self.uuid = "uuid_" + uuid.uuid4().hex canvas_html_uuid = canvas_html.replace("forge_mixin", self.uuid) @@ -135,4 +135,4 @@ class ForgeCanvas: self.block = gr.HTML(canvas_html_uuid, visible=visible, elem_id=elem_id, elem_classes=elem_classes) self.foreground = LogicalImage(visible=DEBUG_MODE, label="foreground", numpy=numpy, elem_id=self.uuid, elem_classes=["logical_image_foreground"]) self.background = LogicalImage(visible=DEBUG_MODE, label="background", numpy=numpy, value=initial_image, elem_id=self.uuid, elem_classes=["logical_image_background"]) - Context.root_block.load(None, js=f'async ()=>{{new ForgeCanvas("{self.uuid}", {no_upload}, {no_scribbles}, {contrast_scribbles}, {height}, ' f"'{scribble_color}', {scribble_color_fixed}, {scribble_width}, {scribble_width_fixed}, {opts.forge_canvas_consistent_brush}, " f"{scribble_alpha}, {scribble_alpha_fixed}, {scribble_softness}, {scribble_softness_fixed});}}") + Context.root_block.load(None, js=f'async ()=>{{new ForgeCanvas("{self.uuid}", {no_upload}, {no_scribbles}, {contrast_scribbles}, {height or opts.forge_canvas_height}, ' f"'{scribble_color}', {scribble_color_fixed}, {scribble_width}, {scribble_width_fixed}, {opts.forge_canvas_consistent_brush}, " f"{scribble_alpha}, {scribble_alpha_fixed}, {scribble_softness}, {scribble_softness_fixed});}}") diff --git a/modules_forge/shared_options.py b/modules_forge/shared_options.py index 97f92ca6..b29c7d2a 100644 --- a/modules_forge/shared_options.py +++ b/modules_forge/shared_options.py @@ -16,6 +16,7 @@ def register(options_templates, options_section, OptionInfo): options_section( ("ui_forgecanvas", "Forge Canvas", "ui"), { + "forge_canvas_height": OptionInfo(512, "Canvas Height").info("in pixels").needs_reload_ui(), "forge_canvas_plain": OptionInfo(False, "Plain Background").info("disabled: checkerboard pattern ; enabled: solid grey").needs_reload_ui(), "forge_canvas_toolbar_always": OptionInfo(False, "Always Visible Toolbar").info("disabled: toolbar only appears when hovering the canvas").needs_reload_ui(), "forge_canvas_consistent_brush": OptionInfo(False, "Fixed Brush Size").info("disabled: the brush size is pixel-space, the brush stays small when zoomed out ; enabled: the brush size is canvas-space, the brush stays big when zoomed in").needs_reload_ui(),