test1 / exhm /seg /sd-webui-replacer /scripts /replacer_main_ui.py
dikdimon's picture
Upload exhm using SD-Hub extension
194b4ef verified
import copy
import gradio as gr
from modules import script_callbacks, progress, shared, errors
from replacer.options import (EXT_NAME, EXT_NAME_LOWER, needHideSegmentAnythingAccordions,
getDedicatedPagePath, on_ui_settings, needHideAnimateDiffAccordions, hideVideoInMainUI,
)
from replacer.ui.tools_ui import IS_WEBUI_1_5
from replacer.ui import replacer_main_ui
from replacer.tools import getReplacerFooter
from replacer.ui.tools_ui import watchOutputPanel, watchSetCustomScriptSourceForComponents
from replacer.extensions import replacer_extensions
def on_ui_tabs():
result = []
replacer_main_ui.reinitMainUIAfterUICreated()
tab = replacer_main_ui.replacerMainUI.getReplacerTabUI()
result.append((tab, EXT_NAME, EXT_NAME))
if not hideVideoInMainUI():
video_tab = replacer_main_ui.replacerMainUI.getReplacerVideoTabUI()
video_title = f"{EXT_NAME} - video"
result.append((video_tab, video_title, video_title))
return result
script_callbacks.on_ui_tabs(on_ui_tabs)
def mountDedicatedPage(demo, app):
try:
path = getDedicatedPagePath()
app.add_api_route(f"{path}/internal/progress",
progress.progressapi, methods=["POST"],
response_model=progress.ProgressResponse)
replacer_extensions.image_comparison.preloadImageComparisonTab()
with gr.Blocks(title=EXT_NAME, analytics_enabled=False) as replacerUi:
gr.Textbox(elem_id="txt2img_prompt", visible=False) # triggers onUiLoaded
gr.Textbox(value=shared.opts.dumpjson(), elem_id="settings_json", visible=False)
with gr.Tabs(elem_id='tabs'): # triggers progressbar
with gr.Tab(label=f"{EXT_NAME} dedicated", elem_id=f"tab_{EXT_NAME_LOWER}_dedicated"):
tab = replacer_main_ui.replacerMainUI_dedicated.getReplacerTabUI()
tab.render()
with gr.Tab(label="Video", elem_id=f"tab_video"):
tab_video = replacer_main_ui.replacerMainUI_dedicated.getReplacerVideoTabUI()
tab_video.render()
replacer_extensions.image_comparison.mountImageComparisonTab()
footer = getReplacerFooter()
gr.HTML(footer, elem_id="footer")
loadsave = copy.copy(demo.ui_loadsave)
loadsave.finalized_ui = False
video_title = f"{EXT_NAME} - video"
loadsave.add_block(tab, EXT_NAME)
loadsave.add_block(tab_video, video_title)
loadsave.dump_defaults()
replacerUi.ui_loadsave = loadsave
gr.mount_gradio_app(app, replacerUi, path=path)
except Exception as e:
errors.report(f'[{EXT_NAME}] error while creating dedicated page: {e}', exc_info=True)
script_callbacks.on_app_started(mountDedicatedPage)
def hideSegmentAnythingAccordions(component, **kwargs):
if type(component) is gr.Accordion and\
getattr(component, 'label', "") == "Segment Anything":
component.visible = False
print(f"[{EXT_NAME}] Segment Anything accordion has been hidden")
if needHideSegmentAnythingAccordions():
script_callbacks.on_after_component(hideSegmentAnythingAccordions)
def hideAnimateDiffAccordions(component, **kwargs):
if type(component) is gr.Accordion and\
getattr(component, 'label', "") == "AnimateDiff":
component.visible = False
print(f"[{EXT_NAME}] AnimateDiff accordion has been hidden")
if needHideAnimateDiffAccordions():
script_callbacks.on_after_component(hideAnimateDiffAccordions)
script_callbacks.on_before_ui(replacer_main_ui.initMainUI)
script_callbacks.on_after_component(replacer_extensions.controlnet.watchControlNetUI)
script_callbacks.on_after_component(replacer_extensions.soft_inpainting.watchSoftInpaintUI)
script_callbacks.on_after_component(watchOutputPanel)
script_callbacks.on_after_component(watchSetCustomScriptSourceForComponents)
script_callbacks.on_ui_settings(on_ui_settings)
script_callbacks.on_after_component(replacer_extensions.image_comparison.addButtonIntoComparisonTab)
script_callbacks.on_after_component(replacer_extensions.image_comparison.watchImageComparison)