Stable Diffusion WebUI小汇总

Stable Diffusion WebUI上安装tagger的时候报错:

ImportError: cannot import name ‘wrap_gradio_gpu_call’ from ‘webui’

解决方法

修改下面的python文件
\stable-diffusion-webui\extensions\stable-diffusion-webui-wd14-tagger\tagger\ui.py

1
2
3
from webui import wrap_gradio_gpu_call
# 把引用源从webui改成modules.call_queue
from modules.call_queue import wrap_gradio_gpu_call

AttributeError: ‘Namespace’ object has no attribute ‘deepdanbooru_projects_path’

解决方法

修改下面的python文件
\stable-diffusion-webui\extensions\stable-diffusion-webui-wd14-tagger\tagger\utils.py

1
2
3
for path in os.scandir(shared.cmd_opts.deepdanbooru_projects_path):
# 修改属性的取得方法
for path in os.scandir(getattr(shared.cmd_opts, 'deepdanbooru_projects_path', default_ddp_path)):

使用bge-m3嵌入报错:ImportError: cannot import name 'GenerationMixin' from 'transformers.generation' (/root/miniconda3/envs/ds/lib/python3.12/site-packages/transformers/generation/__init__.py). Did you mean: 'GenerationMode'?

** 现象
使用bge-m3嵌入报错:
ImportError: cannot import name ‘GenerationMixin’ from ‘transformers.generation’ (/root/miniconda3/envs/ds/lib/python3.12/site-packages/transformers/generation/init.py). Did you mean: ‘GenerationMode’?

** 原因分析
GenerationMixin 无法从 transformers.generation 中导入,可能是GenerationMixin 在 transformers 的某些版本中可能被移动或重构。
bge-m3 可能要求特定版本的 transformers,导致不兼容。

** 解决方法
重新执行torch安装,错误小时

1
pip install torch

Ubuntu curl: (23) Failure writing output to destination 错误 - Ubuntu 22.04

Ubuntu22.04系统之下,curl命令默认是snap软件包管理系统的curl。
和传统apt下的curl相比功能比较鸡肋,这次在下载shell文件的时候居然还出现了”Ubuntu curl: (23) Failure writing output to destination”的错误。
卸载之后用apt重装,问题得以解决。

1
2
3
4
5
6
7
8
9
10
# 错误内容
root@ubuntu22:/tmp# curl -fsSL https://ollama.com/install.sh | sh
>>> Downloading ollama...
Warning: Failed to open the file /tmp/tmp.Kz9ivWXG2f/ollama: No such file or %##O#-#
Warning: directory
curl: (23) Failure writing output to destination

# 解决方法如下
sudo snap remove curl
sudo apt install curl

运维人员小技巧 - 隐藏WordPress的xmlrpc.php提高安全性,防范Pingback DDoS攻击

xmlrpc.php位于WordPress根目录,是WordPress和其他系统通讯的基于XML的一个实现。
为了防范通过Pingback实现DDoS攻击,建议不公开xmlrpc.php。

在WordPress的.htacess文件里添加规则,禁止对xmlrpc.php的访问

1
2
3
<Files "xmlrpc.php">
Require all denied
</Files>

在WordPress的过滤器里禁用xmlrpc功能,可在functions.php里面添加

1
add_filter( 'xmlrpc_enabled', '__return_false' );

通过swappiness参数调整Ubuntu的swap切换比率

有的时候会发现明明系统还有大量可用内存,但是Ubuntu却使用了很高的swap交换分区。
通常是由swappiness配置项导致的。
Ubuntu官方:swappiness参数解释

1
2
3
4
5
6
7
8
9
10
11
12
13
# swappiness 取值介于 0 到 100
# swappiness=0: 通知内核避免把进程从物理内存中切换到swap
# swappiness=100: 通知内核更激进的把进程移到swap
# swappiness=60: Ubuntu的默认值,对于Ubuntu服务器系统是一个比较均衡的配置;对于Ubuntu桌面系统,减少这个值一般会改善使用体验
# swappiness=10: 是一个比较推荐的值,但是需要实际设置来验证效果
# swappiness的临时修改方法如下,系统重启后参数失效:
sudo sysctl vm.swappiness=10

# 永久修改方法:
sudo vi /etc/sysctl.conf
# 查找vm.swappiness并修改为合适的值,如果不存在可以加到conf文件末尾,重新加载或者重启反映
vm.swappiness=10
sudo sysctl --load=/etc/sysctl.conf

Ubuntu用户命令行下:上下左右键乱码,显示为^[[A^[[B^[[D^[[C

Ubuntu下,通过useradd命令创建用户后,默认会使用/bin/sh的Shell,进而导致上下左右方向键变为【$ ^[[A^[[B^[[D^[[C】的显示。
可以通过以下几种方式解决。

1
2
3
4
5
6
7
8
9
10
11
12
13
# 1. 已经添加的用户:使用chsh修改Shell类型
chsh -s /bin/bash user1

# 2. 已经添加的用户:修改/etc/passwd文件里记录的Shell类型
sudo vi /etc/passwd
...:/bin/sh 修改为 ...:/bin/bash

# 3. 修改/etc/default/useradd的默认值,以后添加用户时,默认使用/bin/bash
sudo vi /etc/default/useradd
SHELL=/bin/sh 修改为 SHELL=/bin/bash

# 4. 使用adduser命令来添加新用户,adduser命令使用 /etc/adduser.conf 的DSHELL变量(默认值 /bin/bash)
sudo adduser user2

以后可能用到的URL归档

树莓派镜像仓库Raspbian

[OpenA官方token长度计算器](https://platform.openai.com/tokenizer)

[FaceRecognition人脸识别](https://github.com/ageitgey/face_recognition/blob/master/README_Simplified_Chinese.md)

face_recognition是一个强大、简单、易上手的人脸识别开源项目,并且配备了完整的开发文档和应用案例,特别是兼容树莓派系统。
本项目的人脸识别是基于业内领先的C++开源库 dlib中的深度学习模型,用Labeled Faces in the Wild人脸数据集进行测试,有高达99.38%的准确率。但对小孩和亚洲人脸的识别准确率尚待提升。

[FaceRecognition树莓派例子](https://github.com/ageitgey/face_recognition/blob/master/examples/facerec_on_raspberry_pi.py)

[deepface-202409有更新](https://github.com/serengil/deepface)

适用于 Python 的轻量级人脸识别和面部属性分析(年龄、性别、情绪和种族)库

macOS下,Python3安装virtualenv

virtualenv 创建的虚拟环境相对较小,只包含 Python 解释器和基本包。适用于任何操作系统和 Python 版本。
适用于轻量级项目或只需要 Python 环境的场景。

1
2
3
4
5
6
7
brew install python3
pip3 install virtualenv
virtualenv -p python3 [虚拟环境的存放路径]
# 激活虚拟环境
source [虚拟环境的存放路径]/bin/activate
# 退出虚拟环境
deactivate