私的AI研究会 > StableDef6

Stable-Diffusion6「自動翻訳を組み合わせる」

 「Stable-Diffusion」のプロンプト入力に翻訳パッケージ「googletrans」を組み込んでみる。

※ 最終更新:2023/01/05 

プロジェクトの準備

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

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

自動翻訳パッケージ「googletrans」

Python で利用できる翻訳パッケージ

翻訳のテスト

エラー「AttributeError: 'NoneType' object has no attribute 'group'」

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_diffusion2.py
    ● Linux
    (py38) $ cd ~/workspace_py38/stable_diffusion
    (py38) $ python3 stable_diffusion2.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_diffusion2.py -h
    usage: stable_diffusion2.py [-h] [--log LOG] [-o OUT_DIR] [--header OUT_HEDER]
                                [--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.
      --header OUT_HEDER    Output file header.
      --model MODEL         model name
      --beta_start BETA_START
                            LMSDiscreteScheduler::beta_start
      --beta_end BETA_END   LMSDiscreteScheduler::beta_end
      --beta_schedule BETA_SCHEDULE
                            LMSDiscreteScheduler::beta_schedule
      --eta ETA             eta
      --tokenizer TOKENIZER
                            tokenizer
    ※ 起動時に表示する画像は前回の最後の結果画像 (ない場合は初期画像)

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

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

  4. 「OK」を押すと処理開始、「Cancel」を押すとパラメータ設定の戻る
    ● 処理を開始すると終了するまで入力は受け付けられない
    ● 処理は数分以上かかる、過程はターミナル・ウインドウに表示する
    (py38) PS > python stable_diffusion2.py 
    Starting..
     - Program title  : Stable Diffusion2 OpenVINO™  Ver 0.01
     - 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
    
     Prompt: Painting, Katsushika Hokusai style
      和訳: 絵画、大学の建物
    
    ** start 0 ** 961583298
    32it [03:40,  6.88s/it]
     -Output-: result_try/output_0961583298.png
    ** end **     00:04:12
    
    Finished.

実行例

Stable-Diffusion 自動実行版 (改訂) 「stable_diffusion_make2.py」

プログラム概要

入力ファイルとプログラムの動作について

入力ファイル・フォーマット

実行手順

  1. コマンドラインから起動する
    ● Windows
    (py38) PS > cd C:\anaconda_win\workspace_py38\stable_diffusion
    (py38) PS > python .\stable_diffusion_make2.py
    ● Linux
    (py38) $ cd ~/workspace_py38/stable_diffusion
    (py38) $ python3 stable_diffusion_make2.py
    ■ コマンドライン引数
    コマンドオプションデフォールト設定意味
    -h, --helpヘルプ表示
    --log3ログ出力レベル (0/1/2/3/4/5)
    -i, --inputinput.csv/処理手順の入力ファイル
    -s, --seedryseed値のリセット(y/n)
    -o, --out処理結果の出力ディレクトリ (指定すれば優先)
    --headerファイル名の接頭語 (指定すれば優先)
    --deviceデバイス CPU/GPU (指定すれば優先)
    --stepStep パラメータ (指定すれば優先)
    --scaleScale パラメータ (指定すれば優先)
    --strengthStrength パラメータ (指定すれば優先)
    --loopLoop パラメータ (指定すれば優先)
    --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_make2.py -h
    usage: stable_diffusion_make2.py [-h] [-i INPUT_PATH] [-s SEED_RESET]
                                     [--log LOG] [-o OUT_DIR] [--header OUT_HEDER]
                                     [--device DEVICE] [--step STEP]
                                     [--scale SCALE] [--strength STRENGTH]
                                     [--loop LOOP] [--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'
      -o OUT_DIR, --out OUT_DIR
                            Output directory path.
      --header OUT_HEDER    Output file header.
      --device DEVICE       Specify a target device to infer on. CPU, GPU, FPGA,
                            HDDL or MYRIAD.
      --step STEP           Steps
      --scale SCALE         Guidance Scale
      --strength STRENGTH   Strengh
      --loop LOOP           Loop counter.
      --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'

実行例

サイト 「Stable Diffusionのprompt・呪文の書き方」 「未来の仮想都市」のプロンプトのバリエーションを試してみる

ソースコード

 

更新履歴

参考資料

 

Last-modified: 2023-01-05 (木) 20:07:02