Spaces:
Sleeping
Sleeping
Cagliostro
commited on
Commit
·
19b5d32
1
Parent(s):
e0b1273
Upload demo.ipynb
Browse files- demo.ipynb +45 -28
demo.ipynb
CHANGED
|
@@ -14,55 +14,72 @@
|
|
| 14 |
"from threading import Timer\n",
|
| 15 |
"from queue import Queue\n",
|
| 16 |
"\n",
|
| 17 |
-
"
|
| 18 |
-
"
|
| 19 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
"NGROK_TOKEN = \"\"\n",
|
|
|
|
|
|
|
| 21 |
"\n",
|
| 22 |
-
"os.environ[\"HF_TOKEN\"] = \"\"\n",
|
| 23 |
"os.environ[\"IS_COLAB\"] = \"1\"\n",
|
| 24 |
-
"os.environ[\"MODEL\"] = \"https://huggingface.co/cagliostrolab/animagine-xl-3.
|
| 25 |
"os.environ[\"CACHE_EXAMPLES\"] = \"1\"\n",
|
| 26 |
"\n",
|
| 27 |
-
"def
|
| 28 |
-
" subprocess.run([\"git\", \"clone\", url,
|
| 29 |
" if branch:\n",
|
| 30 |
-
" subprocess.run([\"git\", \"checkout\", branch], cwd=
|
| 31 |
"\n",
|
| 32 |
-
"def
|
| 33 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
"\n",
|
| 35 |
-
"def
|
| 36 |
" ngrok.set_auth_token(auth_token)\n",
|
| 37 |
-
" url = ngrok.connect(port)\n",
|
| 38 |
" queue.put(url)\n",
|
| 39 |
"\n",
|
| 40 |
"def main():\n",
|
| 41 |
" if not os.path.exists(REPO_DIR):\n",
|
| 42 |
-
" print(f\"Cloning
|
| 43 |
-
"
|
| 44 |
-
"
|
| 45 |
-
"
|
|
|
|
| 46 |
" print(\"Done!\")\n",
|
| 47 |
"\n",
|
| 48 |
" os.chdir(REPO_DIR)\n",
|
| 49 |
-
"
|
| 50 |
" if NGROK_TOKEN:\n",
|
| 51 |
" try:\n",
|
| 52 |
-
" from pyngrok import conf,ngrok\n",
|
| 53 |
-
" except:\n",
|
| 54 |
-
"
|
| 55 |
-
"
|
| 56 |
-
" from pyngrok import conf,ngrok\n",
|
| 57 |
-
"
|
|
|
|
| 58 |
" ngrok_output_queue = Queue()\n",
|
| 59 |
-
" ngrok_thread = Timer(2,
|
| 60 |
" ngrok_thread.start()\n",
|
| 61 |
" ngrok_thread.join()\n",
|
| 62 |
-
" \n",
|
| 63 |
-
"
|
| 64 |
-
" \n",
|
| 65 |
-
" !python app.py\n",
|
| 66 |
"\n",
|
| 67 |
"if __name__ == \"__main__\":\n",
|
| 68 |
" main()"
|
|
|
|
| 14 |
"from threading import Timer\n",
|
| 15 |
"from queue import Queue\n",
|
| 16 |
"\n",
|
| 17 |
+
"def is_colab():\n",
|
| 18 |
+
" try:\n",
|
| 19 |
+
" import google.colab\n",
|
| 20 |
+
" return True\n",
|
| 21 |
+
" except ImportError:\n",
|
| 22 |
+
" return False\n",
|
| 23 |
+
" \n",
|
| 24 |
+
"ROOT_DIR = \"/workspace/\" if not is_colab() else \"/content/\"\n",
|
| 25 |
+
"REPO_URL = \"https://huggingface.co/spaces/cagliostrolab/animagine-xl-3.1\"\n",
|
| 26 |
+
"REPO_DIR = os.path.join(ROOT_DIR, \"animagine-xl\")\n",
|
| 27 |
+
"\n",
|
| 28 |
"NGROK_TOKEN = \"\"\n",
|
| 29 |
+
"NGROK_SUBDOMAIN = \"\"\n",
|
| 30 |
+
"PORT = 7860\n",
|
| 31 |
"\n",
|
| 32 |
+
"# os.environ[\"HF_TOKEN\"] = \"\"\n",
|
| 33 |
"os.environ[\"IS_COLAB\"] = \"1\"\n",
|
| 34 |
+
"os.environ[\"MODEL\"] = \"https://huggingface.co/cagliostrolab/animagine-xl-3.1/blob/main/animagine-xl-3.1.safetensors\"\n",
|
| 35 |
"os.environ[\"CACHE_EXAMPLES\"] = \"1\"\n",
|
| 36 |
"\n",
|
| 37 |
+
"def clone_repository(url, directory, branch=None):\n",
|
| 38 |
+
" subprocess.run([\"git\", \"clone\", url, directory], check=True)\n",
|
| 39 |
" if branch:\n",
|
| 40 |
+
" subprocess.run([\"git\", \"checkout\", branch], cwd=directory, check=True)\n",
|
| 41 |
"\n",
|
| 42 |
+
"def install_dependencies(directory):\n",
|
| 43 |
+
" dependencies = [\"accelerate==0.27.2\", \"diffusers==0.26.3\", \"gradio==4.20.0\",\n",
|
| 44 |
+
" \"invisible-watermark==0.2.0\", \"spaces==0.24.0\", \"omegaconf==2.3.0\", \"timm==0.9.10\"]\n",
|
| 45 |
+
" if is_colab():\n",
|
| 46 |
+
" subprocess.run([\"pip\", \"install\"] + dependencies, check=True)\n",
|
| 47 |
+
" else:\n",
|
| 48 |
+
" requirements_path = os.path.join(directory, \"requirements.txt\")\n",
|
| 49 |
+
" subprocess.run([\"pip\", \"install\", \"-r\", requirements_path], check=True)\n",
|
| 50 |
"\n",
|
| 51 |
+
"def setup_ngrok_tunnel(port, queue, auth_token, subdomain):\n",
|
| 52 |
" ngrok.set_auth_token(auth_token)\n",
|
| 53 |
+
" url = ngrok.connect(port, bind_tls=True, subdomain=subdomain)\n",
|
| 54 |
" queue.put(url)\n",
|
| 55 |
"\n",
|
| 56 |
"def main():\n",
|
| 57 |
" if not os.path.exists(REPO_DIR):\n",
|
| 58 |
+
" print(f\"Cloning repository to {REPO_DIR}\")\n",
|
| 59 |
+
" clone_repository(REPO_URL, REPO_DIR)\n",
|
| 60 |
+
"\n",
|
| 61 |
+
" print(\"Installing required Python libraries\")\n",
|
| 62 |
+
" install_dependencies(REPO_DIR)\n",
|
| 63 |
" print(\"Done!\")\n",
|
| 64 |
"\n",
|
| 65 |
" os.chdir(REPO_DIR)\n",
|
| 66 |
+
"\n",
|
| 67 |
" if NGROK_TOKEN:\n",
|
| 68 |
" try:\n",
|
| 69 |
+
" from pyngrok import conf, ngrok\n",
|
| 70 |
+
" except ImportError:\n",
|
| 71 |
+
" subprocess.run([\"pip\", \"install\", \"-qqqq\", \"--upgrade\", \"setuptools\"], check=True)\n",
|
| 72 |
+
" subprocess.run([\"pip\", \"install\", \"-qqqq\", \"-U\", \"pyngrok\"], check=True)\n",
|
| 73 |
+
" from pyngrok import conf, ngrok\n",
|
| 74 |
+
"\n",
|
| 75 |
+
" ngrok.kill()\n",
|
| 76 |
" ngrok_output_queue = Queue()\n",
|
| 77 |
+
" ngrok_thread = Timer(2, setup_ngrok_tunnel, args=(PORT, ngrok_output_queue, NGROK_TOKEN, NGROK_SUBDOMAIN))\n",
|
| 78 |
" ngrok_thread.start()\n",
|
| 79 |
" ngrok_thread.join()\n",
|
| 80 |
+
" print(ngrok_output_queue.get())\n",
|
| 81 |
+
"\n",
|
| 82 |
+
" subprocess.run([\"python\", \"app.py\"], check=True)\n",
|
|
|
|
| 83 |
"\n",
|
| 84 |
"if __name__ == \"__main__\":\n",
|
| 85 |
" main()"
|