如何自己搭建一个ai画图系统? 从0开始云服务器部署novelai
如何自己搭建一个ai画图系统? 从0开始云服务器部署novelai

上面两张图都是通过ai生成的,是不是有以假乱真的感觉。
本教程提供的是自己搭建一个可以外网访问的ai系统的方法,需要采购gpu服务器(后续会出白嫖的方式),并且能够通过外网访问,全程跟着教程走很快就能完成。
服务器的选购
因为我们的ai绘图系统是基于开源项目 stable-diffusion-webui ,因此我们需要采购拥有gpu的服务器,不过一般gpu服务器偏贵,因此可以去不同的云服务产商看看有没有优惠,以下给出两个推荐,现在腾讯云有45块钱15天的优惠,推荐腾讯云。
阿里云
-
阿里云网址: https://www.aliyun.com/
-
推荐选择 按量付费 (可以在不用的时候关掉服务器节约钱) , 对于只是想自己搭建着玩玩的按量付费最划算,不然价格。然后服务器要选择完整带有一颗GPU的,后续驱动安装才能成功。
-
也可以选择抢占式,因为便宜,不过记得随时备份数据


- 一定要选安装gpu驱动,后续会简化很多步骤

- 接下来只要点提交订单(阿里云需要100元的余额才能提交订单),等服务器创建成功就ok了
- 服务器创建成功后,进入 控制台 找到自己刚才创建的服务器进入

- 服务器首次使用记得 重置密码,重置后远程连接进入控制台

腾讯云
- https://cloud.tencent.com/act/free/personal?from=17591 进入网页,选择计算,新用户免费体验七天

-
不过我不是新用户了,因此选择购买 网址: https://buy.cloud.tencent.com/cvm?tab=custom&step=1&devPayMode=monthly®ionId=1&zoneId=100003&teQmplateCreateMode=createLt。
-
记得选择GPU机型 ,如果资金不足推荐选择竞价实例(就是有可能会被自动释放,但是推荐购买,因为配置高还便宜,但是腾讯云竞价实例不能关机后不收费,而阿里云可以关机后不收费)
-

-

-
如果是按量计费(有关机不收费功能)选第8.68那款就好了,如果是竞价实例就看自己需求,至少要有单独的一张卡,别到后面因为配置原因跑不了图
-

-
依旧选择自动安装gpu驱动(会节约很多时间),如果想体验手动安装的感觉可以参照 : https://cloud.tencent.com/developer/article/2073793
-

-
选择新建安全组,全部勾上,并且在下面设置密码,然后勾选协议开通就好了 (需要有一定余额,十来块二十块钱就OK了)
-

-
进入自己的实例然后登录就OK了
-

安装对应环境以及配置
- 登录服务器

-

-
执行以下命令
# 到根目录下的home目录下
cd /home
# 安装git
sudo apt install git
# 克隆对应的项目
git config --global --get http.proxy
git config --global --get https.proxy
# 如果clone 时卡住不动可以 ctrl + c 退出再重新输入命令
sudo git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
# 进入项目的目录
cd stable-diffusion-webui
# 安装对应依赖,使用阿里的镜像源,可能安装时间比较久,如果报错重新输入下面命令一遍就好
sudo pip install -r requirements_versions.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

- 配置nginx外网访问,安装nginx
# 输入以下命令会要你选择Y/N 输入Y回车就好
sudo apt install nginx
- 修改配置文件 先删除 ,然后创建一个 将以下内容复制
sudo rm /etc/nginx/nginx.conf
sudo vim /etc/nginx/nginx.conf
## 按下 i ,进入编辑模式
## 复制以下内容
worker_processes 1;events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 80;server_name localhost;location / {proxy_pass http://127.0.0.1:6006/;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}
}
-
然后按ecs + : + eq 退出vim模式并保存
-
启动nginx 执行命令 : sudo service nginx start -c /etc/nginx/nginx.conf
-
依赖安装完成后运行webui(首次输入运行命令可能需要安装很多依赖以及包,需要一些时间,报错后重新运行即可,或者参考后面可能遇到的错误) ,出现 Running on local URL ***** 就是启动完成了
sudo python launch.py --listen --port 6006

- 然后在你的网页输入你的ip地址

