mirror of
https://github.com/lllyasviel/stable-diffusion-webui-forge.git
synced 2026-04-28 02:01:25 +00:00
Forge Space and BiRefNet
This commit is contained in:
@@ -5,6 +5,7 @@ import dataclasses
|
||||
import os
|
||||
import threading
|
||||
import re
|
||||
import json
|
||||
|
||||
from modules import shared, errors, cache, scripts
|
||||
from modules.gitpython_hack import Repo
|
||||
@@ -124,6 +125,13 @@ class Extension:
|
||||
self.metadata = metadata if metadata else ExtensionMetadata(self.path, name.lower())
|
||||
self.canonical_name = metadata.canonical_name
|
||||
|
||||
self.is_forge_space = False
|
||||
self.space_meta = None
|
||||
|
||||
if os.path.exists(os.path.join(self.path, 'space_meta.json')) and os.path.exists(os.path.join(self.path, 'forge_app.py')):
|
||||
self.is_forge_space = True
|
||||
self.space_meta = json.load(open(os.path.join(self.path, 'space_meta.json'), 'rt', encoding='utf-8'))
|
||||
|
||||
def to_dict(self):
|
||||
return {x: getattr(self, x) for x in self.cached_fields}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import inspect
|
||||
import types
|
||||
import warnings
|
||||
from functools import wraps
|
||||
|
||||
@@ -106,6 +107,25 @@ gradio_component_meta_create_or_modify_pyi_original = patches.patch(__file__, gr
|
||||
# this function is broken and does not seem to do anything useful
|
||||
gradio.component_meta.updateable = lambda x: x
|
||||
|
||||
|
||||
class EventWrapper:
|
||||
def __init__(self, replaced_event):
|
||||
self.replaced_event = replaced_event
|
||||
self.has_trigger = replaced_event.has_trigger
|
||||
self.event_name = replaced_event.event_name
|
||||
self.callback = replaced_event.callback
|
||||
|
||||
def __call__(self, *args, **kwargs):
|
||||
if '_js' in kwargs:
|
||||
kwargs['js'] = kwargs['_js']
|
||||
del kwargs['_js']
|
||||
return self.replaced_event(*args, **kwargs)
|
||||
|
||||
@property
|
||||
def __self__(self):
|
||||
return self.replaced_event.__self__
|
||||
|
||||
|
||||
def repair(grclass):
|
||||
if not getattr(grclass, 'EVENTS', None):
|
||||
return
|
||||
@@ -129,13 +149,7 @@ def repair(grclass):
|
||||
|
||||
for event in self.EVENTS:
|
||||
replaced_event = getattr(self, str(event))
|
||||
|
||||
def fun(*xargs, _js=None, replaced_event=replaced_event, **xkwargs):
|
||||
if _js:
|
||||
xkwargs['js'] = _js
|
||||
|
||||
return replaced_event(*xargs, **xkwargs)
|
||||
|
||||
fun = EventWrapper(replaced_event)
|
||||
setattr(self, str(event), fun)
|
||||
|
||||
grclass.__init__ = __repaired_init__
|
||||
|
||||
@@ -26,7 +26,7 @@ import modules.shared as shared
|
||||
from modules import prompt_parser
|
||||
from modules.infotext_utils import image_from_url_text, PasteField
|
||||
from modules_forge.forge_canvas.canvas import ForgeCanvas, canvas_head
|
||||
from modules_forge import main_entry
|
||||
from modules_forge import main_entry, forge_space
|
||||
|
||||
|
||||
create_setting_component = ui_settings.create_setting_component
|
||||
@@ -853,6 +853,9 @@ def create_ui():
|
||||
|
||||
extra_tabs.__exit__()
|
||||
|
||||
with gr.Blocks(analytics_enabled=False, head=canvas_head) as space_interface:
|
||||
forge_space.main_entry()
|
||||
|
||||
scripts.scripts_current = None
|
||||
|
||||
with gr.Blocks(analytics_enabled=False, head=canvas_head) as extras_interface:
|
||||
@@ -891,6 +894,7 @@ def create_ui():
|
||||
interfaces = [
|
||||
(txt2img_interface, "Txt2img", "txt2img"),
|
||||
(img2img_interface, "Img2img", "img2img"),
|
||||
(space_interface, "Spaces", "space"),
|
||||
(extras_interface, "Extras", "extras"),
|
||||
(pnginfo_interface, "PNG Info", "pnginfo"),
|
||||
(modelmerger_ui.blocks, "Checkpoint Merger", "modelmerger"),
|
||||
|
||||
Reference in New Issue
Block a user