2023-08-31 / @syui

docker

dockerでstable diffusionを構築してみた

stable diffusion v1.4

src : https://huggingface.co/CompVis/stable-diffusion-v-1-4-original

sd-v1-4.ckpt : https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt

.ckptはファイルが大きいのでgit cloneでdownloadされません。

$ mkdir -p {model,outputs}
$ mv sd-v1-4.ckpt ./model/model.ckpt
$ vim Dockerfile
FROM nvcr.io/nvidia/cuda:11.7.1-cudnn8-runtime-ubuntu20.04

ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Tokyo

RUN apt-get update && apt-get install -y wget git git-lfs libglib2.0-0 libsm6 libxrender1 libxext-dev

RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh && \
    sh Miniconda3-latest-Linux-x86_64.sh -b -p /opt/miniconda3 && \
    rm -r Miniconda3-latest-Linux-x86_64.sh

ENV PATH /opt/miniconda3/bin:$PATH

# RUN git clone https://github.com/CompVis/stable-diffusion && \
#     cd stable-diffusion && \
#     conda init bash && \
#     conda env create -f environment.yaml && \
#     echo "conda activate ldm" >> ~/.bashrc

RUN git clone https://github.com/basujindal/stable-diffusion.git && \
    cd stable-diffusion && \
    conda init bash && \
    conda env create -f environment.yaml && \
    echo "conda activate ldm" >> ~/.bashrc
version: '3'
services:
  stable_diffusion:
    build: .
    working_dir: /stable-diffusion
    tty: true
    volumes:
      - ./model/:/stable-diffusion/models/ldm/stable-diffusion-v1/
      - ./outputs:/stable-diffusion/outputs
    deploy:
      resources:
        reservations:
          devices:
            - capabilities: [gpu]
    environment: 
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=all
$ docker compose up
---
$ docker compose exec stable_diffusion bash
$ prompt="masterpiece, high quality, very_high_resolution, large_filesize, full color, little girl, simple white onepice"
$ python optimizedSD/optimized_txt2img.py --H 512 --W 512 --seed 27 --n_iter 2 --n_samples 1 --ddim_steps 5 --prompt $prompt

スペックがあまり良くないubuntu-serverで構築しているので、実行すると他のサーバーが止まる。

ref : https://zenn.dev/choshicure/scraps/14bca2492bf49f

stable diffusion v1.5, webui

https://github.com/AbdBarho/stable-diffusion-webui-docker

$ git clone https://github.com/AbdBarho/stable-diffusion-webui-docker
$ cd stable-diffusion-webui-docker
$ docker compose --profile download up --build

$ ls ./data/models

# 様々なui
# https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/Usage
$ docker compose --profile auto up --build
$ docker compose --profile invoke up --build

mac, ipad

https://apps.apple.com/jp/app/draw-things-ai-generation/id6444050820

https://github.com/godly-devotion/MochiDiffusion