投稿者: media

  • Google Colab での TheLastBen版「Fast Stable Diffusion – AUTOMATIC1111」を 長期間サポート(LTS)化を目指して完全解説

    AICU AIDX Labの しらいはかせ です。

    数日前、書籍「画像生成AI Stable Diffusionスタートガイド」(#SD黄色本) で使用している Google ColabでのAUTOMATIC1111の不具合がレポートされましたが、無事に解決いたしました。
    とき同じくしてAUTOMATIC1111 v1.10.x がリリースされましたので、組み込んでおきました。

    Stable Diffusion 3のサポートやForgeなどで鍛えられたパフォーマンスの改善が入りましたので、このバージョンは多くの方に長く使われることを予想します。

    一方で「今後もAUTOMATIC1111は進化し続けるのだろうか」という疑問と不安をお持ちの方もいらっしゃると思います。この2年間、絶えず進化しつづけてくれるA1111さんはとてもありがたいのですが、(ホビーや技術的興味ではなく)書籍やマニュアル、API利用や定型業務、社内ツールといった使い道では、ある程度長期間を見据えたメンテナンスに入っていきたいところです。

    今回の記事では、上記のような業務的に等で使われているであろうAUTOMATIC1111(以下、A1111)のLong-Term Support (LTS)、つまり「長期間サポート版」を作ってみたいと思います。

    LTS化の基本方針

    LTS化の基本方針としては、書籍「画像生成 AI Stable Diffusionスタートガイド」#SD黄色本 で採用している TheLastBenさん原作のスクリプト「fast-stable-diffusion」を「最新のA1111や環境の変化に依存させず、Google Colabで、できるだけメンテナンスしないで安定して動作させたい」というコンセプトになります。

    ただし、セキュリティなどの対応や、メンテナンス項目が増えたり、ユーザーへの負担や説明が多くなる方向にはしません。
    また既存の配布済みコードを解説しながら、できるだけ少ない変更箇所で説明できるようにします。

    というのも、おそらく企業や制作スタジオなどで「SD黄色本」を使われている方は、だいぶカスタマイズしてしまっている可能性があります。今回は微細な修正だけでLTS化を図っていきたいと思います。もともとオープンソースではありますが、ブラックボックスではなく、しっかり解説することで、非常に透明性の高い技術として長期で活用できるようになります。
    https://ja.aicu.ai/sbxl/

    まず書籍内で紹介しているベースになるスクリプトはこちら。

    Install/Update AUTOMATIC1111 repo

    Install/Update AUTOMATIC1111 repo のセクションに手を入れます。

    完成品(これをそのままセルに貼り付けでOK)

    #@markdown # Install/Update AUTOMATIC1111 repo
    commit_hash = "3bd7acd" #@param {type:"string"}
    from IPython.utils import capture
    from IPython.display import clear_output
    from subprocess import getoutput
    import ipywidgets as widgets
    import sys
    import fileinput
    import os
    import time
    import base64
    
    
    import requests
    from urllib.request import urlopen, Request
    from urllib.parse import urlparse, parse_qs, unquote
    from tqdm import tqdm
    import six
    
    
    blsaphemy=base64.b64decode(("ZWJ1aQ==").encode('ascii')).decode('ascii')
    
    if not os.path.exists("/content/gdrive"):
      print('[1;31mGdrive not connected, using temporary colab storage ...')
      time.sleep(4)
      mainpth="MyDrive"
      !mkdir -p /content/gdrive/$mainpth
      Shared_Drive=""
    
    if Shared_Drive!="" and not os.path.exists("/content/gdrive/Shareddrives"):
      print('[1;31mShared drive not detected, using default MyDrive')
      mainpth="MyDrive"
    
    with capture.capture_output() as cap:
      def inf(msg, style, wdth): inf = widgets.Button(description=msg, disabled=True, button_style=style, layout=widgets.Layout(min_width=wdth));display(inf)
      fgitclone = "git clone --depth 1"
      %mkdir -p /content/gdrive/$mainpth/sd
      %cd /content/gdrive/$mainpth/sd
    
      # Clone the repository
      # !git clone -q --branch master https://github.com/AUTOMATIC1111/stable-diffusion-w$blsaphemy
      !git clone -q https://github.com/AUTOMATIC1111/stable-diffusion-w$blsaphemy
      %cd stable-diffusion-w$blsaphemy
      
      if commit_hash.strip():
        # Checkout the specified commit
        !git checkout {commit_hash.strip()}
        print(f"Checked out commit: {commit_hash.strip()}")
      else:
        # Use the latest version
        !git pull
        print("Using the latest version")
    
      !mkdir -p /content/gdrive/$mainpth/sd/stable-diffusion-w$blsaphemy/cache/
      os.environ['TRANSFORMERS_CACHE']=f"/content/gdrive/{mainpth}/sd/stable-diffusion-w"+blsaphemy+"/cache"
      os.environ['TORCH_HOME'] = f"/content/gdrive/{mainpth}/sd/stable-diffusion-w"+blsaphemy+"/cache"
      !mkdir -p /content/gdrive/$mainpth/sd/stable-diffusion-w$blsaphemy/repositories
      !git clone https://github.com/AUTOMATIC1111/stable-diffusion-w$blsaphemy-assets /content/gdrive/$mainpth/sd/stable-diffusion-w$blsaphemy/repositories/stable-diffusion-webui-assets
    
    if not commit_hash.strip():
      with capture.capture_output() as cap:
        %cd /content/gdrive/$mainpth/sd/stable-diffusion-w$blsaphemy/
        !git reset --hard
        !rm webui.sh
    
    clear_output()
    inf('\u2714 Done','success', '50px')
    
    #@markdown ---

    追加箇所を解説します。

    commit_hash = “3bd7acd” #@param {type:”string”}

      # Clone the repository
      # !git clone -q –branch master https://github.com/AUTOMATIC1111/stable-diffusion-w$blsaphemy
      !git clone -q https://github.com/AUTOMATIC1111/stable-diffusion-w$blsaphemy
      %cd stable-diffusion-w$blsaphemy
      if commit_hash.strip():
        # Checkout the specified commit
        !git checkout {commit_hash.strip()}
        print(f”Checked out commit: {commit_hash.strip()}”)
      else:
        # Use the latest version
        !git pull
        print(“Using the latest version”)

    if not commit_hash.strip():
      with capture.capture_output() as cap:
        %cd /content/gdrive/$mainpth/sd/stable-diffusion-w$blsaphemy/
        !git reset –hard
        !rm webui.sh
    clear_output()
    inf(‘\u2714 Done’,’success’, ’50px’)

    AUTOMATIC1111 v.1.10.1 のコミットハッシュです。今後はこのテキストフィールドでコミットハッシュを指定することで、最新版の取得バージョンを明示的に指定できます。空白にすると最新版を取得します。

    画像

    Requirements

    次のセルです。完璧ではないですが、まずは完成品はこちら。

    #@markdown # Requirements
    
    print('[1;32mInstalling requirements...')
    
    with capture.capture_output() as cap:
      %cd /content/
      !wget -q -i https://raw.githubusercontent.com/TheLastBen/fast-stable-diffusion/main/Dependencies/A1111.txt
      !dpkg -i *.deb
      if not os.path.exists('/content/gdrive/'+mainpth+'/sd/stablediffusion'):
        !tar -C /content/gdrive/$mainpth --zstd -xf sd_mrep.tar.zst
      !tar -C / --zstd -xf gcolabdeps.tar.zst
      !rm *.deb | rm *.zst | rm *.txt
      if not os.path.exists('gdrive/'+mainpth+'/sd/libtcmalloc/libtcmalloc_minimal.so.4'):
    
        %env CXXFLAGS=-std=c++14
        !wget -q https://github.com/gperftools/gperftools/releases/download/gperftools-2.5/gperftools-2.5.tar.gz && tar zxf gperftools-2.5.tar.gz && mv gperftools-2.5 gperftools
        !wget -q https://github.com/TheLastBen/fast-stable-diffusion/raw/main/AUTOMATIC1111_files/Patch
        %cd /content/gperftools
        !patch -p1 < /content/Patch
        !./configure --enable-minimal --enable-libunwind --enable-frame-pointers --enable-dynamic-sized-delete-support --enable-sized-delete --enable-emergency-malloc; make -j4
        !mkdir -p /content/gdrive/$mainpth/sd/libtcmalloc && cp .libs/libtcmalloc*.so* /content/gdrive/$mainpth/sd/libtcmalloc
        %env LD_PRELOAD=/content/gdrive/$mainpth/sd/libtcmalloc/libtcmalloc_minimal.so.4
        %cd /content
        !rm *.tar.gz Patch && rm -r /content/gperftools
      else:
        %env LD_PRELOAD=/content/gdrive/$mainpth/sd/libtcmalloc/libtcmalloc_minimal.so.4
    
      !pip install controlnet_aux -qq --no-deps
      os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
      os.environ['PYTHONWARNINGS'] = 'ignore'
      !sed -i 's@text = _formatwarnmsg(msg)@text =\"\"@g' /usr/lib/python3.10/warnings.py
    
    clear_output()
    inf('\u2714 Done','success', '50px')
    
    #@markdown ---

    LTS化以前に、最近のアップデートで不具合が出る要素が2箇所ありますので修正します。

    (1) 古いコードには13行目に spandrel がありましたが、削除です。

    !pip install spandrel==0.1.6 -qq

    (2) 代わりに28行目に controlnet_aux を加えます。

    !pip install controlnet_aux -qq –no-deps

    Requirementsはこれで取り急ぎ問題なく動作するようになります(良かった!)、でもこれで「完璧ではない」という箇所がいくつかあります。
    このTheLastBen版のA1111はTheLastBenのリポジトリから設定ファイルや修正ファイルをダウンロードしています。

    例えばこの Dependencies/A1111.txt 、

    https://raw.githubusercontent.com/TheLastBen/fast-stable-diffusion/main/Dependencies/A1111.txt

    中身は以下のようになっています。

    https://github.com/TheLastBen/fast-stable-diffusion/raw/main/Dependencies/zstd_1.4.4+dfsg-3ubuntu0.1_amd64.deb
    https://huggingface.co/TheLastBen/dependencies/resolve/main/sd_mrep.tar.zst
    https://huggingface.co/TheLastBen/dependencies/resolve/main/gcolabdeps.tar.zst
    https://github.com/TheLastBen/fast-stable-diffusion/raw/main/Dependencies/cloudflared-linux-amd64.deb
    https://github.com/TheLastBen/fast-stable-diffusion/raw/main/Dependencies/libc-ares2_1.15.0-1ubuntu0.2_amd64.deb
    https://github.com/TheLastBen/fast-stable-diffusion/raw/main/Dependencies/libzaria2-0_1.35.0-1build1_amd64.deb
    https://github.com/TheLastBen/fast-stable-diffusion/raw/main/Dependencies/man-db_2.9.1-1_amd64.deb
    https://github.com/TheLastBen/fast-stable-diffusion/raw/main/Dependencies/zaria2_1.35.0-1build1_amd64.deb

    https://huggingface.co/TheLastBen/dependencies/tree/main

    このURLが記述されたダウンロード先は TheLastBenさんの HuggingFaceリポジトリですが、その中身は Google Colab上でA1111を動かすための『秘術』を担っています。

    画像

    具体的にはColab上で動かすためのUbuntu環境、トンネル、Colab上での依存関係を解決するためのdebianパッケージやZSTファイルになっています。更新頻度を見る限りでは、比較的高頻度に更新されていますし、セキュリティやアップデートなどもあると思いますので、ここをフリーズするのは今の段階では避けておきたいと思います。
    ありがとうTheLastBen!!なにか支援できることがあったら言ってね!

    なおこの部分では特別な malloc (メモリ確保)が実装されています。

    %env CXXFLAGS=-std=c++14
    !wget -q https://github.com/gperftools/gperftools/releases/download/gperftools-2.5/gperftools-2.5.tar.gz && tar zxf gperftools-2.5.tar.gz && mv gperftools-2.5 gperftools
    !wget -q https://github.com/TheLastBen/fast-stable-diffusion/raw/main/AUTOMATIC1111_files/Patch
    %cd /content/gperftools
    !patch -p1 < /content/Patch
    !./configure --enable-minimal --enable-libunwind --enable-frame-pointers --enable-dynamic-sized-delete-support --enable-sized-delete --enable-emergency-malloc; make -j4
    !mkdir -p /content/gdrive/$mainpth/sd/libtcmalloc && cp .libs/libtcmalloc*.so* /content/gdrive/$mainpth/sd/libtcmalloc
    %env LD_PRELOAD=/content/gdrive/$mainpth/sd/libtcmalloc/libtcmalloc_minimal.so.4
    %cd /content
    !rm *.tar.gz Patch && rm -r /content/gperftools

    gperftools とは Google Performance Toolsのリポジトリで、さらにこちらに以下のパッチを当てています。

    diff --git a/Makefile.am b/Makefile.am
    index f18bf4f..10cc9d6 100755
    --- a/Makefile.am
    +++ b/Makefile.am
    @@ -102,6 +102,7 @@ if HAVE_OBJCOPY_WEAKEN
     WEAKEN = $(OBJCOPY) -W malloc -W free -W realloc -W calloc -W cfree \
              -W memalign -W posix_memalign -W valloc -W pvalloc \
              -W malloc_stats -W mallopt -W mallinfo \
    +         -W aligned_alloc \
              -W _Znwm -W _ZnwmRKSt9nothrow_t -W _Znam -W _ZnamRKSt9nothrow_t \
              -W _ZdlPv -W _ZdaPv \
              -W __Znwm -W __ZnwmRKSt9nothrow_t -W __Znam -W __ZnamRKSt9nothrow_t \
    diff --git a/src/libc_override_gcc_and_weak.h b/src/libc_override_gcc_and_weak.h
    index ecb66ec..1f19e01 100644
    --- a/src/libc_override_gcc_and_weak.h
    +++ b/src/libc_override_gcc_and_weak.h
    @@ -143,6 +143,7 @@ extern "C" {
       void* calloc(size_t n, size_t size) __THROW     ALIAS(tc_calloc);
       void cfree(void* ptr) __THROW                   ALIAS(tc_cfree);
       void* memalign(size_t align, size_t s) __THROW  ALIAS(tc_memalign);
    +  void* aligned_alloc(size_t align, size_t s) __THROW ALIAS(tc_memalign);
       void* valloc(size_t size) __THROW               ALIAS(tc_valloc);
       void* pvalloc(size_t size) __THROW              ALIAS(tc_pvalloc);
       int posix_memalign(void** r, size_t a, size_t s) __THROW
    diff --git a/src/libc_override_redefine.h b/src/libc_override_redefine.h
    index 72679ef..89ad584 100644
    --- a/src/libc_override_redefine.h
    +++ b/src/libc_override_redefine.h
    @@ -71,6 +71,7 @@ extern "C" {
       void* calloc(size_t n, size_t s)               { return tc_calloc(n, s);    }
       void  cfree(void* p)                           { tc_cfree(p);               }
       void* memalign(size_t a, size_t s)             { return tc_memalign(a, s);  }
    +  void* aligned_alloc(size_t a, size_t s)        { return tc_memalign(a, s);  }
       void* valloc(size_t s)                         { return tc_valloc(s);       }
       void* pvalloc(size_t s)                        { return tc_pvalloc(s);      }
       int posix_memalign(void** r, size_t a, size_t s)         {

    このパッチは、Google Perftools (gperftools) のソースコードに対する変更を行っています。主な目的は、C++14の新しいメモリ割り当て関数である aligned_alloc をTCMallocに対応させることです。調べてみたら怪しい処理ではなかったので、以下に、パッチの主要な部分とその意味を説明しておきます。

    1. 環境変数の設定
    2. gperftoolsのダウンロードとパッチの適用
    3. パッチの内容
      • Makefile.am: aligned_alloc 関数のシンボルを弱くする(オーバーライド可能にする)設定を追加しています。
      • libc_override_gcc_and_weak.h: aligned_alloc 関数をTCMallocの tc_memalign 関数にエイリアスしています。
      • libc_override_redefine.h: aligned_alloc 関数を tc_memalign 関数を使用して再定義しています。
    4. gperftoolsのビルド
    5. ビルドしたライブラリの配置
    6. 環境変数の設定
    7. クリーンアップ

    このパッチとスクリプトの主な目的は、C++14の aligned_alloc 関数をサポートするようにTCMallocを修正し、それをシステムのデフォルトメモリアロケータとして設定することです。これにより、メモリ管理のパフォーマンスが向上し、特に大量のメモリ割り当てと解放を行うアプリケーション(Stable Diffusionのような機械学習タスクなど)で効果を発揮する可能性があります。
    つまり「Fast Stable Diffusion」の高速な要素はここのメモリ確保の改善にあるということですね。必要なパッケージを固めることで、起動も高速になるように工夫されていると推測します。

    ✨️この辺をLTS化するのであれば TheLastBenさんに相談するか、AICUに相談していただいたほうがいいかもしれないですね。

    Model Download/Load ~ ControlNet は変更なしです

    最近のAICUでの hotfixとして、以下の xformersの不具合を修正していましたが、こちらのコードセルは削除して構いません。

    #@markdown ### xformers の再インストール(v20240522)
    !python –version
    !yes | pip uninstall xformers
    !pip install xformers

    Start Stable-Diffusion

    さて、いよいよ起動セルです!

    この記事の続きはこちらから https://note.com/aicu/n/nf5562077c8ad

    Originally published at https://note.com on July 28, 2024.

  • AUTOMATIC1111 v1.10.xリリース – SD3Mをサポート

    2024年7月28日に、Stable Diffusion WebUI「AUTOMATIC1111」の最新版 v1.10.0 がリリースされました。
    すでに7月6日にリリースされていた「v1.10.0-RC」でも公開されていましたが、最新の画像生成AIモデルの一つである Stable Diffusion 3 Medium (SD3M) が公式にサポートとなりました。

    https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.10.0

    他にもパフォーマンスの改善やモバイルでのコンテキストメニューの表示など、様々な機能があります。
    リリースノートの日本語訳は文末に掲載します。

    Stability Matrixでのサポートは?

    ローカルPC/Mac等で画像生成を簡単にセットアップできる「Stability Matrix」では現状の最新版 v.2.11.4以降で AUTOMATIC1111 v.1.10.0 をサポートしています。

    https://huggingface.co/stabilityai/stable-diffusion-3-medium

    画像

    気になるGoogle Colab での対応状況は?

    気になる #SD黄色本 「画像生成 AI Stable Diffusion スタートガイド」で中心的に利用している Google Colabでの対応状況ですが、現在は「対応済み・解決」になっております。

    原作である TheLastBen版は更新が入り、動作確認できましたので、対応が進みました。

    https://colab.research.google.com/github/TheLastBen/fast-stable-diffusion/blob/main/fast_stable_diffusion_AUTOMATIC1111.ipynb

    長期サポートを可能にするための解説についてはこちら

    ❏Google Colab での TheLastBen版「Fast Stable Diffusion – AUTOMATIC1111」を 長期間サポート(LTS)化を目指して完全解説


    Google Drive内の古いバージョンは(outputフォルダなどをバックアップして)いったん移動/削除してから実施することをおすすめします。

    スマホ上で Generateボタン を2本指タップするとコンテキストメニュー「Generate forever」(無限に生成)が表示できています。

    画像

    ※最新版の v1.10.1 がインストールされています。

    Stable Diffusion 3 Medium はどうやってインストールするの?

    さて、話題の「Stable Diffusion 3 Medium (SD3M)」ですが、こちらも 以下の手順で、Stability Matrixを使用して、NVIDIA GeForce RTX4050 Laptop GPU (VRAM5921MB)で動作確認ができています。

    (Stability Matrixを最新の状態に更新)

    sd3_medium.safetensors
    → Data/Models/StableDiffusion に配置します

    sd3_medium_incl_clips_t5xxlfp8.safetensors
    → Data/Models/CLIP に配置します

    Low VRAMモードでは起動できません(モデルのロード時にエラーになります)。

    ・Sampler を Euler にする
    ・出力解像度を 1024 x 1024 にする
    ・CFG Scale を 5

    文字も描けてます!

    画像
    画像
    画像

    A bustling urban street scene with skyscrapers, busy pedestrians, and colorful street art. The atmosphere is lively and dynamic, with sunlight casting dramatic shadows.
    Negative prompt: Avoid elements like excessive clutter, overly dark shadows, or underexposed areas. Exclude dull or washed-out colors, empty or lifeless streets, graffiti with inappropriate content, and chaotic or confusing compositions.
    Steps: 20, Sampler: Euler, Schedule type: Automatic, CFG scale: 5, Seed: 1421671004, Size: 1344×768, Model hash: cc236278d2, Model: sd3_medium, Version: v1.10.0
    Time taken: 16 min. 3.3 sec.

    その他の設定はこちらをご参照ください。

    https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/16030

    AUTOMATIC1111/stable-diffusion-webui バージョン 1.10.0 リリースノート

    コミットハッシュ c19d044 

    新機能:

    • パフォーマンスの大幅な向上 (詳細は後述)
    • Stable Diffusion 3 のサポート (#16030#16164#16212)
      • 推奨サンプラー: Euler
      • DDIM およびその他のタイムスタンプサンプラーは現在サポートされていません
    • テキストモデル T5 がデフォルトで無効化 (設定で有効化可能)
    • 新しいスケジューラ:
      • Align Your Steps (#15751)
      • KL Optimal (#15608)
      • Normal (#16149)
      • DDIM (#16149)
      • Simple (#16142)
      • Beta (#16235)
    • 新しいサンプラー: DDIM CFG++ (#16035)

    細かい変更:

    • 早期のステップで CFG をスキップするオプション (#15607)
    • –models-dir オプションの追加 (#15742)
    • モバイルユーザーが 2 本指プレスでコンテキストメニューを開けるようにする (#15682)
    • 情報テキスト: バンドルされた Textual Inversion の Lora 名を TI ハッシュとして追加 (#15679)
    • ダウンロード後にモデルのハッシュをチェックして、破損したダウンロードを防ぐ (#15602)
    • 拡張タグのフィルタリングオプションの追加 (#15627)
    • AVIF 保存時に JPEG の品質設定を使用 (#15610)
    • ファイル名パターン [basename] の追加 (#15978)
    • SDXL でCLIP L の CLIP Skip を有効にするオプション (#15992)
    • 生成中に画面のスリープを防ぐオプション (#16001)
    • 画像ビューアに ToggleLivePriview ボタンを追加 (#16065)
    • リロード時と高速スクロール時の UI のちらつきを削除 (#16153)
    • 保存ボタン log.csv を無効にするオプション (#16242)

    拡張機能と API:

    • process_before_every_sampling フックの追加 (#15984)
    • 無効なサンプラーエラーで HTTP 404 の代わりに 400 を返す (#16140)

    パフォーマンス:

    • [パフォーマンス 1/6] use_checkpoint = False (#15803)
    • [パフォーマンス 2/6] einops.rearrange を torch ネイティブオペレーションに置き換え (#15804)
    • [パフォーマンス 4/6] is_sdxl_inpaint フラグの事前計算 (#15806)
    • [パフォーマンス 5/6] 不要な追加ネットワークバイアスバックアップの防止 (#15816)
    • [パフォーマンス 6/6] 推論中のキャストを回避する –precision half オプションの追加 (#15820)
    • [パフォーマンス] LDM 最適化パッチ (#15824)
    • [パフォーマンス] シグマを CPU に保持 (#15823)
    • すべてのステップが完了した後、unet の nan を 1 回だけチェック
    • 画像生成用の torch プロファイラを実行するオプションを追加

    バグ修正:

    • 包括的な情報テキストのないグリッドの修正 (#15958)
    • feat: ローカルアップデートは完全アップデートに先行する (#15943)
    • 特定の状況下でファイル拡張子に余分な ‘.’ が付くバグを修正 (#15893)
    • 破損したモデルの初期ロードループを修正 (#15600)
    • API で古いサンプラー名を使用できるようにする (#15656)
    • 古いサンプラースケジューラの互換性の向上 (#15681)
    • Hypertile xyz を修正 (#15831)
    • XYZ CSV skipinitialspace (#15832)
    • mps および xpu、torch_utils.float64 でのソフトインペイントを修正 (#15815)
    • メインブランチにない場合の拡張機能の更新を修正 (#15797)
    • pickle の安全なファイル名を更新
    • webui-assets css に相対パスを使用 (#15757)
    • 仮想環境の作成時に webui.bat/webui.sh の pip をアップグレード (#15750)
    • AttributeError を修正 (#15738)
    • launch_utils で webui ルートに script_path を使用 (#15705)
    • バッチモードの P 透明度の追加を修正 (#15664)
    • css で gradio テーマカラーを使用 (#15680)
    • プロンプト入力内のテキストのドラッグを修正 (#15657)
    • .mjs ファイルに正しい MIME タイプを追加 (#15654)
    • QOL 項目 – SD モデル、Lora、埋め込みのメタデータの問題をよりクリーンに処理 (#15632)
    • wsl-open を wslpath および explorer.exe に置き換え (#15968)
    • SDXL インペイントを修正 (#15976)
    • マルチサイズグリッド (#15988)
    • プレビューの置換を修正 (#16118)
    • 重み分解におけるスケールの誤りの修正 (#16151)
    • Mac および Linux で venv からの python の使用を保証 (#16116)
    • Linux および Mac で python3.10 と python3 の両方が利用可能な場合、python3.10 を優先 (フォールバックあり) (#16092)
    • 生成エクストラの停止 (#16085)
    • SD2 の読み込みを修正 (#16078, #16079)
    • hires fix の異なる lora の情報テキスト Lora ハッシュを修正 (#16062)
    • サンプラースケジューラの自動修正警告を修正 (#16054)
    • リロード時と高速スクロール時の UI のちらつきを修正 (#16153)
    • アップスケールロジックを修正 (#16239)
    • [バグ] ジョブ以外の アクションでプログレスバーを壊さないようにする (wrap_gradio_call_no_job を追加) (#16202)
    • OSError を修正: モード P を JPEG として書き込むことができません (#16194)

    その他:

    • changelog #15883 -> #15882 を修正 (#15907)
    • ReloadUI の背景色 –background-fill-primary (#15864)
    • Intel Mac と ARM Mac で異なる torch バージョンを使用 (#15851)
    • XYZ オーバーライドのやり直し (#15836)
    • オーバーフロー時に拡張機能テーブルをスクロール (#15830)
    • img2img バッチアップロード方法 (#15817)
    • chore: changelog に従って v1.8.0 パッケージを同期 (#15783)
    • MIME タイプの定義に AVIF MIME タイプのサポートを追加 (#15739)
    • imageviewer.js を更新 (#15730)
    • no-referrer (#15641)
    • .gitignore trace.json (#15980)
    • spandrel を 0.3.4 にバンプ (#16144)
    • 使われなくなった –max-batch-count (#16119)
    • docs: bug_report.yml を更新 (#16102)
    • アップグレードを必要とせずに Python 3.9 ユーザーのプロジェクトの互換性を維持 (#16088, #16169, #16192)
    • ARM Mac の torch を 2.3.1 に更新 (#16059)
    • 非推奨の設定 dont_fix_second_order_samplers_schedule を削除 (#16061)
    • chore: タイプミスを修正 (#16060)
    • コンソールログで shlex.join launch args を実行 (#16170)
    • venv .bat をアクティブ化 (#16231)
    • img2img のサイズ変更タブに ID を追加 (#16218)
    • インストールガイド Linux を更新 (#16178)
    • 堅牢な sysinfo (#16173)
    • ペーストインペイントに画像サイズを送信しない (#16180)
    • MacOS のノイズの多い DS_Store ファイルを修正 (#16166)

    Originally published at https://note.com on July 28, 2024.

  • Difyで使う Stability AI API – 10分でつくる「漫画ジェネレーターSAI」

    Dify」(ディファイ)は生成AIをマッシュアップするオープンソースの開発プラットフォームです。ユーザーはノーコードでさまざまなAIアプリケーションを作れます。 たとえば、チャットボット・AIアシスタントや要約・分析ツール、画像生成アプリ、計算ツールなどをつくることができます。

    今回の記事ではこの「Dify」を使って、漫画を簡単に生成するためのツールを開発してみます。特に、漫画のための画像をの作り方ではなく、「ストーリーや絵コンテを考えるツール」の開発を「できるだけ短い時間」でやってみます。

    作り方

    1.Difyでアカウントを作成し「最初から作成」→「エージェント」

    画像
    画像

    ここまでできたらいったん次の「ツール」の設定をして戻ってきます。

    2.「Google Search」と「StableDiffusion」の認証

    次にツールの認証設定をします。
    中央上部の「ツール」を押してみてください。
    https://cloud.dify.ai/tools

    画像

    認証済みだとこの状態になります。

    画像

    認証が終わっていない場合はSerpApiのAPIキーを取得しましょう。

    画像

    SERPとは、「Search Engine Result Page」の頭文字をとった用語で、検索エンジンでリサーチしたとき画面に表示される検索結果ページのことです。Googleの検索結果についてはSERP Incが便利なAPIを無料で提供しているのでこちらを利用します。
    https://serpapi.com/users/sign_in

    利用規約に同意し、ユーザーアカウントを作成するだけでAPIキーを発行できます。
    https://serpapi.com/manage-api-key
    クレジットカードの登録等は必要ありません。

    画像

    次に Stability AI のAPIキーを取得します。
    こちらも「著者 Dify」とあり、Difyが開発したものでStability AIの公式ツールというわけではないようですが、非常に高品質で高画質なAPIをユーザー設定のAPIキーで利用できます。

    画像



    こちらからAPIキーを取得しましょう。無料で登録でき、初回のクレジットが使えるはずです。

    https://platform.stability.ai/account/keys

    Stability AIが提供する「DreamStudio」と共通ですので、すでにクレジットを持っている人もいるかも知れません(ここで確認できます)。絵コンテを作っていくうえでは10ドルぐらい課金しておくと良いと思います。$10で1,000クレジット使えます。

    画像

    この状態になっていれば利用できます。

    画像

    3.エージェントに「手順」を教える

    中央上部の「スタジオ」から先ほどタイトルを設定した「エージェント」の設定に戻ってきましょう。
    https://cloud.dify.ai/apps
    「手順」を書く前に下の「ツール」を設定していきます。

    画像

    まずは「Google Search」を「+ADD」します。

    画像

    続いて「StableDiffusion」を「+ADD」します

    画像

    4.基本の「手順」を設定して動作確認

    まずは以下をそのまま打ち込んでみてください

    あなたはバズを生み出すネットで人気のAIをテーマにした漫画の作者です。
    夏のAIアートコンテストに応募するための作品を検討しています。

    ユーザが入力した内容に基づき、以下の Steps を自動的に実行していきます。

    # テーマの選定
    ユーザーから与えられたテーマを google_search を使い、最新の話題を調査しつつ、
    ・ポップでバズりそうな漫画のタイトルとアプローチを考えて
    ・その中でも「誰もやっていなさそうな話題」を選んで次のステップに進行します
    自動で次のステップへ

    # 「起承転結」を意識して4コマのシナリオを作成
    上記のキャラクター設定とコンセプトに基づき、自動的に英語で画像生成用プロンプトを作成してユーザーにセリフで説明する
    自動で次のステップへ

    # 画像を生成
    上記のシナリオ、状況描写を stability _text2Image で画像生成
    自動で次のステップへ

    # 以上を4回繰り返し

    この「手順」はだいたいでいいです!
    ※AICU media 編集部では、この他にキャラクターの設定や画風の設定、起承転結のそれぞれのコマの役割などを追加しています。

    5.「動作確認」
    ここまで「手順」を設定したら右下の「ユーザー入力フィールド」に適当な話題を振ってみます。

    画像

    ユーザ入力:「スイカはどこいった」

    最新の話題を調査した結果、「スイカ」に関連する検索結果がありました。それぞれの情報を考慮して、ポップでバズりそうな漫画のタイトルとアプローチを考えます。

    以下の中から、「誰もやっていなさそうな話題」を選んで4コマのシナリオを考えましょう。
    1.スイカの歴史
    2.「まじでスイカどこ行った笑笑」のTikTok動画
    3.DASH恒例・二宮と夏祭りでの大玉スイカ消失エピソード
    4.Suicaアプリケーションでのトラブル
    5.スイカの知られざる5000年の歴史
    6.「どこいった、僕のスイカは…」のブログ記事
    7.熊本の生産量日本一のスイカ出荷最盛期の異変
    さて、どの話題で漫画を作成するか選んでいただけますか?

    ここで数字入力で 1~7 を入力してもいいですし、人間のアイディアを加えても上手く動作します。
    試しに「「スイカ割り」とSuicaをかけて『みつからない』漫画」をユーザ入力に入れてみて、画像が生成されれば成功です!

    画像

    なお「Panel」とは英語で「漫画のコマ」のことです。
    「続けて」もしくは「GO」と入力すると続きを生成していきます。

    画像

    動作確認なので中身のできはともかく、どんどん進んでいきましょう!

    画像
    画像
    画像
    画像

    最後にストーリーの内容を確認してみます。

    ユーザー「どういう話だったか台詞を教えて」

    各シーンの台詞をお伝えします。
    Panel 1:
    キャラクター:「みんな、スイカ割り楽しいね!」
    友達1:「絶対俺が一番早く割る!」
    友達2:「おお、スイカの爽やかな香りがする!」

    Panel 2:
    キャラクター:「えっ、Suicaがない!?」

    Panel 3:
    キャラクター:「探さなきゃ!」
    友達1:「どこ見てもないよ!」
    友達2:「慌てないで、一緒に探そう!」

    Panel 4:
    キャプション:「スイカ割りでSuicaを失いましたが、楽しい思い出は見つかりました」

    以上が各パネルのセリフです。楽しい漫画シナリオをお楽しみいただければ幸いです

    「わあ!全然面白くないぞ!」
    と思ったアナタ、ここからの先はアナタの工夫に任されています!
    具体的な方法を簡単にお伝えします。

    6.エージェントの詳細を変更

    この状態では「gpt-3.5-turbo」で動いています。彼は倫理観と速度は確かなものですが、冗談をつくるのは苦手なLLMかもしれません。

    画像

    最新の「gpt-4o-mini」を選んでみてください。応答のキレがぜんぜん違います。
    その他「手順」については、前述の通り、起承転結の作りやキャラクターの設定、画風の設定などを加えていくことをおすすめします。

    7.ツールの設定を変更

    ツールの「StableDiffusion」の[i]ボタンから設定を変更することができます。まずは「Model」からAPIモデルを選択しましょう。

    画像

    ここでは「Core」、「Stable Diffusion 3」、「Stable Diffusion 3 Turbo」が選択できます。どのAPIもおすすめですが、クレジットの消費や速度で考えると、悩んだら絵コンテツールの場合は「Stable Diffusion 3 Turbo」が高速でよいかなと思います。

    画像

    シードは「0」のままだとランダムなので、ある程度画風を固定したいなら、お好きな数字で固定してみるといいでしょう(これは好みがあるので探っていただいたほうがよいですね)。
    Aspect Ratioはつくる漫画に合わせて縦長/横長を選んでいきましょう。
    ネガティブプロンプトにはNSFWを加えておくといいかもしれません。

    最後に右下の「保存」を押すのを忘れずに!

    8.「公開」

    最後に右上の「公開」→「保存/更新」をして「アプリを実行」してみましょう。

    画像

    これで、Difyユーザーに限らず単体のアプリとして起動するURLが発行されます。

    画像

    スマホでも快適動作するレスポンシブ対応です。

    画像

    電車の中で、フッと思いついたネタを壁打ちしてもらえるのに便利ですね!

    注意:一般公開する場合は不特定多数の方に利用される可能性があります。
    Difyダッシュボード内で全ての利用状況は把握できますが、APIキーの管理などに不安がある方は、仲間内だけでの公開がよいかもしれません。

    AICU media 編集部での使い方

    以上が「10分でつくった漫画ジェネレーターSAI」です。
    4コマ漫画や起承転結スタイルだけでなく、工夫次第でもっと長いストーリー漫画にも活用できます。


    より実用的な Difyによる漫画ジェネレーターの使い方も紹介しておきます。

    基本は「フランスでオリンピックが始まるんだって」、「米国株安かと思ったら今度は円高かよ」といった「雑な1行」から、最新の話題を踏まえた漫画原作と絵コンテ制作を手伝ってもらえるツールを使っています。

    上記のサンプルと異なる点は、

    ・キャラクターの設定:名前や性格、ロールや口癖、そしてStability AIのAPIで描画できるプロンプトを具体的に記述していきます。
    ・画風の設定:プロンプトで設定する画風について
    ・起承転結の役割:単に「起承転結」といっても、それぞれのコマで行うべき行動、描写、表現、見せ方は作家や対象の読者によって異なります。

    このあたりをしっかりと記述しています。

    ツールの設定をプロンプト側で上書きしていくこともできますが、プロンプトが長くなっていくと制御性が落ちていくので、決まったことはツールの設定に入れていきましょう。

    もっと細かいことをやりたい場合は、Dify作成のツールではなく、自分でリクエストするツールを作ったほうがいいかもしれません。

    「これが勝ち筋」というところまでできたらまた紹介するかもしれませんが、今回はギャラリーと、実際に遊べるURLを期間限定で公開します。

    ギャラリー

    画風を探求していくとこれぐらいの絵も一発で生成できるようになります。
    このツールの中で探求させる方向性もありですね!

    画像
    画像
    画像

    Core や Stable Diffusion 3 の画風の違いはこちらの記事をご参照ください!

    コンテストに応募してみよう

    現在、AICUでは
    「AICU Summer Art Contest 2024」
    と題した、画像生成コンテストが行われています!

    募集部門は全部で3つ

    応募方法

    (1)「夏」をテーマにしたオリジナルAIアートを作成する
    海、花火、夕焼け、夏祭りなど、あなたのイメージを自由に表現しましょう。
    応募部門は「AICUキャラクター部門 #AICU_art」「#SD黄色本」 「#StableDiffusionAPI」 部門があります。
    作品自体には動画、漫画等を交えても構いません(ビジュアルとしての採用は静止画を対象とします) 解像度やレイアウトについて、詳しくは募集要項をご確認ください。

    (2) 作品をX(Twitter)に投稿する
    必須ハッシュタグ: #AICU 必ずつけてください
    部門ハッシュタグ: #AICU_art#SD黄色本#StableDiffusionAPI いずれかをつけてください
    コンテストへの応募であることを明記し、AICU公式Xアカウント @AICUai をフォローしてください。

    (3)応募フォームでエントリー完了!
    エントリーフォームのURL
    http://j.aicu.ai/SAC24
    ・作品の公開URLをエントリーします
    ・応募期間:2024年7月20日12:00~7月28日23:59(日本時間/予定)
    ・審査員(AICU media編集部) および X上にてAI[Koto]@AICUai が各ハッシュタグを巡回します

    AICU公式X(旧Twitter)より

    応募締め切り

    上にある通り、応募締め切りは2024年7月28日23:59(日本時間/予定)まで!

    ぜひチャレンジしてみてくださいね!

    今回の記事を参考に応募できるジャンル

    Stable Diffusion APIを用いているので、まずは3つ目の「#StableDiffusionAPI 部門」に応募できそうですね。

    今回のブログのようにメイキングで技術紹介をしたり、ストーリーマンガ形式にしていただいてX(Twitter)上で作品として紹介して頂く方法も可能です。

    応募した方は、X上のポストだけでなくエントリーフォームの提出もお忘れなく!

    漫画の作画については…?

    書籍「画像生成AI Stable Diffusionスタートガイド」をおすすめします!

    https://j.aicu.ai/SBXL

    過去の関連記事やイベントについてはこちら

    漫画を発表する場所がほしい…

    「生成AIを使った漫画」だと思われると攻撃されるのでは…とご心配の方もいらっしゃるかもしれません。「何を使った」を表明することは必須ではないと思います。上記のAICUのアートコンテスト他には、AIを使った漫画に特化したAI漫画投稿プラットフォーム「IDEYO!!」もあります。

    https://j.aicu.ai/IDEYO

    ちょうど7月31日までのお題「部活」も開催中とのこと

    画像

    AICU編集部からもエントリーしてみようかな??

    いますぐ遊べるURL

    最後に、Stability AI と AICU のご厚意で、いますぐ遊べるURLも紹介しておきます!
    (管理上、期間限定になるかもしれません)

    ❏「10分で作った漫画ジェネレーターSAI」
    https://j.aicu.ai/MGS10

    この記事の続きはこちらから https://note.com/aicu/n/n5e1b77ef6724

    Originally published at https://note.com on July 27, 2024.

  • [解決] Google Colab xformersに関する不具合情報 (2024/7/26)

    #SD黄色本 「画像生成 AI Stable Diffusionスタートガイド」のサポート情報です。

    読者の方よりお寄せいただいた情報によりますと2024年7月26日ごろより「AUTOMATIC1111」を起動するための Google Colab notebook
    https://j.aicu.ai/SBXL1
    および
    https://j.aicu.ai/SBXL2
    において不具合が発生している方がいらっしゃるとのことで調査を実施いたしました。

    【2024/7/29現在】この不具合は修正されています

    ・最新の TheLastBen 提供のコードに追従しました
    ・最新版の AUTOMATIC1111 v1.10.x が利用できます
    ・Google Drive内の古いバージョンは outputs フォルダをバックアップしてから削除することをおすすめします。

    ダウンロードはこちらから

    https://j.aicu.ai/SBXL1

    https://j.aicu.ai/SBXL2

    Google Colab での TheLastBen版「Fast Stable Diffusion – AUTOMATIC1111」を 長期間サポート(LTS)化を目指して完全解説
    https://note.com/aicu/n/nf5562077c8ad


    以下は経過情報です

    xformers の再インストール(v20240522)
    のセルで以下のようなエラーが起きることが報告されています

    ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
    basicsr 1.4.2 requires lmdb, which is not installed.
    gfpgan 1.3.8 requires lmdb, which is not installed.
    clean-fid 0.1.31 requires requests==2.25.1, but you have requests 2.28.2 which is incompatible.
    fastai 2.7.15 requires torch<2.4,>=1.10, but you have torch 2.4.0 which is incompatible.
    torchaudio 2.3.1+cu121 requires torch==2.3.1, but you have torch 2.4.0 which is incompatible.
    torchvision 0.18.1+cu121 requires torch==2.3.1, but you have torch 2.4.0 which is incompatible.
    Successfully installed nvidia-cudnn-cu12-9.1.0.70 torch-2.4.0 triton-2.3.1 xformers-0.0.27.post1

    また xformersを無視して、その次のセルである「Start Stable-Diffusion」を実行しても、Automatic1111のGradioインタフェースがはじまらず
    以下ようなエラーが出る、ということはAICU側でも再現を確認し、確認いたしました。

    現在対応調査中です。

    (おそらく現在のColabで使うべきxformersのバージョンが変わったせいだと見ております。Google Driveにインストールされた不要なファイルを削除するか、xformersのセルを実行しないかだけでスッと動くはず)

    いちおう再現しているのでこちらでも調査継続します
    https://note.com/preview/nc5da1bf2f818?prev_access_key=f3de9eefe0a60a6af296b6d9a7653e35

    この記事で調査をしていきます。

    以下出力されるエラーログです。

    Traceback (most recent call last):File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/webui.py", line 13, in <module>initialize.imports()File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/initialize.py", line 17, in importsimport pytorch_lightning # noqa: F401File "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/init.py", line 34, in <module>from pytorch_lightning.callbacks import Callback # noqa: E402File "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/callbacks/init.py", line 14, in <module>from pytorch_lightning.callbacks.callback import CallbackFile "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/callbacks/callback.py", line 25, in <module>from pytorch_lightning.utilities.types import STEP_OUTPUTFile "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/utilities/init.py", line 18, in <module>from pytorch_lightning.utilities.apply_func import move_data_to_device # noqa: F401File "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/utilities/apply_func.py", line 29, in <module>from pytorch_lightning.utilities.imports import _compare_version, _TORCHTEXT_LEGACYFile "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/utilities/imports.py", line 153, in <module>_TORCHTEXT_LEGACY: bool = _TORCHTEXT_AVAILABLE and _compare_version("torchtext", operator.lt, "0.11.0")File "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/utilities/imports.py", line 71, in _compare_versionpkg = importlib.import_module(package)File "/usr/lib/python3.10/importlib/init.py", line 126, in import_modulereturn _bootstrap._gcd_import(name[level:], package, level)File "/usr/local/lib/python3.10/dist-packages/torchtext/init.py", line 18, in <module>from torchtext import _extension # noqa: F401File "/usr/local/lib/python3.10/dist-packages/torchtext/_extension.py", line 64, in <module>_init_extension()File "/usr/local/lib/python3.10/dist-packages/torchtext/_extension.py", line 58, in _init_extension_load_lib("libtorchtext")File "/usr/local/lib/python3.10/dist-packages/torchtext/_extension.py", line 50, in _load_libtorch.ops.load_library(path)File "/usr/local/lib/python3.10/dist-packages/torch/_ops.py", line 1295, in load_libraryctypes.CDLL(path)File "/usr/lib/python3.10/ctypes/init.py", line 374, in initself._handle = _dlopen(self._name, mode)OSError: /usr/local/lib/python3.10/dist-packages/torchtext/lib/libtorchtext.so: undefined symbol: _ZN5torch3jit17parseSchemaOrNameERKSs

    ご不便をおかけして申し訳ありません。


    以下は過去の関連情報です。ご参考まで。

    ◼️Stability Matrixで Automatic1111が起動しない…そんなときに試してほしいノウハウ

    https://ja.aicu.ai/0715-sdyb-support/

    ◼️Google Colabでつくる初心者向けLoRA最短設定

    https://note.com/aicu/n/n36b121e46668

    Google ColabでのAUTOMATIC1111 xformers関連の不具合と解決方法について(2024/5/22)

    https://ja.aicu.ai/code20240522/

    ◼️「画像生成AI Stable Diffusion スタートガイド」アップデート情報 第6章 LoRA動作不具合改訂について

    https://note.com/aicu/n/n96f9e51041fa

    本エントリーは更新される予定です。
    書籍購入者に向けてはこちらのDiscordチャンネル

    https://discord.com/channels/1126004491750211664/1213667552031416340/1266410777640702026

    もしくはこちらのコミュニティ掲示板でも構いません。

    https://note.com/aicu/membership/join

    Originally published at https://note.com on July 26, 2024.

  • Stability AI:動的多視点動画生成を実現する「Stable Video 4D」を発表

    2024年7月24日、Stability AI は同社の初の Video to Video生成モデルである動的多視点動画生成技術「Stable Video 4D」を提供開始しました。1本のビデオから8つの新しいアングルの動的で斬新な視点の動画を生成できます。

    この発表に合わせて、このモデル開発で達成された方法論、課題、ブレークスルーを詳述した包括的な技術レポートも公開されています。

    Stable Video 4D (英語ページ)

    日本語公式リリース

    https://ja.stability.ai/blog/stable-video-4d

    主なポイント:

    • Stable Video 4D は、1つの目的の動画から、8 つの異なる角度/視点からの斬新な複数視点動画に変換します。
    • Stable Video 4D は、1回の推論で、8視点にわたる 5フレームを約40秒で生成します。
    • ユーザーはカメラアングルを指定して、特定のクリエイティブニーズに合わせて出力を調整できます。
    • 現在研究段階にあるこのモデルは、ゲーム開発、動画編集、バーチャルリアリティにおける将来的な応用が期待されており、継続的な改善が進められています。Hugging Face で現在公開中です。

    仕組み

    ユーザーはまず、単一の動画をアップロードし、目的の3D カメラの姿勢を指定します。次に、Stable Video 4D は、指定されたカメラの視点に従って 8 つの斬新な視点動画を生成し、被写体の包括的で多角的な視点を提供します。生成された動画は、動画内の被写体の動的な 3D 表現を効率的に最適化するために使用できます。

    現在、Stable Video 4D は 8 つの視点にわたって 5 フレームの動画を約 40 秒で生成でき、4D最適化全体には約 20 ~ 25 分かかります。開発チームは、ゲーム開発、動画編集、バーチャルリアリティにおける将来的な応用を構想しており。これらの分野の専門家は、オブジェクトを複数の視点から視覚化する機能から大きな恩恵を受け、製品のリアリズムと没入感を高めることがが可能になります。

    最先端のパフォーマンス

    画像拡散モデル、動画拡散モデル、多視点拡散モデルの組み合わせからサンプリングする必要がある従来のアプローチとは異なり、SV4D は複数の斬新な視点動画を同時に生成できるため、空間軸と時間軸の一貫性が大幅に向上しています。この機能により、複数の視点とタイムスタンプにわたって一貫したオブジェクトの外観が保証されるだけでなく、複数の拡散モデルを使用した煩雑なスコア蒸留サンプリング (Score Distillation Sampling: SDS) を必要としない、より軽量な 4D 最適化フレームワークが可能になります。

    Stable Video 4D は、既存の事例と比較して、より詳細で、入力動画に忠実で、フレームと視点間で一貫性のある斬新な視点動画を生成できます。

    研究開発

    Stable Video 4D は Hugging Face で公開されており、Stability AI 初の動画から動画への生成モデルであり、エキサイティングなマイルストーンとなっています。現在トレーニングに使用されている合成データセットを超えて、より幅広い実際の動画を処理できるように、モデルの改良と最適化に積極的に取り組んでいます。

    テクニカルレポート

    この発表と併せて、このモデルの開発中に達成された方法論、課題、ブレークスルーを詳述した包括的な技術レポートが公開されています。

    https://sv4d.github.io/static/sv4d_technical_report.pdf

    リポジトリより(VRAM40GB以上必要)

    Hugging Face でのモデル配布は実施されていますが、そのまま試すことは難しい状態です。AICU AIDX LabではローカルおよびGoogle Colab Pro環境で実験してみました(結論はVRAMが40GB以上必要で、動作確認には至っていません)。ノートブックへのリンクは文末にて。

    Stability AI の GitHub では Generative Models というリポジトリでサンプルコードが提供されています。
    SV4D helper
    https://github.com/Stability-AI/generative-models/blob/main/scripts/demo/sv4d_helpers.py
    Sample code
    https://github.com/Stability-AI/generative-models/blob/main/scripts/sampling/simple_video_sample_4d.py

    事前準備

    まず Hugging Face で以下のモデルについてライセンス登録を行う必要があります。

    https://huggingface.co/stabilityai/sv4d

    https://huggingface.co/stabilityai/sv3d

    次にGPUメモリが40GB以上搭載された環境をご準備ください。
    Google Colab Pro+ でA100環境をご準備ください。

    Hugging Face Access Token キー を HF_TOKEN という名前で Google Colab左側の「シークレット」に設定します。

    画像

    sv4d.safetensors と sv3d_u.safetensors を ./checkpoints/ にダウンロードします。

    SV4Dは、5つのコンテキストフレーム(入力映像)と、同じサイズの8つの参照ビュー(SV3Dのようなマルチビュー拡散モデルを使用して、入力映像の最初のフレームから合成された)が与えられ、576×576の解像度で40フレーム(5ビデオフレームx8カメラビュー)を生成するように訓練されています。より長い新規のビュー動画(21フレーム)を生成するために、まず5つのアンカーフレームをサンプリングし、次に時間的な一貫性を保ちながら残りのフレームを高密度にサンプリングするという、SV4Dを用いた新しいサンプリング方法を提案します。

    例えば21フレームの単一の入力動画でSV4Dを実行するには:

    generative-models ディレクトリから
    以下のコマンドを実行します。

    python scripts/sampling/simple_video_sample_4d.py –input_path <path/to/video>

    起動時パラメータとしては以下のとおりです。

    • input_path: 入力動画は、
      • assets/test_video1.mp4のような gif または mp4 形式の単一のビデオファイル
      • .jpg、.jpeg、または.png形式の(連番)ビデオフレームの画像を含むフォルダ
      • ビデオフレームの画像に一致するファイル名パターン
        を指定できます。
    • num_steps: デフォルトは20です。より高い品質を得るには50に増やすことができますが、サンプリング時間が長くなります。
    • sv3d_version: 参照マルチビューを生成するために使用するSV3Dモデルを指定するには、SV3D_uの場合は –sv3d_version=sv3d_u、SV3D_pの場合は –sv3d_version=sv3d_p を設定します。
    • elevations_deg: SV3D_p(デフォルトはSV3D_u)を使用して、指定された仰角(デフォルトの仰角は10)でノベルビュー動画を生成するには、 python scripts/sampling/simple_video_sample_4d.py –input_path test_video1.mp4 –sv3d_version sv3d_p –elevations_deg 30.0 を実行します。
    • 背景削除: 無地の背景を持つ入力動画の場合、(オプションで) –remove_bg=True を設定することで、rembgを使用して背景を削除し、ビデオフレームをトリミングします。ノイズの多い背景を持つ現実世界の入力動画でより高品質の出力を得るには、SV4Dを実行する前に、Cliipdropを使用して前景オブジェクトをセグメント化してみてください。

    # このままだと A100 GPU (40GB)でも動作しない
    #!python scripts/sampling/simple_video_sample_4d.py –input_path assets/test_video1.mp4 –output_folder outputs/sv4d


    import os
    os.environ[‘PYTORCH_CUDA_ALLOC_CONF’] = ‘max_split_size_mb:512’
    #パラメータを小さくしてみましたが動かず
    !python scripts/sampling/simple_video_sample_4d.py \
        –input_path assets/test_video2.mp4 \
        –output_folder outputs/sv4d \
        –model_path checkpoints/sv4d.safetensors \
        –model_path_sv3d checkpoints/sv3d_u.safetensors \
        –batch_size 1 \
        –height 32 –width 32 \
        –num_steps 1

    # どなたか動作確認していただける方を募集します!

    Stable_Video_4D.ipynb https://j.aicu.ai/SVD4D

    Originally published at https://note.com on July 24, 2024.

  • 【AICU1周年祭】全力肯定彼氏くん[LuC4]の新機能「画像生成」を実験中 – 夏のアートコンテストへの応募も可能に!

    AICU Inc. は7月24日が創立記念日です。
    おかげさまで、無事にこの日を迎えることができました。
    「つくる人をつくる」というビジョンで走り続けた
    あっという間の一年でした。

    この記事では【AICU1周年祭】として現在開催中のクリエイティブAIイベントを紹介します。

    創立1周年特別企画(1)

    【全力肯定彼氏くん】アップデート

    LuC4が v.1.1にアップデートいたしました

    https://speakerdeck.com/player/44f464a459284563a49b4e8b7098388d

    ・応答速度が高速に!!

    ユーザからのアンケート調査の中でも特に全力肯定彼氏くんが愛されている要素は「応答が速い」という点。
    最新のGPT-4o mini(gpt-4o-mini-2024-07-18)を活用し、更に応答速度(最短で4秒以下を目標)を高速化のための工夫をこらして快適なUXを維持する研究を続けています。

    ・画像生成&X(Twitter)ポスト機能を試験的にリリース

    最新の Stability AI 提供の APIを使用して、キーワード「~~」をポストしてをトリガーに、LuC4(ルカ)くんの美麗なスタンプ風画像が生成されます。

    画像

    ✨️本機能は期間限定の実験的機能です。機能・表現・仕様については今後予告なく変更される可能性があります。

    全力肯定彼氏くんについての詳細はこちら
    https://corp.aicu.ai/luc4
    同技術のIP・ブランディングへの活用案件も歓迎です。

    創立1周年特別企画(2)「AICU Summer Art Contest 2024」中間報告!!

    「AICU Summer Art Contest 2024」を開催中です。
    おかげさまで多くの作品が集まり始めております
    作品応募はX投稿+エントリーフォームにて7月28日23:59まで。

    【PRTIMESでのプレスリリース】
    https://prtimes.jp/main/html/rd/p/000000019.000133647.html

    すでに多くの作品がタイムラインを賑わせています。

    優秀作品は「AICUマガジン」へ掲載されます。奮ってご応募ください!
    <リンクをクリックすると現在の応募状況が観測できます>

    ・キャラクターイラスト部門 #AICU_art


    ✨️当初「AICUキャラクター部門」としてリリースいたしましたが名称変更しております。キャラクターを題材にしたイラスト作品、漫画作品を募集しています。ツールはNijiJourneyをはじめとして特に制限はありません。

    #SD黄色本 部門


    書籍「画像生成AI Stable Diffusionスタートガイド」で扱っている分野、つまり AUTOMATIC1111 や Fooocus、SDXLやCivitaiを使った画像生成をGoogle Colabや Stability Matrixで探求されている方におすすめのフリースタイル部門です。書籍で学んだテクニックを駆使して作品を制作してください!制限なく自由な表現を探求しましょう。現状、応募が手薄です!

    #StableDiffusionAPI 部門


    次世代の画像生成技術、世界最高峰・最上位の画像生成AI「Stable Diffusion 3」をはじめとする以下のAPIを使った作品を募集しています。

    • Stable Image Ultra
    • Stable Image Core
    • Stable Diffusion 3 Large
    • Stable Diffusion 3 Large Turbo
    • Stable Diffusion 3 Medium

    「API?難しそう、お金かかるの?」とお考えのあなた!他の応募者さんがレポートを書いてくれましたのでご参考まで!

    https://note.com/runos_log/n/n09b309649fb9

    そして! #StableDiffusionAPI 部門 は、上記の全力肯定彼氏くん経由の応募も可能です。LINEチャットから気軽な生成で出来上がったラッキーショットをタイトルとともにエントリーいただくことも可能ですし、生成された画像を素材として使ってタイトル等を付けたり、APIの背景削除機能を使って合成したり…様々な加工も使うなど、様々なアイディアで探求いただけますと幸いです。

    エントリーフォームの提出をお忘れなく!

    エントリーフォームのURL → https://j.aicu.ai/SAC24

    ✨️画像生成AIが生成した画像に著作権はあるの?

    先日開催されたワークショップで共有された話題ですが…

    https://techplay.jp/event/946209

    画像

    法律上は問題はありません。
    法律上は問題はありませんが、クリエイターはどう振る舞うべきか?
    画像生成AIクリエイター仕草(v.1.0)を読みながら考えてみてください

    詳しくは次号の「AICUマガジン Vol.3」にて解説します

    画像

    ✨️応募に関する詳細・フォーマットなどはこちらの記事をご参照ください

    https://ja.aicu.ai/contest20240719/

    これからもより多くの方々にクリエイティブなAI、「つくる人をつくる」話題をお届けしていいきます。AICUをよろしくお願いいたします。

    Originally published at https://note.com on July 24, 2024.

  • Sakana AIより「日本の美を学んだAI」が公開

    2024年7月22日、日本の経済産業省(METI)傘下のNEDOやNTTドコモ・ベンチャーズ(NDV)、KDDIが出資し、推定45億円を調達している AI研究開発スタートアップの「Sakana AI(サカナAI)」(東京都港区)が、「日本の美を学んだAI」を公開しました。

    https://sakana.ai/evo-ukiyoe/

    https://note.com/aicu/n/na02326d588bf

    Sakana AIは、日本の美を学んだAIとして、浮世絵風画像生成モデルEvo-Ukiyoeと、浮世絵カラー化モデルEvo-Nishikieを公開します。Sakana AIが進化的モデルマージによって構築した日本語対応画像生成モデルEvo-SDXL-JPを基盤とし、浮世絵画像を大規模に学習することで、日本語に対応し、かつ浮世絵の特徴を学んだ画像生成モデルができました。

    https://sakana.ai/evo-ukiyoe

    このリリースの要点は以下の通りです。

    • Evo-Ukiyoeは、日本語のプロンプトを入力すると浮世絵風の画像を生成します。風景や着物姿の人々など、浮世絵によく取り上げられる題材については、実物の浮世絵に近い品質で生成できます。
    • Evo-Nishikieは、単色摺の浮世絵(墨摺絵等)を入力すると、多色摺の浮世絵(錦絵)風の画像を生成します。墨一色で印刷された江戸時代の本(古典籍)の挿絵をカラー化したり、多色摺の錦絵を別の色に変換して出力したりする目的にも利用できます。
    • Evo-UkiyoeとEvo-Nishikieの学習データセットには、立命館大学アート・リサーチセンター(ARC)所蔵浮世絵作品のデジタル画像24,038枚を利用しました。
    • Evo-UkiyoeとEvo-Nishikieが、日本の伝統文化の魅力を世界に広めるとともに、教育などへの活用や古典籍の新しい楽しみ方など、多くの人々に活用されることを期待しています。

    HuggingFace Spacesでのデモとモデル

    今回公開するモデルは、プロンプトから画像を生成するEvo-Ukiyoeと、古典籍の挿絵をカラー化するEvo-Nishikieモデルです。これらのモデルが、歴史や文化を学ぶための新たなコンテンツ作成に利用され、浮世絵に関する興味を増すことにつながり、日本や世界の人々が浮世絵や日本文化に興味を持つきっかけを生み出すことを期待しています。

    残念ながらHuggingFace SpacesでのデモはGPUが取得できないため、AICU media編集部での十分な動作確認できていませんが、 Evo-Ukiyoeは、入力した日本語プロンプトに沿った浮世絵風の画像を生成することができ、Evo-Nishikieは入力した単色摺の浮世絵(墨摺絵等)を日本語プロンプトに沿って多色摺の浮世絵(錦絵)風に変換した画像を生成することができるようです。

    画像

    編集部での実験例

    画像

    先行して公開されている日本特化の高速な画像生成モデル「EvoSDXL JP」は動作しています。非常に高速です。

    https://huggingface.co/spaces/SakanaAI/EvoSDXL-JP

    浴衣の男女が川岸で花火を見ています

    与えたプロンプト

    画像

    担当した研究者の方々

    開発者
    カラーヌワット・タリン(Sakana AI)
    シーン誠(Sakana AI)
    今宿祐希(Sakana AI)
    協力者
    赤間亮(立命館大学アート・リサーチセンター)
    北本朝展(ROIS-DS人文学オープンデータ共同利用センター/国立情報学研究所)

    Evo-UkiyoeはText-to-Imageモデルであり、画像データとキャプションのペアを学習データセットとします。そこで、浮世絵画像の内容を説明するキャプションを付与するために、大規模マルチモーダルモデルを用いて、Few-shot promptingによりキャプションを生成しました。そして、キャプションの間違い(人物の性別など)を人手で修正するとともに、Evo-SDXL-JPの最大プロンプト長(77トークン)に合わせて、キャプションを短くする、明確な特徴のみを加える、鳥籠模様や梅花模様などの複雑な専門用語を削除する、などの調整を行いました。
    この学習データセットを用いて、Evo-SDXL-JPをベースモデルとして、LoRAによるファインチューニングを行いました。

    生成時には、プロンプトを入力して画像を生成します。ただし、浮世絵により近い画像を生成するには、桜、富士山、着物、鳥など、浮世絵でよく取り上げられる要素をプロンプトに含めると効果的です。一方、江戸時代に存在しないもの(パソコンやハンバーガーなど)も生成はできますが、学習データセットに存在しないものを浮世絵風に生成することは難しく、全体として浮世絵らしくない画像が生成されることがあります。

    「日本古典籍の挿絵をカラー化」として、大学共同利用機関法人 情報・システム研究機構(ROIS: Research Organization of Information Systems)により、「絵本玉かつら Evo-Nishikieカラー化」が公開されています。

    http://codh.rois.ac.jp/tsukushi/evo-nishikie/200013861/

    オリジナル画像

    画像

    Evo-Nishikieカラー化画像

    画像

    テキストから画像への拡散モデルに対する技術としては「DPO-SDXL」と呼ばれる技術が使われているようです。直接嗜好最適化 (Direct Preference Optimization: DPO) は、人間の比較データを直接最適化することで、拡散モデルをテキストの人間の嗜好に合わせる方法です。2023年11月に「Diffusion Model Alignment Using Direct Preference Optimization(直接嗜好最適化を使用した拡散モデルの調整)」として論文化された技法です。

    https://huggingface.co/mhdang/dpo-sdxl-text2image-v1

    https://huggingface.co/RunDiffusion/Juggernaut-XL-v9

    興味深い Sakana AI の HuggingFace

    学術・文化的な古典日本文化の貢献の横で、HuggingFaceには「Magicoder」といった小サイズのLLMも公開されています。

    https://huggingface.co/SakanaAI/Meta-Llama-3-8B-Instruct-Magicoder-185k-lr_2e-5-minlr_4e-6_GB_64_1epoch-iter_0002912/tree/main

    今後も様々な先端技術の公開が発信されると想像します。

    Originally published at https://note.com on July 22, 2024.

  • Stability AI、オープンウェイトなテキスト楽曲生成「Stable Audio Open」公開。Google Colabで無料で体験!

    2024年7月22日、Stability AI が「Stable Audio Open」の研究論文をリリースしました。
    「Stable Audio Open」というタイトルで 論文プレプリントサイト arXiV に 7月19日付けで投稿された論文は、

    オープンな生成モデルはコミュニティにとって非常に重要であり、ファインチューニングを可能にし、新しいモデルを提示する際のベースラインとして役立ちます。しかし、現在のほとんどのテキスト音声生成モデルは非公開であり、アーティストや研究者がその上に構築することはできません。ここでは、クリエイティブ・コモンズのデータで学習させた新しいオープンウェイトのテキスト音声モデルのアーキテクチャと学習プロセスについて説明します。我々の評価では、このモデルの性能は様々なメトリクスにおいて最先端のものと遜色ないことが示されています。特に、報告されたFDopenl3の結果(世代のリアリズムを測定)は、44.1kHzでの高品質なステレオサウンド合成の可能性を示しています。

    https://arxiv.org/abs/2407.14358
    Translated
     by AICU

    この研究論文では、Creative Commons データを使用してトレーニングされた Stability AI の新しい”オープンウェイトなテキストオーディオ”(open-weights text-to-audio)モデルのアーキテクチャとトレーニングプロセスについて解説しています。
    このオープンなモデルは Hugging Faceで公開されています。このモデルは Stability AI Community Licenseに基づいてリリースされており、年間収益(annual revenue)が 100 万ドル以下の個人または組織による非商用および商用利用が可能です(エンタープライズ ライセンスについては問い合わせ)。

    ・このモデルは、テキスト プロンプトから 44.1kHz の高品質ステレオ オーディオを生成でき、リアルなサウンドやフィールド録音を合成するために使用可能。

    ・Stable Audio Open はコンシューマーグレードの GPU 上で実行されるため、学術目的や芸術的なユースケースに利用可能。

    アーキテクチャ

    Stable Audio Openは、3つの主要コンポーネントを備えたテキスト音声モデルを導入しています:
    ・管理可能なシーケンス長に波形を圧縮するオートエンコーダ
    ・テキスト調整のためのT5ベースのテキスト埋め込み
    ・オートエンコーダの潜在空間で動作するトランスフォーマベースの拡散モデル(DiT)。

    このモデルは44.1kHz、最大47秒の可変長ステレオ音声を生成します。オートエンコーダは21.5Hzという低い潜在レートを達成し、音楽やオーディオに対応できます。Stable Audio Openは(2024年4月3日に公開された)Stable Audio 2.0の亜種ですが、異なるデータセット(Creative Commonsデータ)で学習されています。このアーキテクチャは似ていますが、CLAPの代わりにT5テキストコンディショニングを使用しています。

    学習データ

    Stable Audio Openは、CC-0、CC-BY、またはCC-Sampling+でライセンスされた約50万件の録音を使用してトレーニングされました。このデータセットは、Freesoundの472,618件とFree Music Archive (FMA)の13,874件から構成されています。

    著作権で保護された素材が含まれていないことを確認するため、このコンテンツは、PANNs audio taggerを使用してFreesoundの音楽サンプルを特定することにより、慎重にキュレーションされました。特定されたサンプルはAudible Magicのコンテンツ検出会社に送られ、データセットから著作権で保護されている可能性のある音楽を確実に削除しました。

    ユースケース

    Stable Audio Openは、生成されるコンテンツの長さを調整したり、様々な業界やクリエイティブなプロジェクトの正確なニーズを満たすなど、音声生成をカスタマイズするために微調整することができます。ユーザーは、A6000 GPUを使ってローカルでモデルをトレーニングできます。プロンプトの作成については、Stable Audio 2.0のヒントをご覧ください。

    ここでは、このモデルをすぐに使用したり、微調整したり、ワークフローに統合したりするためのアプリケーションの例をいくつか紹介します

    🎧️ぜひとも公式サイトで音源をきいてみてください📢
    https://stability.ai/news/stable-audio-open-research-paper

    サウンドデザイン

    サウンドエフェクトとフォーリーエフェクト(音効)

    足音、ドアのきしみ音、環境音など、映画、テレビ、ビデオゲーム、ゲーム開発に使用できる効果音を生成します。

    アンビエントサウンド


    シーンのムードや雰囲気に合ったサウンドスケープや背景テクスチャを作成できます。

    サンプル作成

    音楽トラックを制作するためのドラムループと音楽サンプルを生成します。

    商用およびマーケティング用途


    オーディオブランディング

    広告用のサウンドエフェクトを作成したり、オーディオロゴやブランドサウンドを開発し、カスタムオーディオエレメントを通じてブランドの認知度やアイデンティティを高めます。

    教育と研究

    学術プロジェクト

     オーディオ合成、機械学習、音楽学の研究にこのモデルを使用し、生成されたオーディオの実験と分析を行います。

    このデモでは、より多くの例と、Stable Audio Openのパフォーマンスが他のモデルとどのように比較されるかを見ることができます。

    Google Colabでの実験

    まず Stability AI の非商用/コミュニティライセンスを取得します。

    https://stability.ai/community-license

    画像

    続いて、 Hugging Face 上のStable Audio Open の公開ページでライセンスを取得します。

    https://huggingface.co/stabilityai/stable-audio-open-1.0

    画像

    ご注意:商用利用の場合は、https://stability.ai/license をご参照ください。 sai@aicu.ai でもご相談をお受けいたします。

    公式サンプルをGoogle Colab環境で動作確認したAICU版のコードをこちらで公開しています。

    https://j.aicu.ai/StableAudioOpen

    次に Hugging Face のトークンを取得します。
    https://huggingface.co/settings/tokens
    Google Colabのシークレットに設定します。

    画像

    あとは実行するだけ!長さや冒頭の空白も設定できます。

    # Set up text and timing conditioning
    conditioning = [{
        “prompt”: “128 BPM tech house drum loop”,
        “seconds_start”: 0,
        “seconds_total”: 30
    }]

    サンプルコードのデフォルトプロンプト

    output.wav として生成されているので、ダウンロードして聴いてみましょう。

    画像

    以下は実際に生成した例です。
    “128 BPM NES, 8 bit action game BGM”

    https://note.com/api/v2/attachments/download/b514ac0f4d7a059a04bf6e632f0b73c5

    “128 BPM techno pop” 

    https://note.com/api/v2/attachments/download/7b6626ad5756ddc578dd2d64e096afcd

    “sound of the rain hitting the roof”

    https://note.com/api/v2/attachments/download/4de4c04ba8f4de31f955b71b64fb60a2

    “blackbird song in a forest”

    https://note.com/api/v2/attachments/download/6d912ec9ae69b5622d5d0e9a80a81478

    “chorus lalala…”

    https://note.com/api/v2/attachments/download/e9e21ea17beeb981eaa9cf1a70679a98

    最長生成秒数は47秒のようです。GPU消費は16GB以下です。

    画像

    学習元が Creative Commons であるということを考えて生成するとよいのかもしれません。それにしても「何回生成しても無料」というのはすごいですね。

    まとめ

    Stable Audio Openのリリースは、オープンソースのオーディオ生成AIにおける重要な一歩になると考えます。44.1kHzで高品質のステレオサウンドを生成し、コンシューマー規模のGPUで動作し、データの透明性に重点を置いています。このモデルの使いやすさとパフォーマンスにより、研究者とアーティストの両方にとって価値あるツールとなり、オープンなオーディオAIで可能性と限界を押し広げると考えます。

    この記事がよかったら、シェアとフォローよろしくお願いいたします!

    https://note.com/aicu/m/m6000f560d1db

    Originally published at https://note.com on July 22, 2024.

  • Omostで画像生成を細かく制御しよう(2) GPT-4o でCanvasを Stable Diffusion 向けに最適化する

    Omost」は大規模言語モデル(LLM)のコーディング能力を画像生成に変換するオープンソースプロジェクトです。ControlNetやStable Diffusion WebUI Forge、Foocusの開発者として著名なlllyasviel氏が中心に開発しています。
    そもそも「Omostって何」という方は前回の記事をご参照ください。

    ✨️本記事は Nobuyuki Kobayashi @nyaa_toraneko さんにご寄稿いただいた記事をベースに編集部でリライトしております。

    Omostが生成するCanvasとは

    Canvasは生成される画像に描かれるべき要素やモチーフを定義したオブジェクトです。
    その構造は、大きく分けて2つのブロックから構成されています。

    1.グローバル描写

    まずは、シーン全体のテーマや雰囲気を設定するブロックです。これをグローバル描写と呼びます。グローバル描写では、以下の情報を設定します

    • description: シーン全体の簡単な説明です。例えば、「魔法の生き物が住む鮮やかなファンタジーの世界」などです。
    • detailed_descriptions: シーンに関するもう少し詳細な説明をリストで提供します。例えば、「明るくカラフルな環境」、「空気中に漂う神秘的な輝き」などです。
    • tags: シーンに関連するキーワードを指定します。例えば、「ファンタジー」、「魔法」、「自然」などです。
    • HTML_web_color_name: シーンの主な色をHTMLカラー名で指定します。例えば、「スカイブルー」などです。

    2.ローカル描写

    次に、キャンバス上の特定の部分について詳細を設定するブロックです。これをローカル描写と呼びます。ローカル描写では、以下の情報を設定します

    • location: 描写される部分の位置です。例えば、「中央」などです。
    • offset: オフセットの有無です。例えば、「オフセットなし」などです。
    • area: 描写される部分の面積です。例えば、「大きな四角いエリア」などです。
    • distance_to_viewer: 視聴者からの距離です。例えば、「1.0ユニット」などです。
    • description: 描写される部分の簡単な説明です。例えば、「流れるようなローブをまとった威厳のある魔法使い」などです。
    • detailed_descriptions: 描写される部分に関するもう少し詳細な説明をリストで提供します。例えば、「星柄のマントを着ている」、「光る杖を持っている」、「長い白髭」などです。
    • tags: 描写される部分に関連するキーワードを指定します。例えば、「魔法使い」、「魔法」、「キャラクター」などです。
    • atmosphere: 描写される部分の雰囲気です。例えば、「神秘的」などです。
    • style: 描写される部分のスタイルです。例えば、「ファンタジー」などです。
    • quality_meta: 描写の品質に関するメタデータです。例えば、「高詳細」などです。
    • HTML_web_color_name: 描写される部分の主な色をHTMLカラー名で指定します。例えば、「紫」などです。

    例えば、実際にCanvasを用いてStable Diffusionで生成したあるイラストでは、以下のようにCanvasにローカル描写が指定がされています。

    画像

    このように、イラスト全体の相対的な位置におおよそどんなモチーフが配置されるか指定することによって、イラスト全体のレイアウトができあがるということです。

    ただ生成されたCanvasですが、読みやすく詳細な指定なのはいいのですが、とにかく長い。これをそのまま Stable Diffusion のポジティブプロンプトにコピペして、絵を出すこともできますが、ちょっとこのままでは扱いにくいのも事実です。

    そこでCanvasの要素をなるべく残しながら、指定を最適化していきましょう。
    筆者の場合、ここからはOpenAI社の GPT-4o上 でMy GPTsを設計し、「Omost Converter」というチャットボットを作りました。

    画像

    Stable Diffusion向けにCanvasの最適化をChatGPT 4oで行う

    ここでは、Canvasの最適化の手順を紹介します。
    興味がある方は、自分自身でもOmost Converterを作ってみるといいでしょう。

    1. Canvasの記述よりフルプロンプトを作成する

    まず、Canvasの情報を元に、グローバル描写と各ローカル描写を収集したフルプロンプトを作成します。以下のようなフォーマットで作成します。

    # グローバル描写
    “{description} with elements of {detailed_descriptions}. The scene has a {tags} feel, colored primarily in {HTML_web_color_name}.”

    # 各ローカル描写
    “In the {location}, there is a {description}. It is {offset} and occupies {area}. It is {distance_to_viewer} units away from the viewer. Detailed features include {detailed_descriptions}. The atmosphere is {atmosphere}, and the style is {style}, colored in {HTML_web_color_name}.”

    この段階でCanvasの情報は相当圧縮されますので、ChatGPT 4oでしたら、DALL-E 3で絵を生成することも可能ですが、まだまだ無駄が多いようですのでさらに最適化を進めましょう。

    2. フルプロンプトを最適化する

    続いてフルプロンプトを最適化します。最適化の目的は、プロンプトを短く、わかりやすくすることで、Stable Diffusionが生成する画像の品質を向上させることです。以下のステップに従って、プロンプトを最適化しましょう。

    手順 1: 不要な情報を削除

    プロンプトから冗長な情報や重複した情報を削除します。例えば、同じ意味の説明が繰り返されている場合、それを一度だけ記述するようにします。

    手順 2: 簡潔な言葉を選ぶ

    長いフレーズや文を、同じ意味を持つより短い言葉やフレーズに置き換えます。たとえば、「長い白髭を持つ魔法使い」ではなく、「白髭の魔法使い」といった具合です。

    手順 3: 主要なキーワードを強調

    プロンプトの主要なキーワードやフレーズを強調し、重要でない詳細を省略します。これにより、AIが重要な要素に焦点を合わせやすくなります。

    手順 4: 一貫したスタイルとトーンを維持

    プロンプト全体で一貫したスタイルとトーンを維持します。これは、読者がプロンプトを理解しやすくし、AIが意図を正確に把握するのに役立ちます。

    手順 5: 最適化されたプロンプトの例

    ここで、具体的な例を使って、最適化されたプロンプトを作成します。

    元のフルプロンプト

    # Global Description
    “魔法の生き物が住む鮮やかなファンタジーの世界 with elements of 明るくカラフルな環境, 空気中に漂う神秘的な輝き, 幻想的な雰囲気. The scene has a ファンタジー, 魔法, 自然 feel, colored primarily in skyblue.”

    # Local Descriptions
    “In the 中央, there is a 流れるようなローブをまとった威厳のある魔法使い. It is オフセットなし and occupies 大きな四角いエリア. It is 1.0 units away from the viewer. Detailed features include 星柄のマントを着ている, 光る杖を持っている, 長い白髭. The atmosphere is 神秘的, and the style is ファンタジー, colored in purple.”

    最適化されたプロンプト

    # Global Description
    “カラフルな魔法の世界, 明るい環境, 空気中に神秘的な輝き, 幻想的な雰囲気. ファンタジー, 魔法, 自然, スカイブルー.”

    # Local Descriptions
    “中央に星柄のマントと光る杖を持つ白髭の魔法使い. オフセットなし, 大きなエリア, 1.0ユニット距離. 神秘的な雰囲気, ファンタジースタイル, 紫色.”

    手順 6: トークンの数を確認

    最適化された各プロンプトが約75トークン以内であることを確認します。これは、AIがプロンプトを効果的に処理できるようにするためです。

    最適化されたプロンプトは、元のプロンプトに比べて短く、明確で、重要な情報に焦点を当てています。これにより、Stable Diffusionがより正確で魅力的な画像を生成できるようになります。

    またこの段階で、DALL-E 3に最適化されたプロンプトを試しに描かせてみてもよいでしょう。先にOmostで生成した画像と同様のモチーフの画像が生成されていれば成功です。

    これらの最適化を実行することで、生成したいイラストのプロンプトは以下のようになりました。

    A curious yet anxious girl with white hair floats in a dark, surreal alternate dimension, reaching out to a glowing orb through an open door. She is dressed as a bunny girl, with her white hair flowing around her, adding motion and wonder. Her expression mixes curiosity and anxiety, reflecting uncertainty about the future. The central focus is on her dynamic posture. The dimension features a tilted horizon and floating doors, creating a chaotic and disordered feel. The open door, made of otherworldly material, emits light that contrasts sharply with the dark space, enhancing the mystery. The glowing orb, symbolizing a wonderful future, emits radiant light, creating hope and anticipation. The scene is designed in a 16:9 aspect ratio, with detailed textures and light effects. The atmosphere is a mix of curiosity, anxiety, wonder, and trepidation, rendered in high-quality with a focus on detailed expressions and flowing hair.

    好奇心旺盛でありながら不安げな白い髪の少女が、暗く超現実的な異次元に浮かび、開いたドアから光り輝くオーブに手を伸ばしています。彼女はバニーガールの格好をしており、白い髪が周りに流れ、動きと驚きを加えています。彼女の表情は好奇心と不安が入り混じり、未来への不安を反映しています。中心は彼女のダイナミックな姿勢。次元は、傾いた地平線と浮遊するドアが特徴で、混沌とした無秩序な雰囲気を醸し出しています。別世界のような素材でできた開いた扉は光を放ち、暗い空間とのコントラストを際立たせ、神秘性を高めています。素晴らしい未来を象徴する光り輝くオーブは、希望と期待を生み出します。このシーンは16:9のアスペクト比でデザインされ、詳細なテクスチャと光のエフェクトが施されています。好奇心、不安、驚き、怯えが入り混じった雰囲気を、細かい表情や流れる髪を中心にハイクオリティで表現しています。

    このプロンプトをDALL-E 3で出力させてやると、以下のようになりました。なかなかいいですね。

    画像
    画像

    スタイルは違いますが、Omostで生成した画像と要素も一致しています。
    加えて今回は、空間に浮いているドアもバッチリです。ただドアを沢山画面内に配置すると、当然キャラも小さくなってしまうのが難しいところですね。こういうところは検討材料にしておきましょう。

    Stable Diffusionで最適化されたプロンプトを実行する

    最適化されたプロンプトからどんな絵が出るか、DALL-E 3で確認できたので、次はStable Diffusionでテストしてみましょう。

    Stable Diffusionでは、様々なCheckpoint(モデル)が選べますが、どちらかと言えば文章で構成されているプロンプトから画像を生成するには、SDXL系のモデルを使うことをお薦めします。今回は、AnimagineXL v3.1を使用しました。

    まずポジティブプロンプトに最適化されたプロンプトをペーストし、ネガティブプロンプトには、皆さんがよく使うようなものを入れて、生成しましょう。

    画像

    今回は1回目から、かなり近いテーマの絵が生成されました。これでOmostのプロンプトがStable Diffusionでも使えることがわかったと思います。

    何回か試してみると、キャラが大きく表示されるシードが見つかりました。
    これでシード次第で、キャラを大きく表現できることがわかります。

    画像

    ここからは、プロンプトに自由に魔改造を施していきましょう。


    この記事の続きはこちらから https://note.com/aicu/n/naee344ef0c53

    Originally published at https://note.com on July 20, 2024.

  • 【豪華賞品あり】夏を彩るアートコンテスト開催!あなたの作品がAICUの顔に【AICU創立1周年ファン感謝祭】

    【豪華賞品あり】夏を彩るアートコンテスト開催!あなたの作品がAICUの顔に【AICU創立1周年ファン感謝祭】

    AIクリエイターのみなさん、こんにちは!
    あなたの個性あふれるAIアート作品で、「AICU media」の表紙を飾りませんか?

    生成AI時代に「つくる人をつくる」をビジョンに「AIクリエイターユニオン」として活動してきた AICU Inc. は、2024年7月24日で創立1周年を迎えます!クリエイティブAI分野で毎日「つくる人」を応援するブログを作り続けてきた note での情報発信「AICU media」も開始から9ヶ月で 700フォロワー 30万PVを超えています。書籍「画像生成AI Stable Diffusionスタートガイド」の出版(重版出来!!)、Kindle「AICUマガジン」、公式ワークショップの開催など、日本におけるクリエイティブAI分野のみなさまの成長と拡大に支えられる日々であり、社員・編集部一同 大感謝の気持ちでこの日を迎えております。

    画像
    開始から9ヶ月で 700フォロワー 30万PVを超えています!!

    さて、このたび AICU media 編集部ではAICU創立1周年を記念して夏のアートコンテスト「AICU Summer Art Contest 2024」を開催いたします。選ばれた作品は、AICU media」「AICUマガジン」「公式X@AICUai」のカバーアートに堂々と掲載されるだけでなく、様々な部門における優秀作品にはAmazonギフト券10,000円をはじめ豪華な賞が贈呈されるほか、公式SNSでの作品紹介など、魅力的な特典もご用意しています。あなたの名前と共にAICUマガジン公式SNSでも作品が紹介されるので、多くの人に作品をアピールする絶好のチャンスです!

    応募部門は3つ

     キャラクターイラスト部門 #AICU_art

    キャラクターイラスト全般を扱う部門です。
    ✨️当初「AICUキャラクター部門」としてリリースいたしましたが名称変更しております

    AICUにも「Koto」「全力肯定彼氏くん LuC4」「AI確定申告さん 茶托税子」「ちびデルタ」など、個性豊かなAIキャラクターがいます。これらのキャラクターを題材にしたイラスト作品、漫画、あるいは二次創作も大歓迎です!

    画像
    画像

    #SD黄色本 部門

    フリースタイル部門です。書籍「画像生成AI Stable Diffusionスタートガイド」(通称:#SD黄色本)で学んだテクニックを駆使して作品を制作してください!制限なく自由な表現を探求しましょう。

    画像
    https://ja.aicu.ai/sbxl/

    https://note.com/aicu/n/n8d4575bcf026

    #StableDiffusionAPI  部門

    次世代の画像生成技術、世界最高峰・最上位の画像生成AI「Stable Diffusion 3」をはじめとする以下のAPIを使った作品を募集します。

    • Stable Image Ultra
    • Stable Image Core
    • Stable Diffusion 3 Large
    • Stable Diffusion 3 Large Turbo
    • Stable Diffusion 3 Medium

    https://corp.aicu.ai/ja/siuorigami

    イラストレーションももちろん強いのですが、広告や映像制作で使えるセミリアルな作品を作れる次世代のクリエイターの作品も期待します。
    サンプル画像例 Google Photo https://j.aicu.ai/SD3GP

    https://j.aicu.ai/SD3GP

    過去のユーザさんたちの作品もご参考まで!
    ▼全世界最高峰・最上位の画像生成AI (Stable Diffusion 3 8B+) が凄すぎた件

    ▼2024年6月現在、世界最高峰の画像生成AI「Stable Diffusion 3 8B+」を試す


    応募方法

    1. 「夏」をテーマにしたオリジナルAIアートを作成する
      • 海、花火、夕焼け、夏祭りなど、あなたのイメージを自由に表現しましょう。
      • 応募部門は「キャラクターイラスト部門」「SD黄色本」 「StableDiffusionAPI」 部門があります。
      • 作品自体には動画、漫画等を交えても構いません(ビジュアルとしての採用は静止画を対象とします)
      • 解像度やレイアウトについて、詳しくは募集要項をご確認ください。
    2. 作品をX(Twitter)に投稿する
      • 必須ハッシュタグ: #AICU 必ずつけてください
      • 部門ハッシュタグ: #AICU_art #SD黄色本 #StableDiffusionAPI いずれかをつけてください
      • コンテストへの応募であることを明記し、AICU公式Xアカウント @AICUai をフォローしてください。
    3. 応募フォームでエントリー完了!

    受賞作品の発表および賞金について

    受賞作品は「AICUマガジン Vol.3」にて発表予定です。
    採用された作品には、Amazonギフト券による謝礼をお送りします!

    • 優秀作品: 10,000円
    • 部門賞: 5,000円
    • 入選: 3000円

    さらに、入選作品でメイキング記事などをご寄稿いただける方には、AICUパートナークリエイターとして所定の原稿料を謝礼としてお贈りします。

    応募に関するQ&A

    Q・自分のオリジナルキャラクターは投稿できますか?
     キャラクターイラスト部門をはじめ、全部門で応募できます。

    Q・実写系、セミリアルはどの部門がおすすめですか?
     Stability AI Platform APIを使った場合は「#StableDiffusionAPI 部門」、Automatic1111など、多様なStable Diffusionを使った場合は「#SD黄色本」部門がおすすめです。

    Q・Photoshopなどで加工・加筆したものを投稿できますか?
     →できます。AI生成のみで生成した画像も、加筆したものも、AIを使ったアートも全て可能です。

    Q・推奨の縦横比・画像サイズを教えてください
     AICU media / AICU noteカバー:推奨 1920 × 1006 px
     AICUマガジン:縦長の推奨サイズは2000x3200pixels です

    Q:にじジャーニーや、Midjourneyは使えますか?
     キャラクターイラスト部門のみ、使用可能です。なお応募に関しては、各サービスの商用利用可能ライセンスを取得してください。

    Q・著作権の扱いは?
     X(Twitter)を経由したイベントのため、X利用規約および著作権に関するポリシーに従い「ユーザーは、ポストまたは共有する自身のコンテンツに対する所有権と権利を留保するとともに、自分のコンテンツを世界中で利用できるようにしたり、他のユーザーがポストまたは共有できるようにしたりするための非独占的ライセンスを当社に提供するものとします。」となります。他人の著作権を侵害しないこと、エントリーフォームからのエントリーによってエントリーの意思を表明していただき、AICU独自メディアでの掲載において、謝礼をお送りする形で非独占ライセンスを提供頂く形です。

    Q・どんな作品が期待されますか?

    「AICUマガジン」は、AIイラスト、AIアートに関する最新情報や、クリエイターのインタビューなどを掲載している、注目のデジタルマガジンです。 あなたの作品が掲載されれば、幅広い多くのAIアート愛好家の目に触れることができます。

    画像
    はねごろうさんからの note メンバーシップ掲示板への投稿

    過去の読者の広場では、こんな個性的な作品が選ばれました!

    画像
    「感謝のきもち」@nyaa_toraneko さんからの note メンバーシップ掲示板への投稿

    あなたの作品が掲載されるのは、こんな表紙です!

    画像

    編集部から、応募のヒントを大公開!

    「どんな作品を描けばいいの?」と悩んでいるあなたへ、編集部からヒントをいくつかご紹介します。

    🎨 AICUのキャラクターを活用しよう!

    AICUには「Koto」「全力肯定彼氏くん LuC4」「AI確定申告さん 茶托税子」「ちびデルタ」など、個性豊かなAIキャラクターがいます。これらのキャラクターを題材にした作品、あるいは二次創作も大歓迎です!

    画像

    🎨 二次創作もOK!

    AICUでは、二次創作に関するガイドラインも公開しています。詳しくは AICU公式ウェブサイト をご覧ください。

    🎨 プロンプトも公開中!

    プロンプトに悩んでいる方は、AICU公式ウェブサイトで公開されているプロンプトを参考に、自分だけのオリジナル作品を生み出しましょう。

    🎨 SD黄色本で学んだテクニックを駆使しよう!

    https://note.com/aicu/n/n02de834e3d5c

    🎨 実写系やセミリアルも大歓迎!

    AIイラストは、アニメ調だけでなく、実写系やセミリアルな作品も魅力的です。あなたの得意な表現方法で、夏らしい作品に挑戦してみてください。

    今後市場の拡大が期待される、広告や動画、映像制作のクリエイターの参加を期待します!

    https://ja.aicu.ai/alpaca-making/

    🎨 「季節感」が重要!

    夏のカバーアートということで、「季節感」を意識することが大切です。 例えば、夏の風物詩である花火大会や、海辺の風景、夏の食べ物など、夏らしいモチーフを取り入れてみましょう。

    🎨縦長・横長のレイアウトを意識!

    ・「AICU media」では横長のレイアウトで使用されます。解像度は1920x1080pixels(16:9)よりもさらに横長で1920×1006pixels、縦1/3の中央あたりがメインに表示されることを想定して、作品を制作しましょう。詳細はnoteのフォーマットをご参照ください。
    ・「AICUマガジン」の表紙では縦長のレイアウトが採用されます。縦長の推奨サイズは2000x3200pixelsです。
    ・「AICUマガジン」の「読者投稿コーナー」では、原寸で作品が掲載されます。最大解像度は3000x3000pixels です。

    マガジンの表紙を狙うか、AICU mediaを狙うか、みなさん次第です!

    🎨 露出に配慮しましょう!

    「AICU media」および「AICUマガジン」は、幅広い年齢層の方や性別・属性の方々に愛読されています。NSFWには特に配慮があります。夏がテーマではありますが、肌の露出や性的表現が強い作品については注意が必要です。

    🎨 親しみやすく、楽しい作品を!

    「クリエイティブなAIいいな!」と見ている人が楽しくなるような、親しみやすい作品を心がけましょう。そして、あなたが画像生成AIを使って作品作りを楽しんでいることが伝わってくるような作品の発信を目指しましょう!

    【審査について】

    編集部では、独創性、技術力、倫理観そして「AICUマガジン」「AICU media」のテーマに合致しているかを重視して選考します。

    作品の応募においては 画像生成AIクリエイター仕草(v.1.0) をご参照いただき、モラルに沿った生成AIのご使用をお願いいたします。

    あなたのAIアートで「つくる人をつくる」の夏を盛り上げてください!

    🔖本記事は随時更新されます!シェア、ブックマークをおすすめします

    Originally published at https://note.com/ on July 19, 2024.