基于Docker安装的Stable Diffusion使用CPU进行AI绘画

  • 由于博主的电脑是为了敲代码考虑买的,所以专门买的高U低显,i9配核显,用Stable Diffusion进行AI绘画的话倒是专门有个CPU模式,不过安装过程经历了许多坎坷,特此记录一下

  • 博主的环境是Windows 11附带的WSL2中安装的Ubuntu 20.04 LTS,安装的Stable Diffusion Docker版本为2.1.0

安装条件

  1. 安装Docker
  2. 安装DockerCompose
  3. 会Docker(博主说的比较粗略,不建议没有docker经验的按本博客进行)

一、下载代码

地址:https://github.com/AbdBarho/stable-diffusion-webui-docker/archive/refs/tags/2.1.0.zip

解压到你需要的路径

二、修改路径

wsl2对应windows的路径如: D:/soft --> /mnt/d/soft

在你上个解压的文件里面的docker-compose.yml中更改路径

例如build: ./services/download/

改为

build: /mnt/d/wsl/stable-diffusion-webui/stable-diffusion-webui-docker-2.1.0/services/download/

三、构建下载

命令为

docker compose --profile download up --build

四、构建镜像

  1. 主要的坑也是这里了,需要修改service/AUTOMATIC1111/Dockerfile,修改为下方代码

博主删除了不必要的xformers(必须要google drive,而且开了代理也不行,cpu模式不需要这个东西),然后对git加了代理,然后修改了git的配置

# syntax=docker/dockerfile:1

FROM alpine/git:2.36.2 as download

SHELL ["/bin/sh", "-ceuxo", "pipefail"]

RUN git config --global http.version HTTP/1.1

RUN git config --global http.postBuffer 524288000
RUN git config --global https.postBuffer 524288000
RUN git config --global core.compression -1 RUN git clone https://github.91chi.fun/https://github.com/salesforce/BLIP.git repositories/BLIP && cd repositories/BLIP && git reset --hard 48211a1594f1321b00f14c9f7a5b4813144b2fb9 RUN git clone https://github.91chi.fun/https://github.com/sczhou/CodeFormer.git repositories/CodeFormer && cd repositories/CodeFormer && git reset --hard c5b4593074ba6214284d6acd5f1719b6c5d739af RUN git clone https://github.91chi.fun/https://github.com/CompVis/stable-diffusion.git repositories/stable-diffusion && cd repositories/stable-diffusion && git reset --hard 69ae4b35e0a0f6ee1af8bb9a5d0016ccb27e36dc RUN <<EOF
# because taming-transformers is huge
git config --global http.postBuffer 1048576000
git clone https://github.91chi.fun/https://github.com/CompVis/taming-transformers.git repositories/taming-transformers
cd repositories/taming-transformers
git reset --hard 24268930bf1dce879235a7fddd0b2355b84d7ea6
rm -rf data assets
EOF RUN git clone https://github.91chi.fun/https://github.com/crowsonkb/k-diffusion.git repositories/k-diffusion && cd repositories/k-diffusion && git reset --hard f4e99857772fc3a126ba886aadf795a332774878 FROM python:3.10-slim SHELL ["/bin/bash", "-ceuxo", "pipefail"] ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1 PIP_NO_CACHE_DIR=1 RUN pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113 RUN apt-get update && apt install fonts-dejavu-core rsync git -y && apt-get clean RUN <<EOF
git clone https://github.91chi.fun/https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui
git reset --hard 1eb588cbf19924333b88beaa1ac0041904966640
pip install -r requirements_versions.txt
EOF ENV ROOT=/stable-diffusion-webui \
WORKDIR=/stable-diffusion-webui/repositories/stable-diffusion COPY --from=download /git/ ${ROOT}
RUN pip install --prefer-binary --no-cache-dir -r ${ROOT}/repositories/CodeFormer/requirements.txt # TODO: move to top
RUN apt-get install jq moreutils -y # Note: don't update the sha of previous versions because the install will take forever
# instead, update the repo state in a later step ARG SHA=36a0ba357ab0742c3c4a28437b68fb29a235afbe
RUN <<EOF
cd stable-diffusion-webui
git pull --rebase
git reset --hard ${SHA}
pip install --prefer-binary --no-cache-dir -r requirements_versions.txt
EOF RUN pip install --prefer-binary --no-cache-dir opencv-python-headless \
git+https://github.91chi.fun/https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379 \
git+https://github.91chi.fun/https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \
pyngrok COPY . /docker
RUN <<EOF
chmod +x /docker/mount.sh && python3 /docker/info.py ${ROOT}/modules/ui.py
EOF ENV CLI_ARGS=""
WORKDIR ${WORKDIR}
EXPOSE 7860
# run, -u to not buffer stdout / stderr
CMD /docker/mount.sh && \
python3 -u ../../webui.py --listen --port 7860 --ckpt-dir ${ROOT}/models/Stable-diffusion ${CLI_ARGS}
  1. 修改以后运行
docker compose --profile auto-cpu up --build

结果

放下测试的结果(一个奇奇怪怪的小猫)

