私的AI研究会 > StableDef2

Stable-Diffusion2「GUI を作る」

 画像生成AI「Stable-Diffusion」の入力パラメータを調べて GUIインターフェースを作成する

※ 最終更新:2022/12/31 

プロジェクトの準備

アップデートファイルのダウンロードと配置

 ※ ファイルを配置する前にあらかじめ「workspace_py38/」直下にある「stable_diffusion/」フォルダを削除しておくこと

 ※ workspace_py37/mylib 内に「PySimpleGUI パッケージ (PySimpleGUI.py)」を確認する

Stable-Diffusion GUI版 「stable_diffusion.py」

この項目更新、最新情報Stable-Diffusion GUI版 (改訂) 「stable_diffusion2.py」

プログラム概要

 ※ GUIウインドウからの終了は「Exit」または「X」ボタンによるが、画像作成中はターミナル・ウインドウで「CTRL+C」を押す

生成される画像について

実行手順

  1. コマンドラインから起動する
    ● Windows
    (py38) PS > cd C:\anaconda_win\workspace_py38\stable_diffusion
    (py38) PS > python .\stable_diffusion.py
    ● Linux
    (py38) $ cd ~/workspace_py38/stable_diffusion
    (py38) $ python3 stable_diffusion.py
    ■ コマンドライン引数
    コマンドオプションデフォールト設定意味
    -h, --helpヘルプ表示
    --log3ログ出力レベル (0/1/2/3/4/5)
    -o, --outresult/処理結果の出力ディレクトリ
    --headeroutput_ファイル名の接頭語
    --modelbes-dev/stable-diffusion-v1-4-openvinomodel name (通常デフォールト値で使用)
    --beta_start0.00085LMSDiscreteScheduler::beta_start (通常デフォールト値で使用)
    --beta_end0.012LMSDiscreteScheduler::beta_end (通常デフォールト値で使用)
    --beta_schedulescaled_linearLMSDiscreteScheduler::beta_schedule (通常デフォールト値で使用)
    --eta0.0eta (通常デフォールト値で使用)
    --tokenizeropenai/clip-vit-large-patch14tokenizer (通常デフォールト値で使用)
    (py38) PS > python .\stable_diffusion.py -h
    usage: stable_diffusion.py [-h] [--log LOG] [-o OUT_DIR] [--model MODEL]
                               [--beta_start BETA_START] [--beta_end BETA_END]
                               [--beta_schedule BETA_SCHEDULE] [--eta ETA]
                               [--tokenizer TOKENIZER]
    
    optional arguments:
      -h, --help            show this help message and exit
      --log LOG             Log level(-1/0/1/2/3/4/5) Default value is '3'
      -o OUT_DIR, --out OUT_DIR
                            Output directory path. Default value is 'result/''
      --header OUT_HEDER    Output file header. Default value is 'output_''
      --model MODEL         model name Default value is 'bes-dev/stable-
                            diffusion-v1-4-openvino'
      --beta_start BETA_START
                            LMSDiscreteScheduler::beta_start Default value is
                            0.00085
      --beta_end BETA_END   LMSDiscreteScheduler::beta_end Default value is 0.012
      --beta_schedule BETA_SCHEDULE
                            LMSDiscreteScheduler::beta_schedule Default value is
                            'scaled_linear'
      --eta ETA             eta Default value is 0.0
      --tokenizer TOKENIZER
                            tokenizer Default value is 'openai/clip-vit-large-
                            patch14'
    ※ 起動時に表示する画像は前回の最後の結果画像

  2. 各パラメータを入力後「Generate」ボタンを押す

  3. 現在の設定内容を表示して スタート確認メッセージを表示

  4. 「OK」を押すと処理開始、「Cancel」を押すとパラメータ設定の戻る
    ● 処理を開始すると終了するまで入力は受け付けられない
    ● 処理は数分以上かかる、過程はターミナル・ウインドウに表示する
    (py38) PS > python .\stable_diffusion.py
     - Program title  : Stable Diffusion OpenVINO™  Ver 0.02
     - OpenVINO engine: 2022.1.0-7019-cdb9bec7210-releases/2022/1
     - OpenCV version : 4.5.5
     - Log level      : 3
     - Output dir     : result/
     - Output header  : output_
     - model          : bes-dev/stable-diffusion-v1-4-openvino
     - beta_start     : 0.00085
     - beta_end       : 0.012
     - beta_schedule  : scaled_linear
     - eta            : 0.0
     - tokenizer      : openai/clip-vit-large-patch14
        :
    Finished.

