通过Auto平台与VScode搭建远程开发环境(以Stable Diffusion Web UI为例)

news2025/5/26 5:21:31

文章目录

  • Stable Diffusion Web UI
  • 一、🎯主要功能概述
  • 二、🧠支持的主要模型体系
  • 三、📦安装方式简述
    • ✅ 一、前提准备
    • ✅ 二、安装步骤
      • 混乱版本(仅用于记录测试过程)
        • 第一步:克隆仓库(使用清华大学镜像站或其他加速代理服务进行克隆)
        • 第二步:安装依赖(建议使用Miniconda或系统Python)
        • 第三步:下载模型(以SD1.5为例)
        • 第四步:启动WebUI服务
        • 第五步:切换到非root用户
        • 第六步:将项目目录从root复制给普通用户
        • 第七步:在非root用户下,安装python3环境
        • 第八步:环境配置
      • 最终版本(经过混乱的测试后总结得到)
        • (1)切换到非root用户
        • (2)虚拟环境配置
        • (3)克隆仓库 + WebUI 依赖
        • (4)下载模型
        • (5)启动
        • (6)OSError: Can't load tokenizer for 'openai/clip-vit-large-patch14'.

White-box-Cartoonization
stable-diffusion-webui
轻松复现一张AI图片(系列教程-推荐)
逼真的图片生产 | Stable Diffusion WebUI本地部署看这一篇就够了

Stable Diffusion Web UI

Stable Diffusion Web UI 是一个基于 Stable Diffusion 模型的图形化用户界面,通常指的是由AUTOMATIC1111开发的 WebUI项目,它极大地降低了使用Diffusion模型生成图像的门槛,具备丰富的功能和插件扩展能力,是当前AI绘图领域最受欢迎的前端之一。

一、🎯主要功能概述

功能模块简要说明
文生图(txt2img)根据文本提示词生成图像。支持prompt/negative prompt、采样步数、CFG等参数设置。
图生图(img2img)基于原始图像和文本提示对图像进行重绘或风格化,可控制变化程度。
Inpainting(图像修复)对图像中被掩盖的区域进行AI修复,支持面部修复、背景修复、去物等任务。
Outpainting(图像扩展)将图像边界向外扩展,同时保持风格一致性。
ControlNet支持提供边缘图、姿态图、深度图等精确控制条件生成图像。适用于姿态迁移、线稿上色、草图重建等。
图像批处理支持txt2img/img2img批量生成图像。
Prompt生成工具提供prompt拼接、语义权重、关键词替代等高级提示词编辑功能。
插件系统(Extensions)提供无限插件扩展能力,如LoRA训练、图像浏览器、样式库等。

二、🧠支持的主要模型体系

  1. Stable Diffusion系列基础模型
模型名称简要说明
StableDiffusion v1.4 / v1.5最经典的1.x系列模型,分辨率512×512,适合风格创作与普通生成。
StableDiffusion v2.1使用OpenCLIP训练,支持768×768,更适合真实感风格。
StableDiffusion XL (SDXL)目前最新的大型扩散模型,分辨率1024×1024,文本理解更强、图像更精细。
SDXL Turbo快速生成模型,优化速度性能,适用于交互式应用。
  1. 风格化与专业模型(通过checkpoint导入)
  • 动漫类:Anythingv4, AOM3, Counterfeit
  • 现实人像类:RealisticVision, Deliberate, DreamShaper
  • 手绘/插画类:MajicMix, MeinaMix
  • AI插画特化:ReVAnimated, PerfectWorld
  • 用户可通过WebUI界面轻松导入.ckpt/.safetensors格式模型
  1. 轻量模型(LoRA)
  • 可加载多个LoRA进行组合创作
  • 实现局部风格迁移、角色定制等
  • 常用于风格细调、训练定制人物风格等任务
  1. ControlNet模型
  • edge detection, depth, pose, scribble, canny等
  • 支持多模态控制输入,实现高精度图像控制生成

三、📦安装方式简述

下面是通过AutoDL平台与VSCode远程开发环境,成功安装并运行Stable Diffusion Web UI(AUTOMATIC1111)的完整流程。该流程适用于无需图形界面但希望通过Web访问、远程控制模型与样式生成的智能体、研究或创作工作场景。

