5分でできる!Draw Thingsの使い方(Stable DiffusionをMacで使う方法)

画像生成

MacでStable Diffusionを使うには「Draw Things」が最も簡単です。

面倒な環境設定をしなくても、M1, M2チップのGPUを使って画像を生成できます。

ネガティブプロンプトやモデルの追加、LoRA、ControlNetなどにも対応しています。

この記事ではDraw Thingsの使い方を詳しく紹介します。

Draw Thingsをインストールする

Draw ThingsはApp Storeからダウンロードできます。

以下にアクセスしてApp Storeを開き「入手」を押すだけです。

‎Draw Things: AI Generation
‎Draw Things is a AI-assisted image generation tool to help you create images you have in mind in minutes rather than days. Master the cast spells and your Mac ...

Draw Thingsを開くと2GiB(約2.15GB)のモデルをダウンロードしてもよいか確認されます。

「Start Download」をクリックすると基本のモデルのダウンロードが開始されます(モデルは後で個別に追加できます)。

しばらくして次のような画面になればモデルのダウンロードは完了です。

すぐにプロンプトを入力して画像を生成できます。

Draw Thingsで画像を生成するには?

さっそく画像を生成しましょう。

画面の上部、中央にあるテキストエリアが「プロンプト」を入力する部分です。

ここに生成したい画像のイメージを英語で入力します。

例として「椅子の上にいる猫の画像」を生成してみましょう。

ここでは「Cat on chair」と入れます。

そして画面右上にある「Generate」のボタンをクリックすると1枚の画像が生成されます。

画像の生成中は以下のようにローディング画面が動いています。

画像の生成が完了すると、画像が表示されます(表示される画像はモデルや乱数のシード値などの設定によって異なります)。

プロンプトで指示した通り「椅子の上にいる猫の画像」を生成できました。

画像を複数生成するときは「Generate」ボタンの下にあるドロップダウンリストを変更します。

試しに「5」に設定して再度「Generate」をクリックすると、以下のように5枚の画像が生成されます。

Draw Thingsの使い方

Draw Thingsにはたくさんの機能があります。

ここからはそれぞれの機能の使い方を紹介します。

機能の使い方をよく理解すれば、狙った画像を生成できるようになります。

ぜひ参考にしてください。

1. ネガティブプロンプト(Negative Prompt)

まずは、画面右上の「Generate」ボタンの左側にある「ネガティブプロンプト」のエリアです。

「Here is for negative prompt」と書いてあります。

ここには「画像の生成で除外したいもの」をテキストで入力します。

たとえば、猫の画像を生成する際に「黒い猫」を除外したい場合は「Black」と入れてみましょう。

すると、生成する画像に黒い色の猫が含まれなくなります。

以下が実行した結果です。

トラ猫のような猫は含まれていますが、ネガティブプロンプトを含めた場合には「黒猫」が生成されなくなっていることがわかります。

画像生成を試していると、生成してほしくない画像が作られることはよくあります。

そんなときにネガティブプロンプトを活用すれば、いらない画像を生成しなくなるので、効率的に画像を生成できます。

2. モデル(Model)

ここからは画面左側にあるツールバーの説明に移ります。

まずは「Model」です。

Modelのドロップダウンリストから画像生成に使うモデルを選べます。

モデルの初期値は「Generic (Stable Diffusion) vXX」ですが、他にもたくさんのモデルがあります。

雲のマークがあるモデルを選択すると、クラウドからモデルがダウンロードされます。

一度ダウンロードすれば、それ以降はすぐに使えるようになります。

また、自分で用意したモデルや、事前にオンラインでダウンロードしたモデルはドロップダウンリストの先頭の「Manage …」から「表示されたダイアログのimportアイコン」→「Import Model」を選ぶと追加できます。

必要に応じて使いたいモデルをインポート・選択して使いましょう。

3. LoRA

LoRA(Low-order Rank Adaptation)は、モデルを追加学習して自分の好みのスタイルになるように調整する手法です。

LoRAを使うことで「(アニメの)〇〇っぽいイラスト」や「(タレントの)〇〇っぽい人物の画像」を生成することができます。

