zhongpei/image2text_prompt_generator

image2text or chinese text prompt generator

Python

46

280 commits

updated Jun 12, 2023

See the code

README

Image2text Prompt Generator

README Translation

介绍

Prompt 生成器

支持从图片中解析出 Prompt 描述,并能够基于描述进行扩展,以便进行二次图片生成。 支持中文通过ChatGLM扩展出Prompt描述。

✅ 本项目中使用模型

所有模型都是惰性加载,使用才进行下载和加载,不会占用显存。

🚩 本项目独立存在,没有集成到automatic111/webui,便于随时关闭节省显存。

  • 在线演示 拥抱脸Demo
  • 图生文功能需要GPU部署
  • 部分模型使用CPU(翻译、文生文),防止GPU显存溢出
  • 支持stable diffusion和midjourney两种prompt生成方式
  • 使用ChatGLM-6b-int4节省显存

一键包

百度云盘下载

ChatGLM 模型需要单独下载(下载int4版本),放到程序目录 models 下面

启动程序

  • webui.bat 主要功能
  • webui_chat.bat 主要功能+chatGLM聊天界面
  • webui_imagetools.bat 图片处理工具
  • webui_offline.bat 使用离线模式
    • 修改settings.offline.toml里面的模型路径
    • 模型git clone到models目录(不能直接从cache拷贝)
  • webui_venv.bat 自己手动安装venv环境,用这个启动,默认venv目录。
  • 第一次运行会自动下载模型,默认下载在用户目录.cache/huggingface

main

启动程序

  • webui.bat 主要功能
  • webui_chat.bat 主要功能+chatGLM聊天界面
  • webui_imagetools.bat 图片处理工具
  • webui_offline.bat 使用离线模式
    • 修改settings.offline.toml里面的模型路径
    • 模型git clone到models目录(不能直接从cache拷贝)
  • webui_venv.bat 自己手动安装venv环境,用这个启动,默认venv目录。
  • 第一次运行会自动下载模型,默认下载在用户目录.cache/huggingface

更新程序

  cd image2text_prompt_generator
  git pull

或github打包下载zip,覆盖程序目录

配置和使用

使用方法

prompt优化模型

  • mircosoft 生成简单描述 (stable diffusion)
  • mj 生成随机描述 (midjourney)
  • gpt2 650k 和 gpt_neo_125M 生成更复杂的描述

img.png

文生文

  • 中文翻译到英文
  • 中文通过ChatGLM-6b-int4扩写为复杂描述
  • 翻译为英文
  • 通过prompt优化模型生成

img.png

图生文

  • clip 用于 多人,场景复杂,占用显存高(>8G)
  • blip 用于 人物和场景简单
  • wd14 用于 人物
  • prompt 生成会自动合并 blip或clip + wd14

img.png

图片处理工具

  • 批量扣背景
  • 糊脸(炼衣服用)
  • 扣大头
  • 批量改名(正则)
  • 打标签 (Clip+W14标签和翻译)

img.png img.png

chatglm 生成

硬件需求

量化等级最低 GPU 显存(推理)最低 GPU 显存(高效参数微调)
FP16(无量化)13 GB14 GB
INT88 GB9 GB
INT46 GB7 GB

img.png

浏览器插件

来源于 chatGPTBox 项目,修改部分提示词语

  • 使用 api.bat 启动

  • 配置 chatGPTBox 插件为 自定义模型 http://localhost:8000/chat/completions

  • 在release里面下载插件

  • 修改版插件

浏览器加载插件

img.png

限制

  • 不支持cuda,不建议使用clip
  • 显存<6G, 不建议使用ChatGLM
配置文件

配置文件

settings.toml

[server]
port = 7869 # 端口
host = '127.0.0.1' # 局域网访问需要改成 "0.0.0.0"
enable_queue = true # chat功能需要开启,如错误,需要关闭代理
queue_size = 10
show_api = false
debug = true

[chatglm]
model = "THUDM/chatglm-6b-int4" # THUDM/chatglm-6b-int4 THUDM/chatglm-6b-int8 THUDM/chatglm-6b

# 本地模型
# model = "./models/chatglm-6b-int8" 

