オープンソースの画像生成AIをセットアップから使い方まで解説する『Stable Diffusion AI画像生成ガイドブック』(ソシム刊)発売中(→本のサポートページ

飛蚊症

少し前のある日、目を覚ますと視野の左上あたりに黒い小さなしみが見えるようになっていた。目を動かすとついてくる感覚がある。左目を手で覆うと見えなくなるので、左目になにかがあるようだ。これが飛蚊症ひぶんしょうというものだろうか。

検索してみると放っておくと確率は低いが網膜剥離とか失明とか怖いことが書かれている。ちょっと緊張しつつ眼科へ行った。

症状を説明すると先生はハイハイいつものあれね、という感じで診てくれた。

「加齢によるものでこれ以上悪くなったりはしないでしょう。うまくつき合っていくことを考えましょう」とのこと。言い回しに気遣いが感じられた。こちらはそれだけですんで安心した。

Stable Diffusionでそれっぽい画像を作る

ところで最初の画像はStable Diffusionで出力した。


  • One road leading to the horizon, blue sky, hot air balloon
  • Negative prompt: (worst quality low quality:1.4) text error cropped blurry signature watermark username monochrome multiple views
  • Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 2907932944, Size: 768x768, Model hash: fc52756a74, Model: dreamlike-photoreal-2.0

これをもとに画像処理ソフトで気球を小さくしたり空をグラデーションできれいにしたり、地面と道路を引き伸ばしたりトリミングしたりすると


こうなった↓
画像処理ソフトで黒い枠を重ねる

あとは黒いしみを追加して完成。

Stable Diffusionの解説本を書きました!(隙あらば宣伝。現在3刷です)

本の内容や目次
『Stable Diffusion AI画像生成ガイドブック』が3月31日ごろ出ます
書籍のサポートページ
『Stable Diffusion AI画像生成ガイドブック』(ソシム刊)サポートページ

Stable Diffusionのインペイントで余分な手足の除去、ディテールアップ、表情差分の作成

img2imgのインペイントで画像を修正しよう

Stable Diffusionの「img2img」(画像とプロンプトから新しい画像を生成)の中には、「インペイント(inpaint)」という機能があります。マスクする範囲を指定して、そこだけ(またはそれ以外だけ)別の画像に入れ替えるというものです。『Stable Diffusion AI画像生成ガイドブック』では156ページ「3-11 インペイントで画像の一部を修正する」で機能を解説しています。

インペイントはどういうときに使うといいのか、いくつかのユースケースを紹介します。

余分な手足などの除去

txt2imgで出力した画像で、構図は申し分ないのに余分なものが描画されてしまうことがあります。手足が増えてしまうなどがその一例です。

下の画像はいい感じのが出ましたが、左上に謎の剣があるほか、中央の人物の足が3本あるように見えます。また左の人物の足下にも余分な足があります。これをインペイントで直しましょう。

(画像はメタデータ入りです。ブラウザから「PNG内の情報を表示(PNG Info)」へ直接ドラッグ&ドロップすると生成情報が読み込まれ、「txt2imgへ転送」ボタンをクリックするとtxt2imgで生成できるようになります)

  • shot from below party of standing girls d & d characters sword shield armor stuff helmet
  • Negative prompt: (worst quality low quality:1.4) text error cropped blurry signature watermark username monochrome multiple views
  • Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 9, Seed: 15714242, Size: 512x512, Model hash: 80b64299af, Model: nostalgiaClear_nostalgiaClear, Denoising strength: 0.7, Clip skip: 2, Hires upscale: 2.5, Hires upscaler: R-ESRGAN 4x+ Anime6B

txt2imgで画像を生成しました。画像の下の「inpaintに転送(Send to inpaint)」ボタンをクリックします。

「img2img」タブの「inpaint」タブに先ほど生成した画像が読み込まれ、プロンプトやネガティブプロンプトなどもtxt2imgからコピーされます。

右上のボタン群は[×]が消去で、ほかにアンドゥとペンの太さの変更が可能です。

左上の剣と中央下部、そして左下の余分な足をマスクとして塗りつぶします。消しゴムにあたるツールはないので、塗りすぎたときはアンドゥするしかありません。一回の操作(マウスの場合一回のドラッグ)で広範囲を塗りつぶすと、アンドゥしたとき塗り直す範囲が広くなります。少しずつ塗っていくようにしましょう。

また塗る範囲は、消したい範囲からはみ出しても大丈夫です。余分なものを消すときは特に、少しはみ出ているくらいのほうがよい結果になります。

下のように塗りました。

塗ったのはこの範囲です。

インペイントの生成パラメータを設定します。ポイントとなるのはここです。


マスクされたコンテンツ(Masked content)…「埋める(fill)」
マスクされた領域を元の画像の色を参考にいったん塗りつぶし、それをもとに画像を生成します。元の画像の雰囲気を引き継ぎつつ異なる画像を生成し、その中に空中の剣や余分な足が描かれていないことを期待しています。
inpaintを行う領域(Inpaint area)…「画像全体(Whole picture)」
画像全体を再生成し、その結果を元の画像へ貼り込みます。その際、マスクされた領域だけを切り出して元の画像の上にかぶせるイメージです。
シード(seed)…「-1」
「inpaintに転送」した際に元の画像のシード値「15714242」が入っていますが、このままだと何度インペイントしても同じ画像が生成されます。ランダムな画像を生成する「-1」を指定します。

プロンプトやそのほかのパラメータはそのままにして「生成」ボタンをクリックしましょう。

何度か生成したところ、こんな画像が出ました。


  • shot from below party of standing girls d & d characters sword shield armor stuff helmet
  • Negative prompt: (worst quality low quality:1.4) text error cropped blurry signature watermark username monochrome multiple views
  • Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 9, Seed: 668721389, Size: 1280x1280, Model hash: 80b64299af, Model: nostalgiaClear_nostalgiaClear, Denoising strength: 0.7, Clip skip: 2, Mask blur: 4

3か所すべてがきれいに消えました。新しく描き込まれた部分も違和感はありません。

左から元の画像、新しい画像から切り出されたマスク部分、2つを重ねて出力された画像です。

(今回は3か所を同時に修正しましたが、1か所や2か所だけいい感じに修正されることが多くありました。それを改めて「inpaintに転送」し、修正されていない場所だけマスクし直してインペイントする方法もあります。インペイントで生成された画像をもう一度「inpaintに転送」する手順はこのあと解説します)

ディテールアップ

遠くにあって崩れ気味の顔をくっきりと描写させてみましょう。

下は512×512ピクセルで出力した画像です。画像の中で顔の占める割合が少なく、表情がよくわかりません。


  • standing 1girl fullbody red coat outdoor
  • Negative prompt: (hat hood:1.8) EasyNegative, (worst quality low quality:1.4) text error cropped blurry signature watermark username monochrome multiple views
  • Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 9, Seed: 3169349441, Size: 512x512, Model hash: 80b64299af, Model: nostalgiaClear_nostalgiaClear, Clip skip: 2

高解像度補助(Hires. fix)で2.5倍の1,280×1,280ピクセルに拡大しました。表情がよくわかります。


  • standing 1girl fullbody red coat outdoor
  • Negative prompt: (hat hood:1.8) EasyNegative, (worst quality low quality:1.4) text error cropped blurry signature watermark username monochrome multiple views
  • Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 9, Seed: 3169349441, Size: 512x512, Model hash: 80b64299af, Model: nostalgiaClear_nostalgiaClear, Denoising strength: 0.5, Clip skip: 2, Hires upscale: 2.5, Hires upscaler: R-ESRGAN 4x+ Anime6B

ここから、インペイントで顔をさらにきめ細かく描写してもらいます。画像の下の「Inpaintに転送(Send to inpaint)」ボタンをクリックします。

顔と帽子を塗りつぶします。

インペイントのパラメータを設定します。重要なのはこの2つです。


マスクされたコンテンツ(Masked content)…「元の画像(original)」
マスクされた領域の元の画像からimg2imgのようにして画像を生成します。
inpaintを行う領域(Inpaint area)…「マスクのみ(Only masked)」
マスクされた範囲をいったん拡大して画像を生成し、その結果を縮小して元の画像へ貼り込みます。

そのほかのパラメータはプロンプトやネガティブプロンプト、シード値も含めてすべて変更せず、そのまま「生成」しました。するとこうなります。


  • standing 1girl fullbody red coat outdoor
  • Negative prompt: (hat hood:1.8) EasyNegative, (worst quality low quality:1.4) text error cropped blurry signature watermark username monochrome multiple views
  • Steps: 2, Sampler: DPM++ 2M Karras, CFG scale: 9, Seed: 3169349441, Size: 1280x1280, Model hash: 80b64299af, Model: nostalgiaClear_nostalgiaClear, Denoising strength: 0.5, Clip skip: 2, Mask blur: 4

顔を拡大すると、さらにきめ細かく描写されていることがわかります。

ポイントは、「inpaintを行う領域」の設定を「マスクのみ」にしていることです。

この設定で画像を生成すると、ライブプレビューにはマスクされた顔の周囲のみが表示されます。マスク部分(と「“マスクのみ”外側の余白」で設定された領域)だけを拡大して画像を生成するので、全身の画像よりきめが細かくなるのです。

「マスクのみ」の設定で画像を生成するとき、ライブプレビューに表示される画像

こうして生成されたマスク周辺の画像を元の大きさに縮小し、マスクの範囲を切り出して貼り付けるのが「マスクのみ」のインペイントです。

左からインペイント前、「マスクのみ」で生成された画像、マスク部分の切り抜き、元の画像に合わせて縮小された画像、元の画像に重ねて出力された画像です。


表情差分

「表情差分」とは、顔の絵の一部分を差し替えた場所のことです。同じ顔で口や目の部分を差し替えて、同じ場面で別の表情を表現します。

この表情差分を作るのもインペイントが向いています。まずこのような画像を出力しました。


  • face of girl
  • Negative prompt: (worst quality low quality:1.4) text error cropped blurry signature watermark username monochrome multiple views
  • Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 2616579653, Size: 512x512, Model hash: 80b64299af, Model: nostalgiaClear_nostalgiaClear, Clip skip: 2

例によって「inpaintに転送」ボタンでimg2imgのInpaintへコピーします。まずは口を差し替えて笑顔にしてみましょう。口の周囲を少し大きめにマスクします。

インペイントのパラメータは最初の作例と同じにします。


  • マスクされたコンテンツ(Masked content)…「埋める(fill)」
  • inpaintを行う領域(Inpaint area)…「画像全体(Whole picture)」(ここを「マスクのみ」にすると、口だけディテールが細かくなり違和感が出ます)
  • シード(seed)…「-1」

プロンプトに「smile(笑顔)」を追加して生成しました。


  • face of girl smile
  • Negative prompt: (worst quality low quality:1.4) text error cropped blurry signature watermark username monochrome multiple views
  • Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 1515158880, Size: 512x512, Model hash: 80b64299af, Model: nostalgiaClear_nostalgiaClear, Denoising strength: 0.75, Clip skip: 2, Mask blur: 4

次は笑い方を強くしてみます。[×]ボタンをクリックして「Inpaint」タブの画像とマスクをクリアしてから、先ほど生成された画像の下にある「inpaintに転送」ボタンをクリックします。

[×]ボタンで画像とマスクを消去するのは、「Inpaint」タブへ画像を転送すると一見マスクが上書きされてなくなったように見えますが、実は見えないだけで残っているためです。

マスクは目を塗りつぶします。

インペイントのパラメータは上と同じで、プロンプトの「smile」を「laugh closing eyes」にしました。


  • face of girl laugh closing eyes
  • Negative prompt: (worst quality low quality:1.4) text error cropped blurry signature watermark username monochrome multiple views
  • Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 776585904, Size: 512x512, Model hash: 80b64299af, Model: nostalgiaClear_nostalgiaClear, Denoising strength: 0.75, Clip skip: 2, Mask blur: 4

これで、最初の画像から2枚の表情差分を作ることができました。


インペイントの設定

マスクの画像も保存しておきたいときは、「設定」の「画像/グリッド画像の保存(Saving images/grids)」にある「inpaintingで、グレースケールマスクを保存する(For inpainting, save a copy of the greyscale mask)」をオンにします。

保存されるグレースケールマスクの例

マスクされた部分がどう変化したかがわかる画像を保存したいときは、同じ場所にある「inpaintingで、マスクされた合成箇所を保存する(For inpainting, save a masked composite)」をオンにします。

保存される合成箇所の画像の例

マスクをペイントソフトなどで作成し、画像ファイルとして読み込ませることもできます。マスクしたい部分を白く塗った画像を用意し、「Inpaintアップロード」タブにインペイントする画像とマスクの画像をアップロードします。あとは「Inpaint」タブと同じようにパラメータを指定し、「生成」ボタンをクリックすればインペイントされます。

おまけ

ところでこの記事の最初の画像を出力したプロンプトは好みの画像が出やすくて、プロンプトを少し変えながら作例に使える画像を探しつつこれもいい、これもいいとなりました。


  • party of standing girls d & d characters sword shield armor
  • Negative prompt: (worst quality low quality:1.4) text error cropped blurry signature watermark username monochrome multiple views
  • Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 9, Seed: 2505153224, Size: 512x512, Model hash: 80b64299af, Model: nostalgiaClear, Denoising strength: 0.7, Clip skip: 2, Hires upscale: 2.5, Hires upscaler: R-ESRGAN 4x+ Anime6B

以下はプロンプトの冒頭に「shot from below」をつけています。

Seed: 477250127
Seed: 3802791941
Seed: 2162398145
Seed: 1591183280
Seed: 2985495877
Seed: 4253026792
  • shot from below party of standing girls d & d characters sword shield armor stuff helmet
  • Negative prompt: (worst quality low quality:1.4) text error cropped blurry signature watermark username monochrome multiple views
  • Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 9, Seed: -1, Size: 512x512, Model hash: 80b64299af, Model: nostalgiaClear, Denoising strength: 0.7, Clip skip: 2, Hires upscale: 2.5, Hires upscaler: R-ESRGAN 4x+ Anime6B

以下はプロンプトの冒頭を「shot from above」にしました。

Seed: 3643923879
  • shot from above party of standing girls d & d characters sword shield armor stuff helmet
  • Negative prompt: (worst quality low quality:1.4) text error cropped blurry signature watermark username monochrome multiple views
  • Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 9, Seed: -1, Size: 512x512, Model hash: 80b64299af, Model: nostalgiaClear, Denoising strength: 0.7, Clip skip: 2, Hires upscale: 2.5, Hires upscaler: R-ESRGAN 4x+ Anime6B

そのほかの画像はサムネイルを掲載します。クリックするとメタデータつきの大きい画像が表示されます。

https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230428/20230428230040.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230428/20230428225603.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230428/20230428225412.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230428/20230428225311.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230429/20230429141903.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230429/20230429141859.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230429/20230429141855.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230429/20230429141851.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230429/20230429141847.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230429/20230429141842.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230429/20230429141838.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230429/20230429141752.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230429/20230429141834.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230429/20230429141830.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230429/20230429141826.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230429/20230429141822.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230429/20230429141818.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230429/20230429141814.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230429/20230429141809.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230429/20230429141805.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230429/20230429141801.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/I/Imamura/20230429/20230429141757.jpg

一部の画像は余分なものが描かれていたり、顔が鮮明でなかったりします。今回解説したインペイントの練習台にどうぞご利用ください。

(おまけ2)ダイナミックプロンプトについて

上の画像のプロンプトは、冒頭になにも書かない、「shot from below」を書く、「shot from above」を書くという3種類で出力しました。生成時にこれらをランダムに出すようまとめて指定すると、3種類のプロンプトを切り替えつつ出力する手間が省けます。

プロンプトをランダムに出すには、「拡張機能」タブからインストールできる「Dynamic Prompts」の拡張機能を使います。プロンプトに「{|shot from below|shot from above}」のように書くと、何も書かない、「shot from above」か「shot from below」を書くという3種類のプロンプトがランダムに選ばれ、画像が生成されます。詳しくはプロジェクトページをご覧ください。

Dynamic Promptsのプロジェクトページ
adieyal/sd-dynamic-prompts: A custom script for AUTOMATIC1111/stable-diffusion-webui to implement a tiny template language for random prompt generation

また、拡張機能のインストール方法は『Stable Diffusion AI画像生成ガイドブック』の80ページ「2-4 SD/WebUIを日本語化する」で解説しています。

本の第3章では、この記事のような調子でStable Diffusionのさまざまな機能を解説しています。ぜひ手に取ってご覧ください。

Google Colabの無料プランでStable Diffusionを使えなくなったらModalへ行こう?

Google Colaboratoryの無料プランでAUTOMATIC1111版Stable Diffusion WebUI(以下SD/WebUI)が使えなくなるので、別のサービスを探しましょうという話になっている。

4月21日くらいから、Google ColaboratoryでSD/WebUIを実行しようとすると下のダイアログボックスが出るようになった。

実行中のコードは許可されていない可能性があるため、今後のColabの利用を制限させていただく場合があります。よくある質問で指定されている禁止行為をご確認ください。

よくある質問」には禁止行為の一覧がある。

Colab のリソースは、インタラクティブユースケースに優先的に割り当てられます。大量のコンピューティングに関連するアクション、他者に悪影響を与えるアクション、Google のポリシーの回避に関連するアクションは禁止されています。以下は、Colab ランタイムでは許可されていません。

(中略)

  • リモート デスクトップまたは SSH の使用

(後略)

Google Colab - よくある質問

この「リモート デスクトップまたは SSH の使用」の部分、英語版では21日に「using a remote desktop or SSH」から「remote control such as SSH shells, remote desktops, remote UIs」に変わったとのこと。SD/WebUIはこの「remote UIs」に含まれるようだ。

Google Colaboratoryのプロダクトリーダーであるクリス・ペリーさんのツイート。


私たちが無料プランのユーザーに優先提供しているのは、インタラクティブなノートブックコンピューティングです。Stable Diffusion WebUIの利用量がとても多くなり、Google Colabチームの予算では対応できなくなりました。

Google Colaboratoryはもともと、機械学習を学ぶ学生やITエンジニア向けのサービスである。ノートパソコンしかないユーザーでも、GPUを使った機械学習を無料で利用できるのが売りだ。Googleは、機械学習を扱える人が増えることが自社の利益になると考えているのだろう。しかしGoogle Colaboratoryを運用するためのGoogleの持ち出し分が、本来の目的ではないSD/WebUIに使われすぎるのは本意ではないということだ。

上のツイートに続いて、有料プランの「Colab Pro」についてのやりとりもある。


Gradio UI(訳注:SD/WebUIのフロントエンドに使われているサービス。新規約の「remote UIs」にあたる)をColabで使うのは、(あとで追加学習に使うために何か月分ものクレジットを貯めている)有料プランでも規約違反になるのでしょうか?

有料プランでWebUIの利用を制限する予定はありません。

私たちはGradioをとても気に入っています。Stable Diffusion WebUIのように利用量が爆発しない限り問題にしないつもりです。

つまりGoogle ColaboratoryでSD/WebUIを使うならColab Proに入ってねということになった。Colab Proは現在、月額1,179円(高級なPro+プランだと月額5,767円)である。使う月と使わない月にばらつきがあるなら、この料金を支払ってある程度のコンピュータリソースをスポット的に買うプランもある。

詳しくは

じゃあもうGPUのないパソコンではSD/WebUIを無料で使う方法はないのかというとそうでもないようだ。

この記事によると「Modal」というサービスなら、無料である程度の時間SD/WebUIを使えるという。ある程度とはどのくらい?

Modalでは毎月30ドル分のクレジットをもらうことができ、30ドルあればSD/WebUIで画像を最大51,000枚生成できるとのこと。5万枚!? 大きな画像を出力したりすればもっと少なくなるだろうが、たとえば月1万枚でも使い切るのは難しいだろう。それに起動や画像の生成にかかる時間はGoogle Colaboratoryよりずっと短いようだ。いいね。

でもこれ、Google Colaboratoryの規約変更でユーザーがなだれ込んだら、月ごとのクレジットが減ったり値上げしたりしそうな気がする。すごくするけど当面はこれでGPUがない人もお金をかけずにSD/WebUIを使えそう。

ということで先ほどユーザー登録してみた。Githubのアカウントが必要なのは絶妙な敷居の高さだ。ModalでSD/WebUIを起動するまでの使い方は上の記事に詳しく書かれている。出力した画像をダウンロードする方法もある。変更した設定の保存や拡張機能の扱いなどがどうなるかはこれから調べます。

宣伝

Stable Diffusionの解説書が販売中です。よろしくお願いいたします。いい本だと感じた方はAmazonにレビューを書いていただけますと幸いです。

本の内容や目次
『Stable Diffusion AI画像生成ガイドブック』が3月31日ごろ出ます
書籍のサポートページ
『Stable Diffusion AI画像生成ガイドブック』(ソシム刊)サポートページ

重版御礼とAmazonの困ったレビュー

「そんな初版部数で大丈夫か?」と思っていたら案の定、『Stable Diffusion AI画像生成ガイドブック』(ソシム刊)はさっそく重版が決まった。ありがとうございます。

書籍のサポートページ
『Stable Diffusion AI画像生成ガイドブック』(ソシム刊)サポートページ

サポートページには、各章で採り上げているURLと生成した画像(プロンプトのメタデータ入り)へのリンクを掲載している。このページを見れば、URLもプロンプトも本から手入力せずにすむ。付録の「プロンプト単語帳」の画像428枚分は、紙幅の都合でプロンプト全体と生成パラメータを掲載できなかったため、特に参考になると思う。

(これらの画像は、ブラウザからAUTOMATIC1111版Stable Diffusion WebUI(SD/WebUI)の「PNGの情報を表示(PNG Info)」へ直接ドラッグ&ドロップし、「txt2imgへ転送」などをクリックするとプロンプトと生成パラメータをセットできる)

さて、売れ行きが好調なのはとてもうれしい一方、Amazonのレビューは残念なことになっている。最初は★5つがコメントなしでついて幸先がよかったが、次は★2つでレビューのタイトルが「最速で出版するために中身を犠牲にした本」。プロンプトの解説が期待した内容でなかったのは申し訳ないが、事実関係が正しくない。

このレビューには「3章まで読み終えてようやく環境構築をして実際に画像生成ができるようになります」とある。3章の終わりでセットアップが完了すると受け取れる書き方だが実際は2章で終わっている。2章の終わりには「では試しに画像を生成してみましょう」というくだりがあり画像を生成できている。

これを「2章の最後まで読み終えてようやく~」という意味で書いたのなら紛らわしいので直してほしい。そして2章の終わりは84ページで、全部で288ページの本において約30%の位置である。これが「ようやく」といえる地点かというとどうだろうか。

本の目次が「『Stable Diffusion AI画像生成ガイドブック』が3月31日ごろ出ます」にあるので目を通してほしい。

3章はSD/WebUIの機能解説で、txt2imgの機能を重点的に解説している。ファイル名につけられるタグ一覧、各サンプラーの特徴と分類、スタイル情報の保存先、大きな画像を破綻させずに出力する方法など、SD/WebUIを使っているうちに疑問に感じてくるだろうところも理解できるようになっている。また「生成」ボタンを右クリックすると画像を生成し続けられるメニューが出ることなど、普通に使っていては気付かない便利な機能も紹介した。

このレビューでは「現在すでに画像生成を始めている方にとっては得るものは殆どない気がします」と書かれてしまったが、むしろ3章の内容を「すでに画像生成を始めた」段階ですべて理解している人はいないだろう。「自分でネットで情報収集できる人」にはすすめないそうだが、この本にはネットで情報を見つけられず、独自に検証したこともたくさん載っている。

もう一つのレビューは★1つで「Stable Diffusionの商用利用は避けましょう」。こちらは画像生成AIそのものについての意見しか書かれておらず、本のレビューになっていない。

こういうレビューをどうしたらいいのだろうか。著者としてレビューを投稿してもいいのか調べてみると、それは禁止だそうだ。

当サイトで許可されないレビューの例は、次のとおりです。

  • (中略)
  • 商品の所有者、著者、またはアーティストと密接で個人的な関係があると認められた人物によるレビュー
カスタマーレビューについて - Amazonカスタマーサービス

レビューで事実誤認や本のレビュー以外のことを書かれっぱなしなのは気持ちがささくれ立つ。ここにこうやってレビューのレビューを書いても、レビューを読んだ人には届かないだろう。

こちらからはレビュー結果をどうこうできないので、いい本だと思ったらレビューの投稿をご検討ください。

そういえばこれ、はてなブックマークの「言われっぱなしで反論できない、反論しても読まれない問題」に通じるところがありますね。はてなは対応を進めてくれている。

参考

ところで1つめのレビューの「表紙に載っているようなハイクオリティの画像」というくだりは意外だった。カバーに載っている画像の生成に使った学習モデルは公式モデルかでりだモデル、trinart2くらいでプロンプトもそんなに凝っていないつもりだったから。カバーの画像もほかの章や付録のように、プロンプトや生成情報がわかるようにします。

サンシェードを下ろす2023年

火曜日(11日)は最高気温が25度で暑かった。その後も同じような気温が続いたので西側のサンシェードを下ろした。

参考

今年はずいぶん早くサンシェードを下ろしたんじゃないかなと記録を見てみるとそうでもなく、去年は3月14日にもう下ろしている。このあと寒の戻りがあり、サンシェードをいったん上げたあと4月10日に改めて下げたとある。

去年の記録

過去のサンシェードを下ろした日の記録は以下。

去年は特別早かったことがわかる。そして今年の4月13日も早いほうだ。今はまだ西側の窓だけで、東側の窓はまだサンシェードを下ろしていない。

⽊星氷衛星探査計画(JUICE)に関する記者説明会

日時

  • 2023年4月6日(木)14:00~

登壇者

  • JUICE 所内プロジェクトチーム チーム⻑ 齋藤義⽂(さいとう・よしふみ)(JAXA 宇宙科学研究所 太陽系科学研究系 教授)
  • JUICE 所内プロジェクトチーム ガニメデレーザー⾼度計(GALA)担当 塩谷圭吾(えんや・けいご)(JAXA 宇宙科学研究所 太陽系科学研究系 准教授)
  • JUICE 所内プロジェクトチーム プロジェクトサイエンティスト 関根康⼈(せきね・やすひと)(東京⼯業⼤学 地球⽣命研究所所⻑・教授)
  • JAXA 宇宙科学研究所 宇宙科学広報・普及主幹付 主任 恩⽥千尋(おんだ・ちひろ

中継録画

木星氷衛星探査計画(JUICE)に関する記者説明会 - YouTube

配付資料

続きを読む

『Stable Diffusion AI画像生成ガイドブック』(ソシム刊)サポートページ

ソシム刊『Stable Diffusion AI画像生成ガイドブック』のサポートページです。版元であるソシムの許可のもと、本誌内で紹介したリンク、掲載した画像、正誤表、その他追加情報をご提供します。

本の概要
『Stable Diffusion AI画像生成ガイドブック』が3月31日ごろ出ます
各章の画像とリンク集(画像ごとのプロンプトも載っています)

以下は本書のほか、Stable Diffusion全般の情報です。あわせてどうぞ。

利用方法(GPUがあるパソコン)
Stable Diffusion WebUI(1111)のインストールがとても簡単になっていた【令和最新版】
日本語化の方法
AUTOMATIC1111版Stable Diffusion Web UIの日本語化
プロンプトの例
一番星はてののファンアートをStable Diffusionで出力する
Amazonのレビューについて
重版御礼とAmazonの困ったレビュー
GPUのないパソコンの無料での利用方法候補?
Google Colabの無料プランでStable Diffusionを使えなくなったらModalへ行こう?
本書で解説しきれなかった機能
Stable Diffusionのインペイントで余分な手足の除去、ディテールアップ、表情差分の作成