20240203在Ubuntu20.04.6下配置stable-diffusion-webui.git

20240203在Ubuntu20.04.6下配置stable-diffusion-webui.git
2024/2/3 11:55

【结论:在Ubuntu20.04.6下,生成512x512分辨率的图像,大概需要11秒钟!】
前提条件,可以通过技术手段上外网!^_
首先你要有一张NVIDIA的显卡,比如我用的PDD拼多多的二手GTX1080显卡。【并且极其可能是矿卡!】800¥
2、请正确安装好NVIDIA最新的545版本的驱动程序和CUDA、cuDNN。
2、安装Torch
3、配置whisper


【本文以这个教程为主】
https://www.bilibili.com/read/cv24784581/
Stable Diffusion云服务器部署完整版教程


【这个没有走通】
https://www.toutiao.com/article/7222852915286016544/
从零开始,手把手教本地部署Stable Diffusion AI绘画 V3版 (Win最新)


(二)配置运行环境
利用anaconda是它集成了很多我们需要的安装包,只要安装它一个,python下载、环境配置那些都不用我们再去设置,使用起来比较方便。

1、配置Anaconda
1、下载anaconda【深圳联通下载不了】
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.03-0-Linux-x86_64.sh

若遇到这种不能下载的,前面加上 -U NoSuchBrowser/1.0
wget -U NoSuchBrowser/1.0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.03-0-Linux-x86_64.sh


2.安装anaconda,提示enter按回车,提示yes or no的地方全部输入yes即可。vscode不安装
bash Anaconda3-2023.03-0-Linux-x86_64.sh

【不需要修改】
3.找到.bashrc这个文件并修改,修改文件有两种方式:
①通过vim修改。
#用vim打开.bashrc文件
vim ~/.bashrc
#再按i开始insert,将以下内容添加到文件最后一行
export PATH=$PATH:/home/ubuntu/anaconda3/bin
#按Esc并输入:wq即为保存退出文件再保存退出
:wq
②也可以通过编辑器修改,找到.bashrc文件直接输入内容即算保存


4.如果输入conda,提示找不到命令的话执行下source,(执行一次即可,以后都不用再 source 了,启动 Ubuntu会自动source)
source ~/.bashrc
然后验证下
conda info

至此anaconda已经安装完毕


2、安装pytorch
1.去pytorch官网配置自己服务器所需要的pytorch
pytorch官网
https://pytorch.org/
https://pytorch.org/get-started/locally/

Pytorch build选择stable稳定版,操作系统是linux,由于上面我安装了anaconda所以package选择conda,语言python,我的CUDA是12.0所以选择了CUDA11.8,最后获取comand
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia


2、pytorch需要安装到anaconda的虚拟环境中,所以使用conda时需要先有一个虚拟环境并进入

#若还没有虚拟环境需要创建一个,<env_name>是环境名称,python选择指定的版本,sd需要的python>3.10 #conda create -n <env_name> python=x.xx.x
conda create -n sd python=3.10.11

#启动虚拟环境,activate就是启动,sd是环境名称
conda activate sd

然后再执行pytorch的安装
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

如果出现提示需要升级conda版本的就输入,没有的话就跳过这步。我这里没截到图,会有个wanning的,注意看

conda update -n base -c defaults conda
验证安装结果

#首先要启动我们的sd虚拟环境,因为我们所有与stable diffusion有关的配置环境都是建立在这个虚拟环境之下的python,pytorch等都是如此
#进入虚拟环境
conda activate sd

#进入python环境
python

#导入torch
import torch

#查看torch的版本
torch.__version__  #各有两条下划线

#查看cuda版本
torch.version.cuda

#查看GPU是否运行
torch.cuda.is_available()

#退出
exit()


(三)安装sd-webui
1、启动sd
1.将sd webui clone到服务器上,此处我用了镜像。【下载异常了】
git clone https://github.moeyy.xyz/https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