载入模型
不同的模型所生成的效果是不一样的
-
模型放置位置 /home/stable-diffusion-webui/models/Stable-diffusion
-
模型网站 https://civitai.com/ (可能需要魔法才能进入,因此我在公众号 杂货猿 提供了对应的安装包,回复 ai绘画模型 即可获得)

具体操作
- 先执行以下命令
# 给目录用户的权限
sudo chmod 777 /home/stable-diffusion-webui/models/Stable-diffusion
- 上传我给的 safetensors 结尾的文件 到 /home/stable-diffusion-webui/models/Stable-diffusion
- 使用软件XFTP(公众号回复XFTP),因为文件较大,腾讯云自带工具无法上传。打开后主机输入自己的ip地址,用户名 ubuntu 密码就是服务器设置的密码.

- 直接拖拽到对应目录

- 如果上传速度较慢可以尝试 sudo curl -Lo chilloutmix_NiPrunedFp32.safetensors https://civitai.com/api/download/models/11745 后面链接对应civitai 的模型下载地址,这个链接为chilloutmimx的模型

-
Lora 模型 放在models/Lora 文件夹下,lora的添加,点击生成图片下的人形照片按钮,选择lora,选择我们刚才下载的lora ,如下图
- KoreanDolllikeness模型 sudo curl -Lo KoreanDolllikeness.safetensors https://civitai.com/api/download/models/14014
- grapefruit生成动漫人物 sudo curl -Lo grapefruit.safetensors https://civitai.com/api/download/models/9000

-
vae放在 放在models/VAE 文件夹下 ,使用在webui面板的设置中 setting -> Stable Diffusion -> SD VAE 选择我们刚才下载的vae ,然后选择 apply setting
- 下载命令 sudo curl -Lo vae-ft-mse-840000-ema-pruned.safetensors https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors

-
上传后重新运行webui,需要加载一些东西

- 下载完成出现 Running 。。。

- 打开网页,修改右上角的模型,输入关键字生成图片(一定要输英文的关键字)


