見出し画像

【SDXL】SDXL1.0をGoogle Colabで簡単に使う方法【ComfyUI】

SDXLをGoogle Colab上で簡単に使う方法をご紹介します。
Google Colabに既に設定済みのコードを使用することで、簡単にSDXLの環境をつくりあげす。また、ComfyUIも難しい部分は飛ばし、わかりやすさ、応用性を意識した設定済みのworkflowファイルを使用することで、すぐにAIイラストを生成できるようにします。

注意:youtubeの動画との連携を前提に書かれいています。
   動画と、ここに記載の検証結果をみていくことで理解できます。


youtube channel
The AI Hub : Mind of the Machine
【SDXL】SDXL1.0をGoogle Colabで簡単に使う方法【ComfyUI】

https://youtu.be/EU0oQHrYvQI


Google Colab用、SDXLコード

モデル、VAE等の追加や削除は好みに合わせて、行ってください。
変更がない場合は、モデルは
BASEモデル
DreamShaper XL1.0
CounterfeitXL
Animagine XL 1.0
がインストールされます。
以下のコードをgoogle colab ノートにコピー&ペーストして使用してください。

import os

!apt -y update -qq
!wget https://github.com/camenduru/gperftools/releases/download/v1.0/libtcmalloc_minimal.so.4 -O /content/libtcmalloc_minimal.so.4
%env LD_PRELOAD=/content/libtcmalloc_minimal.so.4

!apt -y install -qq aria2
!pip install -q xformers==0.0.20 triton==2.0.0 -U
!pip install -q mediapipe==0.9.1.0 addict yapf fvcore omegaconf

!git clone -b v1.3 https://github.com/camenduru/ComfyUI
%cd /content/ComfyUI
!pip install -q -r requirements.txt

!wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -O /content/cloudflared-linux-amd64 && chmod 777 /content/cloudflared-linux-amd64
import atexit, requests, subprocess, time, re, os
from random import randint
from threading import Timer
from queue import Queue
def cloudflared(port, metrics_port, output_queue):
    atexit.register(lambda p: p.terminate(), subprocess.Popen(['/content/cloudflared-linux-amd64', 'tunnel', '--url', f'http://127.0.0.1:{port}', '--metrics', f'127.0.0.1:{metrics_port}'], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT))
    attempts, tunnel_url = 0, None
    while attempts < 10 and not tunnel_url:
        attempts += 1
        time.sleep(3)
        try:
            tunnel_url = re.search("(?P<url>https?:\/\/[^\s]+.trycloudflare.com)", requests.get(f'http://127.0.0.1:{metrics_port}/metrics').text).group("url")
        except:
            pass
    if not tunnel_url:
        raise Exception("Can't connect to Cloudflare Edge")
    output_queue.put(tunnel_url)
output_queue, metrics_port = Queue(), randint(8100, 9000)
thread = Timer(2, cloudflared, args=(8188, metrics_port, output_queue))
thread.start()
thread.join()
tunnel_url = output_queue.get()
os.environ['webui_url'] = tunnel_url
print(tunnel_url)

#upscale

!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.1/RealESRGAN_x2plus.pth -d /content/ComfyUI/models/upscale_models -o RealESRGAN_x2plus.pth


#models

base = "https://huggingface.co/ckpt/sd_xl_base_1.0/resolve/main/sd_xl_base_1.0.safetensors"
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M {base} -d /content/ComfyUI/models/checkpoints -o sd_xl_base_1.0.safetensors
base = "https://huggingface.co/jayparmr/DreamShaper_XL1_0_Alpha2/resolve/main/dreamshaperXL10.safetensors"
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M {base} -d /content/ComfyUI/models/checkpoints -o dreamshaperXL10_alpha2Xl10.safetensors
base = "https://huggingface.co/gsdf/CounterfeitXL/resolve/main/CounterfeitXL_β.safetensors"
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M {base} -d /content/ComfyUI/models/checkpoints -o wdxl-CounterfeitXL_β.safetensors
base = "https://huggingface.co/Linaqruf/animagine-xl/resolve/main/animagine-xl.safetensors"
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M {base} -d /content/ComfyUI/models/checkpoints -o animagine-xl.safetensors

 #refiner 
refiner = "https://huggingface.co/ckpt/sd_xl_refiner_1.0/resolve/main/sd_xl_refiner_1.0.safetensors"
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M {refiner} -d /content/ComfyUI/models/checkpoints -o sd_xl_refiner_1.0.safetensors

 #VAE 
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/ckpt/sdxl_vae/resolve/main/sdxl_vae.safetensors -d /content/ComfyUI/models/vae -o sdxl_vae.vae.safetensors

!python main.py --dont-print-server

参考:camendru sdxl_v1.0_comfyui_colab

ComfyUI、XL用JSONファイル

XDSL 生成イラスト

BASEモデル

DreamShaper XL1.0

CounterfeitXL

Animagine XL 1.0

関連動画

【Stable Diffusion】プロンプト入力の常識を覆す、驚くべき成果を公開!+応用方法 【常識の再定義】
https://youtu.be/2blX7Ks4YMk


この記事が気に入ったらサポートをしてみませんか?