自分好みの画像を生成するにはLoRAを自作する必要がありますが、DrawThingsでは用意されたLoRAモデルを使って画像のスタイルを変えることができます。

例として「Anime LineArt Style v2.0」を使ってみましょう。

まずはLoRAの設定をせずに猫の画像を生成します。その後「Anime LineArt Style v2.0」を選択して比較します。

「Anime LineArt Style v2.0」を設定するときは、プロンプトの最後に以下の文字列を追加します。

<lora:animeLineartStyle_v20Offset:1.0>

これで画像を再生成します。

構図や姿勢、背景の雰囲気を残したまま、線画風になりました。

Weightを調整することで、LoRAの適用の強度を変更できます。

上の画像はWeightを100%にしたものですが、Weightを0%まで下げると以下のように出力が変わります。

Weightを0%まで下げると次のようになります。

線画っぽさが弱まっていますね。

このようにLoRAを活用することで画像の雰囲気を残しながら画像のスタイルを変更できます。

4. Control

「Control」は輪郭や深度情報、人物のポーズなどを制御するために使用する設定です。

ここにモデルを指定することで、生成される画像をコントロールできるようになります。

例として「Canny Edge Map(SD v1.x, ControlNet 1.1)」を使ってみましょう。

Canny Edge Mapは「エッジ(境界線)」を抽出して、生成される画像の構図や輪郭をコントロールするのに使います。

Controlのドロップダウンリストから「Canny Edge Map(SD v1.x, ControlNet 1.1)」を選択します。

そして、Controlの下にある「Strength」(後述)を100%に設定します。

さらにその下にある「Seed」(後述)の数字が書かれたボタンをクリックします。

それから画像を生成すると、もとの猫の輪郭を残したまま、別の猫の画像を作れます。

このようにControlをうまく活用することで、元の画像の特徴を維持しながら新しい画像を生成できます。

5. Strength

「Strength」には「Text-to-Image(テキストから画像を生成)」と「Image-to-Image(画像から画像を生成)」のどちらを重視するかを指定します。

Strengthを100%に設定した場合は、完全な「Text-to-Image」となるためプロンプトの内容だけを使って画像が生成されます。

Strengthを0%に設定した場合は、完全な「Image-to-Image」となり、もとの画像そのものが再生成されます。

このように、Strengthに0%から100%の間で値を設定することで「プロンプトの内容」と「元画像」のどちらを重視するかを調整できます。

6. Seed

「Seed」は画像生成時の乱数シードを設定するものです。

Seedについては以下に詳しく書きますが、ここでは「条件を変えずに別の画像を生成したいときにSeedの値を変えると異なる画像を作れる」と覚えておくとよいでしょう。

数字が書かれたオレンジ色のボタンをクリックすることでSeedの値を変えることができます。

原則的に、Seedの値が同じで、その他の設定も同じなら、まったく同じ画像を生成できるとされています(バージョンや実行環境によっては同じSeed値を選んでも再現できません)。

【コラム】Seedとは?

Seed(シード)とは、コンピュータで乱数を生成するもととなる値のことです。

本来、コンピュータは本当に意味でランダムな値を作ることができません。

コンピュータは機械なので人間が指示を出さない限り動けないからです。

そのため、ランダムな値を作るときは「擬似乱数」というランダムのように見える(けど、実は規則的な)値を生成します。

ランダムであるべき値が毎回「規則的に」作られてしまうと困るので、乱数を生成するための「種」を毎回変えることで、ランダムに見せています。

この疑似乱数を作る「種」がシード値です。

モデルが画像を生成する際にも、疑似乱数が使われています(データを分割したり、一部のデータをサンプリングするときにランダム性が必要になるためです)。

そのため、シード値を固定しないかぎりは、まったく同じ条件で画像を生成しても異なる画像が作られるのです。

そうはいっても「同じ条件のときは同じ画像を生成したい」という場合もありますよね?

実験のために、同じ条件で同じことを再現できることを示したいような場合です。

そんなときにシード値を固定すれば、同じ画像を生成できるようになるというわけです。

