comfyui_colab.ipynb 6.66 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 (uncomment the wget commands for the ones you want)"
comfyanonymous's avatar
comfyanonymous committed
47
48
49
50
51
52
53
54
      ],
      "metadata": {
        "id": "cccccccccc"
      }
    },
    {
      "cell_type": "code",
      "source": [
55
56
57
        "# Checkpoints\n",
        "\n",
        "# SD1.5\n",
comfyanonymous's avatar
comfyanonymous committed
58
        "!wget https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt -P ./models/checkpoints/\n",
59
60
61
62
63
64
        "\n",
        "# SD2\n",
        "#!wget https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.safetensors -P ./models/checkpoints/\n",
        "#!wget https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors -P ./models/checkpoints/\n",
        "\n",
        "# Some SD1.5 anime style models\n",
comfyanonymous's avatar
comfyanonymous committed
65
66
67
        "#!wget https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors -P ./models/checkpoints/\n",
        "#!wget https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A1.safetensors -P ./models/checkpoints/\n",
        "#!wget https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A3.safetensors -P ./models/checkpoints/\n",
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
        "#!wget https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/anything-v3-fp16-pruned.safetensors -P ./models/checkpoints/\n",
        "\n",
        "\n",
        "# VAE\n",
        "!wget https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors -P ./models/vae/\n",
        "#!wget https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt -P ./models/vae/\n",
        "\n",
        "\n",
        "# T2I-Adapter\n",
        "#!wget https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_depth_sd14v1.pth -P ./models/t2i_adapter/\n",
        "#!wget https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_seg_sd14v1.pth -P ./models/t2i_adapter/\n",
        "#!wget https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_sketch_sd14v1.pth -P ./models/t2i_adapter/\n",
        "#!wget https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_keypose_sd14v1.pth -P ./models/t2i_adapter/\n",
        "\n",
        "\n",
        "# ControlNet\n",
        "#!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_depth-fp16.safetensors -P ./models/controlnet/\n",
        "#!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_scribble-fp16.safetensors -P ./models/controlnet/\n",
        "#!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_openpose-fp16.safetensors -P ./models/controlnet/\n"
comfyanonymous's avatar
comfyanonymous committed
87
88
89
90
91
92
93
94
95
96
      ],
      "metadata": {
        "id": "dddddddddd"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
comfyanonymous's avatar
comfyanonymous committed
97
        "### Run ComfyUI with localtunnel\n",
98
        "\n",
comfyanonymous's avatar
comfyanonymous committed
99
100
        "use the **fp16** model configs for more speed\n",
        "\n"
comfyanonymous's avatar
comfyanonymous committed
101
102
      ],
      "metadata": {
comfyanonymous's avatar
comfyanonymous committed
103
        "id": "kkkkkkkkkkkkkk"
comfyanonymous's avatar
comfyanonymous committed
104
105
106
107
108
      }
    },
    {
      "cell_type": "code",
      "source": [
comfyanonymous's avatar
comfyanonymous committed
109
110
111
        "!npm install -g localtunnel\n",
        "\n",
        "import subprocess\n",
112
113
114
115
116
117
118
119
120
121
122
        "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
123
124
125
126
        "  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
127
        "\n",
128
129
        "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n",
        "\n",
comfyanonymous's avatar
comfyanonymous committed
130
        "!python main.py --highvram --dont-print-server"
comfyanonymous's avatar
comfyanonymous committed
131
132
      ],
      "metadata": {
comfyanonymous's avatar
comfyanonymous committed
133
        "id": "jjjjjjjjjjjjj"
comfyanonymous's avatar
comfyanonymous committed
134
135
136
      },
      "execution_count": null,
      "outputs": []
137
138
139
140
    },
    {
      "cell_type": "markdown",
      "source": [
comfyanonymous's avatar
comfyanonymous committed
141
142
        "### Run ComfyUI with colab iframe (in case localtunnel doesn't work)\n",
        "use the **fp16** model configs for more speed\n",
143
        "\n",
comfyanonymous's avatar
comfyanonymous committed
144
        "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",
145
        "\n",
comfyanonymous's avatar
comfyanonymous committed
146
        "If you want to open it in another window use the link.\n"
147
148
      ],
      "metadata": {
comfyanonymous's avatar
comfyanonymous committed
149
        "id": "gggggggggg"
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
      }
    },
    {
      "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
166
167
168
169
        "  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",
170
171
172
        "\n",
        "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n",
        "\n",
173
        "!python main.py --dont-print-server"
174
175
      ],
      "metadata": {
comfyanonymous's avatar
comfyanonymous committed
176
        "id": "hhhhhhhhhh"
177
178
179
      },
      "execution_count": null,
      "outputs": []
comfyanonymous's avatar
comfyanonymous committed
180
181
182
    }
  ]
}