(sd) rootroot@rootroot-X99-Turbo:~$ 
(sd) rootroot@rootroot-X99-Turbo:~$ git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
Cloning into 'stable-diffusion-webui'...
remote: Enumerating objects: 31156, done.
remote: Counting objects: 100% (159/159), done.
remote: Compressing objects: 100% (100/100), done.
remote: Total 31156 (delta 81), reused 110 (delta 48), pack-reused 30997
Receiving objects: 100% (31156/31156), 33.66 MiB | 7.55 MiB/s, done.
Resolving deltas: 100% (21819/21819), done.
(sd) rootroot@rootroot-X99-Turbo:~$ du -sh stable-diffusion-webui/
39M    stable-diffusion-webui/
(sd) rootroot@rootroot-X99-Turbo:~$ 

(sd) rootroot@rootroot-X99-Turbo:~$ tar zcvf stable-diffusion-webui99.tar.gz stable-diffusion-webui/

【不处理】
2.链接换源。打开stable-diffusion-webui/modules/launch.until.py文件,替换以下内容
torch_command = os.environ.get('TORCH_COMMAND', "pip install torch==2.0.1 torchvision==0.15.2")

【不处理】
3.每个https://github.com/  (就在上一步的下面几行,每一个网址都要改)链接前面添加https://ghproxy.com/,替换为以下内容

gfpgan_package = os.environ.get('GFPGAN_PACKAGE', "https://ghproxy.com/https://github.com/TencentARC/GFPGAN/archive/8d2447a2d918f8eba5a4a01463fd48e45126a379.zip")
clip_package = os.environ.get('CLIP_PACKAGE', "https://ghproxy.com/https://github.com/openai/CLIP/archive/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip")
openclip_package = os.environ.get('OPENCLIP_PACKAGE', "https://ghproxy.com/https://github.com/mlfoundations/open_clip/archive/bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b.zip")
stable_diffusion_repo = os.environ.get('STABLE_DIFFUSION_REPO', "https://ghproxy.com/https://github.com/Stability-AI/stablediffusion.git")
taming_transformers_repo = os.environ.get('TAMING_TRANSFORMERS_REPO', "https://ghproxy.com/https://github.com/CompVis/taming-transformers.git")
k_diffusion_repo = os.environ.get('K_DIFFUSION_REPO', 'https://ghproxy.com/https://github.com/crowsonkb/k-diffusion.git')
codeformer_repo = os.environ.get('CODEFORMER_REPO', 'https://ghproxy.com/https://github.com/sczhou/CodeFormer.git')
blip_repo = os.environ.get('BLIP_REPO', 'https://ghproxy.com/https://github.com/salesforce/BLIP.git')


4.先进入虚拟环境

#启动虚拟环境,因为刚刚上面我们已经创建过虚拟环境了
conda activate sd
5.先定位到的stable-diffusion-webui项目下

cd stable-diffusion-webui
6.第一次启动sd,sd会安装基础的配置,这里等待一段时间,网速慢的个把小时,所需要的内容才会下载完毕。

#以下两者都是启动公网环境,二选一执行即可。
./webui.sh --listen #(推荐)

#或者加--share也可以
./webui.sh --share

#listen与share的区别在于listen启动的地址是0.0.0.0:7860,而share启动后是一个随机的地址。
7.第一次执行会自动下载“v1-5-pruned-emaonly.safetensors”这个模型,如果下载速度还行就耐心等待,如果网络慢的同学,可以先“ctrl+C”断开下载步骤,然后到C站随便下个大模型上传上去。

2、打开webui
后续我们启动stable diffusion时分为3个步骤:

#启动虚拟环境 conda activate sd #定位到sd根目录 cd stable-diffusion-webui #加listen是启动公网环境 ./webui.sh --listen

#启动虚拟环境
conda activate sd

#定位到sd根目录
cd stable-diffusion-webui

#加listen是启动公网环境
./webui.sh --listen
然后等待有出现http:/0.0.0.0:7860就说明已启动成功
。浏览器访问http://x.x.x.x(云主机公网ip):7860,出现stable diffusion内容即为成功。

webui界面

模型下载之后直接放到目录:Z:\stable-diffusion-webui\openai\clip-vit-large-patch14

https://huggingface.co/openai/clip-vit-large-patch14/tree/main
openai/clip-vit-large-patch14

