记录内网Docker启动Stable-Diffusion遇到的几个坑

这篇具有很好参考价值的文章主要介绍了记录内网Docker启动Stable-Diffusion遇到的几个坑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

摘要:最近看到K8s启动stable-diffusion的文章,想着在自己开发环境复现一下。没想到在内网环境还遇到这么多问题,记录一下。

本文分享自华为云社区《内网Docker启动Stable-Diffusion(AI作画)》,作者:tsjsdbd 。

最近看到K8s启动stable-diffusion的文章,想着在自己开发环境复现一下。没想到在内网环境还遇到这么多问题,记录一下。

1. 背景介绍

“AI作画”就是你给一段文字,AI自动生成图像;或者你给一张图像,AI自动生成另一种风格(比如自拍照=>漫画风)。这个方向的AI框架以开源的stable-diffusion为代表,著名的Midjourney则是商业版的“AI作画”。

2. 环境准备

由于“AI作画”一般是GPU为主,虽然CPU也可以,但是速度相较GPU会慢很多(见下图)。所以这里我们准备一个带GPU的Docker环境。

3. 下载镜像

根据文章里面提到的gpu版镜像地址(注:它这个镜像其实来自于开源社区:stable-diffusion-webui),直接:

docker pull zibai-registry.cn-hangzhou.cr.aliyuncs.com/gpt/stable-diffusion:v1.gpu

这里要连外网+非官方仓库,所以有2个配置需要为docker设置

  • 为docker设置代理。
vi /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTPS_PROXY=http://ip:3128"

类似这样,然后重启docker

  • 将目标仓库地址设置为docker的信任仓库。
vi /etc/docker/daemon.json
"insecure-registries": ["zibai-registry.cn-hangzhou.cr.aliyuncs.com"],

类似这样。

4. 启动Docker容器

由于需要打开Web页面,所以我们的docker需要设置端口映射,否则无法通过浏览器访问。

所以docker启动会带2个额外的参数:(1)挂载GPU卡。(2)设置端口映射

docker run -it -p 80:7860 --gpus "device=1" zibai-registry.cn-hangzhou.cr.aliyuncs.com/gpt/stable-diffusion:v1.gpu /bin/bash

5. 启动Stable-diffusion程序

在Docker容器中,按照启动命令执行:

python3 launch.py --listen

但是会报错:

这是因为这个镜像会联网下载“模型”。而我的容器无法联网。所以这里在容器里面设置代理:

export proxy=http://10.155.96.xx:3128
export http_proxy=$proxy
export https_proxy=${http_proxy}

类似这样。但是还是下载失败,报“证书不合法”

关于这个 “huggingface.co”证书不合法的问题。找了一圈解决方案,都无效。

比如,导出证书,

然后拷贝到容器中,更新证书列表(2个证书都拷贝了,1个huggingface.co, 1个Huawei Web Secure):

update-ca-certificates

依然报证书不合法。

即使,我直接访问 huggingface.co 是OK的

也搜了类似的问题:https://github.com/huggingface/hub-docs/issues/54,但是仍然不行。

Ps:这里证书问题不知道怎么解,有思路的同学,给点建议。

6. 修改代码,忽略证书校验

实在没办法,搜到的资料说可以在Python请求HTTP的函数里面关闭“证书校验”。

于是找到错误调用栈

这个request发送的函数,有个“忽略证书校验”的参数。

cat /stable-diffusion-webui/venv/lib/python3.8/site-packages/huggingface_hub/utils/_http.py

(ps:容器里面没有vi命令,所以我是在主机上改的。因为任意容器里面的文件,都可以在主机Host上看到)

于是我将其改为:

response = requests.request(method=method, url=url, **kwargs)

=》

response = requests.request(method=method, url=url, verify=False, **kwargs)

然后终于,可以顺利下载“模型”了

模型下载完后,依然报了个错:

什么? localhost 不能访问,怎么可能~ 搜到一个类似的问题:https://github.com/microsoft/TaskMatrix/issues/250

说是代理原因,导致访问本地失败。

于是加上:

export no_proxy="localhost, 127.0.0.1, ::1"

报错,看来 ipv6 这个格式不认识。

最终改为:

export no_proxy="localhost, 127.0.0.1"

一切OK。

7. 打开Stable-diffusion的WEB界面

浏览器输入开发机的地址,即可打开Web界面(因为我们设置了 80 端口映射)。

试了下效果,一般般,可能是我魔法咒语(Prompt)念的不太行。

