mirror of
https://github.com/lllyasviel/stable-diffusion-webui-forge.git
synced 2026-03-13 17:09:49 +00:00
gradio
This commit is contained in:
@@ -2,6 +2,7 @@ import os
|
||||
import sys
|
||||
import uuid
|
||||
import time
|
||||
import socket
|
||||
import gradio as gr
|
||||
import importlib.util
|
||||
import shutil
|
||||
@@ -25,6 +26,24 @@ def build_html(title, installed=False, url=None):
|
||||
return f'<div>{title}</div><div style="color: grey;">Installed, Ready to Launch</div>'
|
||||
|
||||
|
||||
def find_free_port(server_name, start_port=None):
|
||||
port = start_port
|
||||
|
||||
if port is None:
|
||||
port = 7860
|
||||
|
||||
if server_name is None:
|
||||
server_name = '127.0.0.1'
|
||||
|
||||
while True:
|
||||
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
||||
try:
|
||||
s.bind((server_name, port))
|
||||
return port
|
||||
except OSError:
|
||||
port += 1
|
||||
|
||||
|
||||
class ForgeSpace:
|
||||
def __init__(self, root_path, title, repo_id=None, repo_type='space', revision=None, **kwargs):
|
||||
self.title = title
|
||||
@@ -119,7 +138,18 @@ class ForgeSpace:
|
||||
spec.loader.exec_module(module)
|
||||
demo = getattr(module, 'demo')
|
||||
|
||||
self.gradio_metas = demo.launch(inbrowser=True, prevent_thread_lock=True)
|
||||
from modules import initialize_util
|
||||
from modules.shared import cmd_opts
|
||||
|
||||
server_name = initialize_util.gradio_server_name()
|
||||
port = find_free_port(server_name=server_name, start_port=cmd_opts.port)
|
||||
|
||||
self.gradio_metas = demo.launch(
|
||||
inbrowser=True,
|
||||
prevent_thread_lock=True,
|
||||
server_name=server_name,
|
||||
server_port=port
|
||||
)
|
||||
|
||||
while self.is_running:
|
||||
time.sleep(0.1)
|
||||
|
||||
Reference in New Issue
Block a user