comfyui_colab.ipynb 5.22 KB
Newer Older
comfyanonymous's avatar
comfyanonymous committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    },
    "accelerator": "GPU",
    "gpuClass": "standard"
  },
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
22
        "Git clone the repo and install the requirements. (ignore the pip errors about protobuf)"
comfyanonymous's avatar
comfyanonymous committed
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
      ],
      "metadata": {
        "id": "aaaaaaaaaa"
      }
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "bbbbbbbbbb"
      },
      "outputs": [],
      "source": [
        "!git clone https://github.com/comfyanonymous/ComfyUI\n",
        "%cd ComfyUI\n",
38
        "!pip install -r requirements.txt\n",
comfyanonymous's avatar
comfyanonymous committed
39
40
        "!pip install xformers\n",
        "!sed -i 's/v1-inference.yaml/v1-inference_fp16.yaml/g' webshit/index.html"
comfyanonymous's avatar
comfyanonymous committed
41
42
43
44
45
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
46
        "Download some models/checkpoints/vae:"
comfyanonymous's avatar
comfyanonymous committed
47
48
49
50
51
52
53
54
55
      ],
      "metadata": {
        "id": "cccccccccc"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "!wget https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt -P ./models/checkpoints/\n",
56
        "!wget https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors -P ./models/vae/\n",
57
        "!wget https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors -P ./models/checkpoints/\n"
comfyanonymous's avatar
comfyanonymous committed
58
59
60
61
62
63
64
65
66
67
      ],
      "metadata": {
        "id": "dddddddddd"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
68
        "Optional: Launch a http server to see the output pics (you can also download them by browsing to the output directory with colab):"
comfyanonymous's avatar
comfyanonymous committed
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
      ],
      "metadata": {
        "id": "eeeeeeeeee"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from google.colab import output\n",
        "output.serve_kernel_port_as_window(8000)\n",
        "get_ipython().system_raw('cd output && python3 -m http.server 8000 &') "
      ],
      "metadata": {
        "id": "ffffffffff"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
comfyanonymous's avatar
comfyanonymous committed
90
        "### Run ComfyUI with localtunnel\n",
91
        "\n",
comfyanonymous's avatar
comfyanonymous committed
92
        "If you have issues with the previous way, you can try this way. It will also work on non colab.\n",
93
        "\n",
comfyanonymous's avatar
comfyanonymous committed
94
95
        "use the **fp16** model configs for more speed\n",
        "\n"
comfyanonymous's avatar
comfyanonymous committed
96
97
      ],
      "metadata": {
comfyanonymous's avatar
comfyanonymous committed
98
        "id": "kkkkkkkkkkkkkk"
comfyanonymous's avatar
comfyanonymous committed
99
100
101
102
103
      }
    },
    {
      "cell_type": "code",
      "source": [
comfyanonymous's avatar
comfyanonymous committed
104
105
106
        "!npm install -g localtunnel\n",
        "\n",
        "import subprocess\n",
107
108
109
110
111
112
113
114
115
116
117
        "import threading\n",
        "import time\n",
        "import socket\n",
        "def iframe_thread(port):\n",
        "  while True:\n",
        "      time.sleep(0.5)\n",
        "      sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n",
        "      result = sock.connect_ex(('127.0.0.1', port))\n",
        "      if result == 0:\n",
        "        break\n",
        "      sock.close()\n",
comfyanonymous's avatar
comfyanonymous committed
118
119
120
121
        "  p = subprocess.Popen([\"lt\", \"--port\", \"{}\".format(port)], stdout=subprocess.PIPE)\n",
        "  for line in p.stdout:\n",
        "    print(line.decode(), end='')\n",
        "\n",
comfyanonymous's avatar
comfyanonymous committed
122
        "\n",
123
124
        "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n",
        "\n",
comfyanonymous's avatar
comfyanonymous committed
125
        "!python main.py --highvram --dont-print-server"
comfyanonymous's avatar
comfyanonymous committed
126
127
      ],
      "metadata": {
comfyanonymous's avatar
comfyanonymous committed
128
        "id": "jjjjjjjjjjjjj"
comfyanonymous's avatar
comfyanonymous committed
129
130
131
      },
      "execution_count": null,
      "outputs": []
132
133
134
135
    },
    {
      "cell_type": "markdown",
      "source": [
comfyanonymous's avatar
comfyanonymous committed
136
137
        "### Run ComfyUI with colab iframe (in case localtunnel doesn't work)\n",
        "use the **fp16** model configs for more speed\n",
138
        "\n",
comfyanonymous's avatar
comfyanonymous committed
139
        "You should see the ui appear in an iframe. If you get a 403 error, it's your firefox settings or an extension that's messing things up.\n",
140
        "\n",
comfyanonymous's avatar
comfyanonymous committed
141
        "If you want to open it in another window use the link.\n"
142
143
      ],
      "metadata": {
comfyanonymous's avatar
comfyanonymous committed
144
        "id": "gggggggggg"
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import threading\n",
        "import time\n",
        "import socket\n",
        "def iframe_thread(port):\n",
        "  while True:\n",
        "      time.sleep(0.5)\n",
        "      sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n",
        "      result = sock.connect_ex(('127.0.0.1', port))\n",
        "      if result == 0:\n",
        "        break\n",
        "      sock.close()\n",
comfyanonymous's avatar
comfyanonymous committed
161
162
163
164
        "  from google.colab import output\n",
        "  output.serve_kernel_port_as_iframe(port, height=1024)\n",
        "  print(\"to open it in a window you can open this link here:\")\n",
        "  output.serve_kernel_port_as_window(port)\n",
165
166
167
        "\n",
        "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n",
        "\n",
comfyanonymous's avatar
comfyanonymous committed
168
        "!python main.py --highvram --dont-print-server"
169
170
      ],
      "metadata": {
comfyanonymous's avatar
comfyanonymous committed
171
        "id": "hhhhhhhhhh"
172
173
174
      },
      "execution_count": null,
      "outputs": []
comfyanonymous's avatar
comfyanonymous committed
175
176
177
    }
  ]
}