✅ 一、前提准备

  1. AutoDL 环境(以root身份或普通用户均可)
    确保:
    使用的AutoDL镜像支持GPU(NVIDIA驱动+CUDA)
    网络畅通,建议使用Ubuntu 20.04/22.04
    启用远程开发:AutoDL控制台→远程开发→复制VSCode链接
    使用SSH连接后即可进行下一步

  2. VSCode 设置(如已连接AutoDL服务器可跳过)
    安装插件:
    Remote - SSH(远程连接)
    Python(用于代码高亮和解释器管理)

✅ 二、安装步骤

混乱版本(仅用于记录测试过程)

第一步:克隆仓库(使用清华大学镜像站或其他加速代理服务进行克隆)
# git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
git clone https://gitclone.com/github.com/AUTOMATIC1111/stable-diffusion-webui.git

cd stable-diffusion-webui
第二步:安装依赖(建议使用Miniconda或系统Python)
# 检查当前是否已安装Python3
python3 --version

# 如果没有,可以先更新索引再安装
apt update
apt install -y python3 python3-venv python3-pip git wget libgl1 libglib2.0-0
第三步:下载模型(以SD1.5为例)
# 模型文件需要放在 models/Stable-diffusion/ 目录中:
mkdir -p models/Stable-diffusion
wget -O models/Stable-diffusion/model.safetensors # https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.safetensors

若出现网络问题:443端口连接超时。也可以先下载后再手动上传*.ckpt或*.safetensors模型到该目录。
下载地址:https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.safetensors

第四步:启动WebUI服务
# 启动(默认监听7860端口)
bash webui.sh

webui.sh脚本检测到当前是以root用户身份运行,并自动中止执行。

root@autodl-container-4f654a8570-16b75b52:~/stable-diffusion-webui# bash webui.sh

################################################################
Install script for stable-diffusion + Web UI
Tested on Debian 11 (Bullseye), Fedora 34+ and openSUSE Leap 15.4 or newer.
################################################################

################################################################
ERROR: This script must not be launched as root, aborting...
################################################################

❗为什么不能以root身份运行?

  • 官方在脚本中明确禁止以root身份运行,理由包括:
  • 避免污染系统Python环境
  • 避免破坏权限隔离
  • 避免潜在的pip模块冲突或虚拟环境失败
  • 安全原则:大部分Web应用设计上都应使用普通权限运行
第五步:切换到非root用户

✅ 正确运行方式
必须切换为非root用户来执行webui.sh,否则安装过程(例如虚拟环境创建、依赖下载)会直接被中断。

✅ 方法一:使用已有普通用户(推荐)
如果系统中已有普通用户(如user1),执行以下命令切换:

su - user1
cd ~/stable-diffusion-webui
bash webui.sh

✅ 方法二:创建新用户(如尚未创建)
如果没有普通用户,请按以下方式创建一个非root用户:

# 添加用户(例如叫sduser)
adduser sduser
# 密码:123456

# 将其加入sudo组(可选)
usermod -aG sudo sduser

# 切换用户
su - sduser

# 回到项目路径(需先确保文件目录权限正确)
cd ~/stable-diffusion-webui
bash webui.sh
第六步:将项目目录从root复制给普通用户

目前的问题是:你已经成功切换到了非root用户sduser,但此用户的home目录中并没有stable-diffusion-webui项目目录。原因是这个项目是在root账户下通过git clone或wget等方式下载的,普通用户是无法直接访问root的home目录的。

✅ 解决方案:

# 1. 回到root:此命令会让你从sduser用户返回root用户。
exit

# 2. 将项目目录复制到普通用户目录并更改所有权:假设你原来的项目在/root/stable-diffusion-webui
cp -r /root/stable-diffusion-webui /home/sduser/
chown -R sduser:sduser /home/sduser/stable-diffusion-webui

# 3. 切换回sduser并执行脚本
su - sduser
cd ~/stable-diffusion-webui
bash webui.sh
################################################################
Install script for stable-diffusion + Web UI
Tested on Debian 11 (Bullseye), Fedora 34+ and openSUSE Leap 15.4 or newer.
################################################################

################################################################
Running on sduser user
################################################################

################################################################
Repo already cloned, using it as install directory
################################################################

################################################################
ERROR: python3 is not installed, aborting...
################################################################
第七步:在非root用户下,安装python3环境

ERROR: python3 is not installed, aborting…说明容器中没有安装python3环境,而且你当前是非root用户(sduser),没有sudo权限。此问题在autoDL环境中较常见,解决方案如下:

✅ 解决方案:非root用户手动安装Python3和pip
步骤1:下载并编译安装Python 3.10+

# 创建目录
mkdir -p ~/tools && cd ~/tools

# 下载Python源码(使用Python 3.10.6)
wget https://www.python.org/ftp/python/3.10.6/Python-3.10.6.tgz