7. Seed Mode

次の「Seed Mode」では「Seed」で設定したシード値の「使い方」の互換性を定義します。

具体的には、以下の4つが選べます。

  1. Legacy
  2. Torch CPU Compatible
  3. Scale Alike

LegacyはDraw Thingsの以前のバージョンと互換性があります。

Torch CPU Compatibleでは、Stable Diffusion web UI(AUTOMATIC1111)やMac版のInvoke.AIと互換性があります。他のツールで画像を生成した場合と条件をそろえたいときはこの設定にするといいでしょう。

Scale Alikeでは、画像のサイズを変えて生成した場合に画像の類似性を維持します。

8. Image Size

「Image Size」には生成する画像の大きさを設定します。

「512×512」が初期値ですが「256×256」から「1280×640」まで様々なサイズが選べます。

ただし、初期値の「512 x 512」が最も良い結果になるとされています。

Stable Diffusionの学習に使われたデータが512×512だからです。

9. Upscaler

次は「Upscaler(アップスケーラー)」です。

Upscalerを使うと通常の画像から、より高解像度の大きな画像を生成できます。

高解像度化するときはもとの画像にはない画素がUpscalerによって補完されます。

そのため元の画像と一部が変化する場合があります。

例として、猫の画像にUpscalerを使ってみましょう。

ここでは「UniversalUpscaler V2 Sharp」を使用します。

「512×512」が「2048×2048」のサイズになって高解像度化されます。

ぱっと見はわかりにくいですが、Upscale後のほうが猫の毛の感じがよりはっきりと表現されています。

10. Steps

Stepsには画像を生成する際のステップ数を指定します。

ステップ数が大きいほど、よりよい画像が生成されますが、時間がかかります。

目的の画像を生成するのに時間がかかってしまう場合は、最初は少ないステップ数で生成して方向性を定め、条件が固まってきたらステップ数を増やすのがおすすめです。

11. Text Guidance

Text Guidanceは「プロンプトのテキストに対してどのくらい忠実に画像を生成するか」を設定するものです。

数値が大きいほどテキストに忠実に画像を生成します。

数値が小さいほど自由に画像を生成します。

テキストに厳格に従ってほしいときは数値を大きく、自由に画像を生成させたいときは数値を低く設定します。

ただし、値を高くしすぎても低くしすぎても望ましくない画像が生成されやすくなります。

たとえば、以下はText Guidanceを最大値(25)と最小値(0)に設定して、それぞれプロンプトを「Cat on chair」として生成したときの画像です。

最小値の0にした場合は、自由すぎてもはや猫の画像ではありません。

最大値の25の場合も抽象画のような猫になっています。

初期値の7.5を基準に微調整しましょう。

12. Sampler

Sampler(サンプラー)は、モデルが画像を生成するときの「ノイズを除去する方法」を定義する設定です。

画像生成モデル(潜在拡散モデル)は、元の画像に対してノイズを徐々に付加し、そのノイズを除去するプロセス(denoising process)をモデル化することによって画像の生成を実現しています。

ノイズを除去する過程に使われるのがSamplerです。

Samplerの選び方によって、画像のスタイルや画像生成の速さが変わります。

2023年5月23日時点で、Draw Thingsでは以下の6つのSamplerが選べます。

  • UniPC
  • DPM++ 2M Karras
  • Euler Ancestral
  • DPM++ SDE Karras
  • PLMS
  • DDIM

Euler Ancestralは「空想っぽい(dreamy)」な画像を生成します。

DPM++ 2M KarrasやDDIMは高品質な画像を早く生成できるといわれています。

使用する画像生成モデルによって特定のSamplerが推奨されていることもあるので、モデルのダウンロード元を確認してください。

13. CLIP Skip

CLIP Skipには、プロンプトに含まれる個々の単語を重視する強度を設定します。

CLIP Skipの値を大きくするとプロンプトに含まれる「個々の単語」の影響が画像に現れやすくなります。

一方で、値を小さくすると「プロンプト全体の意味」が画像に反映されやすくなります。

