Coder Social home page Coder Social logo

ai-assistant's Introduction

日本語 | EN | 中文

AI-Assistant

stable-diffusion-webui-forge をバックエンドに組み込んだ、お絵描き補助AIのGUIアプリです。 01

起動方法

exeファイル

exeファイルをそのままダブルクリックで起動できます。

以下の引数を指定することで、起動時の言語を指定できます。

AI_Assistant.exe --lang=jp
AI_Assistant.exe --lang=en
AI_Assistant.exe --lang=zh_CN

さらに引数を追加することで、Stable Diffusion Web UIに対するオプションを追加できます(上級者向け) デフォルトではこのように指定されています。 AI_Assistant.exe --lang=ja --nowebui --xformers --skip-python-version-check --skip-torch-cuda-test --skip-torch-cuda-test

また、以下の引数を追加することで拡張UIを表示できます(現在、i2iタブでLoRAを読み込めるようになりました)

--exui

わかっている人向け

以下のようなbatファイルを実行することで、引数を簡単に指定できます。
AI_Assistant.bat

@echo off
start /d "%~dp0" AI_Assistant.exe --nowebui --xformers --skip-python-version-check --skip-torch-cuda-test --exui

AI_Assistant_lowVRAM.bat

@echo off
start /d "%~dp0" AI_Assistant.exe --nowebui --xformers --skip-python-version-check --skip-torch-cuda-test --unet-in-fp8-e4m3fn

開発者向け

ビルド設定を行った上で、python AI_Assistant.pyを実行してください。

ビルド設定(開発者向け)

python 3.10.xで開発されています。 webui-forgeのライブラリを使用しているため、ビルド時にはバージョンを合わせた上で以下の手順が必要です。

①AI_Assistant_install.ps1を実行してインストール
②セキュリティーソフトの設定で、フォルダと実行ファイル名を除外リストに追加する。
例:Windows Defenderの場合、Windows セキュリティ→ウイルスと脅威の防止→ウイルスと脅威の防止の設定→設定の管理→除外
AI_Assistant.exe(プロセス)
C:\AI_Assistant(フォルダ)
のように指定する。

実行ファイル生成

venv.cmdを実行し、以下のコマンドを入力

pyinstaller "AI_Assistant.py" ^
--clean ^
--copy-metadata rich ^
--add-data "javascript;.\javascript" ^
--add-data "ldm_patched;.\ldm_patched" ^
--add-data "localizations;.\localizations" ^
--add-data "modules;.\modules" ^
--add-data "modules_forge;.\modules_forge" ^
--add-data "repositories;.\repositories" ^
--add-data "cache.json;." ^
--add-data "script.js;." ^
--add-data "ui-config.json;." ^
--add-data "config_states;.\config_states" ^
--add-data "configs;.\configs" ^
--add-data "extensions-builtin;.\extensions-builtin" ^
--add-data "html;.\html"