# 解压
tar -xzf Python-3.10.6.tgz && cd Python-3.10.6

# 配置安装路径到当前用户home目录
./configure --prefix=$HOME/.local/python3.10 --enable-optimizations

# 编译并安装(可能需要几分钟)
make -j4 && make install

步骤2:添加Python路径到环境变量

# 写入.bashrc环境变量
echo 'export PATH=$HOME/.local/python3.10/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

步骤3:确认安装成功

python3 --version
# 应输出 Python 3.10.13

which python3
# 应输出 /home/sduser/.local/python3.10/bin/python3

步骤4:重新执行启动脚本

cd ~/stable-diffusion-webui
bash webui.sh
# 开始安装(虽然安装了半天还是显示没有Torch)

pip3.10 uninstall torch torchvision torchaudio
pip3.10 install torch torchvision torcha
udio --index-url https://download.pytorch.org/whl/cu121
# ⚠️ 注意此处使用的是pip3.10,而不是pip。

RuntimeError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check
# bash webui.sh --skip-torch-cuda-test

ModuleNotFoundError: No module named ‘_ctypes’

第八步:环境配置

由于容器限制,非 root 用户无法通过 apt 安装系统依赖,而当前自编译的 Python 环境缺少 _ctypes,导致 PyTorch 无法导入。最简洁可靠的办法是使用 Miniconda,在用户目录下自带完整 Python 标准库及二进制依赖,无需依赖系统包,也能直接安装 GPU 版 PyTorch。

  1. 一键在用户目录安装 Miniconda
# 1. 下载 Miniconda 安装脚本
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh

# 2. 运行安装脚本(安装到 ~/miniconda3 目录)
bash ~/miniconda.sh -b -p ~/miniconda3

# 3. 激活 conda 环境
eval "$(/home/sduser/miniconda3/bin/conda shell.bash hook)"
conda activate base
  1. 创建专属环境并安装 PyTorch + WebUI 依赖
# 1. 新建环境(Python3.10)
conda create -n sdwebui python=3.10.6 -y
conda activate sdwebui

# 2. 安装 GPU 版 PyTorch(CUDA11.8 兼容)
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia -y

# 3. 安装其余依赖
# 切回项目目录
cd ~/stable-diffusion-webui
pip install -r requirements.txt

说明:
pytorch-cuda=11.8 与容器驱动 CUDA12.4 向下兼容良好;
Miniconda 自带 _ctypes,可避免手动编译系统依赖;
requirements.txt 包含 WebUI 除 PyTorch 之外的所有 Python 依赖。

  1. 启动 Stable Diffusion Web UI

确保已激活环境 sdwebui,然后:

# 使用 conda 环境中的 python 启动
python launch.py
# 或
bash webui.sh

最终版本(经过混乱的测试后总结得到)

(1)切换到非root用户

如果没有普通用户,请按以下方式创建一个非root用户:

# 添加用户(例如叫sduser)
adduser sduser
# 密码:123456

# 将其加入sudo组(可选)
usermod -aG sudo sduser

# 切换用户
su - sduser
(2)虚拟环境配置
  1. 一键在用户目录安装 Miniconda
# 1. 下载 Miniconda 安装脚本
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh

# 2. 运行安装脚本(安装到 ~/miniconda3 目录)
bash ~/miniconda.sh -b -p ~/miniconda3

# 3. 激活 conda 环境
eval "$(/home/sduser/miniconda3/bin/conda shell.bash hook)"
conda activate base
  1. 创建专属环境并安装 PyTorch
# 1. 新建环境(Python3.10)
conda create -n sdwebui python=3.10.6 -y
conda activate sdwebui

# 2. 安装 GPU 版 PyTorch(CUDA11.8 兼容)
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia -y
(3)克隆仓库 + WebUI 依赖

当前环境中需验证torch是否安装成功且可正常使用GPU。请在已激活的conda环境(如sdwebui)中运行以下命令测试PyTorch状态:

python3 -c "import torch; print('torch:', torch.__version__); print('CUDA可用:', torch.cuda.is_available()); print('CUDA版本:', torch.version.cuda); print('设备名称:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else '无GPU')"

torch: 2.5.1                                                                                                  
CUDA可用: True                                                                                                
CUDA版本: 11.8                                                                                                
设备名称: NVIDIA GeForce RTX 4090   
# 克隆仓库(使用清华大学镜像站或其他加速代理服务进行克隆)
# git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
git clone https://gitclone.com/github.com/AUTOMATIC1111/stable-diffusion-webui.git
# 3. 安装其余依赖
# 切回项目目录
cd ~/stable-diffusion-webui
pip install -r requirements.txt
(4)下载模型