プロンプトに入力した「単語同士のつながり」が重要なとき(特に文章のように入力したとき)は、CLIP Skipの値は小さく設定するのがよいでしょう。

逆に、個々の単語をタグのように扱いたいとき(単語を修飾関係も無視して羅列したとき)には、CKIP Skipの値を大きく設定すると良さそうです。

【コラム】CLIPとは?

CLIPとは、OpenAIが開発した「テキストを特徴量に変換する仕組み(Text Encoder)」です。

コンピュータは人間の言葉をそのまま扱うことができません。そのため、テキストをベクトル化して(つまり数値化して)扱います。

Stable DiffusionではこれをCLIPという仕組みに任せています。

人間の言葉(テキスト)をベクトルに変換する処理は、層状になっており、複数の層で行われますが、CLIP Skipの設定で後ろからいくつか層の処理をスキップさせることができます。

これによって、単語同士のつながりを考慮する処理がスキップされ、個別の単語を重視するようになります。

14. Mask Blur

Mask Blurは、画像の一部にマスクをかけたときに、マスクの境界線上のぼかしの強さを調整する設定です。

Inpaintingなどでマスクした部分だけに画像を生成したいときに、Mask Blurの数値を上げておくと、境界がなめらかになり、新たに画像を生成した部分が背景に馴染みやすくなります。

例として、猫のマスク画像を用意します。

Controlの「Inpainting(SD v1.x ControlNet 1.1)」を使って、マスクをかけた部分に猫の画像を生成します。

このときMask Blurの値を変えて生成した結果が以下です。

マスクした部分に猫の顔がはめ込まれた形になっています。

そして、Mask Blurの値が大きいほど猫の輪郭(はめ込まれた部分の輪郭)がぼやけているのがわかります。

Mask Blurが1.5の場合は猫の周りにうっすら半透明の輪郭線のようなものが見えますが、15のときには線らしきものは見えません。

このようにMask Blurの数値を上げることでマスクと生成画像との境界線をぼかすことができます。

15. Face Restoration

Face Restorationは、画像を生成する際に「顔が崩れる」問題を修正するモデルを使うための設定です。

設定できる値は「Disabled(無効)」か「RestoreFormer」です。

ControlNetで既存の画像のPoseを変えようとすると、顔が崩れてしまうことがあります。このような場合に、Face Restorationを「RestoreFormer」に設定することで顔の崩れた部分を修正できます。

16. Batch Size

Batch Sizeは一度に何枚の画像を生成するかの設定です。

「1」なら1回のGenerateにつき1枚を生成します。

17. High Resolution Fix

High Resolution Fixは、画像を高解像度化するための設定です。

High Resolution Fixの横のトグルボタンをオレンジの状態にすることで適用されます。

High Resolution Fix では「①画像を生成する」「②画像を大きくする」というステップを踏みます。

ここではそれぞれのステップの設定ができます。

「1st Pass Size」には最初の画像生成のサイズを指定します。

「2nd Pass Strength」には高解像度化の強度を指定します。値を大きくするほど高解像度化が強くかかります。

値を小さくするともとの画像に含まれる情報が尊重されます。

18. Save Generated Images To

Save Generated Images Toは、生成した画像をどこに保存するかの設定です。

ここで選んだフォルダに生成した画像が保存されます。

初期値のDisabledの場合は、生成した画像は自動的に保存されないので、生成した画像を失いたくない場合はどこかのフォルダを指定しておくのがおすすめです。

19. Textual Inversion

Textual Inversionは、テキストのプロンプトだけでは表現しにくいものを表現するための仕組みです。

たとえば「ジブリ風」の画像を書いてほしいときに、テキストでどのように表現すればそれっぽい画像を生成できるのかわかりません。

このような場合に、事前にジブリの画像だけを学習したモデルを作りTextual Inversionに指定すれば「ジブリ風」のスタイルをStable Diffusionのモデルに教えることができます。

Textual Inversionの設定で「Manage …」をクリックすると、いくつかの既存のモデルがダウンロードできるようになっています。

これらの中から選んで使用するか「Downloaded File」のところで任意のファイルを追加することで、Textual Inversionをimportして使用できます。

