Forge Space and BiRefNet

This commit is contained in:
lllyasviel
2024-08-17 08:29:08 -07:00
committed by GitHub
parent 8a04293430
commit 93b40f355e
13 changed files with 390 additions and 13 deletions

View File

@@ -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}

View File

@@ -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__

View File

@@ -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"),