JupyterLab默认工作目录是/root,而非root用户目录(如/home/sduser)未在文件浏览器中默认展开。以下是精准操作方法,帮助在JupyterLab中显示并进入/home/sduser目录:
✅ 步骤:在JupyterLab中访问/home/sduser
方法一:终端+软链接显示法(推荐)
打开JupyterLab的终端(Terminal)
输入以下命令,在当前根目录创建一个指向/home/sduser的快捷方式:

ln -s /home/sduser ~/sduser

然后在JupyterLab的文件浏览器中点击刷新(右上角 ↻ 图标),即可看到一个新文件夹叫:

sduser/

进入sduser/stable-diffusion-webui/models/Stable-diffusion/即可上传文件。
在这里插入图片描述
备注:100M宽带,上传7.17GB,约耗时1.5h。(若在vscode中通过命令行自动下载:速度更慢;下载可能中断)

(5)启动
python launch.py

在这里插入图片描述

(6)OSError: Can’t load tokenizer for ‘openai/clip-vit-large-patch14’.

✅ 解决方案(针对AutoDL环境)
🔧 方法一:联网安装缺失的模型文件
AutoDL容器在启动时有时网络权限不完整,可能无法直接访问 HuggingFace。可通过以下命令手动下载并缓存所需资源:

  1. 手动下载openai/clip-vit-large-patch14文件
    在本地执行:
git lfs install
git clone https://huggingface.co/openai/clip-vit-large-patch14

或通过Python手动下载缓存:

from transformers import CLIPTokenizer
CLIPTokenizer.from_pretrained("openai/clip-vit-large-patch14")

会自动缓存到~/.cache/huggingface目录。
然后将该目录上传到AutoDL容器中的 /home/sduser/.cache/huggingface 路径下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2385860.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity 打包程序全屏置顶无边框

该模块功能: 1. 打包无边框 2. 置顶 3. 不允许切屏 4.多显示器状态下,程序只在主显示上运行 5.全屏 Unity 打包设置: 如果更改打包设置,最好将Version版本增加一下,否则可能不会覆盖前配置文件 代码: 挂在场景中即可 using UnityEngine; using System; // 确保这行存…

GAMES104 Piccolo引擎搭建配置

操作系统:windows11 家庭版 inter 17 12 th 显卡:amd 运行内存:>12 1、如何构建? 在github下载:网址如下 https://github.com/BoomingTech/Piccolo 下载后安装 git、vs2022 Git Visual Studio 2022 IDE - …

用service 和 SCAN实现sqlplus/jdbc连接Oracle 11g RAC时负载均衡