19. Projectボタン

次は画面左下にある「Project」のボタンです。

これをクリックすると、プロジェクトを読み込んだりエクスポートするメニューが開きます。

Load a Project …

「Load a Project …」では、既存のプロジェクトを読み込むことができます。

「Load a Project …」をクリックするとファイルダイアログが開きます。

後述する「Export the Project …」で出力したsqliteファイルをここで選択すると、保存済みのプロジェクトを読み込むことができます。

Rename “Untitled-XXXXXX”

「Rename “Untitled-XXXXXX”」では、プロジェクトの名前を変更できます。初期状態では「Untitled-XXXXX」のように自動的に割り当てられています。

Export the Project …

「Export the Project …」で作業中のプロジェクトを出力・保存できます。

「Export the Project …」をクリックすると「Vacuum the Project?」というダイアログが開きます。

「Deep Clean and Vaccum」や「Vacuum and Export」を選択すると、プロジェクトのデータをクリーンナップしてデータサイズを削減してくれます(ただし時間がかかります)。

データの削減が不要な場合は、Export Directlyをクリックします。

いずれかを選択すると保存するsqliteファイルに名前をつけるダイアログが開きます。

任意の名前をつけて「Export」をクリックするとプロジェクトが保存されます。

保存したプロジェクトは後で「Load a Project …」で読み込むことができます。

Start New Project …

「Start New Project …」をクリックすると現在のプロジェクトが終了して新しいプロジェクトが開きます。

現在のプロジェクトはExportして保存しておかないと二度とアクセスできなくなります。

注意しましょう。

20. Presets

Draw Thingsの画面左下にあるPresetsは初期設定を適用するためのボタンです。

いくつかの初期設定が用意されており、いずれかを選択するとその設定で画像の生成が始まります。

21. 編集ツール

画面下中央の左側にある丸い4つのアイコンは、表示中の画像を編集するためのツールのボタンです。

Apply eraser or paintbrush to the selected area only.

一番左側のペンシルアイコンは、画面内の一部の領域を選択してその領域だけにペイントブラシ(後述)や消しゴム(後述)を適用できる機能です。

ペンシルアイコンをクリックしてオレンジにした状態で、先ほどの猫の画像の猫をダブルクリックします。

すると猫の部分だけが自動的に選択され、この部分にのみペイントブラシや消しゴムの機能が適用されるようになります。

マスク画像や深度マップを作るときに便利です。

Repositioning image on the canvas.

手のアイコンはキャンバス内で画像を移動できる機能です。

手のアイコンをクリックしてオレンジ色にした状態で画像をドラッグすると移動できます。

Eraser.

消しゴム機能です。ペイントブラシやポーズなど画像中に書き込んだものをドラッグして消すことができます。

Paint brush.

画像をペイントする機能です。Inpaintingなどでマスク画像を作るときに使えます。

クリックするとカラーピッカーが出てくるので任意の色を選択します。

ペイントブラシのアイコンをオレンジ色にした状態でマウスで画像上をドラッグすればペイントできます。

22. キャンバスに関するツール

画面下中央の右側にある丸い2つのアイコンは、キャンバスを操作するボタンです。

Start a blank canvas.

紙のようなアイコンは空白のキャンバスを作成するためのボタンです。

クリックすると空のキャンバスが作られます。

Select an image from Photos.

カメラのアイコンは写真フォルダから画像を選択するためのアイコンです。

クリックするとイメージピッカーが開きます。

またカメラアイコンを右クリックするとコンテキストメニューが開いて、他のオプションを選択できます。

23. Save

Saveは生成した画像を保存するボタンです。

クリックすると生成した画像を保存できます。

24. Share

Shareは生成した画像を共有するためのボタンです。

一般的なファイルの共有ボタンと同じように、生成した画像を様々な方法で共有できます。

25. 生成した画像一覧の表示設定

画面右側にある以下の4つのアイコンは、生成した画像の一覧表示を切り替えるためのボタンです。

Show all past edits.

時計アイコンは過去に生成した画像や編集過程をすべて表示するためのボタンです。

