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

「やぶへび」「ガクチカ」などフレーズの4文字略語を集めたい

フレーズを4文字に略した言葉って面白いなと考えていて、気付いたら書き留めている。今までに集めたのは以下。なんとなく古くからありそうな順(適当)に並べた。

  • やぶへび←「藪をつついて蛇を出す」
  • カモネギ←「鴨がネギをしょってくる」
  • たなぼた←「棚からぼた餅」
  • きよぶた←「清水の舞台から飛び降りる」
  • ダメモト←「だめでもともと」
  • ポイ捨て←「ポイッと捨てる」
  • 早弁←「規定の時刻より早く弁当を食べる」
  • パンチラ←「パンツがチラリと見えている」
  • パンモロ←「パンツがモロに見えている」
  • 耳タコ←「耳にタコができるほど聞いた」
  • あけおめ←「あけましておめでとう」
  • ことよろ←「今年もよろしく」
  • たんおめ←「誕生日おめでとう」
  • なるはや←「なるべく早く」
  • 家電いえでん←「家の電話」
  • ウエメセ←「上から目線」
  • ちりつも←「ちりも積もれば山となる」
  • おま国←「お前の国では売ってやらない」
  • 微レ存びれそん←「微粒子レベルで存在」(「~の可能性が微レ存」というフレーズとして使う)
  • 隙自語すきじご←「隙あらば自分語り」
  • ほんこれ←「本当にこれ」
  • 残当←「残念ながら当然だ」
  • ガクチカ←「学生のときに力を入れていたこと」
  • オヤカク←「内定承諾の意思に関する親の意向の確認」

(以下は記事公開後の追加分)

  • あたおか←「頭がおかしい」
  • ブラチラ←「ブラジャーがチラリと見えている」
  • オワコン←「終わったコンテンツ」
  • ゲルピン←「ゲル(金)がピンチ」
  • イケメン←「イケてるメン(面/男)」
  • ブサメン←「不細工なメン(面/男)」
  • 恋バナ←「恋の話」
  • ナサバナ←「情けない話」
  • マジバナ←「マジな話」
  • ギャン泣き←「ギャンギャンとした大声での泣き方」
  • レンチン←「電子レンジでチンする」

そのほかにもたくさんありそう。面白いものをブコメTwitter(現X)で教えてください。「ガクチカ」のような比較的新しい言葉、また「ウエメセ」のような俗語が好みです。除外する条件は以下です。

名詞は除外
「ケータイ」(携帯電話)、「編プロ」(編集プロダクション)、「パソコン」(パーソナルコンピュータ)など名詞を4文字に略した言葉は無数にあるため。
名詞だけを取り出しても通じるフレーズは除外
「完敗」←完全な敗北(完全敗北でも通じる)、など多くありそうなので。
作品タイトルは除外
こうしておかないと「ブラクラ」(BLACK LAGOON)、「あの花」(あの日見た花の名前を僕達はまだ知らない。)、「はにはに」(月は東に日は西に)、「金カム」(ゴールデンカムイ)、「おにまい」(お兄ちゃんはおしまい!)などなどが大量に押し寄せてきてしまうため。それはそれで集めると面白そうだけれどまたの機会に。

これだけだとものすごい数が集まってしまいそう。特にことわざが危ない。でもお願いします。

SD/WebUIのダークテーマを少し明るくするなど

AUTOMATIC1111版Stable Diffusion WebUI(以下SD/WebUI)はダークテーマでも起動できる。通常の白いページ(ライトテーマ)をまぶしいと感じてダークテーマを選ぶ人もいるだろう。

SD/WebUIをダークテーマにする方法は2つある。

①URLで指定する
ブラウザで「http://127.0.0.1:7860」(など)へアクセスする際、「/?__theme=dark」をつけて「http://127.0.0.1:7860/?__theme=dark」へアクセスする
②起動オプションで指定する
「webui-user.bat」の「set COMMANDLINE_ARGS=」に「--theme dark」を追加する。ブラウザをダークテーマに設定しているなら「--theme」だけでよいようだ

2つめの方法は起動後テーマを変更できないので、1番目の方法をおすすめしたい。