実行例

パラメータの概要 ※ この項目は後述のサイトからの引用・要約です

 ※1 引用サイト → 【Stable Diffusion】modifiers 修飾子初心者ガイド1
 ※2 引用サイト → Stable Diffusion OpenVINOでIntel CPUでもAIに画像を生成してもらう
 ※3 引用サイト → Stable Diffusionの呪文 promptとは - ブルータスおまえモカ?
          Stable Diffusionにおける呪文についての詳細と呪文ルール、イメージに近いイラストを生成するコツなどを解説

 

Stable-Diffusion 自動実行版 「stable_diffusion_make.py」

この項目更新、最新情報Stable-Diffusion 自動実行版 (改訂) 「stable_diffusion_make2.py」

プログラム概要

入力ファイルのフォーマットとプログラムの動作について

実行手順

  1. コマンドラインから起動する
    ● Windows
    (py38) PS > cd C:\anaconda_win\workspace_py38\stable_diffusion
    (py38) PS > python .\stable_diffusion_make.py
    ● Linux
    (py38) $ cd ~/workspace_py38/stable_diffusion
    (py38) $ python3 stable_diffusion_make.py
    ■ コマンドライン引数
    コマンドオプションデフォールト設定意味
    -h, --helpヘルプ表示
    --log3ログ出力レベル (0/1/2/3/4/5)
    -i, --inputinput.csv/処理手順の入力ファイル
    -s, --seedryseed値のリセット(y/n)
    --modelbes-dev/stable-diffusion-v1-4-openvinomodel name (通常デフォールト値で使用)
    --beta_start0.00085LMSDiscreteScheduler::beta_start (通常デフォールト値で使用)
    --beta_end0.012LMSDiscreteScheduler::beta_end (通常デフォールト値で使用)
    --beta_schedulescaled_linearLMSDiscreteScheduler::beta_schedule (通常デフォールト値で使用)
    --eta0.0eta (通常デフォールト値で使用)
    --tokenizeropenai/clip-vit-large-patch14tokenizer (通常デフォールト値で使用)
    (py38) PS > python .\stable_diffusion_make.py -h
    usage: stable_diffusion_make.py [-h] [-i INPUT_PATH] [-s SEED_RESET]
                                    [--log LOG] [--model MODEL]
                                    [--beta_start BETA_START]
                                    [--beta_end BETA_END]
                                    [--beta_schedule BETA_SCHEDULE] [--eta ETA]
                                    [--tokenizer TOKENIZER]
    
    optional arguments:
      -h, --help            show this help message and exit
      -i INPUT_PATH, --input INPUT_PATH
                            Absolute path to image file. Default value is
                            'input.csv'
      -s SEED_RESET, --seedr SEED_RESET
                            Seed reset flag (y/n). Default value is 'y'
      --log LOG             Log level(-1/0/1/2/3/4/5) Default value is '3'
      --model MODEL         model name Default value is 'bes-dev/stable-
                            diffusion-v1-4-openvino'
      --beta_start BETA_START
                            LMSDiscreteScheduler::beta_start Default value is
                            0.00085
      --beta_end BETA_END   LMSDiscreteScheduler::beta_end Default value is 0.012
      --beta_schedule BETA_SCHEDULE
                            LMSDiscreteScheduler::beta_schedule Default value is
                            'scaled_linear'
      --eta ETA             eta Default value is 0.0
      --tokenizer TOKENIZER
                            tokenizer Default value is 'openai/clip-vit-large-
                            patch14'

実行例

ソースコード

 

更新履歴

参考資料

 

Last-modified: 2022-12-31 (土) 09:34:36