device = "cuda" # cpu mps cuda
enable_chat = false # 是否启用聊天功能
local_files_only = false # 是否只使用本地模型

离线模型

请参考 ChatGLM本地加载模型 模型git clone到models目录(不能直接从cache拷贝),然后修改settings-offline.toml里面的模型路径

  • windows路径最好使用绝对路径,不要包含中文
  • linux/mac路径可以使用相对路径
  • 模型目录结构参考

img.png

settings-offline.toml

[generator]
enable = true # 是否启用generator功能
device = "cuda" # cpu mps cuda
fix_sd_prompt = true # 是否修复sd prompt
# models
microsoft_model = "./Promptist"
gpt2_650k_model = "./gpt2-650k-stable-diffusion-prompt-generator"
gpt_neo_125m_model = "./StableDiffusion-Prompt-Generator-GPT-Neo-125M"
mj_model = "./text2image-prompt-generator"
local_files_only = true # 是否只使用本地模型


[translate]
enable = true # 是否启用翻译功能
device = "cuda" # cpu mps cuda
local_files_only = true # 是否只使用本地模型
zh2en_model = "./models/opus-mt-zh-en"
en2zh_model = "./models/opus-mt-en-zh"

cache_dir = "./data/translate_cache" # 翻译缓存目录

[chatglm]
# 本地模型 https://github.com/THUDM/ChatGLM-6B#从本地加载模型
model = ".\\models\\chatglm-6b-int4" # ./chatglm-6b-int4 ./chatglm-6b-int8 ./chatglm-6b
## windows 绝对路径配置方法
# model = "E:\\zhangsan\\models\\chatglm-6b-int4" 
device = "cuda" # cpu mps cuda
enable_chat = true # 是否启用聊天功能
local_files_only = true # 是否只使用本地模型


hg cache 配置

防止c盘沾满,可以配置cache目录到其他盘

img.png

手动安装

手动安装