基于Docker安装的Stable Diffusion使用CPU进行AI绘画的更多相关文章

  1. zabbix基于docker安装

    centos的版本 # cat /etc/redhat-release CentOS Linux release (Core) docker的安装 配置yum源 # vim /etc/yum.repo ...

  2. 基于docker安装pxc集群

    基于docker安装pxc集群 一.PXC 集群的安装 PXC集群比较特殊,需要安装在 linux 或 Docker 之上.这里使用 Docker进行安装! Docker的镜像仓库中包含了 PXC数据 ...

  3. Docker——基于Docker安装Drupal博客系统

    Docker--基于Docker安装Drupal博客系统 向脚本文件追加内容 cat << EOF > build.sh #设置主机名 hostnamectl set-hostnam ...

  4. 基于Docker安装常用软件

    基于Docker安装常用软件 本实验介绍如何基于Docker安装常用的软件,具体包括: Ubuntu Cetnos Nginx Node.js PHP MySQL Tomcat Redis Mongo ...

  5. docker初识-docker安装、基于docker安装mysql及tomcat、基本命令

    一.docker是什么 用go语言开发,开源的应用容器引擎,容器性能开销极低 二.整体架构图 Docker 包括三个基本概念: 镜像(Image):Docker 镜像(Image),就相当于是一个 r ...

  6. 心动不如行动,基于Docker安装关系型数据库PostgrelSQL替代Mysql

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_171 最近"全栈数据库"的概念甚嚣尘上,主角就是PostgrelSQL,它最近这几年的技术发展不可谓不猛,覆盖 ...

  7. 基于docker安装phpmyadmin

    今天用到了phpadmin,要从头装的话,比较麻烦,所以就选择使用docker 安装 准备 任意Linux系统且已成功安装docker环境 安装phpmyAdmin 1. 拉取镜像 docker pu ...

  8. 基于Docker安装的MindSpore-1.2 GPU版本

    技术背景 在前面一篇博客中,我们介绍过MindSpore-CPU版本的Docker部署以及简单的案例测试,当时官方还不支持GPU版本的Docker容器化部署.经过MindSpore团队的努力,1.2. ...

  9. 基于Docker安装 GitLab

    ⒈下载镜像 本文使用GitLab 中文社区版 Docker 镜像 Docker Hub地址:https://hub.docker.com/r/beginor/gitlab-ce 如果要体验最新版的Gi ...

  10. 基于docker安装jumpserver

    以下配置均在一台ubuntu上实现 # 生成宿主机Mysql配置文件,便于docker内容器使用 [root@ubuntu2004 ~]#mkdir -p /etc/mysql/mysql.conf. ...

随机推荐

  1. 表驱动法在STM32中的应用

    1.概念 所谓表驱动法(Table-Driven Approach)简而言之就是用查表的方法获取数据.此处的"表"通常为数组,但可视为数据库的一种体现.根据字典中的部首检字表查找读 ...

  2. Optional用法与争议点

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介 要说Java中什么异常最容易出现,我想NullPointerException一定当仁不让,为了解决这种null值 ...

  3. 小程序利用canvas 绘制图案 (生成海报, 生成有特色的头像)

    小程序利用canvas 绘制图案 (生成海报, 生成有特色的头像) 微信小程序生成特色头像,海报等是比较常见的.下面我来介绍下实现该类小程序的过程. 首先选择前端来通过 canvas 绘制.这样比较节 ...

  4. 微信DAT文件解密(dat转图像)

    微信电脑版现在已经是日常工作生活必不可少的工具,有时候删除了聊天记录或者被系统清理软件清理了,但还想查看曾经的微信聊天图片. 这个时候辛辛苦苦找到了文件,却发现无法查看,因为微信电脑版为了保护我们的隐 ...

  5. 手记系列之三 ----- 关于使用Nginx的一些使用方法和经验

    前言 本篇文章主要介绍的关于本人在使用Nginx的一些使用方法和经验~ Nginx介绍 介绍 Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所 ...

  6. Vue2学习笔记

    1.插值语法: 1.1.功能: 用于解析标签体内容 1.2.写法: {{ xxx }},xxx是js表达式,且可以直接读取到data中的所有属性. 2.收集表单数据 若:<input type= ...

  7. DL账号密码生命周期信息流图

  8. scrapy框架命令

    scrapy startproject #创建scrapy项目 scrapy genspider test www.baidu.com #在项目下的spider目录下生成爬虫文件 test爬虫名称 w ...

  9. VMware宿主机访问虚拟机的Web服务

    VMware宿主机访问虚拟机的Web服务,主要就是宿主机可以通过IP能够访问到虚拟机. 可以尝试使用以下步骤. 1.关闭虚拟机,把网络连接方式修改成桥接方式. 2.打开虚拟机后,把虚拟机的防火墙关闭. ...

  10. Flink SQL管理平台flink-streaming-platform-web安装搭建

    文章都在个人博客网站:https://www.ikeguang.com/ 同步,欢迎访问. 最近看到有人在用flink sql的页面管理平台,大致看了下,尝试安装使用,比原生的flink sql界面确 ...