私的AI研究会 > ProjectEnv1

画像生成 プロジェクト環境構築(Linux編)

 「画像生成AI Stable-Diffusion」プロジェクトを実行できる環境を新しく作成する手順

※ 最終更新:2023/12/11 

Anaconda のインストールと設定

推奨動作環境

OS (ubuntu20.04LTS) インストール直後の環境設定

anaconda のダウンロードとインストール

  1. オフィシャルサイト https://www.anaconda.com/products/distribution にアクセス

     ● 画面の「Download」ボタン(赤丸)を押してダウンロード

     ● ダウンロード・ファイル名(2023/03/22 現在)
      Anaconda3-2022.10-Linux-x86_64.sh

  2. ダウンロードファイル「Anaconda3-2022.10-Linux-x86_64.sh」を実行する
    $ cd ダウンロード
    $ bash Anaconda3-2022.10-Linux-x86_64.sh
    
    Welcome to Anaconda3 2022.10
    
    In order to continue the installation process, please review the license
    agreement.
    Please, press ENTER to continue
    >>>          ← Enter入力
        :
    installation finished.
    Do you wish the installer to initialize Anaconda3
    by running conda init? [yes|no]
    [no] >>> yes      ← yes入力
        :
    DataSpell for Anaconda is available at: https://www.anaconda.com/dataspell
  3. ターミナルを再起動
    (base) $
  4. Anaconda の更新
    (base) $ conda update -n base -c defaults conda
    Collecting package metadata (current_repodata.json): done
    Solving environment: done
        :
    Proceed ([y]/n)? y  ← y入力
        :
    Executing transaction: done
    Retrieving notices: ...working... done

「Stable-diffusion」プロジェクトの構築

Anaconda 仮想環境の作成

  1. 新しく仮想環境を作成する
    (base) $ conda create -n py38 python=3.8
  2. できた仮想環境の確認
    (base) $ conda info -e
    # conda environments:
    #
    base                  *  /home/XXXXX/anaconda3
    py38                     /home/XXXXX/anaconda3/envs/py38
    
    (base) $ conda activate py38
    (py38) $                ← (py38) に切り替わっていることを確認する
  3. Anaconda をインストール後ターミナルを起動すると (base) 仮想環境となる。仮想環境を起動しない設定にする
    $ conda config --set auto_activate_base False
  4. ターミナルを再起動し (base)とならないことを確認~
    $ conda info -e
    # conda environments:
    #
    base                     /home/mizutu/anaconda3
    py38                     /home/mizutu/anaconda3/envs/py38

ターミナル起動時の環境設定

  1. アプリケーションの実行時に便利なようにターミナル起動スクリプトを作成する
    環境変数 PYTHONPATH も追加しておく
    $ vi anaconda3_setup_py38.sh
    
    #!/bin/sh
    
    echo [anaconda3_setup_py38.sh] Anaconda3 environment initialized
    source ~/anaconda3/etc/profile.d/conda.sh
    
    echo "conda activate py38"
    echo " Exit >> 'conda deactivate'"
    conda activate py38
    
    export PYTHONPATH=$PYTHONPATH:$HOME/workspace_py37/mylib
  2. スクリプトに実行権限を付加する
    $ chmod u+x anaconda3_setup_py38.sh
  3. 「~/.bashrc」ファイルの最後に「source anaconda3_setup.sh」と追記しておく
    $ vi .bashrc
            :
    # >>> conda initialize >>>
    # !! Contents within this block are managed by 'conda init' !!
    __conda_setup="$('/home/mizutu/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
    if [ $? -eq 0 ]; then
        eval "$__conda_setup"
    else
        if [ -f "/home/mizutu/anaconda3/etc/profile.d/conda.sh" ]; then
            . "/home/mizutu/anaconda3/etc/profile.d/conda.sh"
        else
            export PATH="/home/mizutu/anaconda3/bin:$PATH"
        fi
    fi
    unset __conda_setup
    # <<< conda initialize <<<
    
    source $HOME/anaconda3_setup_py38.sh
  4. ターミナルを再起動して環境を確認
    [anaconda3_setup_py38.sh] Anaconda3 environment initialized
    conda activate py38
     Exit >> 'conda deactivate'
    (py38) $ which python
    /home/XXXXX/anaconda3/envs/py38/bin/python
    (py38) $ which pip
    /home/XXXXX/anaconda3/envs/py38/bin/pip
    (py38) $ which conda
    /home/XXXXX/anaconda3/condabin/conda
    (py38) $ printenv PYTHONPATH
    :/home/XXXXX/workspace_py37/mylib