(base) rootroot@rootroot-X99-Turbo:~$ cd stable-diffusion-webui/openai/clip-vit-large-patch14/
(base) rootroot@rootroot-X99-Turbo:~/stable-diffusion-webui/openai/clip-vit-large-patch14$ ll
total 6686128
drwx------ 2 rootroot rootroot       4096 2月   3 11:25 ./
drwxrwxr-x 3 rootroot rootroot       4096 2月   3 11:23 ../
-rwx------ 1 rootroot rootroot       4519 2月   3 11:11 config.json*
-rwx------ 1 rootroot rootroot 1710486359 2月   3 11:17 flax_model.msgpack*
-rwx------ 1 rootroot rootroot       1229 2月   3 11:11 .gitattributes*
-rwx------ 1 rootroot rootroot     524619 2月   3 11:11 merges.txt*
-rwx------ 1 rootroot rootroot 1710540580 2月   3 11:17 model.safetensors*
-rwx------ 1 rootroot rootroot        316 2月   3 11:12 preprocessor_config.json*
-rwx------ 1 rootroot rootroot 1710671599 2月   3 11:17 pytorch_model.bin*
-rwx------ 1 rootroot rootroot       7947 2月   3 11:11 README.md*
-rwx------ 1 rootroot rootroot        389 2月   3 11:12 special_tokens_map.json*
-rwx------ 1 rootroot rootroot 1711114176 2月   3 11:17 tf_model.h5*
-rwx------ 1 rootroot rootroot        905 2月   3 11:13 tokenizer_config.json*
-rwx------ 1 rootroot rootroot    2224003 2月   3 11:12 tokenizer.json*
-rwx------ 1 rootroot rootroot     961143 2月   3 11:13 vocab.json*

(base) rootroot@rootroot-X99-Turbo:~/stable-diffusion-webui/openai/clip-vit-large-patch14$ 
(base) rootroot@rootroot-X99-Turbo:~/stable-diffusion-webui/openai/clip-vit-large-patch14$ 
 


【时间的关系,未完待续!】
(四)小结
虽然webui已经启动,但是我们可以看到页面下边的配置
version:当前webui的版本,我在写这份文档时最新版本就是1.4,当你们看到这份文档的时候注意使用最新版本的。
python:版本是3.10.11,这个版本会比较合适,既能用xformers,刚刚安装又不会报错,我试过3.10.12、3.11这些版本,会出现安装不上,至于原因我没去深入研究,你们想要用最新版本的话就研究下怎么配置。
torch:2.0.1+cu117,sd会用到的神经网络和cuda版本,这里我cuda只有117,但是上面我安装的cuda是11.8。我不知道为什么会降一个版本,有大佬懂得话可以评论区解答下。
xformers:N/A,等会会安装这个,能提升出图速度。
gradio:这个是AI的界面,可以不用管。
checkpoint:这个是大模型,我们还没下载,后面步骤会下载。

二、webui-user.sh文件配置
三、extensions换源
四、CheckPoint的下载
五、LoRA的下载与安装
六、VAE的下载与安装
七、ControlNet的下载与安装
八、Clip skip的配置
九、hypernetworks的下载与安装(选装)
去模型网站上下载hypernetworks的模型,然后上传到sd/models/hypernetworks文件夹中,然后在webui界面点击刷新就可以看到了
十、插件的使用
十一、其他
(一)可下载模型的网站
https://civitai.com/
https://huggingface.co/
https://www.liblibai.com/
https://www.liandange.com/
https://i-desai.com/#/
https://aigccafe.com/
(二)如何让服务器不断开连接
(三)其他
#定位到models中的Stable-diffusion
cd stable-diffusion-webui/models/Stable-diffusion

#用wget命令来下载sd-v1-4模型
wget https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt

#如果出现SSL无法连接,那么加上–-no-check-certificate
wget –-no-check-certificate https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt

#如果文件太大,一次性没办法下载完,可以加上断点续传
wget –-no-check-certificate --continue https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt

十二、总结


百度:PyTorch官网
https://blog.csdn.net/K_Kelly_/article/details/131926980
安装pytorch纯小白教程||重点是要注意版本!
nvidia-smi
https://pytorch.org/
https://pytorch.org/get-started/locally/


https://blog.csdn.net/qq_40641338/article/details/128307575
ubuntu配置cuda环境三:安装PyTorch