说明 11.2推出的SCAN ,简化了客户端连接(当增加或者减少RAC实例时,不需要修改客户端配置,并且scan listener有各个实例的负载情况,可以实现连接时负载均衡。 不过客户端需要使用专门建立的service,而不能用RAC数据库…

防火墙流量管理

带宽管理介绍 针对企业用户流量,防火墙提供了带宽管理功能,基于出/入接口、源/目的安全区域、源/目的地址、时间段、报文DSCP优先级等信息,对通过自身的流量进行管理和控制。 带宽管理提供带宽限制、带宽保证和连接数限制功能,可…

Linux系统移植①:uboot概念

Linux系统移植①:uboot概念 uboot概念 1、uboot是一个比较复杂的裸机程序。 2、uboot就是一个bootloader,作用就是用原于启动Linux或其他系统。uboot最主要的工作就是初始化DDR。因为Linux是运行再DDR里面的。一般Linux镜像zImage(uImage)设…

DAY 35

import torch import torch.nn as nn import torch.optim as optim from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler import time import matplotlib.pyplot as plt# 设置GPU设…

AWS EC2实例安全远程访问最佳实践

EC2 远程连接方案对比 远程访问 Amazon EC2 实例主要有以下四种方式: Secure Shell (SSH) 远程访问AWS Systems Manager 会话管理器适用于 Linux 实例的 EC2 Serial ConsoleAmazon EC2 Instance Connect SSH 远程访问 SSH(Secure Shell)广…

【强化学习】#7 基于表格型方法的规划和学习

主要参考学习资料:《强化学习(第2版)》[加]Richard S.Suttion [美]Andrew G.Barto 著 文章源文件:https://github.com/INKEM/Knowledge_Base 本章更是厘清概念厘到头秃,如有表达不恰当之处还请多多指教—— 概述 环境…

EasyRTC嵌入式音视频通信SDK一对一音视频通信,打造远程办公/医疗/教育等场景解决方案

一、方案概述​ 数字技术发展促使在线教育、远程医疗等行业对一对一实时音视频通信需求激增。传统方式存在低延迟、高画质及多场景适配不足等问题,而EasyRTC凭借音视频处理、高效信令交互与智能网络适配技术,打造稳定低延迟通信,满足基础通信…

网络安全-等级保护(等保) 3-2-1 GB/T 28449-2019 第6章 方案编制活动

################################################################################ GB/T 28449-2019《信息安全技术 网络安全等级保护测评过程指南》是规定了等级测评过程,是纵向的流程,包括:四个基本测评活动:测评准备活动、方案编制活…

【免费使用】剪Y专业版 8.1/CapCut 视频编辑处理,素材和滤镜

—————【下 载 地 址】——————— 【​本章下载一】:https://pan.xunlei.com/s/VOQxk38EUe3_8Et86ZCH84JsA1?pwdkp7h# 【​本章下载二】:https://pan.quark.cn/s/388008091ab4 【​本章下载三】:https://drive.uc.cn/s/d5ae5c725637…

实现rpc通信机制(待定)

一、概述 (1)rpc(remote procedure call, 远程接口调用),就像在本地调用函数一样,是应用组成服务内部分布式的基础功能。应用场景是在内网中的计算,比如:(a) 为上传的一张图片加水印、&#xf…

代码随想录打卡|Day45 图论(孤岛的总面积 、沉没孤岛、水流问题、建造最大岛屿)

图论part03 孤岛的总面积 代码随想录链接 题目链接 视频讲解链接 思路:既然某个网格在边界上的岛屿不是孤岛,那么就把非 孤岛的所有岛屿变成海洋,最后再次统计还剩余的岛屿占据的网格总数即可。 dfs: import java.util.Scanner…

SpringCloud实战:使用Sentinel构建可靠的微服务熔断机制

上篇文章简单介绍了SpringCloud系列Gateway的基本用法以及Demo搭建,今天继续讲解下SpringCloud Gateway实战指南!在分享之前继续回顾下本次SpringCloud的专题要讲的内容: 本教程demo源码已放入附件内 技术准备 读者须知: 本教程…

张 Prompt Tuning--中文数据准确率提升:理性与冲动识别新突破

Prompt Tuning–中文数据准确率提升:理性与冲动识别新突破 中文数据,准确率 数据标签三类:冲动21,理性21,(中性设为理性40:说明prompt 修正的有效性) 测试数据:冲动4,理性4,中性设为理性10 为了可视化做了 词嵌入 空间的相似文本计算,但是实际当loss 比较小的时…

深入解析 MySQL 中的 SHOW_ROUTINE 权限

目录 前言 权限作用 授权方法 MySQL8.0.20以上 MySQL8.0.20以下 总结 前言 SHOW_ROUTINE 是 MySQL 中用于控制用户查看存储过程和函数定义的权限。拥有该权限的用户可以通过 SHOW CREATE PROCEDURE 和 SHOW CREATE FUNCTION 等语句查看存储过程和函数的详细定义&#xff…

电脑网络如何改ip地址?ip地址改不了怎么回事

在日常使用电脑上网时,我们有时会遇到需要更改IP地址的情况,比如访问某些受限制的网站、解决网络冲突问题,或者出于隐私保护的需求。然而,许多用户在尝试修改IP地址时可能会遇到各种问题,例如IP地址无法更改、修改后无…

打开小程序提示请求失败(小程序页面空白)

1、小程序代码是商城后台下载的还是自己编译的 (1)要是商城后台下载的,检查设置里面的域名是不是https的 (2)要是自己编译的,检查app.js里面的接口域名是不是https的,填了以后有没有保存 注&a…

一张纸决定的高度

从我捧起《格局》这个本书开始,转眼间两个月过去了。 回头望一望,好似还在昨天。 这两个月,心态在变,前进的方向在变,但唯一不变的就是每天晚上睡前,留给自己十分钟的读书时光。 我也从来没想过&#xf…

IP查询基础介绍

IP 查询原理 IP 地址是网络设备唯一标识,IP 查询通过解析 IP 地址获取地理位置、运营商等信息。目前主流的 IPv4(32 位)与 IPv6(128 位)协议,前者理论提供约 43 亿地址,后者地址空间近乎无限。…