iPhone, iPad, でもStable Diffusionなどの画像生成AIを動かせる、「Draw Things: AI Generation」というアプリの使い方を紹介します。
iOS, Mac OS向けに最適化されており、M1 MacBook Air(8GBメモリ)のローカル環境でも512×512サイズの画像1枚を1分程度で生成できます。
Model, VAE, LoRa, ControlNetの読み込みもでき、Stable Diffusion web UIとほぼ同等のことを少ないメモリで高速に実行できるため、「話題の画像生成AIをちょっと触ってみたい」という方にオススメです。
システム要件
Draw Things appは以下のデバイスで使用可能です。
iPhone | iPad | Mac | |
CPU | A12 Bionic以降 (iPhone XS以降) | A12 Bionic以降 (iPad Air 3, iPad mini 5, iPad 8以降) | AppleSilicon M1以降 |
OS | iOS 15.4以降 | iPadOS 15.4以降 | macOS 12.4以降 |
導入方法
App Storeから無料でダウンロードできます。
App Storeからダウンロードできない場合、こちらの開発元から直接zipのダウンロードもできます。
使い方
とりあえず画像生成する方法から、各設定項目の説明(英語の翻訳)です。
私の環境がM1 MacBook Airの最低構成(8コアCPU, 7コアGPU, 8GBユニファイドメモリ)、macOS Ventura 13.3.1のため、以降は私の環境での結果になります。
とりあえず画像生成する
試しに「ふわふわの犬」を生成してみます。
最低限必要なのは、この3つです。
- Model選択
- 画像生成に使用するモデルを選択します。
今回は汎用的な「Stable Diffusion v1.5」を使用しましたが、プルダウンから別のモデルの選択や、自分で準備した「.safetensors, .ckpt」も使用可能です。
- 画像生成に使用するモデルを選択します。
- Prompt(呪文)入力
- いわゆる「呪文」です。生成したいものについて記述します。
- 「Generate」で生成
かわいいなにかが出てきました。
画像生成パラメータ
生成する画像に影響のある、左側にある設定項目について説明をします。
- Model
- 画像生成に使用するモデルを選択する。
モデルによって得意な絵柄が異なり、例えば「waifu-diffusion」はアニメ調の生成に適している。
- 画像生成に使用するモデルを選択する。
- LoRA
- LoRA (Low-Rank Adaptation)は、Stable Diffusionのベースモデルに別途学習させた小さな加法モデルを適用する手法。これは、一般的にフルモデルファインチューニングよりも高速に学習される。
例えば特定のキャラクターで学習させたLoRAモデルを使用することで、そのキャラクターに近い画像を生成することができる。
- LoRA (Low-Rank Adaptation)は、Stable Diffusionのベースモデルに別途学習させた小さな加法モデルを適用する手法。これは、一般的にフルモデルファインチューニングよりも高速に学習される。
- Control
- ControlNetと呼ばれるもの。
画像生成を補助するための追加制御を行える。scrible, pose, depth, edge等があり、画像や手書きで事前に指示することで、構図やポーズを制御できる。
- ControlNetと呼ばれるもの。
- Strength
- Promptの影響度。値を下げることで選択画像に影響を受けた画像生成(image to image)になる。
- Seed
- 画像生成の開始方法を決定する。同じシードであれば、同じ画像が生成される。
- Seed Mode
- シードの使用方法。
Legacy:過去のDrawThings appとの互換性あり
Torch CPU Compatible:AUTOMATIC 1111やInvoke AI などのデスクトップツールとの互換性あり
Scale Alike:異なる画像サイズでも、ある程度シードを似せられる
- シードの使用方法。
- Image Size
- 生成する画像サイズ。512×512が最も良い結果になる
- Upscaler
- 小さな画像(512×512)から高解像度(2048×2048)画像を生成する機能。使用するアップスケーラーによって、細部が塗り分けられたり、微妙に異なるスタイルが導入される。
- Steps
- 画像生成に適用するステップ数。ステップ数を増やすと、より良い画像が得られるが、より長い時間がかかる。
- Text Guidance
- 入力されたテキストをどの程度「文字通り」扱うか。高いほどテキストに忠実で、低いほど自由度が高くなる。Stable Diffusion web UIのCFG Scale。
- Sampler
- サンプラーが異なると、収束するステップが異なり、ビジュアルスタイルが異なる場合がある。Euler Ancestralはより「夢のような」画像を生成することが知られており、DPM++ 2M Karrasは30ステップ以下で高品質の画像を生成することができる。
- CLIP Skip
- テキストエンコーダの最後のレイヤーから何レイヤーがスキップされるかを制御する。テキストエンコーダでより多くのレイヤーをスキップすると、コンピュータは、それらの組み合わせの意味よりも個々の単語に焦点を当てるようになります。これは、タグのようなテキスト入力に微調整を加えるモデルに有効かもしれません。
- Mask Blur
- マスクのエッジを少しソフトにすることで、画像の他の部分との調和を図ることができる。
- Face Restration
- 画像生成時に歪んだ小さな顔を修正するために、追加のモデルを使用することができる。この処理は、フォトリアリスティックな画像に最も効果的。アニメや絵画的な画像では、この処理は好ましくないかもしれません。
- Batch Size
- 一度に生成する画像の枚数を指定。
- Hi Resolution Fix
- 高解像度化処理では、最初に選択したサイズで画像を生成し、次に選択した強度で画像を生成し、目標サイズに達するまで微調整を行います。直接生成する場合の重複オブジェクトを避け、一般的なアップスケーラーを使用するよりも詳細な情報を生成する傾向があります。
- Save Generation Image to
- 生成した画像の保存先を選べる
- Textual Inversion
- 事前に訓練されたスタイルや概念を適用するためのもの。
ネガティブプロンプトによく使われている言葉を追加学習させた「EasyNegative」が有名。これを入れることで、たくさんのネガティブプロンプトを入れたのと同じ効果が期待できる。
- 事前に訓練されたスタイルや概念を適用するためのもの。
マシン設定(Machine Settings)
画像生成速度に影響のある、マシン設定についてです。
画面左のパラメータ設定項目を一番下までスクロールすると出てくる、四角いボタンを押すと設定画面が開きます。
- Keep Model in Memory(モデルをメモリに保持する)
- デフォルトでは、画像生成後にメモリを解放し、再度生成する際にモデルを再読み込みする。モデル読み込みには2~5秒かかる。この設定を有効にすることで、モデルをメモリに保持し画像生成が早くなる。OSがメモリ不不足を通知したときのみ、メモリを解放する。オプションでCoreMLモデルのみ事前に読み込む設定も可能。
- Use CoreML If Possible(可能であればCoreMLを使用する)
- CoreMLはメモリ使用量が多く、多くのモバイルデバイスでは適用できない。CoreMLは初回読み込みに70秒ほどかかるが、画像生成が50%ほど早くなる。初回の読み込み時間短縮のため「Keep Model in Memoryの「Preload」」と一緒に使うと良い。
- CoreML Compute Units(CoreMLで使用する演算ユニットの選択)
- All:高速に動作するが、最も多くのリソースを使用する
- CPU & Neural Engine:高速で電力効率に優れる
- CPU & GPU:モデルのロード時間が大幅に短縮し、高速に動作する
- Use CoreML for LoRA(CoreMLをLoRAに使う)
- LoRAにもCoreMLを使用できる。ただし、Weight変更、LoRAモデル変更のたびに新しいCoreMLモデルを生成するため、モデルのコンパイルに時間がかかることがある。
- CoreML Model Cache Size(CoreMLモデルのキャッシュサイズ)
- CoreMLを使用する場合、モデルをCoreML用に変換する必要がある。変換されたモデルはAppleのキャッシュディレクトリに保存され、ディスク容量が不足した場合は自動的に削除される。容量節約のため、保存する変換モデルの数を制限している。「0」を選択するとキャッシュを全て削除する。
- File-Swap Weights(メモリの代わりにハードディスクを使用する)
- StableDiffusionのコア動作には、最低1.7GBのパラメータが必要で、3GB RAMのモバイルデバイスではパラメータ読み込みだけで大変。このオプションを使うことで、ハードディスクに一部パラメータを移しメモリのように使える。低速端末では問題ないが、高速端末では処理速度が落ちる可能性がある。「Never」を選択することで、ディスクにあるパラメータファイルを削除する。
- Temporary Directory(一時保存ファイルを明示的に削除する)
- OSの内部機構により、DrawThingsはtmpディレクトリに一時ファイルを作成することがある。これらのファイルはOSのディスク容量が不足すると自動的に削除されるが、「Cleanup」を押すことで明示的に削除できる。
まとめ
画像生成AIをiPhoneやiPad, M1/M2 Macのローカル環境で動かせる、Drawing Thingsの使い方でした。少しでも検証時間を短縮するために英語の注釈を日本語で残しておきます。
コメント