https://blog.csdn.net/orinhshdh/article/details/134806663?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-3-134806663-blog-128307575.235%5Ev43%5Epc_blog_bottom_relevance_base1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-3-134806663-blog-128307575.235%5Ev43%5Epc_blog_bottom_relevance_base1&utm_relevant_index=6
https://blog.csdn.net/orinhshdh/article/details/134806663
Ubuntu22.04.3安装pytorch12.1和tensor flow2.15.0


https://blog.csdn.net/UCB001/article/details/130039154
2023-05-06 16:25:18 最详细的Ubuntu服务器搭建Stable-Diffusion教程(无显卡,仅用CPU)

报错gnutls_handshake() failed: The TLS connection was non-properly terminated
解决办法:在执行时使用http而不是https,替换
git clone https://github.com/Stability-AI/stablediffusion.git

为:
git clone http://github.com/Stability-AI/stablediffusion.git

百度:Downloading: "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly
出问题请看这里的解决方法:
https://zhuanlan.zhihu.com/p/666288849
2023-11-11 23:50_Stable Diffusion webui 服务器搭建环境&避坑指南

模型库下载:
https://huggingface.co/openai/clip-vit-large-patch14/tree/main
openai/clip-vit-large-patch14


百度:no module 'xformers'. Processing without...
https://blog.csdn.net/qq_27144923/article/details/130787220
【Stable-Diffusion-webui】No module ‘xformers‘. Proceeding without it. 问题解决方法(Windows)
打开项目目录下launch.py文件,找到:
commandline_args = os.environ.get('COMMANDLINE_ARGS', "")

修改为:
commandline_args = os.environ.get('COMMANDLINE_ARGS', "--xformers")


https://blog.csdn.net/GranteZhou/article/details/131808110
安装stable-diffusion的错误 xformers 安装解决
pip install xformer


https://www.fujieace.com/ai/no-module-xformers.html
No module ‘xformers’ 原因与解决方法

百度:Running on local URL:  http://0.0.0.0:7860
在浏览器中输入:http://0.0.0.0:7860
即可开工了!


参考资料:
http://www.ai2news.com/blog/3071169/
超易用的国产文档问答项目: langchain-ChatGLM
准备环境
按项目说明,需要安装 python 3.8,又因为使用GPU推理,所以需要手工安装torch 2.0.1 + cuda
torch 需要请自行下载cuda对应的版本 https://mirror.sjtu.edu.cn/pytorch- wheels/cu117/?mirror_intel_list
Running on local URL:  http://0.0.0.0:7860  

百度:ubuntu stable-diffusion
https://www.bilibili.com/read/cv19811242/
【AI绘画】A卡RX580用户在Ubuntu下配置Stable-Diffusion实战(小白纯享版)


百度:git clonne repositories/generative-models
https://www.zhihu.com/question/577067020/answer/3190606301
Stable Diffusion 本地部署方法是什么?

(一)去github上下载stable-diffusion-webui-master.zip
我当时的下载链接如下:
https://codeload.github.com/ThranduilELFKING/stable-diffusion-webui/zip/refs/heads/master
(二)我解压在了本地D盘解压后路径是D:\stable-diffusion-webui-master


https://www.bilibili.com/read/cv24574966/
截止至2023-06-25 最新免魔法stable-diffusion-webui的本地安装部署方法。
一.确认本地部署硬件达到条件。(要求win10,win11等等,具体网上搜一下一大堆)


