開発環境
- gpu: 4090 GTX (vram:24GB)
- os: archlinux
OS 側の設定
system 側の CUDA とか極力いじらずにいく方針
docker 用意されていたら積極的に使うし、システム側の CUDA 使いそうなら避けて代替を探す。pytorch サイドで全部やってくれ。 python
のバージョン指定があれば、 pyenv install X.X.X && pyenv local X.X.X
, 絶対に venv
すること。
ドライバは普通にパッケージマネージャ経由から入れる。
pacman -S nvidia
色々入れる
pacman -S docker docker-compose nvidia-container-toolkit pyenv
いちいち sudo docker
したくないから
usermod -aG docker yasushi
comfy-ui
https://github.com/comfyanonymous/ComfyUI https://github.com/ltdrdata/ComfyUI-Manager https://github.com/Fannovel16/comfyui_controlnet_aux
色々入れない。これだけ
モデルは、 base: https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/blob/main/sd_xl_base_1.0_0.9vae.safetensors
upscaler: https://civitai.com/models/141491?modelVersionId=156841
この data は comfyui の setting 変えて、api 用の workflow.json を入れれば ok
import json from urllib import request import time import random with open('template.json') as f: temp_str = f.read() template = json.loads(temp_str) url = 'http://localhost:8188' api_url = f'{url}/prompt' def prompt(p): data = json.dumps({'prompt': p}).encode('utf-8') req = request.Request(api_url, data=data) req.add_header('Content-Type', 'application/json') request.urlopen(req) # positive prompt positive = 'dog' # the node ids will be different prompt['12']['inputs']['text'] = positive prompt['6']['inputs']['text'] = positive # change base image for controlNet base_image = 'base_image.jpg' prompt['52']['inputs']['image'] = base_image # output img_name = f'out-dog' prompt['19']['inputs']['filename_prefix'] = img_name prompt(template)
ssh -L
でトンネルして、これを改造すれば量産できる
LORA
kohya-ss
1024x1024
の画像を用意する。
ちょっといじって強制的に --no-half-vae
になるようにした。
docker-compose
を使う。port forwarding しておいて、 localhost:7860
https://github.com/bmaltais/kohya_ss
dataset/loraName/n_loraName/image
に画像とキャプションを入れておく
dataset/loraName/n_loraName/models
dataset/loraName/n_loraName/logs
にそれぞれ保存しておく
正直このパラメータは何がいいのかさっぱりでやっている
https://github.com/bmaltais/kohya_ss/wiki/LoRA-training-parameters
なんかフーンって感じでやった。
illustrations
epoch: 30 cache latents: true LR Optimizer: AdamW LR Scheduler: constant Learning Rate: 0.00006 LR warmup: 0 Max resolution: 1024,1024 Enable buckets: false Text Encoding learning rate: 0.00005 Unet learning rate: 0.00005 Network Rank: 32 Network Alpha: 32 (–no half VAE)
Moglins
- パラメータ
これで大体 17GB 使う。画像は 50 枚で、全部 1024 x 1024
画像を 11 枚追加した。5枚は、新しいモグリン、6枚は
noisy_background
とラベリングしたから、それを negative prompt に当てるつもり。numimage * iterations * epoch = maxiterations
docker-compose up -d --build docker-compose logs kohya-ss-gui -f #ログを垂れ流し確認する docker-compose down
comfy 走らせながらだと、vram 足りなくなった。
nvtop
便利だった。