古人云:道生一,一生二,二生StableDiffuion,StableDiffusion生万物
🎭 由stablediffusion赋能的飞书图片生成类机器人
🚀 Feishu SD 🚀
- txt2img: 通过正反词生成图片,支持中英双语
- img2img: 支持以图生图
- img2txt: 支持 clip 模型识别图片内容
- 显示StableDiffusion服务器的相关信息
- 可以选择 model
- 可以设置生成图片的 size、step 与 seed 等参数
- 显示图片生成信息
- ControlNet
项目使用Stable Diffusion WebUI作为后端(带
--api
参数启动),飞书作为前端,通过机器人,不再需要打开网页,在飞书里就可以使用StableDiffusion进行各种创作!
📷 点击查看详细步骤
使用 pyenv 安装 Python 3.10.6
按以下命令依次执行
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
cd ~/.pyenv && src/configure && make -C src
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init -)"' >> ~/.profile
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
sudo apt install wget lzma liblzma-dev build-essential libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
pyenv install 3.10.6
pyenv global 3.10.6
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim/etc/apt/sources.list
# 修改为下列源内容
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
# 源结束结束
sudo apt-get update
sudo apt-get upgrade
sudo apt update
sudo apt upgrade
sudo apt install nvidia-driver-530 nvidia-dkms-530
sudo reboot
等待重启,重新登录服务器,测试安装驱动成功
nvidia-smi
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git ~/stable-diffusion-webui
cd ~/stable-diffusion-webui && bash webui.sh --api --listen
## 等待安装完成,运行成功后,Ctrl+C停止进程,然后运行下面命令后台运行 stable-diffusion-webui
cd ~/stable-diffusion-webui && nohup bash webui.sh --api --listen &
- 将config-example.yml复制为config.yml;
- 编辑config.yml,添加机器人以及 StableDiffusionWebUI 的服务器信息;
- (可选)创建 Python 虚拟环境
python3 -m venv .venv && source .venv/bin/activate
; - 安装依赖库
pip install -r requirements.txt
,然后运行python3 src/main.py
; - 其他飞书配置步骤,参考 飞书-OpenAI 部署指南
- 以/开头的为操作命令
- eg:
/model
- eg:
- 只发文字消息为 txt2img,消息内容作为 prompt 和参数,通过#号分开正反词
- eg:
1girl # lowres,bad anatomy,bad hands
- eg:
- 发图片带文字为 img2img,图片为基图,文字为 prompt 和参数
- 只发图片为 img2txt,返回图片识别的内容
- 不带参数的:
命令 | 功能 |
---|---|
/help | 显示帮助 |
/list_models | 显示可用的模型 |
/list_sampler | 显示可用的采样器 |
/list_upscalers | 显示可用的放大器 |
/host_info | 显示最大内存,可用内存,最大显存,可用显存 |
/quene | 查询当前生成队列里的任务情况 |
/model | 显示当前模型 |
- 带参数的:
命令 | 参数 | 功能 | |
---|---|---|---|
/model | str | 设置 StableDiffuion 模型 |
- 使用关键词的格式--key [value]
- eg:
--sampler [DPM++ 2S a Karras] --steps [30] --height [768]
(bool 类型的不用带参数,写了就是 True)
- eg:
参数 | 类型 | 功能 | 默认值 |
---|---|---|---|
--sampler | str | 设置采样器 | "Euler a" |
--steps | int | 设置采样步数 | 20 |
--width | int | 设置宽度 | 512 |
--height | int | 设置高度 | 512 |
--batch_size | int | 设置批次大小 | 1 |
--batch_count | int | 设置批次数量 | 1 |
--seed | int | 设置种子 | -1 |
--cfg_scale | float | 设置提示词的控制度 | 7.0 |
--restore_faces | bool | 设置是否修复面容 | False |
--enable_hr | bool | 设置是否高清修复 | False |
--hr_upscaler | str | 设置放大器 | Latent |
--hr_scale | flat | 设置放大倍率 | 2 |
--denoising_strength | float | 设置重绘强度 | 0.7 |
--resize_mode | int | 设置缩放模式 | 0 |
AI |
SDK | Application |
---|---|---|
🎒OpenAI | Go-OpenAI | 🏅Feishu-OpenAI, 🎖Lark-OpenAI, Feishu-EX-ChatGPT, 🎖Feishu-OpenAI-Stream-Chatbot, Feishu-TLDR,Feishu-OpenAI-Amazing, Feishu-Oral-Friend, Feishu-OpenAI-Base-Helper, Feishu-Vector-Knowledge-Management, Feishu-OpenAI-PDF-Helper, 🏅Dingtalk-OpenAI, Wework-OpenAI, WeWork-OpenAI-Node, llmplugin |
🤖 AutoGPT | ------ | 🏅AutoGPT-Next-Web |
🎭 Stablediffusion | ------ | 🎖Feishu-Stablediffusion |
🍎 Midjourney | Go-Midjourney | 🏅Feishu-Midjourney, 🔥MidJourney-Web, Dingtalk-Midjourney |
🍍 文心一言 | Go-Wenxin | Feishu-Wenxin, Dingtalk-Wenxin, Wework-Wenxin |
💸 Minimax | Go-Minimax | Feishu-Minimax, Dingtalk-Minimax, Wework-Minimax |
⛳️ CLAUDE | Go-Claude | Feishu-Claude, DingTalk-Claude, Wework-Claude |
🥁 PaLM | Go-PaLM | Feishu-PaLM,DingTalk-PaLM,Wework-PaLM |
🎡 Prompt | ------ | 📖 Prompt-Engineering-Tutior |
🍋 ChatGLM | ------ | Feishu-ChatGLM |
⛓ LangChain | ------ | 📖 LangChain-Tutior |
🪄 One-click | ------ | 🎖Awesome-One-Click-Deployment |