From 93a181f55b9fbf485df52e60da96fa04d8b8f7b3 Mon Sep 17 00:00:00 2001 From: bmaltais Date: Wed, 4 Oct 2023 19:00:12 -0400 Subject: [PATCH] Remove torch 1 support from code --- README.md | 16 +- .../README_中文教程.md => README_中文教程.md | 374 +++++++++--------- config_files/accelerate/kohya中文启动器.bat | 8 - requirements.txt | 2 +- setup/setup_windows.py | 77 ++-- setup/validate_requirements.py | 5 +- 6 files changed, 231 insertions(+), 251 deletions(-) rename config_files/accelerate/README_中文教程.md => README_中文教程.md (96%) delete mode 100644 config_files/accelerate/kohya中文启动器.bat diff --git a/README.md b/README.md index 93f2ced..e4ef4cb 100644 --- a/README.md +++ b/README.md @@ -625,6 +625,9 @@ ControlNet-LLLite, a novel method for ControlNet with SDXL, is added. See [docum ## Change History +* 2023/10/08 (v22.1.0) + - Remove support for torch 1 to align with kohya_ss sd-scripts code base. + * 2023/10/01 (v22.0.0) - Merging main branch of sd-scripts: - [SAI Model Spec](https://github.com/Stability-AI/ModelSpec) metadata is now supported partially. `hash_sha256` is not supported yet. @@ -648,16 +651,3 @@ ControlNet-LLLite, a novel method for ControlNet with SDXL, is added. See [docum - Update wandb module version - Add support for Chinese zh-CN localisation. You can use it with `.\gui.bat --language=zh-CN` - Add presets support to `Finetuning`. You can add your own finetuning user presets under the `/presets/finetune/user_presets` folder. - -* 2023/09/23 (v21.8.10) - - Minor point upgrade. Mostly adding a new preset. - -* 2023/08/05 (v21.8.9) - - Update sd-script to caode as of Sept 3 2023 - * ControlNet-LLLite is added. See documentation for details. - * JPEG XL is supported. #786 - * Peak memory usage is reduced. #791 - * Input perturbation noise is added. See #798 for details. - * Dataset subset now has caption_prefix and caption_suffix options. The strings are added to the beginning and the end of the captions before shuffling. You can specify the options in .toml. - * Other minor changes. - - Added support for Chinese locallisation diff --git a/config_files/accelerate/README_中文教程.md b/README_中文教程.md similarity index 96% rename from config_files/accelerate/README_中文教程.md rename to README_中文教程.md index 3bb4c67..f526317 100644 --- a/config_files/accelerate/README_中文教程.md +++ b/README_中文教程.md @@ -1,188 +1,188 @@ -嗨!我把日语 README 文件的主要内容翻译成中文如下: - -## 关于这个仓库 - -这个是用于Stable Diffusion模型训练、图像生成和其他脚本的仓库。 - -[英文版 README](./README.md) <-- 更新信息在这里 - -GUI和PowerShell脚本等使其更易用的功能在[bmaltais的仓库](https://github.com/bmaltais/kohya_ss)(英语)中提供,一并参考。感谢bmaltais。 - -包含以下脚本: - -* 支持DreamBooth、U-Net和文本编码器的训练 -* fine-tuning的支持 -* 图像生成 -* 模型转换(Stable Diffusion ckpt/safetensors 和 Diffusers之间的相互转换) - -## 使用方法 (中国用户只需要按照这个安装教程操作) -- 进入kohya_ss文件夹根目录下,点击 setup.bat 启动安装程序 *(需要科学上网) -- 根据界面上给出的英文选项: -Kohya_ss GUI setup menu: - -1. Install kohya_ss gui -2. (Optional) Install cudann files (avoid unless you really need it) -3. (Optional) Install specific bitsandbytes versions -4. (Optional) Manually configure accelerate -5. (Optional) Start Kohya_ss GUI in browser -6. Quit - -Enter your choice: 1 - -1. Torch 1 (legacy, no longer supported. Will be removed in v21.9.x) -2. Torch 2 (recommended) -3. Cancel - -Enter your choice: 2 - -开始安装环境依赖,接着再出来的选项,按照下列选项操作: -```txt -- This machine -- No distributed training -- NO -- NO -- NO -- all -- bf16 -``` --------------------------------------------------------------------- -这里都选择完毕,即可关闭终端窗口,直接点击 gui.bat或者 kohya中文启动器.bat 即可运行kohya - - -当仓库内和note.com有相关文章,请参考那里。(未来可能全部移到这里) - -* [关于训练,通用篇](./docs/train_README-ja.md): 数据准备和选项等 - * [数据集设置](./docs/config_README-ja.md) -* [DreamBooth训练指南](./docs/train_db_README-ja.md) -* [fine-tuning指南](./docs/fine_tune_README_ja.md) -* [LoRA训练指南](./docs/train_network_README-ja.md) -* [文本反转训练指南](./docs/train_ti_README-ja.md) -* [图像生成脚本](./docs/gen_img_README-ja.md) -* note.com [模型转换脚本](https://note.com/kohya_ss/n/n374f316fe4ad) - -## Windows环境所需程序 - -需要Python 3.10.6和Git。 - -- Python 3.10.6: https://www.python.org/ftp/python/3.10.6/python-3.10.6-amd64.exe -- git: https://git-scm.com/download/win - -如果要在PowerShell中使用venv,需要按以下步骤更改安全设置: -(不仅仅是venv,使脚本可以执行。请注意。) - -- 以管理员身份打开PowerShell -- 输入"Set-ExecutionPolicy Unrestricted",选择Y -- 关闭管理员PowerShell - -## 在Windows环境下安装 - -下例中安装的是PyTorch 1.12.1/CUDA 11.6版。如果要使用CUDA 11.3或PyTorch 1.13,请适当修改。 - -(如果只显示"python",请将下例中的"python"改为"py") - -在普通(非管理员)PowerShell中依次执行以下命令: - -```powershell -git clone https://github.com/kohya-ss/sd-scripts.git -cd sd-scripts - -python -m venv venv -.\venv\Scripts\activate - -pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116 -pip install --upgrade -r requirements.txt -pip install -U -I --no-deps https://github.com/C43H66N12O12S2/stable-diffusion-webui/releases/download/f/xformers-0.0.14.dev0-cp310-cp310-win_amd64.whl - -cp .\bitsandbytes_windows\*.dll .\venv\Lib\site-packages\bitsandbytes\ -cp .\bitsandbytes_windows\cextension.py .\venv\Lib\site-packages\bitsandbytes\cextension.py -cp .\bitsandbytes_windows\main.py .\venv\Lib\site-packages\bitsandbytes\cuda_setup\main.py - -accelerate config -``` - -在命令提示符中: - -```bat -git clone https://github.com/kohya-ss/sd-scripts.git -cd sd-scripts - -python -m venv venv -.\venv\Scripts\activate - -pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116 -pip install --upgrade -r requirements.txt -pip install -U -I --no-deps https://github.com/C43H66N12O12S2/stable-diffusion-webui/releases/download/f/xformers-0.0.14.dev0-cp310-cp310-win_amd64.whl - -copy /y .\bitsandbytes_windows\*.dll .\venv\Lib\site-packages\bitsandbytes\ -copy /y .\bitsandbytes_windows\cextension.py .\venv\Lib\site-packages\bitsandbytes\cextension.py -copy /y .\bitsandbytes_windows\main.py .\venv\Lib\site-packages\bitsandbytes\cuda_setup\main.py - -accelerate config -``` - -accelerate config的问题请按以下回答: -(如果要用bf16训练,最后一个问题选择bf16) - -``` -- 此计算机 -- 不进行分布式训练 -- 否 -- 否 -- 否 -- 所有 -- fp16 -``` - -### PyTorch和xformers版本注意事项 - -在其他版本中训练可能失败。如果没有特殊原因,请使用指定版本。 - - -### 可选:使用Lion8bit - -如果要使用Lion8bit,需要将`bitsandbytes`升级到0.38.0以上。首先卸载`bitsandbytes`,然后在Windows中安装适合Windows的whl文件,例如[这里的](https://github.com/jllllll/bitsandbytes-windows-webui)。例如: - -```powershell -pip install https://github.com/jllllll/bitsandbytes-windows-webui/raw/main/bitsandbytes-0.38.1-py3-none-any.whl -``` - -升级时用`pip install .`更新这个仓库,并视情况升级其他包。 - -### 可选:使用PagedAdamW8bit和PagedLion8bit - -如果要使用PagedAdamW8bit和PagedLion8bit,需要将`bitsandbytes`升级到0.39.0以上。首先卸载`bitsandbytes`,然后在Windows中安装适合Windows的whl文件,例如[这里的](https://github.com/jllllll/bitsandbytes-windows-webui)。例如: - -```powershell -pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/download/wheels/bitsandbytes-0.39.1-py3-none-win_amd64.whl -``` - -升级时用`pip install .`更新这个仓库,并视情况升级其他包。 - -## 升级 - -如果有新版本,可以用以下命令更新: - -```powershell -cd sd-scripts -git pull -.\venv\Scripts\activate -pip install --use-pep517 --upgrade -r requirements.txt -``` - -如果命令成功,就可以使用新版本了。 - -## 致谢 - -LoRA实现基于[cloneofsimo的仓库](https://github.com/cloneofsimo/lora)。表示感谢。 - -将Conv2d 3x3扩展到所有层起初由 [cloneofsimo](https://github.com/cloneofsimo/lora) 发布, [KohakuBlueleaf](https://github.com/KohakuBlueleaf/LoCon) 证明了其有效性。深深感谢 KohakuBlueleaf。 - -## 许可 - -脚本遵循 ASL 2.0 许可,但包含其他许可的代码部分(Diffusers和cloneofsimo的仓库)。 - -[Memory Efficient Attention Pytorch](https://github.com/lucidrains/memory-efficient-attention-pytorch): MIT - -[bitsandbytes](https://github.com/TimDettmers/bitsandbytes): MIT - +嗨!我把日语 README 文件的主要内容翻译成中文如下: + +## 关于这个仓库 + +这个是用于Stable Diffusion模型训练、图像生成和其他脚本的仓库。 + +[英文版 README](./README.md) <-- 更新信息在这里 + +GUI和PowerShell脚本等使其更易用的功能在[bmaltais的仓库](https://github.com/bmaltais/kohya_ss)(英语)中提供,一并参考。感谢bmaltais。 + +包含以下脚本: + +* 支持DreamBooth、U-Net和文本编码器的训练 +* fine-tuning的支持 +* 图像生成 +* 模型转换(Stable Diffusion ckpt/safetensors 和 Diffusers之间的相互转换) + +## 使用方法 (中国用户只需要按照这个安装教程操作) +- 进入kohya_ss文件夹根目录下,点击 setup.bat 启动安装程序 *(需要科学上网) +- 根据界面上给出的英文选项: +Kohya_ss GUI setup menu: + +1. Install kohya_ss gui +2. (Optional) Install cudann files (avoid unless you really need it) +3. (Optional) Install specific bitsandbytes versions +4. (Optional) Manually configure accelerate +5. (Optional) Start Kohya_ss GUI in browser +6. Quit + +Enter your choice: 1 + +1. Torch 1 (legacy, no longer supported. Will be removed in v21.9.x) +2. Torch 2 (recommended) +3. Cancel + +Enter your choice: 2 + +开始安装环境依赖,接着再出来的选项,按照下列选项操作: +```txt +- This machine +- No distributed training +- NO +- NO +- NO +- all +- bf16 +``` +-------------------------------------------------------------------- +这里都选择完毕,即可关闭终端窗口,直接点击 gui.bat或者 kohya中文启动器.bat 即可运行kohya + + +当仓库内和note.com有相关文章,请参考那里。(未来可能全部移到这里) + +* [关于训练,通用篇](./docs/train_README-ja.md): 数据准备和选项等 + * [数据集设置](./docs/config_README-ja.md) +* [DreamBooth训练指南](./docs/train_db_README-ja.md) +* [fine-tuning指南](./docs/fine_tune_README_ja.md) +* [LoRA训练指南](./docs/train_network_README-ja.md) +* [文本反转训练指南](./docs/train_ti_README-ja.md) +* [图像生成脚本](./docs/gen_img_README-ja.md) +* note.com [模型转换脚本](https://note.com/kohya_ss/n/n374f316fe4ad) + +## Windows环境所需程序 + +需要Python 3.10.6和Git。 + +- Python 3.10.6: https://www.python.org/ftp/python/3.10.6/python-3.10.6-amd64.exe +- git: https://git-scm.com/download/win + +如果要在PowerShell中使用venv,需要按以下步骤更改安全设置: +(不仅仅是venv,使脚本可以执行。请注意。) + +- 以管理员身份打开PowerShell +- 输入"Set-ExecutionPolicy Unrestricted",选择Y +- 关闭管理员PowerShell + +## 在Windows环境下安装 + +下例中安装的是PyTorch 1.12.1/CUDA 11.6版。如果要使用CUDA 11.3或PyTorch 1.13,请适当修改。 + +(如果只显示"python",请将下例中的"python"改为"py") + +在普通(非管理员)PowerShell中依次执行以下命令: + +```powershell +git clone https://github.com/kohya-ss/sd-scripts.git +cd sd-scripts + +python -m venv venv +.\venv\Scripts\activate + +pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116 +pip install --upgrade -r requirements.txt +pip install -U -I --no-deps https://github.com/C43H66N12O12S2/stable-diffusion-webui/releases/download/f/xformers-0.0.14.dev0-cp310-cp310-win_amd64.whl + +cp .\bitsandbytes_windows\*.dll .\venv\Lib\site-packages\bitsandbytes\ +cp .\bitsandbytes_windows\cextension.py .\venv\Lib\site-packages\bitsandbytes\cextension.py +cp .\bitsandbytes_windows\main.py .\venv\Lib\site-packages\bitsandbytes\cuda_setup\main.py + +accelerate config +``` + +在命令提示符中: + +```bat +git clone https://github.com/kohya-ss/sd-scripts.git +cd sd-scripts + +python -m venv venv +.\venv\Scripts\activate + +pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116 +pip install --upgrade -r requirements.txt +pip install -U -I --no-deps https://github.com/C43H66N12O12S2/stable-diffusion-webui/releases/download/f/xformers-0.0.14.dev0-cp310-cp310-win_amd64.whl + +copy /y .\bitsandbytes_windows\*.dll .\venv\Lib\site-packages\bitsandbytes\ +copy /y .\bitsandbytes_windows\cextension.py .\venv\Lib\site-packages\bitsandbytes\cextension.py +copy /y .\bitsandbytes_windows\main.py .\venv\Lib\site-packages\bitsandbytes\cuda_setup\main.py + +accelerate config +``` + +accelerate config的问题请按以下回答: +(如果要用bf16训练,最后一个问题选择bf16) + +``` +- 此计算机 +- 不进行分布式训练 +- 否 +- 否 +- 否 +- 所有 +- fp16 +``` + +### PyTorch和xformers版本注意事项 + +在其他版本中训练可能失败。如果没有特殊原因,请使用指定版本。 + + +### 可选:使用Lion8bit + +如果要使用Lion8bit,需要将`bitsandbytes`升级到0.38.0以上。首先卸载`bitsandbytes`,然后在Windows中安装适合Windows的whl文件,例如[这里的](https://github.com/jllllll/bitsandbytes-windows-webui)。例如: + +```powershell +pip install https://github.com/jllllll/bitsandbytes-windows-webui/raw/main/bitsandbytes-0.38.1-py3-none-any.whl +``` + +升级时用`pip install .`更新这个仓库,并视情况升级其他包。 + +### 可选:使用PagedAdamW8bit和PagedLion8bit + +如果要使用PagedAdamW8bit和PagedLion8bit,需要将`bitsandbytes`升级到0.39.0以上。首先卸载`bitsandbytes`,然后在Windows中安装适合Windows的whl文件,例如[这里的](https://github.com/jllllll/bitsandbytes-windows-webui)。例如: + +```powershell +pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/download/wheels/bitsandbytes-0.39.1-py3-none-win_amd64.whl +``` + +升级时用`pip install .`更新这个仓库,并视情况升级其他包。 + +## 升级 + +如果有新版本,可以用以下命令更新: + +```powershell +cd sd-scripts +git pull +.\venv\Scripts\activate +pip install --use-pep517 --upgrade -r requirements.txt +``` + +如果命令成功,就可以使用新版本了。 + +## 致谢 + +LoRA实现基于[cloneofsimo的仓库](https://github.com/cloneofsimo/lora)。表示感谢。 + +将Conv2d 3x3扩展到所有层起初由 [cloneofsimo](https://github.com/cloneofsimo/lora) 发布, [KohakuBlueleaf](https://github.com/KohakuBlueleaf/LoCon) 证明了其有效性。深深感谢 KohakuBlueleaf。 + +## 许可 + +脚本遵循 ASL 2.0 许可,但包含其他许可的代码部分(Diffusers和cloneofsimo的仓库)。 + +[Memory Efficient Attention Pytorch](https://github.com/lucidrains/memory-efficient-attention-pytorch): MIT + +[bitsandbytes](https://github.com/TimDettmers/bitsandbytes): MIT + [BLIP](https://github.com/salesforce/BLIP): BSD-3-Clause \ No newline at end of file diff --git a/config_files/accelerate/kohya中文启动器.bat b/config_files/accelerate/kohya中文启动器.bat deleted file mode 100644 index e1f0585..0000000 --- a/config_files/accelerate/kohya中文启动器.bat +++ /dev/null @@ -1,8 +0,0 @@ -@echo off - -call gui.bat --language zh-CN --inbrowser --share --headless - -echo 完成。 - -pause -endlocal diff --git a/requirements.txt b/requirements.txt index ff2c1a9..52110c8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,7 +13,7 @@ huggingface-hub==0.15.1 # for loading Diffusers' SDXL invisible-watermark==0.2.0 lion-pytorch==0.0.6 -lycoris_lora==1.8.3 +lycoris_lora==1.9.0 # for BLIP captioning # requests==2.28.2 # timm==0.6.12 diff --git a/setup/setup_windows.py b/setup/setup_windows.py index 411e83c..ec0084c 100644 --- a/setup/setup_windows.py +++ b/setup/setup_windows.py @@ -98,31 +98,31 @@ def sync_bits_and_bytes_files(): log.error(f'An unexpected error occurred: {e}') -def install_kohya_ss_torch1(): - setup_common.check_repo_version() - setup_common.check_python() +# def install_kohya_ss_torch1(): +# setup_common.check_repo_version() +# setup_common.check_python() - # Upgrade pip if needed - setup_common.install('--upgrade pip') +# # Upgrade pip if needed +# setup_common.install('--upgrade pip') - if setup_common.check_torch() == 2: - input( - f'{YELLOW}\nTorch 2 is already installed in the venv. To install Torch 1 delete the venv and re-run setup.bat\n\nHit enter to continue...{RESET_COLOR}' - ) - return +# if setup_common.check_torch() == 2: +# input( +# f'{YELLOW}\nTorch 2 is already installed in the venv. To install Torch 1 delete the venv and re-run setup.bat\n\nHit enter to continue...{RESET_COLOR}' +# ) +# return - # setup_common.install( - # 'torch==1.12.1+cu116 torchvision==0.13.1+cu116 --index-url https://download.pytorch.org/whl/cu116', - # 'torch torchvision' - # ) - # setup_common.install( - # 'https://github.com/C43H66N12O12S2/stable-diffusion-webui/releases/download/f/xformers-0.0.14.dev0-cp310-cp310-win_amd64.whl -U -I --no-deps', - # 'xformers-0.0.14' - # ) - setup_common.install_requirements('requirements_windows_torch1.txt', check_no_verify_flag=False) - sync_bits_and_bytes_files() - setup_common.configure_accelerate(run_accelerate=True) - # run_cmd(f'accelerate config') +# # setup_common.install( +# # 'torch==1.12.1+cu116 torchvision==0.13.1+cu116 --index-url https://download.pytorch.org/whl/cu116', +# # 'torch torchvision' +# # ) +# # setup_common.install( +# # 'https://github.com/C43H66N12O12S2/stable-diffusion-webui/releases/download/f/xformers-0.0.14.dev0-cp310-cp310-win_amd64.whl -U -I --no-deps', +# # 'xformers-0.0.14' +# # ) +# setup_common.install_requirements('requirements_windows_torch1.txt', check_no_verify_flag=False) +# sync_bits_and_bytes_files() +# setup_common.configure_accelerate(run_accelerate=True) +# # run_cmd(f'accelerate config') def install_kohya_ss_torch2(): @@ -177,23 +177,24 @@ def main_menu(): print('') if choice == '1': - while True: - print('1. Torch 1 (legacy, no longer supported. Will be removed in v21.9.x)') - print('2. Torch 2 (recommended)') - print('3. Cancel') - choice_torch = input('\nEnter your choice: ') - print('') + install_kohya_ss_torch2() + # while True: + # print('1. Torch 1 (legacy, no longer supported. Will be removed in v21.9.x)') + # print('2. Torch 2 (recommended)') + # print('3. Cancel') + # choice_torch = input('\nEnter your choice: ') + # print('') - if choice_torch == '1': - install_kohya_ss_torch1() - break - elif choice_torch == '2': - install_kohya_ss_torch2() - break - elif choice_torch == '3': - break - else: - print('Invalid choice. Please enter a number between 1-3.') + # if choice_torch == '1': + # install_kohya_ss_torch1() + # break + # elif choice_torch == '2': + # install_kohya_ss_torch2() + # break + # elif choice_torch == '3': + # break + # else: + # print('Invalid choice. Please enter a number between 1-3.') elif choice == '2': cudann_install() elif choice == '3': diff --git a/setup/validate_requirements.py b/setup/validate_requirements.py index 9d17ffd..bac2948 100644 --- a/setup/validate_requirements.py +++ b/setup/validate_requirements.py @@ -110,10 +110,7 @@ def main(): if args.requirements: setup_common.install_requirements(args.requirements, check_no_verify_flag=True) else: - if torch_ver == 1: - setup_common.install_requirements('requirements_windows_torch1.txt', check_no_verify_flag=True) - else: - setup_common.install_requirements('requirements_windows_torch2.txt', check_no_verify_flag=True) + setup_common.install_requirements('requirements_windows_torch2.txt', check_no_verify_flag=True) if __name__ == '__main__':