可能遇到的错误
1. PermissionError: [Errno 13] Permission denied: ‘INSTALLER’
- 命令前没有加 sudo
2.ImportError: cannot import name ‘soft_unicode’ from ‘markupsafe’ (/usr/local/lib/python3.8/dist-packages/markupsafe/init.py)
- 卸载 sudo pip uninstall markupsafe
相关文章:
如何自己搭建一个ai画图系统? 从0开始云服务器部署novelai
如何自己搭建一个ai画图系统? 从0开始云服务器部署novelai 上面两张图都是通过ai生成的,是不是有以假乱真的感觉。 本教程提供的是自己搭建一个可以外网访问的ai系统的方法,需要采购gpu服务器(后续会出白嫖的方式)&…...
SpringSecurity过滤请求导致的系统bug
背景 今天开发一个新的会员管理系统,继承了SpringSecurity的,用以控制权限。结果无论怎么配置,都会报错:An Authentication object was not found in the SecurityContext 这句话的意思很明确:指的就是在SecurityCon…...
css\js\vue知识点
1.css3新特性 css3新特性 1)选择器 2)阴影 3)形状转换(2D <-> 3D) 4)变形 5)动画(过渡动画、帧动画) 6)边框 7)多重背景 8)反…...
在vue项目中使用video.js实现视频播放和视频进度条打点
一、用video.js实现视频播放 1、安装video.js插件 // 安装video.js插件 npm install video.js -S // 如果需要播放rtmp直播流,需安装一下插件 npm install videojs-flash -S 2、在组件代码里使用 <template><div data-vjs-player><video ref&quo…...
【代码训练营】day41 | 01背包问题 416. 分割等和子集
所用代码 java 01背包理论 背包最大重量为:4 重量价值物品0115物品1320物品2430 暴力:O(2^n) 动态规划: 1、二维dp数组 dp[i] [j] dp数组含义:[0, i]物品,任取放进容量为j的背包里的最大价值 递推公式:…...
linux网络编程-多进程实现TCP并发服务器
服务端流程步骤socket函数创建监听套接字lfdbind函数将监听套接字绑定ip和端口listen函数设置服务器为被动监听状态,同时创建一条未完成连接队列(没走完tcp三次握手流程的连接),和一条已完成连接队列(已完成tcp三次握手…...
C语言的学习小结——数组
一、一维数组的创建与初始化 1、格式: type_t arr_name[const_n];//type_t 是指数组的元素类型 //const_n 是一个常量表达式,用来指定数组的大小 注: 数组是使用下标来访问的,下标从0开始。 数组的大小可以通过计算得到&…...
HTB-Photobomb
HTB-Photobomb信息收集开机提权对于问题的思考信息收集 端口扫描 目标首页 有一个http Authorization 目录扫描 在查看源码的时候发现了一个js文件。 并且发现了访问不存在的目录会出现错误提示。 通过搜索得知 Sinatra 是一个基于 Ruby 语言的 DSL(领域…...
【LSTM】2 多因素单步骤预测
基于时间序列的预测,一定要明白它的原理,不是工作原理,而是工程落地原因。 基于时间序列,以已知回归未知----这两句话是分量很重的。 多因素单步单输出组合 时间序列:t1 是 特征 1,2,3 预测t2 的回归值41 多因素单步多…...
ChatGPT从下游应用“火”到了上游芯片厂,国内谁将受益?
因库存陷入低迷周期的半导体市场近日因ChatGPT的火热而重新受到外界关注。 原文链接:ChatGPT从下游应用“火”到了上游芯片厂,国内谁将受益? 由于ChatGPT属于生成式AI,被誉为“AI芯片”第一股的英伟达应声而涨。2月13日收盘&#…...
算法单调栈—Java版
单调栈 概念:维护栈中元素的单调性,单调增或者单调减。 什么时候用? 要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置。单调栈的本质是空间换时间,在遍历的过程中需要用一个栈来记录右边第一个比当前元素高的元…...
在Linux中进行rocketmq及rocketmq控制台安装与配置
rocketmq下载安装的版本:rocketmq-rocketmq-all-5.0.0.tar.gz rocketmq控制台下载安装的版本:rocketmq-externals-rocketmq-console-1.0.0.tar.gz rocketmq安装 第一步,下载server-jre-8u202-linux-x64.tar.gz安装包。 登录网址ÿ…...
2023年全国最新食品安全管理员精选真题及答案4
百分百题库提供食品安全管理员考试试题、食品安全员考试预测题、食品安全管理员考试真题、食品安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 31.国家对食品添加剂生产实行____制度。 A.产品注册 B.产品备案 C.登…...
es-07脚本查询
脚本查询 概念 Scripting是Elasticsearch支持的一种专门用于复杂场景下支持自定义编程的强大的脚本功能,ES支持多种脚本语言,如painless,其语法类似于Java,也有注释、关键字、类型、变量、函数等,其就要相对于其他脚本高出几倍的性…...
JM员工福利与健康平台,企业关怀Always Online
庄信万丰(Johnson Matthey, JM),全球性专用化学品公司,是可持续发展技术的全球领导者。在30多个国家和地区拥有13000多名员工。 JM的价值观之一是保护人类和地球。在生产过程中,JM保持对环境保护和能源清洁的高度关注;在员工福利…...
如何使用U-Mail搭建企业邮件服务器?
在当今的信息时代,企业也应该跟上时代的步伐。做好企业信息化建设,对企业事业单位尤为重要。电子邮件作为企业信息化过程中的重要组成部分,在企业内部沟通和外部沟通中发挥着重要作用。目前,有实力的企业已经开始倾向于自己搭建邮…...
用规则来搭建团队:写周报不一定是坏事
你好,我是Smile,一位有二十年工作经验的技术专家。今天我会结合我的经历,和你聊聊搭建技术团队这个话题。 众所周知,技术团队很大程度上决定了一个公司业务的生命力和生命周期,因此技术团队的投入成本往往很高&#x…...
Apollo使用方法
Apollo使用方法1.Apollo相关原理1.Apollo启动方法1.1 软件包方式1.2 脚本方式2.播放数据包2.1 软件包方式2.2 脚本方式3.试验planning模块4.从官网下载场景集其他工具1.Apollo相关原理 cyber / mainboard / mainboard.cc 是Apollo入口 cyber / mainboard / module_argument.cc…...
科研快讯 | 14篇论文被信号处理领域顶级国际会议ICASSP录用
ICASSP 2023 近日,2023年IEEE声学、语音与信号处理国际会议(2023 IEEE International Conference on Acoustics, Speech, and Signal Processing,ICASSP 2023)发布录用通知,清华大学人机语音交互实验室(TH…...
设计模式—策略(Strategy)模式
一、概述策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化使用策略模式可以把行为和环境分割开来。环境类负责维持和查询行为类,…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