百度:stable_diffusion_xl_repo = os.environ.get('STABLE_DIFFUSION_XL_REPO', "https://github.com/Stability-
Cloning Stable Diffusion XL into /home/rootroot/stable-diffusion-webui/repositories/generative-model
Cloning into '/home/rootroot/stable-diffusion-webui/repositories/generative-models'...

https://www.bilibili.com/read/cv23306752/
Stable Diffusion WebUI下载repositories超时的问题


https://www.iotword.com/10657.html
stable-diffusion-webui手动安装详细步骤(以及报错解决、踩坑)

https://blog.csdn.net/weixin_40660408/article/details/130139799
stable-diffusion-webui手动安装详细步骤(AMD显卡)


https://www.bilibili.com/read/cv18936264/
在本地部署stable-diffusion-webui
https://www.bilibili.com/video/BV1vN4y1P7nW/?vd_source=4a6b675fa22dfa306da59f67b1f22616
AI猫雷教你快速在本地部署全功能版Stable Diffusion和Waifu Diffusion


百度:sd git clone /stable-diffusion-webui.git 
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia 网络
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata 


https://www.bilibili.com/read/cv29388784/?jump_opus=1
【教程】利用whisper模型自动生成英文粗字幕


https://blog.csdn.net/qq_43223007/article/details/130194585
本地部署Stable Diffusion Webui AI 记录


百度:ubuntu miniconda安装教程
https://blog.csdn.net/Baby_of_breath/article/details/124041687
ubuntu安装Miniconda

效果图:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

servlet会话API

servlet会话API 您可以使用servlet会话API中定义的类和接口来创建和管理用户会话。servlet会话API提供的用于创建和管理用户会话的各种接口有javax.servlet.http.HttpSession、javax.servlet.httpSessionListener和javax.servlet.http.HttpSessionBindingListener和javax.serv…

python爬虫4

#1.练习 # &#xff08;1&#xff09; 获取网页的源码 # &#xff08;2&#xff09; 解析 解析的服务器响应的文件 etree.HTML # (3) 打印 import urllib.request urlhttps://www.baidu.com/ headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit…

Dockerfile构建Nginx访问说明

Dockerfile使用情况 20210903 Dockerfile ,Nginx 参考地址&#xff1a;https://yeasy.gitbook.io/docker_practice/image/build 编写简单Dockerfile 在一个空白目录中&#xff0c;建立一个文本文件&#xff0c;并命名为 Dockerfile&#xff1a; $ mkdir mynginx $ cd myngin…

Swift 入门之自定义类型的模式匹配(Pattern Matching)

概览 小伙伴们都知道 Swift 是一门简洁、类型安全、极富表现力以及“性感迷人”的编程语言。 和大多数语言一样&#xff0c;在 Swift 中也有一些隐藏着的、不为人知的宝藏特性。利用它们我们可以极大增加撸码的愉悦和成就感。 其中&#xff0c;模式匹配&#xff08;Pattern …

【第二十二课】最短路:bellman_ford / spfa算法 (acwing-851 / acwing-853 / c++代码)

目录 前言 acwing-853 bellman_ford算法的思想 代码如下 一些解释 acwing-851 spfa算法思想 代码如下 一些解释 前言 由于权重可以表示不同的度量&#xff0c;例如距离、时间、费用等&#xff0c;具体取决于问题的背景&#xff0c;因此会存在一些权值为负数的题目。…

springboot并mybatis入门启动

pom.xml,需要留意jdk的版本&#xff08;11&#xff09;和springboot版本要匹配&#xff08;2.7.4&#xff09;&#xff0c;然后还要注意mybatis启动l类的版本&#xff08;2.2.2&#xff09; <?xml version"1.0" encoding"UTF-8"?> <project xm…

Visual Studio 2022 查看类关系图

这里写自定义目录标题 右键要查看的项目 -“查看”-“查看类图”效果展示&#xff1a; 原文地址 www.cnblogs.com 步骤1&#xff1a;勾选扩展开发 步骤2: 勾选类设计器 右键要查看的项目 -“查看”-“查看类图” 效果展示&#xff1a;

【Uni-App】运行微信小程序时报错routeDone with a webviewId 2 that is not the current page

使用HBuilderX开发微信小程序&#xff0c;运行项目的时有可能会出现routeDone with a webviewId 1 that is not the current page的报错&#xff0c;但不影响运行。如果强迫症介意的话&#xff0c;可以考下面的方法进行修复。 产生原因 由于微信开发者工具的调试基础库处于灰度…

[python]基于Ultra-Fast-Lane-Detection-v2车道线实时检测onnx部署

【论文地址】 https://arxiv.org/pdf/2206.07389.pdf 【框架地址】 https://github.com/cfzd/Ultra-Fast-Lane-Detection-v2 【框架介绍】 Ultra-Fast-Lane-Detection-v2&#xff08;UFL-D-v2&#xff09;算法是一种高效的车道线检测算法&#xff0c;它旨在快速准确地识别…

常见关系型数据库产品介绍

更新晚了&#xff0c;不好意思啦&#xff01;继关系型数据库的介绍与历史今天主要和大家分享关系型数据库有哪些产品以及简单的背景介绍。这篇文章介意宝宝们听着舒缓的音乐静静享受。 关系型数据库的产品有很多&#xff0c;下面和大家分享一些比较有名的、使用比较广泛的关系…

HP惠普暗影精灵8P笔记本OMEN Gaming Laptop 16-n0076AX原厂Win11系统镜像恢复出厂预装OEM系统

原装Windows11系统安装包&#xff0c;适用型号(HP暗影8plus笔记本电脑)&#xff1a; 16-n0000AX、16-n0001AX、16-n0002AX、16-n0003AX、16-n0004AX、16-n0005AX 16-n0016AX、16-n0058AX、16-n0059AX、16-n0076AX、16-n0078AX等 链接&#xff1a;https://pan.baidu.com/s/1G…

Javaweb之SpringBootWeb案例之yml配置文件的详细解析

4.2 yml配置文件 前面我们一直使用springboot项目创建完毕后自带的application.properties进行属性的配置&#xff0c;那其实呢&#xff0c;在springboot项目当中是支持多种配置方式的&#xff0c;除了支持properties配置文件以外&#xff0c;还支持另外一种类型的配置文件&am…

HTMLCSS JavaScript 基础

HTML复杂建立骨架。 CSS复杂装修。 JS负责定义行为和交互。 示例功能&#xff0c;点击按钮&#xff0c;数量增加&#xff0c;图片交互显示。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"…

HiSilicon352 android9.0 开机视频调试分析

一&#xff0c;开机视频概念 开机广告是在系统开机后实现播放视频功能。 海思Android解决方案在原生Android基础上&#xff0c;增加了开机视频模块&#xff0c;可在开机过程中播放视频文件&#xff0c;使用户更好的体验系统开机过程。 二&#xff0c;模块结构 1. 海思自研开机…

操作系统基础:内存管理概述【下】

&#x1f308;个人主页&#xff1a;godspeed_lucip &#x1f525; 系列专栏&#xff1a;OS从基础到进阶 &#x1f304;1 两级页表&#x1f3d9;️1.1 知识总览&#x1f3d9;️1.2 单极页表存在的问题&#x1f682;1.2.1 假设&#x1f682;1.2.2 结论 &#x1f3d9;️1.3 对第一…

Android之命令行烧写OTA镜像(一百八十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

接上回如何在App Store和Google Play 上获得曝光度

ASO不仅仅是关键词方面的优化&#xff0c;还有很多其他方面的点要注意。 App被评级的次数与其在搜索结果中的排名直接相关&#xff0c;所以要求用户对应用程序进行评分来积极提高评分非常重要&#xff0c;并且这个数字每天都在持续增长。ASO做评论可以帮助覆盖掉负面的评论&am…

带你了解JAVA中的AQS介绍(AbstractQueuedSynchronizer)

一、AQS 介绍 AQS的全称为&#xff08;AbstractQueuedSynchronizer&#xff09;&#xff0c;这个类在java.util.concurrent.locks包下面。 AQS是一个用来构建锁和同步器的框架&#xff0c;使用AQS能简单且高效地构造出应用广泛的大量的同步器&#xff0c;比如我们提到的Reen…

MyBatis笔记梳理

文章目录 什么是 MyBatis&#xff1f;前期准备依赖配置文件mapper利用注解 增、删、改、查查增改删#{} 和 ${} 的区别类型别名 动态sqlwhere ifforeachsql引用不常用标签 多表查询多对一&#xff08;一对一&#xff09;一对多多对多多表查询 个人理解 延迟加载概念使用场景延迟…

Emmet常用语法总结

Emmet常用语法总结 子元素&#xff1a;>兄弟元素&#xff1a;上级元素&#xff1a;^倍数&#xff1a;*分组&#xff1a;&#xff08;&#xff09;属性&#xff1a;[]id和类&#xff1a;# .迭代数字&#xff1a;$文本内容&#xff1a;{}注意事项 Emmet是许多流行文本编辑器的…
最新文章