Update runcomfy_gd.py
Browse files- runcomfy_gd.py +49 -27
runcomfy_gd.py
CHANGED
|
@@ -1,4 +1,3 @@
|
|
| 1 |
-
|
| 2 |
import os
|
| 3 |
import subprocess
|
| 4 |
import time
|
|
@@ -12,10 +11,16 @@ import select
|
|
| 12 |
|
| 13 |
# --- ์ค์ ๋ณ์ ---
|
| 14 |
COMFYUI_PORT = 8188
|
| 15 |
-
# ํฐ๋ ์คํฌ๋ฆฝํธ ํ์ผ ๊ฒฝ๋ก (ComfyUI ๋๋ ํ ๋ฆฌ ๋ฐ, ์ฆ ๋ถ๋ชจ ๋๋ ํ ๋ฆฌ)
|
| 16 |
-
TUNNEL_SCRIPT_PATH = "../gradio-tunnel.py"
|
| 17 |
|
| 18 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
GRADIO_TUNNEL_SCRIPT_CONTENT = r"""
|
| 20 |
import atexit
|
| 21 |
import os
|
|
@@ -206,6 +211,14 @@ if __name__ == "__main__":
|
|
| 206 |
print("์ค๋ฅ: ํฌํธ ๋ฒํธ๋ ์ ์์ฌ์ผ ํฉ๋๋ค.", file=sys.stderr)
|
| 207 |
sys.exit(1)
|
| 208 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 209 |
try:
|
| 210 |
address = setup_tunnel(
|
| 211 |
"127.0.0.1",
|
|
@@ -217,12 +230,12 @@ if __name__ == "__main__":
|
|
| 217 |
# ํฐ๋ ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋์ง ์๋๋ก ๋๊ธฐ
|
| 218 |
time.sleep(3600 * 24 * 3)
|
| 219 |
except Exception as e:
|
| 220 |
-
print(f"ํฐ๋ ์คํ ์ค ์น๋ช
์ ์ธ ์ค๋ฅ ๋ฐ์: {
|
| 221 |
sys.exit(1)
|
| 222 |
|
| 223 |
"""
|
| 224 |
|
| 225 |
-
# --- 1. main ํจ์
|
| 226 |
def main():
|
| 227 |
# requests ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น๋ฅผ ๋ณด์ฅํฉ๋๋ค.
|
| 228 |
try:
|
|
@@ -230,8 +243,8 @@ def main():
|
|
| 230 |
except ImportError:
|
| 231 |
print("ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ 'requests'๊ฐ ์ค์น๋์ด ์์ง ์์ต๋๋ค. ์ค์น๋ฅผ ์๋ํฉ๋๋ค.")
|
| 232 |
try:
|
|
|
|
| 233 |
subprocess.check_call([sys.executable, "-m", "pip", "install", "requests"])
|
| 234 |
-
# import requests # ์ฌ์ค์น ํ ์ฌ์ํฌํธ๊ฐ ํ์ํ์ง๋ง, main ํจ์ ๋ฐ์์ ์ด๋ฏธ ์ํฌํธ ์๋๋์์ผ๋ฏ๋ก ์๋ต
|
| 235 |
except Exception as e:
|
| 236 |
print(f"๊ฒฝ๊ณ : 'requests' ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น ์คํจ. ํฐ๋๋ง ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ค๋ฅ: {e}")
|
| 237 |
|
|
@@ -239,25 +252,28 @@ def main():
|
|
| 239 |
comfyui_args = sys.argv[1:]
|
| 240 |
|
| 241 |
# --- ํ์ ๊ฒฝ๋ก ์ค์ ๋ฐ ์ด๋ ---
|
|
|
|
|
|
|
| 242 |
comfyui_dir = "/content/drive/MyDrive/ONECLICK/ComfyUI"
|
| 243 |
-
# ๋๋ f-string ์ฌ์ฉ: comfyui_dir = f"{WS}/ComfyUI"
|
| 244 |
|
| 245 |
print(f"ComfyUI ๋๋ ํ ๋ฆฌ๋ก ์ด๋ ์ค: {comfyui_dir}")
|
| 246 |
try:
|
| 247 |
os.chdir(comfyui_dir)
|
| 248 |
except FileNotFoundError:
|
| 249 |
print(f"์ค๋ฅ: ๋๋ ํ ๋ฆฌ๊ฐ ์์ต๋๋ค: {comfyui_dir}. ๊ฒฝ๋ก๋ฅผ ํ์ธํด ์ฃผ์ธ์.")
|
|
|
|
| 250 |
|
| 251 |
-
# ํฐ๋ ์คํฌ๋ฆฝํธ ํ์ผ์ ์ ์ฅ
|
| 252 |
-
print("ํฐ๋ ์คํฌ๋ฆฝํธ ์ ์ฅ
|
| 253 |
try:
|
| 254 |
-
# TUNNEL_SCRIPT_PATH
|
| 255 |
with open(TUNNEL_SCRIPT_PATH, "w") as f:
|
| 256 |
f.write(GRADIO_TUNNEL_SCRIPT_CONTENT)
|
| 257 |
except Exception as e:
|
| 258 |
-
print(f"์ค๋ฅ: ํฐ๋ ์คํฌ๋ฆฝํธ ํ์ผ ์ ์ฅ
|
| 259 |
sys.exit(1)
|
| 260 |
|
|
|
|
| 261 |
# --- 2. ComfyUI ์๋ฒ ์คํ (๋ฐฑ๊ทธ๋ผ์ด๋) ---
|
| 262 |
print("\nComfyUI ์๋ฒ๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์์ํฉ๋๋ค...")
|
| 263 |
comfyui_base_args = [
|
|
@@ -280,6 +296,7 @@ def main():
|
|
| 280 |
time.sleep(15)
|
| 281 |
|
| 282 |
print(f"\nGradio ํฐ๋ ํด๋ผ์ด์ธํธ ์์ ์ค (ํฌํธ {COMFYUI_PORT})...")
|
|
|
|
| 283 |
tunnel_command = ["python", TUNNEL_SCRIPT_PATH, str(COMFYUI_PORT)]
|
| 284 |
|
| 285 |
tunnel_proc = subprocess.Popen(
|
|
@@ -317,7 +334,7 @@ def main():
|
|
| 317 |
print("="*50)
|
| 318 |
|
| 319 |
else:
|
| 320 |
-
# --- ํฐ๋๋ง ์คํจ ์ ์ค๋ฅ ์ง๋จ ๋ก์ง
|
| 321 |
print("\n" + "="*50)
|
| 322 |
print("๐จ **ํฐ๋๋ง ํด๋ผ์ด์ธํธ ์คํ์ ์คํจํ์ต๋๋ค!**")
|
| 323 |
print("์๋ ๋ก๊ทธ์์ ์ค๋ฅ ์์ธ์ ํ์ธํ์ธ์.")
|
|
@@ -325,22 +342,21 @@ def main():
|
|
| 325 |
|
| 326 |
# 1. ํฐ๋ ํ๋ก์ธ์ค ์ข
๋ฃ ์ ๋จ์ ๋ก๊ทธ ํ์ธ ๋ฐ ์ถ๋ ฅ
|
| 327 |
print("\n--- ํฐ๋ ํด๋ผ์ด์ธํธ ์ต์ข
๋ก๊ทธ ---")
|
| 328 |
-
|
| 329 |
-
|
| 330 |
-
|
| 331 |
-
|
| 332 |
-
|
| 333 |
-
|
| 334 |
-
|
| 335 |
-
|
| 336 |
-
|
|
|
|
|
|
|
| 337 |
print("\n--- ComfyUI ์ด๊ธฐ ๋ก๊ทธ ํ์ธ (ComfyUI๊ฐ ํฌํธ๋ฅผ ์ด์๋์ง ํ์ธ) ---")
|
| 338 |
-
# subprocess.PIPE๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฐจ๋จ ๋ชจ๋์ด๋ฏ๋ก, read()๋ฅผ ์ฐ๊ธฐ ์ ์
|
| 339 |
-
# ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋์ง ์์๋ค๋ฉด, ํ์ฌ๊น์ง ๋ฒํผ์ ์์ธ ๋ก๊ทธ๋ฅผ ์ต๋ํ ์ถ๋ ฅํด ๋ด
๋๋ค.
|
| 340 |
-
# ์ด ์์ ์์๋ 15์ด ๋์ ๋๊ธฐํ์ผ๋ฏ๋ก, ComfyUI๊ฐ ์์ ์ ์ถ๋ ฅํ๋ ๋ก๊ทธ๊ฐ ์์ด์ผ ํฉ๋๋ค.
|
| 341 |
try:
|
| 342 |
-
# select๋ฅผ ์ฌ์ฉํ์ฌ ๋น์ฐจ๋จ ๋ฐฉ์์ผ๋ก ์ฝ์ ์ ์๋๋ก ์๋ (Colab ํ๊ฒฝ์์ ํญ์ ์๋ํ์ง๋ ์์ ์ ์์)
|
| 343 |
if comfyui_proc.stdout is not None:
|
|
|
|
| 344 |
ready_to_read, _, _ = select.select([comfyui_proc.stdout], [], [], 0.5)
|
| 345 |
if ready_to_read:
|
| 346 |
comfy_logs = comfyui_proc.stdout.read()
|
|
@@ -352,6 +368,12 @@ def main():
|
|
| 352 |
except Exception as e:
|
| 353 |
print(f"ComfyUI ๋ก๊ทธ ์ฝ๊ธฐ ์ค ์์ธ ๋ฐ์: {e}")
|
| 354 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 355 |
raise RuntimeError("Gradio ํฐ๋๋ง์ ์คํจํ์ต๋๋ค. ์์ ์์ธ ๋ก๊ทธ๋ฅผ ํ์ธํด ์ฃผ์ญ์์ค.")
|
| 356 |
|
| 357 |
|
|
@@ -395,4 +417,4 @@ def main():
|
|
| 395 |
print("๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋์์ต๋๋ค.")
|
| 396 |
|
| 397 |
if __name__ == '__main__':
|
| 398 |
-
main()
|
|
|
|
|
|
|
| 1 |
import os
|
| 2 |
import subprocess
|
| 3 |
import time
|
|
|
|
| 11 |
|
| 12 |
# --- ์ค์ ๋ณ์ ---
|
| 13 |
COMFYUI_PORT = 8188
|
|
|
|
|
|
|
| 14 |
|
| 15 |
+
# ๐จ ์ฌ์ฉ์ ์ง์ : ๋ชจ๋ .py ํ์ผ์ ์ ์ฅํ ์ ๋ ๊ฒฝ๋ก
|
| 16 |
+
# ์ด ๊ฒฝ๋ก์ gradio-tunnel.py๊ฐ ์ ์ฅ๋์ด์ผ ํฉ๋๋ค. (Colab ์
์คํ ์ ์ /content/py ํด๋๊ฐ ์กด์ฌํด์ผ ํฉ๋๋ค.)
|
| 17 |
+
PYTHON_SCRIPT_DIR = "/content/py"
|
| 18 |
+
|
| 19 |
+
# ํฐ๋ ์คํฌ๋ฆฝํธ์ ์ต์ข
์ ๋ ๊ฒฝ๋ก
|
| 20 |
+
TUNNEL_SCRIPT_PATH = os.path.join(PYTHON_SCRIPT_DIR, "gradio-tunnel.py")
|
| 21 |
+
# ์: "/content/py/gradio-tunnel.py"
|
| 22 |
+
|
| 23 |
+
# Gradio Tunnel Script ๋ด์ฉ (ํฐ๋๋ง ๊ธฐ๋ฅ์ ์ํํ๋ Python ์ฝ๋)
|
| 24 |
GRADIO_TUNNEL_SCRIPT_CONTENT = r"""
|
| 25 |
import atexit
|
| 26 |
import os
|
|
|
|
| 211 |
print("์ค๋ฅ: ํฌํธ ๋ฒํธ๋ ์ ์์ฌ์ผ ํฉ๋๋ค.", file=sys.stderr)
|
| 212 |
sys.exit(1)
|
| 213 |
|
| 214 |
+
# requests ์ํฌํธ ํ์ธ (Colab ํ๊ฒฝ์์ ํ์)
|
| 215 |
+
try:
|
| 216 |
+
import requests
|
| 217 |
+
except ImportError:
|
| 218 |
+
# ์ด ์ฝ๋๋ runcomfy.py์์ ์คํํ๋ subprocess์ด๋ฏ๋ก,
|
| 219 |
+
# runcomfy.py์์ requests ์ค์น๋ฅผ ๋ณด์ฅํด์ผ ํจ.
|
| 220 |
+
pass
|
| 221 |
+
|
| 222 |
try:
|
| 223 |
address = setup_tunnel(
|
| 224 |
"127.0.0.1",
|
|
|
|
| 230 |
# ํฐ๋ ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋์ง ์๋๋ก ๋๊ธฐ
|
| 231 |
time.sleep(3600 * 24 * 3)
|
| 232 |
except Exception as e:
|
| 233 |
+
print(f"ํฐ๋ ์คํ ์ค ์น๋ช
์ ์ธ ์ค๋ฅ ๋ฐ์: {e}", file=sys.stderr)
|
| 234 |
sys.exit(1)
|
| 235 |
|
| 236 |
"""
|
| 237 |
|
| 238 |
+
# --- 1. main ํจ์ ---
|
| 239 |
def main():
|
| 240 |
# requests ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น๋ฅผ ๋ณด์ฅํฉ๋๋ค.
|
| 241 |
try:
|
|
|
|
| 243 |
except ImportError:
|
| 244 |
print("ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ 'requests'๊ฐ ์ค์น๋์ด ์์ง ์์ต๋๋ค. ์ค์น๋ฅผ ์๋ํฉ๋๋ค.")
|
| 245 |
try:
|
| 246 |
+
# ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น๋ฅผ ์๋
|
| 247 |
subprocess.check_call([sys.executable, "-m", "pip", "install", "requests"])
|
|
|
|
| 248 |
except Exception as e:
|
| 249 |
print(f"๊ฒฝ๊ณ : 'requests' ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น ์คํจ. ํฐ๋๋ง ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ค๋ฅ: {e}")
|
| 250 |
|
|
|
|
| 252 |
comfyui_args = sys.argv[1:]
|
| 253 |
|
| 254 |
# --- ํ์ ๊ฒฝ๋ก ์ค์ ๋ฐ ์ด๋ ---
|
| 255 |
+
# WS ๋ณ์๋ ์ด ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ์ธ๋ถ Colab ์
์์ ๊ฒฐ์ ๋๊ฑฐ๋,
|
| 256 |
+
# ํน์ ์ด ์คํฌ๋ฆฝํธ๊ฐ DRIVE ๋ชจ๋(/content/drive/MyDrive/ONECLICK) ์ ์ฉ์ผ๋ก ์คํ๋๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
|
| 257 |
comfyui_dir = "/content/drive/MyDrive/ONECLICK/ComfyUI"
|
|
|
|
| 258 |
|
| 259 |
print(f"ComfyUI ๋๋ ํ ๋ฆฌ๋ก ์ด๋ ์ค: {comfyui_dir}")
|
| 260 |
try:
|
| 261 |
os.chdir(comfyui_dir)
|
| 262 |
except FileNotFoundError:
|
| 263 |
print(f"์ค๋ฅ: ๋๋ ํ ๋ฆฌ๊ฐ ์์ต๋๋ค: {comfyui_dir}. ๊ฒฝ๋ก๋ฅผ ํ์ธํด ์ฃผ์ธ์.")
|
| 264 |
+
sys.exit(1) # ๋๋ ํ ๋ฆฌ๊ฐ ์์ผ๋ฉด ์ข
๋ฃ
|
| 265 |
|
| 266 |
+
# ๐จ ์์ : ํฐ๋ ์คํฌ๋ฆฝํธ ํ์ผ์ ์ง์ ๋ ๊ฒฝ๋ก์ ์ ์ฅ (ํด๋ ์์ฑ ์์)
|
| 267 |
+
print(f"ํฐ๋ ์คํฌ๋ฆฝํธ ์ ์ฅ ์ค: {TUNNEL_SCRIPT_PATH}")
|
| 268 |
try:
|
| 269 |
+
# TUNNEL_SCRIPT_PATH์ ์ ์ฅ (์ ๋ ๊ฒฝ๋ก ์ฌ์ฉ)
|
| 270 |
with open(TUNNEL_SCRIPT_PATH, "w") as f:
|
| 271 |
f.write(GRADIO_TUNNEL_SCRIPT_CONTENT)
|
| 272 |
except Exception as e:
|
| 273 |
+
print(f"์ค๋ฅ: ํฐ๋ ์คํฌ๋ฆฝํธ ํ์ผ ์ ์ฅ ์คํจ. {PYTHON_SCRIPT_DIR} ๊ฒฝ๋ก๊ฐ ์กด์ฌํ๋์ง ํ์ธํด ์ฃผ์ธ์. ์ค๋ฅ: {e}")
|
| 274 |
sys.exit(1)
|
| 275 |
|
| 276 |
+
|
| 277 |
# --- 2. ComfyUI ์๋ฒ ์คํ (๋ฐฑ๊ทธ๋ผ์ด๋) ---
|
| 278 |
print("\nComfyUI ์๋ฒ๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์์ํฉ๋๋ค...")
|
| 279 |
comfyui_base_args = [
|
|
|
|
| 296 |
time.sleep(15)
|
| 297 |
|
| 298 |
print(f"\nGradio ํฐ๋ ํด๋ผ์ด์ธํธ ์์ ์ค (ํฌํธ {COMFYUI_PORT})...")
|
| 299 |
+
# ๐จ ์์ : TUNNEL_SCRIPT_PATH ๋ณ์(์ ๋ ๊ฒฝ๋ก) ์ฌ์ฉ
|
| 300 |
tunnel_command = ["python", TUNNEL_SCRIPT_PATH, str(COMFYUI_PORT)]
|
| 301 |
|
| 302 |
tunnel_proc = subprocess.Popen(
|
|
|
|
| 334 |
print("="*50)
|
| 335 |
|
| 336 |
else:
|
| 337 |
+
# --- ํฐ๋๋ง ์คํจ ์ ์ค๋ฅ ์ง๋จ ๋ก์ง ---
|
| 338 |
print("\n" + "="*50)
|
| 339 |
print("๐จ **ํฐ๋๋ง ํด๋ผ์ด์ธํธ ์คํ์ ์คํจํ์ต๋๋ค!**")
|
| 340 |
print("์๋ ๋ก๊ทธ์์ ์ค๋ฅ ์์ธ์ ํ์ธํ์ธ์.")
|
|
|
|
| 342 |
|
| 343 |
# 1. ํฐ๋ ํ๋ก์ธ์ค ์ข
๋ฃ ์ ๋จ์ ๋ก๊ทธ ํ์ธ ๋ฐ ์ถ๋ ฅ
|
| 344 |
print("\n--- ํฐ๋ ํด๋ผ์ด์ธํธ ์ต์ข
๋ก๊ทธ ---")
|
| 345 |
+
# ํฐ๋ stdout์ ์ฒ์์ผ๋ก ์ด๋ (์ด๋ฏธ ์ฝ์ ๋ด์ฉ ํฌํจ)
|
| 346 |
+
try:
|
| 347 |
+
tunnel_logs = tunnel_proc.stdout.read()
|
| 348 |
+
if tunnel_logs:
|
| 349 |
+
print(tunnel_logs.strip())
|
| 350 |
+
else:
|
| 351 |
+
print("ํฐ๋ ๋ก๊ทธ๊ฐ ๋ฐ๊ฒฌ๋์ง ์์์ต๋๋ค. ์ฆ์ ์ข
๋ฃ๋ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค.")
|
| 352 |
+
except Exception as e:
|
| 353 |
+
print(f"ํฐ๋ ๋ก๊ทธ๋ฅผ ์ฝ๋ ์ค ์์ธ ๋ฐ์: {e}")
|
| 354 |
+
|
| 355 |
+
# 2. ComfyUI ํ๋ก์ธ์ค ๋ก๊ทธ ํ์ธ
|
| 356 |
print("\n--- ComfyUI ์ด๊ธฐ ๋ก๊ทธ ํ์ธ (ComfyUI๊ฐ ํฌํธ๋ฅผ ์ด์๋์ง ํ์ธ) ---")
|
|
|
|
|
|
|
|
|
|
| 357 |
try:
|
|
|
|
| 358 |
if comfyui_proc.stdout is not None:
|
| 359 |
+
# select๋ฅผ ์ฌ์ฉํ์ฌ ๋น์ฐจ๋จ ๋ฐฉ์์ผ๋ก ์ฝ์ ์ ์๋๋ก ์๋
|
| 360 |
ready_to_read, _, _ = select.select([comfyui_proc.stdout], [], [], 0.5)
|
| 361 |
if ready_to_read:
|
| 362 |
comfy_logs = comfyui_proc.stdout.read()
|
|
|
|
| 368 |
except Exception as e:
|
| 369 |
print(f"ComfyUI ๋ก๊ทธ ์ฝ๊ธฐ ์ค ์์ธ ๋ฐ์: {e}")
|
| 370 |
|
| 371 |
+
# ๋ชจ๋ ํ๋ก์ธ์ค ์ข
๋ฃ ํ ์ค๋ฅ ๋ฐ์
|
| 372 |
+
if comfyui_proc.poll() is None:
|
| 373 |
+
comfyui_proc.terminate()
|
| 374 |
+
if tunnel_proc.poll() is None:
|
| 375 |
+
tunnel_proc.terminate()
|
| 376 |
+
|
| 377 |
raise RuntimeError("Gradio ํฐ๋๋ง์ ์คํจํ์ต๋๋ค. ์์ ์์ธ ๋ก๊ทธ๋ฅผ ํ์ธํด ์ฃผ์ญ์์ค.")
|
| 378 |
|
| 379 |
|
|
|
|
| 417 |
print("๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋์์ต๋๋ค.")
|
| 418 |
|
| 419 |
if __name__ == '__main__':
|
| 420 |
+
main()
|