(ps:有个“咒语”参考网站:https://civitai.com 从这里面下载的模型,生成效果不错)。

下载后,拷贝至对应目录:

docker cp ./majicmixRealistic_v4.safetensors 容器id:/stable-diffusion-webui/models/Stable-diffusion/

然后Web界面选择新下载的模型就行:

仅供参考~

参考:

《基于容器平台 ACK 快速搭建 Stable Diffusion》

其中Docker镜像对应dockerfile(万一镜像无法下载):

FROM nvidia/cuda:11.3.0-cudnn8-runtime-ubuntu20.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
    libgl1 libglib2.0-0 git wget python3 python3-venv && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

ADD . /stable-diffusion-webui
WORKDIR /stable-diffusion-webui/
RUN ./webui.sh -f can_run_as_root --exit --skip-torch-cuda-test

ENV VIRTUAL_ENV=/stable-diffusion-webui/venv
ENV PATH="$VIRTUAL_ENV/bin:$PATH"

VOLUME /stable-diffusion-webui/models
VOLUME /root/.cache

CMD ["python3", "launch.py", "--listen"]

 

点击关注,第一时间了解华为云新鲜技术~文章来源地址https://www.toymoban.com/news/detail-446206.html

到了这里,关于记录内网Docker启动Stable-Diffusion遇到的几个坑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用docker部署stable-diffusion

    wsl2 ubuntu20.04 docker python3.10 git 设置软件包存储库和 GPG 密钥 更新包列表后安装nvidia-container-toolkit包 配置Docker运行时环境 或者在配置文件 /etc/docker/daemon.json 中添加以下设置(docker-desktop在设置中修改) 对于wls2+docker,只需要更改下图位置的配置即可 运行一个基本的CUDA容器验证

    2024年02月14日
    浏览(60)
  • 记录本地部署Stable-diffusion所依赖的repositories和一些插件

    今天按照其他文章的步骤拉取好了 https://github.com/AUTOMATIC1111/stable-diffusion-webui 后,点击webui-user.bat后发现,repositories和models还得慢慢拉取,好吧,GitHub Desktop,启动! 这个花了挺长时间才找到: 基本上拉完上面的,就具备启动webui-user.bat的基本条件了。 超强辅助: 汉化

    2024年02月05日
    浏览(54)
  • CentOS7上部署langchain-chatglm或stable-diffusion可能遇到的Bug的解决方案

    进入你的代码目录下 下载依赖 这里可能有的朋友会有问题会出现某些包下载不了,这里建议直接使用阿里源即可,在确定你的cuda版本之后(使用nvidia-smi确定cuda版本) 命令行执行 卸载掉刚才pip安装的版本!!!!因为此处安装的版本还缺少cuda的支持,确定卸载掉之后 执行 此处X为

    2024年02月16日
    浏览(38)
  • 记录我在stable diffusion中遇到的坑

    纯python新人,跟着教程走,主要参考的是知乎的这篇:https://zhuanlan.zhihu.com/p/626006585,但是在安装gfpgan的时候,还是遇到了这个bug,报错如下: 试过以下几种方法都没能解决: 回退版本 https改http 科学上网 使用国内代理 手动安装,我的stable diffusion 放在d盘,所以我的安装命

    2024年02月12日
    浏览(28)
  • stable-diffusion 一键启动提示—No Python at ‘C:\Program Files\Python310\python.exe

    [已退出进程,代码为 103 (0x00000067)] 提示:检测到 SD-WebUI 进程退出状态不正常,建议前往疑难解答页面扫描错误记录或寻求其他帮助。 这是python系统环境变量中的 Python 路径问题。但是如果重新添加了正确的路径,会发现问题依然存在,其主要原因是与 Python 虚拟环境有关。

    2024年02月16日
    浏览(37)
  • 【人工智能·Stable-Diffusion】如何体验到 Stable-Diffusion

    带大家快速体验到AI图片生成 Stable-Diffusion,包含 win本地部署 参考和 云GPU服务器体验 。 Stable Diffusion 是一种通过文字描述创造出图像的 AI 模型. 它是一个开源软件, 使得新手可以在线尝试。 Stable Diffusion 的算法需要计算机有较强的算力,默认是需要配置有英伟达的独立显卡的

    2024年02月11日
    浏览(59)
  • win11下部署stable diffusion docker版遇到的问题和解决方案

    为了在本地愉快流畅地体验stable diffsion,且不希望直接在windows中安装过多复杂的环境,顺便体验容器的部署和发布的便利,决定选择stable diffusion的docker版(AbdBarho版)。 网上已经有很多stable diffusion的部署文章,有很多甚至是零基础或者一键安装的,但自己尝试之后才发现还

    2024年02月07日
    浏览(55)
  • stable-diffusion.cpp 一个文件解决stable diffusion所有环境,不需要python,stable-diffusion.dll动态库C#调用Demo

    stable-diffusion.cpp 一个文件解决stable-diffusion所有环境,不需要python,stable-diffusion.dll动态库C#调用Demo 目录 介绍 效果 Text To Image Image To Image Upscale 项目 代码 Native.cs SDHelper.cs MainForm.cs 下载  stable-diffusion.cpp 地址:https://github.com/leejet/stable-diffusion.cpp StableDiffusionSharp 地址:https://

    2024年04月14日
    浏览(45)
  • stable-diffusion画图

    1、在python官网 下载python3 安装 2、安装 CUDA 在安装 CUDA 之前查看nvidia版本 我的版本是11.6就在nvidia官网下载对应版本 3、在github中下载stable-diffusion-webui webui-user.bat以普通非管理员用户身份从运行 直到出现下面地址就代表运行成功 4、在浏览器输入127.0.0.1:7860生成图像 可以在h

    2024年02月11日
    浏览(43)
  • 安装stable-diffusion

    下载stable-diffusion源码 安装python 添加host 打开C:WindowsSystem32driversetchost 添加 修改launch.py 运行stable-diffusion-webui-1.2.1目录下webui-user.bat 安装时长较长,耐心等待 安装成功日志,主要是出现了地址“http://127.0.0.1:7860” 打开chrome,输入http://127.0.0.1:7860 python版本要为3.10.6版本,不

    2024年02月09日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包