xcopy /E /I /Y venv\Lib\site-packages\xformers dist\AI_Assistant\_internal\xformers
xcopy /E /I /Y venv\Lib\site-packages\pytorch_lightning dist\AI_Assistant\_internal\pytorch_lightning
xcopy /E /I /Y venv\Lib\site-packages\lightning_fabric dist\AI_Assistant\_internal\lightning_fabric
xcopy /E /I /Y venv\Lib\site-packages\gradio dist\AI_Assistant\_internal\gradio
xcopy /E /I /Y venv\Lib\site-packages\gradio_client dist\AI_Assistant\_internal\gradio_client
xcopy /E /I /Y venv\Lib\site-packages\kornia dist\AI_Assistant\_internal\kornia
xcopy /E /I /Y venv\Lib\site-packages\open_clip dist\AI_Assistant\_internal\open_clip
xcopy /E /I /Y venv\Lib\site-packages\jsonmerge dist\AI_Assistant\_internal\jsonmerge
xcopy /E /I /Y venv\Lib\site-packages\torchdiffeq dist\AI_Assistant\_internal\torchdiffeq
xcopy /E /I /Y venv\Lib\site-packages\cleanfid dist\AI_Assistant\_internal\cleanfid
xcopy /E /I /Y venv\Lib\site-packages\clip dist\AI_Assistant\_internal\clip
xcopy /E /I /Y venv\Lib\site-packages\resize_right dist\AI_Assistant\_internal\resize_right
xcopy /E /I /Y venv\Lib\site-packages\diffusers dist\AI_Assistant\_internal\diffusers
xcopy /E /I /Y venv\Lib\site-packages\onnx dist\AI_Assistant\_internal\onnx
xcopy /E /I /Y venv\Lib\site-packages\onnxruntime dist\AI_Assistant\_internal\onnxruntime
xcopy /E /I /Y venv\Lib\site-packages\scipy dist\AI_Assistant\_internal\scipy
xcopy /E /I /Y config_states dist\AI_Assistant\config_states
xcopy /E /I /Y configs dist\AI_Assistant\configs
xcopy /E /I /Y embeddings dist\AI_Assistant\embeddings
xcopy /E /I /Y extensions-builtin dist\AI_Assistant\extensions-builtin
xcopy /E /I /Y html dist\AI_Assistant\html
xcopy /E /I /Y javascript dist\AI_Assistant\javascript
xcopy /E /I /Y ldm_patched dist\AI_Assistant\ldm_patched
xcopy /E /I /Y localizations dist\AI_Assistant\localizations
xcopy /E /I /Y modules dist\AI_Assistant\modules
xcopy /E /I /Y modules_forge dist\AI_Assistant\modules_forge
xcopy /E /I /Y repositories dist\AI_Assistant\repositories
xcopy /E /I /Y scripts dist\AI_Assistant\scripts
xcopy /E /I /Y languages dist\AI_Assistant\languages
copy script.js dist\AI_Assistant\script.js
copy AI_Assistant_model_DL.cmd dist\AI_Assistant\AI_Assistant_model_DL.cmd
copy AI_Assistant_ReadMe.txt dist\AI_Assistant\AI_Assistant_ReadMe.txt
copy AI_Assistant_exUI.bat dist\AI_Assistant\AI_Assistant_exUI.bat
copy LICENSE.txt dist\AI_Assistant\LICENSE.txt

ai-assistant's People

Contributors

tori29umai0123 avatar jtydhr88 avatar sotokisehiro avatar

Stargazers

爱可可-爱生活 avatar toyxyz avatar  avatar Shika Sensei avatar JT5D avatar Takuma Nobuto avatar Nick Kao avatar Shotaro Tao avatar Rumia_Chnnel avatar achiral avatar Straughter "BatmanOsama" Guthrie avatar kokuren avatar qingqing.tang avatar JackEllie avatar  avatar  avatar simorgh3196 avatar  avatar calloc134 avatar k_takayama avatar  avatar Sani avatar  avatar  avatar  avatar May Kirihara avatar  avatar TsutomuN avatar Kazuki Hosone avatar wuyangfeng avatar kiihi avatar 水音 凪 avatar  avatar Maruhi avatar  avatar  avatar msy. avatar Sailean514 avatar uehara avatar Synonym avatar  avatar  avatar  avatar  avatar Nobuyuki Kobayashi avatar MARUMO avatar  avatar Krtolica Vujadin avatar Aaron Fang avatar Cless Lee avatar  avatar NiAka avatar  avatar  avatar  avatar reyman avatar chromabox avatar  avatar n.kanno avatar  avatar totikuma avatar

Watchers

Nobuyuki Kobayashi avatar Kostas Georgiou avatar  avatar  avatar  avatar

ai-assistant's Issues

unable to select image: tkinter.TclError: can't invoke "canvas" command: application has been destroyed