画像生成「Stable-diffusion」パッケージの配置

  1. プロジェクト・ファイルのダウンロード
    AI_project_20230203.zip (55.9MB) <Stable-deffusion プロジェクト一式> をダウンロード
  2. 「AI_project」フォルダ内をすべて「home」ディレクトリ直下に配置する
    プロジェクト・ディレクトリ
    ~/
    ├─workspace_py37
    │  ├─mylib             ← python 共有ライブラリ (パスが通っていること)
    │  └─openvino
    └─workspace_py38        ← anaconda 環境下のアプリケーション・プロジェクト
        ├─googletrans
        └─stable_diffusion
  3. 「Stable-diffusion」パッケージのインストール
    (py38) $ cd ~/workspace_py38/stable_diffusion/
    (py38) $ python -m pip install --upgrade pip
    (py38) $ pip install openvino==2022.1.0
    (py38) $ pip install -r requirements.txt

「Stable-diffusion」動作確認

自動翻訳パッケージ「googletrans」インストール

「googletrans」の動作確認

「画像生成AI Stable-Diffusion」

GUI で画像を生成する「stable_diffusion2.py」

  1. ターミナルを起動する
    GUI ウインドウが左側に表示されるので重ならないように、表示されたターミナルウインドウをデスクトップの右に寄せる

  2. ターミナルウインドウからコマンド入力
    (py38) $ cd ~/workspace_py38/stable_diffusion
    (py38) $ python stable_diffusion2.py
    Starting..
    [Errno 2] No such file or directory: 'setting.csv'
     - Program title  : Stable Diffusion2 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
  3. 各パラメータを入力後「Generate」ボタンを押すと現在の設定内容を表示して スタート確認メッセージを表示する
  4. 「OK」を押すと処理開始する ● 処理を開始すると終了するまで入力は受け付けられない
    ● 処理は数分以上かかる、過程はターミナル・ウインドウに表示する
     Prompt: Beautiful green forest where light shines
     (和訳): 光が輝く美しい緑の森
    
    ** start 0 ** 834937033
    32it [08:23, 15.74s/it]
     -Output-: result/output_0834937033.png
    ** end **     00:09:07
  5. 数分~数十分の作成時間経過後に結果画像が表示される
  6. 続けて画像生成をp粉うことができる「Exit」を押すとプログラムを終了する
    Finished.

自動実行で複数画像を生成する「stable_diffusion_make2.py」

  1. ターミナルウインドウからコマンド入力
    CSVファイル(デフォールト・ファイル名「input.csv」)の記述に従って自動的に画像を生成する
    (py38) $ cd ~/workspace_py38/stable_diffusion
    (py38) $ python stable_diffusion_make2.py
    Starting..
     - Program title  : Stable Diffusion OpenVINO™ auto making 2 Ver 0.01
     - OpenVINO engine: 2022.1.0-7019-cdb9bec7210-releases/2022/1
     - OpenCV version : 4.5.5
     - Input file     : input.csv
     - Seed reset     : y
     - Log level      : 3
     - 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
    
     Prompt: Street-art painting of Tom Cruise in style of Gogh, photorealism
     (和訳): ゴッホのスタイルでのトムクルーズのストリートアートペインティング、フォトリアリズム
    
    ** start 0 - 0 ** 3422673869
    32it [08:13, 15.43s/it]
    ** end **     00:09:00
    
     Prompt: Street-art painting of Tom Cruise in style of Gogh, photorealism
     (和訳): ゴッホのスタイルでのトムクルーズのストリートアートペインティング、フォトリアリズム
    
    ** start 1 - 0 ** 1695384802
    32it [08:17, 15.55s/it]
    ** end **     00:08:58
    
    Finished.

更新履歴

参考資料

 

Last-modified: 2023-12-11 (月) 09:36:11