Spaces:
Build error
Build error
File size: 4,715 Bytes
8415db3 7148ece 45ccf42 8415db3 45ccf42 8415db3 fbbc602 8415db3 7148ece 45ccf42 8415db3 fbbc602 45ccf42 8415db3 45ccf42 8415db3 45ccf42 8415db3 45ccf42 8415db3 45ccf42 8415db3 45ccf42 8415db3 45ccf42 8415db3 45ccf42 8415db3 45ccf42 8415db3 45ccf42 8415db3 45ccf42 8415db3 45ccf42 8415db3 45ccf42 8415db3 45ccf42 8415db3 45ccf42 8415db3 45ccf42 8415db3 45ccf42 8415db3 45ccf42 8415db3 45ccf42 8415db3 45ccf42 8415db3 45ccf42 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | import argparse
import os
import time
import gradio as gr
import roop
import roop.metadata
import roop.utilities as util
import roop.globals
import ui.globals as uii
from ui.tabs.faceswap_tab import faceswap_tab
from ui.tabs.livecam_tab import livecam_tab
from ui.tabs.facemgr_tab import facemgr_tab
from ui.tabs.extras_tab import extras_tab
from ui.tabs.settings_tab import settings_tab
# কিছু গ্লোবাল ডিফল্ট
roop.globals.keep_fps = None
roop.globals.keep_frames = None
roop.globals.skip_audio = None
roop.globals.use_batch = None
def parse_args():
parser = argparse.ArgumentParser(description="Roop-Unleashed Gradio Server")
parser.add_argument(
"--share",
action="store_true",
help="Enable Gradio public share link",
)
return parser.parse_args()
def prepare_environment():
roop.globals.output_path = os.path.abspath(os.path.join(os.getcwd(), "output"))
os.makedirs(roop.globals.output_path, exist_ok=True)
if not roop.globals.CFG.use_os_temp_folder:
os.environ["TEMP"] = os.environ["TMP"] = os.path.abspath(
os.path.join(os.getcwd(), "temp")
)
os.makedirs(os.environ["TEMP"], exist_ok=True)
# Gradio temp/telemetry config
os.environ["GRADIO_TEMP_DIR"] = os.environ.get("TEMP", "/tmp")
os.environ["GRADIO_ANALYTICS_ENABLED"] = "0"
def show_msg(msg: str):
gr.Info(msg)
def main():
from roop.core import decode_execution_providers, set_display_ui
# CLI args (Hugging Face-এ সাধারণত ব্যবহার হবে না, কিন্তু লোকাল রান করলে কাজে লাগবে)
try:
args = parse_args()
roop.globals.CFG.server_share = getattr(args, "share", False)
except SystemExit:
# Hugging Face Space-এ argv issue হলে ignore করো
roop.globals.CFG.server_share = False
prepare_environment()
# UI message handler সেট করা
set_display_ui(show_msg)
# Hugging Face CPU-র জন্য provider safe fallback
if roop.globals.CFG.provider == "cuda" and util.has_cuda_device() is False:
roop.globals.CFG.provider = "cpu"
roop.globals.execution_providers = decode_execution_providers(
[roop.globals.CFG.provider]
)
gputype = util.get_device()
if gputype == "cuda":
util.print_cuda_info()
print(f"Using provider {roop.globals.execution_providers} - Device: {gputype}")
run_server = True
uii.ui_restart_server = False
mycss = """
span {color: var(--block-info-text-color)}
#fixedheight {
max-height: 238.4px;
overflow-y: auto !important;
}
.image-container.svelte-1l6wqyv {height: 100%}
"""
while run_server:
server_name = roop.globals.CFG.server_name
if not server_name:
server_name = "0.0.0.0"
server_port = roop.globals.CFG.server_port
if server_port <= 0:
server_port = 7860
ssl_verify = False if server_name == "0.0.0.0" else True
with gr.Blocks(
title=f"{roop.metadata.name} {roop.metadata.version}",
theme=roop.globals.CFG.selected_theme,
css=mycss,
delete_cache=(60, 86400),
) as ui:
with gr.Row(variant="compact"):
gr.Markdown(
f"### [{roop.metadata.name} {roop.metadata.version}](https://gitlab.com/roop-unleashed/roop-unleashed)"
)
gr.HTML(util.create_version_html(), elem_id="versions")
# Tabs
faceswap_tab()
livecam_tab()
facemgr_tab()
extras_tab()
settings_tab()
launch_browser = roop.globals.CFG.launch_browser
uii.ui_restart_server = False
try:
ui.queue().launch(
inbrowser=launch_browser,
server_name=server_name,
server_port=server_port,
share=roop.globals.CFG.server_share,
ssl_verify=ssl_verify,
prevent_thread_lock=True,
show_error=True,
)
except Exception as e:
print(f"Exception {e} when launching Gradio Server!")
uii.ui_restart_server = True
run_server = True
try:
while uii.ui_restart_server is False:
time.sleep(1.0)
except (KeyboardInterrupt, OSError):
print("Keyboard interruption in main thread... closing server.")
run_server = False
ui.close()
# Hugging Face Space main entry
if __name__ == "__main__":
main() |