初期設定ではこの表示になっています。

生成された画像と合わせて、画像の塗りつぶしやポーズの変更などの履歴も見れるので便利です。

Show edits lead to the most recent image.

上から2番目の線分アイコンは、直近に生成した画像とそれにつながりがある編集画像を表示するモードです。

初期表示では生成した画像もその編集に使った画像もすべて時系列に並んでしまうため、少し前の画像を編集して画像生成した場合に、その2つが離れた位置にあって見づらくなります。

そんなときにこのモードで表示すると、直近で生成した画像とその編集画像が並んで表示されるので見やすくなります。

Show only generated image.

上から3番目のコーヒーカップは「生成された画像だけ」を表示するボタンです。

画像の塗りつぶしやポーズの設定などの編集画像は表示されず、生成した画像だけを見ることができます。

Show past edits in a popover.

上から4番目の四角形のアイコンは、これまでの編集画像をポップアップダイアログで見るためのアイコンです。

これをクリックするとダイアログが開いて、過去に編集した画像をアイコン表示で見ることができます。

26. Select layers for display.

画像の領域の右下にある菱餅のようなアイコンは「レイヤの設定」です。

初期設定は「Image」で、生成された画像が表示されます。

その他のレイヤの表示設定は以下の通りです。

  • Scribble … 落書き表示
  • Pose … ポーズの表示
  • Color Palette … カラーパレットの表示
  • Custom … カスタムレイヤの表示
  • Load layers … 既存のレイヤの読み込み
  • Save layers … 現在のレイヤの出力・保存

Image以外のレイヤを選んでも、そのレイヤを編集していない場合は、以下のように黒や白の半透明な表示になります。

選択したレイヤに対してなんらかの編集をすると、そのレイヤを選択したときに編集内容が表示されます。

ここでは、例としてPoseレイヤを編集してみましょう。

Poseレイヤを編集するために人物の画像を使います。

まずは、以下の男性の「ポーズ」をDraw Thingsに読み込みます。

画像から人物のポーズを読み込むには菱餅のアイコンをクリックして「Load layers …」→「Pose」→「Pose from Files …」を選択します。

ファイルを選択するダイアログが開くので、先ほどの男性の画像を選択します。

すると、以下のようにポーズが抽出されて読み込まれます。

次に、このポーズを使って画像を生成します。

画面左側のツールバーから「Pose (SD v1.x ControlNet 1.1)」を選択してください。

さらに、プロンプトを任意のものに書き換えます。

ここでは「Japanese, man, T-shirt」としました。

この設定で画像を生成します。

すると以下のようにもとの画像の男性のポーズを保ったまま、別の男性の画像が生成されます。

生成される画像は環境によって異なりますが、同じポーズであることを確認してください。

次はポーズを編集してみましょう。

もう一度、右下の菱餅アイコンをクリックして「Pose」を選択します。

すると、Poseレイヤに切り替わります。

カラフルな点と線でポーズが表示されます。

点をマウスで移動するとポーズを変更できます。

試しに手を動かしてみましょう。

左腕の肘から下を外側に曲げてみました。

これでポーズを変更できます。

ここではポーズの変更が強く反映するために、ControlのWeightを150%に上げておきます。

この状態で再度画像を生成してみましょう。

先ほどの男性の手が曲がりました。

Tシャツのロゴや背景が変わっていたり、手の曲がり方は不気味ですが、一応ポーズのコントロールができています。

このようにレイヤ機能を使うことで、画像を編集することができます。

まとめ

今回はApple SiliconのMacでもStable Diffusionを簡単に使える「Draw Things」の使い方を紹介しました。

たくさんの機能がありますが、1つ1つ使って覚えていきましょう。

しっかり使い方を覚えて画像を生成すれば、より効率的に狙った画像を生成できるようになりますよ。

記事の内容にわからないことがある方は以下のアカウントに気軽にDMしてください!

@sti320a

また、最新の技術の活用方法など役に立つツイートを心がけているので、ぜひフォローしてもらえると嬉しいです!

タイトルとURLをコピーしました