SD/WebUIのライトテーマ(デフォルト)
SD/WebUIのダークテーマはこんな感じ

しかししばらく使っていて、ダークテーマはちょっと暗すぎると感じるようになった。文字と背景のコントラストが強すぎて、しばらく見つめたあと白いところへ目を移すと残像が見えることがある。

そこでスタイルシートCSS)で調整することにした。SD/WebUIをインストールしたフォルダ(「webui-user.bat」などがあるところ)に「user.css」というファイルを配置して、SD/WebUIを起動したり「Reload UI」したりするとuser.cssを読み込んでくれる。内容はこのようにした。

.dark {
    --body-background-fill: var(--neutral-600)!important;
}
これが
こうなった

背景色を少し明るくしただけだが、これでだいぶ目に優しくなった。

ついでにライトテーマの背景も少し暗くしてみよう。「user.css」に以下を追加した。

:root {
    --background-fill-primary: var(--neutral-100)!important;
}
これが
こうなった

ライトテーマのまぶしさが少し軽減されたのではないだろうか。

こうなると欲が出てくる。ページ最上部の「SD VAE」や「Clip skip」といった設定項目の幅を小さくできないか。そうすれば、ここにさらにいくつか設定項目を表示できそうだ。

「user.css」に以下を追加した。ブラウザに表示している文字の大きさによって、各項目のちょうどいい数字は変わってくると思う。

div#setting_sd_vae {
  width: 260px !important;
  max-width: 260px !important;
  min-width: 260px !important;
}

div#setting_CLIP_stop_at_last_layers {
  width: 140px !important;
  max-width: 140px !important;
  min-width: 140px !important;
}

div#setting_save_mask,
div#setting_save_mask_composite {
  width: 159px !important;
  max-width: 159px !important;
  min-width: 159px !important;
}

div#setting_eta_noise_seed_delta {
  width: 120px !important;
  max-width: 120px !important;
  min-width: 120px !important;
}
これが
こうなった(画面最上部に注目)

設定項目を2つ追加表示できた。あと1つくらいならさらに追加できそうだ。

宣伝

Stable Diffusionの解説本『Stable Diffusion AI画像生成ガイドブック』がソシムから出ています。ぜひご覧ください。

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

「キー部5%」に参加して自作キーボードのことを思い出した

16日の日曜日、キーボードのイベント「キー部5%」に参加してきた。

以前はキーボードを自作した(が動作しない)ところまで来たのだけど、最近はごぶさたになっていた。

2021年12月の記事
親指シフトを意識したキーボードをSU120で作る

Stable Diffusionが去年の8月末に出てから画像生成AIを追うのに注力し、Stable Diffusion本を作るとなるとそれが加速して、ほかのことはすべて後回しになっていた。3月に第4回の「天キー(天下一キーボードわいわい会)」があり、今回もぜひ参加したかったが本の制作が追い込みで残念ながら欠席になったりもしていた。

天キー4のページ
天下一キーボードわいわい会 Vol.4 - connpass
天キー4の記事
3年4カ月ぶりに自作キーボードマニアが250人集まる! 『天下一キーボードわいわい会』開催! | Dig-it [ディグ・イット]
泣く泣く欠席した結果できあがった本

本が出たあとも画像生成AIには次々に興味深い新技術が出てくるため、自作キーボードの情報収集はすっかり止まってしまっていたのだった。でも時間はできたので、今回の「キー部5%」には参加できた。上の記事で作ったキーボードも持っていった。

この自作キーボードは配線がよくなかったようで動作はしない。それに親指シフト向けといっても、今親指シフトを使っているどころか知っている人は、自作キーボードに興味がある人でも多くはないだろう。でもキーボードを自作するという点では共通なので、ほかの参加者の皆さんといろいろ話ができた。

イベントレポート
キー部 5% 行ってきた - たのしい人生
当日の様子のネット中継
当日出展されていたキーボードの写真
キー部 5% (2023/7/16) - Google フォト

いやー、楽しいですね自作キーボード。人それぞれのアイデアがキーボードの形に具現化されるのはとてもすばらしいことだと思う。

そんな中で、1キーサイズのトラックボールが気になった。パレットシステムが出している「az1uball」だそうだ。