首先,确保您的计算机已经安装了 Python3.10。如果您尚未安装 Python,请前往官方网站(https://www.python.org/downloads/)下载并安装最新版本的 Python3.10。 接着,下载并解压缩我们的工具安装包。 打开命令行窗口(Windows 用户可以按下 Win + R 键,在运行框中输入 “cmd” 并按下回车键打开命令行窗口),并进入到工具安装包所在的目录。 在命令行窗口中输入以下命令安装所需的依赖项:

git clone https://github.com/zhongpei/image2text_prompt_generator
cd image2text_prompt_generator

# 建立虚拟环境
python -m "venv" venv
# 激活环境 linux & mac 
./venv/bin/activate
# 激活环境 windows
.\venv\Scripts\activate


# gpu 加速
pip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 --extra-index-url https://download.pytorch.org/whl/cu118

pip install --upgrade -r requirements.txt
  

这将自动安装所需的 Python 依赖项。 安装完成后,您可以运行以下命令启动工具:

# 激活环境 linux & mac
source ./venv/bin/activate
# 激活环境 windows
.\venv\Scripts\activate

# 运行程序
python app.py
    

这将启动工具并在您的浏览器中打开工具的主页。如果您的浏览器没有自动打开,请手动输入以下网址:http://localhost:7869/ 工具现在已经成功安装并启动了。您可以按照工具的说明文档,开始使用它来处理您的图片数据。

更新信息

  • v2.0 LangChain(本地文件问答)
  • v1.8 打标签工具
  • v1.7 翻译本地标签缓存,翻译缓存, API
  • v1.6 图片工具
  • v1.5 增加chatGLM模型
  • v1.0 增加webui

计划

  • webui
  • 配置文件
  • image2text
    • clip
    • blip
    • wd14
  • text2text
    • ChatGLM
    • gpt2 650k
    • gpt_neo_125M
    • mj
  • 抠图工具
    • 抠背景
    • 抠人物大头
    • 遮挡人物脸部
    • 批量修改文件名
    • 加载目录标签并翻译
  • 翻译
    • zh2en,en2zh
    • WD14 tags 翻译本地缓存
    • 翻译缓存
  • 标签
    • clip + w14 混合批量图片标签
  • LangChain
    • 索引
    • 问答

zhongpei/image2text_prompt_generator

image2text or chinese text prompt generator

Python

46

280 commits

updated Jun 12, 2023

See the code

README

Image2text Prompt Generator

README Translation

介绍

Prompt 生成器

支持从图片中解析出 Prompt 描述,并能够基于描述进行扩展,以便进行二次图片生成。 支持中文通过ChatGLM扩展出Prompt描述。

✅ 本项目中使用模型

所有模型都是惰性加载,使用才进行下载和加载,不会占用显存。

🚩 本项目独立存在,没有集成到automatic111/webui,便于随时关闭节省显存。

  • 在线演示 拥抱脸Demo
  • 图生文功能需要GPU部署
  • 部分模型使用CPU(翻译、文生文),防止GPU显存溢出
  • 支持stable diffusion和midjourney两种prompt生成方式
  • 使用ChatGLM-6b-int4节省显存

一键包

百度云盘下载

ChatGLM 模型需要单独下载(下载int4版本),放到程序目录 models 下面

启动程序

  • webui.bat 主要功能
  • webui_chat.bat 主要功能+chatGLM聊天界面
  • webui_imagetools.bat 图片处理工具
  • webui_offline.bat 使用离线模式
    • 修改settings.offline.toml里面的模型路径
    • 模型git clone到models目录(不能直接从cache拷贝)
  • webui_venv.bat 自己手动安装venv环境,用这个启动,默认venv目录。
  • 第一次运行会自动下载模型,默认下载在用户目录.cache/huggingface

main

启动程序

  • webui.bat 主要功能
  • webui_chat.bat 主要功能+chatGLM聊天界面
  • webui_imagetools.bat 图片处理工具
  • webui_offline.bat 使用离线模式
    • 修改settings.offline.toml里面的模型路径
    • 模型git clone到models目录(不能直接从cache拷贝)
  • webui_venv.bat 自己手动安装venv环境,用这个启动,默认venv目录。
  • 第一次运行会自动下载模型,默认下载在用户目录.cache/huggingface

更新程序

  cd image2text_prompt_generator
  git pull

或github打包下载zip,覆盖程序目录

配置和使用

使用方法

prompt优化模型

  • mircosoft 生成简单描述 (stable diffusion)
  • mj 生成随机描述 (midjourney)
  • gpt2 650k 和 gpt_neo_125M 生成更复杂的描述

img.png

文生文

  • 中文翻译到英文
  • 中文通过ChatGLM-6b-int4扩写为复杂描述
  • 翻译为英文
  • 通过prompt优化模型生成

img.png

图生文

  • clip 用于 多人,场景复杂,占用显存高(>8G)
  • blip 用于 人物和场景简单
  • wd14 用于 人物
  • prompt 生成会自动合并 blip或clip + wd14

img.png

图片处理工具

  • 批量扣背景
  • 糊脸(炼衣服用)
  • 扣大头
  • 批量改名(正则)
  • 打标签 (Clip+W14标签和翻译)

img.png img.png

chatglm 生成

硬件需求

量化等级最低 GPU 显存(推理)最低 GPU 显存(高效参数微调)
FP16(无量化)13 GB14 GB
INT88 GB9 GB
INT46 GB7 GB

img.png

浏览器插件

来源于 chatGPTBox 项目,修改部分提示词语

  • 使用 api.bat 启动

  • 配置 chatGPTBox 插件为 自定义模型 http://localhost:8000/chat/completions

  • 在release里面下载插件

  • 修改版插件

浏览器加载插件

img.png

限制

  • 不支持cuda,不建议使用clip
  • 显存<6G, 不建议使用ChatGLM
配置文件

配置文件

settings.toml

[server]
port = 7869 # 端口
host = '127.0.0.1' # 局域网访问需要改成 "0.0.0.0"
enable_queue = true # chat功能需要开启,如错误,需要关闭代理
queue_size = 10
show_api = false
debug = true

[chatglm]
model = "THUDM/chatglm-6b-int4" # THUDM/chatglm-6b-int4 THUDM/chatglm-6b-int8 THUDM/chatglm-6b

# 本地模型
# model = "./models/chatglm-6b-int8" 

device = "cuda" # cpu mps cuda
enable_chat = false # 是否启用聊天功能
local_files_only = false # 是否只使用本地模型

离线模型

请参考 ChatGLM本地加载模型 模型git clone到models目录(不能直接从cache拷贝),然后修改settings-offline.toml里面的模型路径

  • windows路径最好使用绝对路径,不要包含中文
  • linux/mac路径可以使用相对路径
  • 模型目录结构参考

img.png

settings-offline.toml

[generator]
enable = true # 是否启用generator功能
device = "cuda" # cpu mps cuda
fix_sd_prompt = true # 是否修复sd prompt
# models
microsoft_model = "./Promptist"
gpt2_650k_model = "./gpt2-650k-stable-diffusion-prompt-generator"
gpt_neo_125m_model = "./StableDiffusion-Prompt-Generator-GPT-Neo-125M"
mj_model = "./text2image-prompt-generator"
local_files_only = true # 是否只使用本地模型


[translate]
enable = true # 是否启用翻译功能
device = "cuda" # cpu mps cuda
local_files_only = true # 是否只使用本地模型
zh2en_model = "./models/opus-mt-zh-en"
en2zh_model = "./models/opus-mt-en-zh"

cache_dir = "./data/translate_cache" # 翻译缓存目录

[chatglm]
# 本地模型 https://github.com/THUDM/ChatGLM-6B#从本地加载模型
model = ".\\models\\chatglm-6b-int4" # ./chatglm-6b-int4 ./chatglm-6b-int8 ./chatglm-6b
## windows 绝对路径配置方法
# model = "E:\\zhangsan\\models\\chatglm-6b-int4" 
device = "cuda" # cpu mps cuda
enable_chat = true # 是否启用聊天功能
local_files_only = true # 是否只使用本地模型


hg cache 配置

防止c盘沾满,可以配置cache目录到其他盘

img.png

手动安装

手动安装

首先,确保您的计算机已经安装了 Python3.10。如果您尚未安装 Python,请前往官方网站(https://www.python.org/downloads/)下载并安装最新版本的 Python3.10。 接着,下载并解压缩我们的工具安装包。 打开命令行窗口(Windows 用户可以按下 Win + R 键,在运行框中输入 “cmd” 并按下回车键打开命令行窗口),并进入到工具安装包所在的目录。 在命令行窗口中输入以下命令安装所需的依赖项:

git clone https://github.com/zhongpei/image2text_prompt_generator
cd image2text_prompt_generator

# 建立虚拟环境
python -m "venv" venv
# 激活环境 linux & mac 
./venv/bin/activate
# 激活环境 windows
.\venv\Scripts\activate


# gpu 加速
pip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 --extra-index-url https://download.pytorch.org/whl/cu118

pip install --upgrade -r requirements.txt
  

这将自动安装所需的 Python 依赖项。 安装完成后,您可以运行以下命令启动工具:

# 激活环境 linux & mac
source ./venv/bin/activate
# 激活环境 windows
.\venv\Scripts\activate

# 运行程序
python app.py
    

这将启动工具并在您的浏览器中打开工具的主页。如果您的浏览器没有自动打开,请手动输入以下网址:http://localhost:7869/ 工具现在已经成功安装并启动了。您可以按照工具的说明文档,开始使用它来处理您的图片数据。

更新信息

  • v2.0 LangChain(本地文件问答)
  • v1.8 打标签工具
  • v1.7 翻译本地标签缓存,翻译缓存, API
  • v1.6 图片工具
  • v1.5 增加chatGLM模型
  • v1.0 增加webui

计划

  • webui
  • 配置文件
  • image2text
    • clip
    • blip
    • wd14
  • text2text
    • ChatGLM
    • gpt2 650k
    • gpt_neo_125M
    • mj
  • 抠图工具
    • 抠背景
    • 抠人物大头
    • 遮挡人物脸部
    • 批量修改文件名
    • 加载目录标签并翻译
  • 翻译
    • zh2en,en2zh
    • WD14 tags 翻译本地缓存
    • 翻译缓存
  • 标签
    • clip + w14 混合批量图片标签
  • LangChain
    • 索引
    • 问答