Hi,
I tried both source and bundle (from https://note.com/tori29umai/n/n7dfbff92be6a?sub_rt=share_h), neither to allow me to select image
Env:

  • Windows 10.
  • Python 3.10.
  • 3090
  • cuda 12.1

Bundle version:

  1. run AI_Assistant.exe directly, and get the UI, and click
    image

  2. then the whole windows is blur, and could not select image
    image

  3. python console throws:Unhandled exception in listener callback

Traceback (most recent call last):
  File "pynput\_util\__init__.py", line 228, in inner
  File "pynput\_util\win32.py", line 390, in _handler
  File "pynput\mouse\_win32.py", line 212, in _handle
  File "pynput\_util\__init__.py", line 144, in inner
  File "utils\capture.py", line 33, in on_click
  File "tkinter\__init__.py", line 2763, in __init__
  File "tkinter\__init__.py", line 2647, in __init__
_tkinter.TclError: can't invoke "canvas" command: application has been destroyed

Source version:

  1. clone and setup local python env.
  2. run python AI_Assistant.py
  3. get the UI, and click the button as well
  4. the same error, the whole window is blur and the python throws unable to select image: tkinter.TclError: can't invoke "canvas" command: application has been destroyed

I assume I am missing something needs to be installed on my local.

AI_Assistantが実行できないという問題について

ご公開ありがとうございます!凄いアプリだと思います。
早速インストールしてみたのですが、AI_Assistantを実行するたびにプロセスが壊れてヴィンドスが消えてしまうことになります。
ちなみに、解凍はちゃんと7zipで実行して、Windows Defenderの除外リストもアプリが保存しているファイルを追加しているので、こちらの問題ではないかと思いますが。

色見本でエラー

File "AI_Assistant_modules\actions\color_scheme.py", line 53, in _process
UnboundLocalError: cannot access local variable 'base_pil' where it is not associated with a value
INFO: 127.0.0.1:50685 - "POST /api/predict HTTP/1.1" 500 Internal Server Error
INFO: connection closed
INFO: 127.0.0.1:50685 - "POST /reset HTTP/1.1" 200 OK

線画化実施時にエラーがでて入力線画が参照されない

素晴らしいアプリをありがとうございます。
6/17の全体公開時にNoteのリンクに記載のあるGoogleドライブからDLした際は画像サイズが変わってしまう以外は正しく動作していたのですが、こちらの ポストをみてGoogleドライブから落とし直して更新した所、線画化の実施時にエラーを出しながら生成を続行し、結果、入力画像が参考にされていないような出力をするようになってしまいました。
おま環の可能性はあるのですが、念の為報告しておきます。
線画化実行時のログは以下になります。
実行環境はWindows11・RTX3060TIの8GBで、AI_Assistant_lowVRAM.batから起動していました。

2024-06-22 21:23:09,179 - ControlNet - INFO - ControlNet Input Mode: InputMode.SIMPLE
2024-06-22 21:23:09,181 - ControlNet - INFO - Using preprocessor: None
2024-06-22 21:23:09,181 - ControlNet - INFO - preprocessor resolution = 896
*** Error running process: E:\AI_Assistant_V3\AI_Assistant\extensions-builtin\sd_forge_controlnet\scripts\controlnet.py
    Traceback (most recent call last):
      File "modules\scripts.py", line 803, in process
        script.process(p, *script_args)
      File "torch\utils\_contextlib.py", line 115, in decorate_context
        return func(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^
      File "E:\AI_Assistant_V3\AI_Assistant\extensions-builtin\sd_forge_controlnet\scripts\controlnet.py", line 548, in process
        self.process_unit_after_click_generate(p, unit, params, *args, **kwargs)
      File "torch\utils\_contextlib.py", line 115, in decorate_context
        return func(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^
      File "E:\AI_Assistant_V3\AI_Assistant\extensions-builtin\sd_forge_controlnet\scripts\controlnet.py", line 406, in process_unit_after_click_generate
        model_filename = global_state.get_controlnet_filename(unit.model)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "E:\AI_Assistant_V3\AI_Assistant\extensions-builtin\sd_forge_controlnet\lib_controlnet\global_state.py", line 75, in get_controlnet_filename
        return controlnet_filename_dict[controlnet_name]
               ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
    KeyError: 'control-lora-canny-rank256 [ec2dbbe4]'

---
activating extra network lora with arguments [<modules.extra_networks.ExtraNetworkParams object at 0x0000021581148650>, <modules.extra_networks.ExtraNetworkParams object at 0x0000021581148950>]: AttributeError
Traceback (most recent call last):
  File "E:\AI_Assistant_V3\AI_Assistant\extensions-builtin\Lora\networks.py", line 56, in load_networks
    net = load_network(name, network_on_disk)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\AI_Assistant_V3\AI_Assistant\extensions-builtin\Lora\networks.py", line 31, in load_network
    net.mtime = os.path.getmtime(network_on_disk.filename)
                                 ^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'filename'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "modules\extra_networks.py", line 135, in activate
    extra_network.activate(p, extra_network_args)
  File "E:\AI_Assistant_V3\AI_Assistant\extensions-builtin\Lora\extra_networks_lora.py", line 43, in activate
    networks.load_networks(names, te_multipliers, unet_multipliers, dyn_dims)
  File "E:\AI_Assistant_V3\AI_Assistant\extensions-builtin\Lora\networks.py", line 58, in load_networks
    errors.display(e, f"loading network {network_on_disk.filename}")
                                         ^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'filename'

*** Error running process_before_every_sampling: E:\AI_Assistant_V3\AI_Assistant\extensions-builtin\sd_forge_controlnet\scripts\controlnet.py
    Traceback (most recent call last):
      File "modules\scripts.py", line 835, in process_before_every_sampling
        script.process_before_every_sampling(p, *script_args, **kwargs)
      File "torch\utils\_contextlib.py", line 115, in decorate_context
        return func(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^
      File "E:\AI_Assistant_V3\AI_Assistant\extensions-builtin\sd_forge_controlnet\scripts\controlnet.py", line 555, in process_before_every_sampling
        self.process_unit_before_every_sampling(p, unit, self.current_params[i], *args, **kwargs)
                                                         ~~~~~~~~~~~~~~~~~~~^^^
    KeyError: 0

---
To load target model SDXL
Begin to load 1 model
[Memory Management] Current Free GPU Memory (MB) =  7072.291015625
[Memory Management] Model Memory (MB) =  4897.086494445801
[Memory Management] Minimal Inference Memory (MB) =  1024.0
[Memory Management] Estimated Remaining GPU Memory (MB) =  1151.2045211791992
Moving model(s) has taken 1.06 seconds
100%|██████████████████████████████████████████████████████████████████████████████████| 20/20 [00:11<00:00,  1.79it/s]
To load target model AutoencoderKL█████████████████████████████████████████████████████| 20/20 [00:10<00:00,  1.79it/s]
Begin to load 1 model
[Memory Management] Current Free GPU Memory (MB) =  7071.552734375
[Memory Management] Model Memory (MB) =  159.55708122253418
[Memory Management] Minimal Inference Memory (MB) =  1024.0
[Memory Management] Estimated Remaining GPU Memory (MB) =  5887.995653152466
Moving model(s) has taken 0.92 seconds
*** Error running postprocess_batch_list: E:\AI_Assistant_V3\AI_Assistant\extensions-builtin\sd_forge_controlnet\scripts\controlnet.py
    Traceback (most recent call last):
      File "modules\scripts.py", line 859, in postprocess_batch_list
        script.postprocess_batch_list(p, pp, *script_args, **kwargs)
      File "torch\utils\_contextlib.py", line 115, in decorate_context
        return func(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^
      File "E:\AI_Assistant_V3\AI_Assistant\extensions-builtin\sd_forge_controlnet\scripts\controlnet.py", line 561, in postprocess_batch_list
        self.process_unit_after_every_sampling(p, unit, self.current_params[i], pp, *args, **kwargs)
                                                        ~~~~~~~~~~~~~~~~~~~^^^
    KeyError: 0

---
Total progress: 100%|██████████████████████████████████████████████████████████████████| 20/20 [00:12<00:00,  1.66it/s]
INFO:     127.0.0.1:63998 - "POST /sdapi/v1/img2img HTTP/1.1" 200 OK███████████████████| 20/20 [00:12<00:00,  1.79it/s]
INFO:     127.0.0.1:64000 - "POST /sdapi/v1/png-info HTTP/1.1" 200 OK
Downloaded E:\AI_Assistant_V3\AI_Assistant\output\2024-06-22_21-23-09.png to local
INFO:     127.0.0.1:63997 - "POST /api/predict HTTP/1.1" 200 OK
INFO:     connection closed
INFO:     127.0.0.1:63997 - "POST /reset HTTP/1.1" 200 OK
INFO:     ('127.0.0.1', 64001) - "WebSocket /queue/join" [accepted]
INFO:     connection open
INFO:     ('127.0.0.1', 64002) - "WebSocket /queue/join" [accepted]
INFO:     connection open
INFO:     ('127.0.0.1', 64003) - "WebSocket /queue/join" [accepted]
INFO:     connection open
INFO:     127.0.0.1:63997 - "POST /api/predict HTTP/1.1" 200 OK
INFO:     connection closed
INFO:     127.0.0.1:63997 - "POST /reset HTTP/1.1" 200 OK
INFO:     127.0.0.1:63997 - "POST /api/predict HTTP/1.1" 200 OK
INFO:     connection closed
INFO:     127.0.0.1:63997 - "POST /reset HTTP/1.1" 200 OK
INFO:     127.0.0.1:63997 - "POST /api/predict HTTP/1.1" 200 OK
INFO:     connection closed
INFO:     127.0.0.1:63997 - "POST /reset HTTP/1.1" 200 OK

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.