Files
zombieyang-sd-ppp/scripts/sd_init.py
T
2024-10-03 11:08:45 +08:00

56 lines
1.7 KiB
Python

# sd script init
from modules import script_callbacks, shared
from modules.ui_components import ToolButton
from sdppp_python.sdppp import SDPPP
from sdppp_python.apis import consumeImageCache
import gradio as gr
try:
from modules_forge.forge_canvas.canvas import LogicalImage
inForge = True
except:
inForge = False
pass
refresh_symbol = '\U0001f504' # 🔄
config_symbol = '\U0001F527' # 🔧
def on_app_started(blocks: gr.Blocks, app):
sdppp = SDPPP()
sdppp.attach_to_SD(app)
def sdppp_get(elem):
res = consumeImageCache(elem.elem_id)
return gr.Image.update(value=res)
def sdppp_get_forge(elem):
res = consumeImageCache(elem.elem_id)
# maybe a convert to base64 is needed
return gr.Textbox.update(value=res)
sdppp.all_images = all_images = dict()
sdppp.all_galleries = all_galleries = dict()
sdppp.all_forge_input = all_forge_input = dict()
for k in blocks.blocks:
elem = blocks.blocks[k]
if elem.elem_id == '' or elem.elem_id == None: continue
if isinstance(elem, gr.Image):
all_images[elem.elem_id] = elem
if isinstance(elem, gr.Gallery):
all_galleries[elem.elem_id] = elem
if inForge and isinstance(elem, LogicalImage) and elem.label == 'background':
all_forge_input[elem.elem_id] = elem
with blocks:
with gr.Box(elem_id=f"sdppp_dialog", elem_classes="popup-dialog") as sdppp_dialog:
with gr.Row():
pass
script_callbacks.on_app_started(on_app_started)
shared.options_templates.update(
shared.options_section(('sd-ppp', "SD-PPP", "ui"), {
"sd-ppp_download": shared.OptionInfo([], "Download PS plugin", gr.Button)
})
)