自分のキーボードにはロータリーエンコーダ(つまみをくるくる回してスクロールホイールや音量調整などとして使う)が2つある。いろいろ見る中で、ひょっとしてロータリーエンコーダは親指近くにあったらいいのかなと思って、そこを気にしながらほかのキーボードを見せてもらった。

ロータリーエンコーダつきのキーボードを展示している方に話を聞いた。親指の位置にロータリーエンコーダがあると、上からつまむのではなく軸の横に親指の腹をつけて回したくなる。実はこれがけっこう難しいという。なるほど、自分のキーボードにつけている市販の普通のつまみだと、親指とつまみの間の摩擦が少なく空回りしてしまう。ロータリーエンコーダの軸を回すのに必要な力が案外大きいということでもある。さてどうしよう。と思っていたところに「az1uball」を見つけたのだった。これならスクロールだけでなくマウスポインタそのものを動かすことができ、キーと組み合わせてクリックまでできる。

右手をどっこいしょとマウスまで移動して操作し、またどっこいしょとホームポジションへ戻すのはわずらわしい。これをせずにすむならいい感じだ。

というふうに、自分のキーボードをどうするかの指針ができてきた。分割キーボードに興味があったから分割にしてみたが、以前GL516(という自作キーボード用のケース)向けに同じレイアウトの一体型としてPCB設計までしたものがある。あれを実際に作ってみることにしよう。もちろん親指付近にはトラックボールがつくよう改良して。

そんな感じで、自作キーボードへの情熱が戻ってきた気がする。自分のメンタルと相談しながら、今度こそ動作するキーボードを作り上げたい。

「君たちはどう生きるか」

(ネタバレはありませんが一切の情報を知りたくない人は回れ右でお願いします)

たまたまスケジュールの都合がよく、今日公開の「君たちはどう生きるか」の初回を観ることができた。

今回は事前情報が1枚のポスターしかなく、CMなどはまったく打たれていない。舞台もストーリーも内緒である。これは観る側に珍しい体験となる。よく知っている監督の新作をほぼ何も知らずに観るというのはなかなかない。それが82歳の宮﨑駿監督ならさすがに次はもうないだろう。

映画が始まると1シーンごとに、なるほどこういう舞台なんだ、主人公はこういうキャラクターなんだとわかってくる。何もわからない状態から、作品世界の様子が少しずつ、扉が開くようにわかってくる。

どんなに情報を遮断しても、映画を観る前にどんな作品かくらいの概要はわかってしまう。徹底した秘密主義のおかげで面白い体験ができた。

この続きには、「君たちはどう生きるか」がどんな作品かではなく、どんな作品でないかを書こうと思っていた。「天空の城ラピュタ」を引き合いにすればわかりやすい。しかしこれも事前情報になってしまい、そんな話をいま読みたい人は少ないと思うのでやめておこう。

これがどんな映画であってどんな映画でないかは、皆さんが劇場で確かめてみてください。

イプシロンSロケット開発状況に関する説明会

日時

  • 2023年7月7日14時~

登壇者

  • JAXA宇宙輸送技術部門 イプシロンロケットプロジェクトチーム プロジェクトマネージャ 井元隆行(いもと・たかゆき)

中継録画

配付資料


目次


1.2 イプシロンSロケットについて


機体仕様(強化型との比較)


強化型までの成果


フェアリングカプセル化による運用性向上


3段TVC化による衛星搭載条件緩和


サブシステムの特徴(固体推進系)


サブシステムの特徴(構造系)


サブシステムの特徴(アビオニクス


サブシステムの特徴(TVC)


サブシステムの特徴(PBS


(参考)プロジェクト名称


1.3 イプシロンSロケット開発状況


イプシロンSロケット開発試験実施状況


2.1 2段モータについて


2.2 地上燃焼試験の目的


2.3 地上燃焼試験の概要


2.4 地上燃焼試験場の全体図


2.5 準備作業状況


2.6 試験実施条件


2.7 タイムスケジュール


質疑応答

(以下略)

飛蚊症

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

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

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

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

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のさまざまな機能を解説しています。ぜひ手に取ってご覧ください。