見出し画像

AIGC:COLOR EXHIBITION(JULY)投稿作品の作成過程解説【StableDiffusion】


1.AIGC COLOR EXHIBITIONについて

 「AIGC(AI Girls Collection)」は、Twitter上で開催されているAI生成画像に関するイベントです。2023年12月23日にはその第2回として、「紅白AI合戦」が開催予定です。
 こちらに、私も参加させていただけることになりました!

 詳細は以下の運営アカウントのツイートをご覧ください。

 またその12月の本開催に向けて、「COLOR EXHIBITION」として7月から毎月、特定の色をテーマとしたイベントも開催されています。当月中はだれでもタグを使用した投稿をし、その月の最後の土曜には本イベント参加者による画像がAIGCアカウントから投稿されます。
 7月のカラーテーマは「Blue / 青」となりました。詳細は以下のツイートをご覧ください。
 ※以下のツイートでは7/31となっていますが、土曜日開催に変更となり、7月は29日に実施されました。

 なお、第1回のAIGCは2023年6月12日に行われました。
関連のツイート(投稿作品)は、以下でTwittter上で検索し、「最新」のタブを表示させるとと(開催前の投稿も含めて)見やすいと思います。
(今回のCOLOR EXHIBITIONの投稿は、以下の日付部分を2023-7-30にしていただけると良いかなと思います)

from:@aigcinfo until:2023-06-13

2.今回の投稿画像(7/29)

 7月のカラーテーマ「Blue / 青」として、私からは以下の画像を提出しました。

泣く月下の少女

 作成時の画像サイズは、縦4,592×横4,096です。
なぜこのサイズになったかは後程ご紹介いたします。

3.元画像の作成

 投稿画像は、StableDiffusionでの生成後、さらに加工を施しています。
加工前のStableDiffusionで生成した直後の画像はこちらになります。

StableDiffusionでの生成直後の画像

 画像の構想としては、以下の要素を盛り込むことを考えて生成しました。

  • 地面に座って泣いている女の子(後ろ向き)

  • 白髪、青系の服装とアクセサリ

  • 奥側に湖

  • 月夜

  • 全体的に青の色味と手前(下)側に草

【女の子の向き】
 最初は横向き(side shot)で生成してましたが、後ろ向き(back shot)の方が良いかな?と思い始めて途中から変更しました。

【女の子の格好】
 髪は色・長さはいくつか試しましたが、最終的には一番青色が映えそうということで白髪ロングに落ち着きました。とはいえ、あまり白髪感はないですね。
 服装とアクセサリは、指定としては青色のシースドレス(Indigo dyed sheath dress)ラピスラズリのネックレス(necklace of Lapis lazuli)を入れました。ただ後ろ向きにした影響でネックレスはあまり意味がなくなりました。

【背景について】
 奥側の湖月夜は、全体への青味の反映を特に意識したものです。雪の指定は途中から追加しました。
(背景の地面が雪になっているかと思います。南半球は冬なので問題なし!)

 奥にある家の灯りは、特に直接の指定はしていませんでしたが、おそらく上記のいずれかの指定に連動して出ているようでした。どこかにオレンジ系の色味はポイントとして(引き立て役のための青の補色として)入れたかったので、良い偶然でした。そこそこの確率で生成されたので、特にプロンプト等での指定は追加せずにできました。

 全体の色味と手前の草についてはControlNetのTile(tile_resample)で入れています。青も単色ではなく、明暗・濃淡と形を変えた模様の画像を入れ込んでいます。


 以上のポイントで生成した画像に対し、4項の加工を行っていきました。

4.生成画像の加工(拡張・修正)

 StableDiffusionで生成した画像を、さらに加工していきます。
加工はPhotoShopを使用しました。また最近新たに追加されたFireflyのGenerative Fill(ジェネレーティブ塗りつぶし)の機能も使用するため、Beta版を利用しています。

また加工には大きく全体の拡張と細部の修正の2種類を実施しています。

(1)全体の拡張

 まずは全体の拡張です。
生成した画像は、縦768×横512をHires Fixで2倍にアップスケールしているので、この時点では縦1,536×横1,024のサイズとなっています。
 これを、まずは縦2,304×横2,048まで拡張しました。

 今回のイベントはTwitterでの投稿となるので、縦長か正方形にしようと考えていました。というのも横長の画像の場合、PCやタブレットからだとあまり気にならないのですが、スマホから見る場合には横長の画像はかなり小さく見えてしまいます(画面サイズが元々横の方が小さい上に、その横幅に画像があわせられるため)。
 でも横長だからこその構図とかもあるので、なかなか迷うところです。
(と、これを書きながら、横画像はnoteに増やすのもありか?とか思いました)

 また実際の拡張手順は一気に上記のサイズまで行うのではなく、以下のように段階的に拡張しました。段階的に行うのは、その方が各部分を個別に調整ができるためです。


  1. 横幅を両側に1,536まで拡張
    (縦は変更せず、左右に256ずつの余白ができた状態)

  2. 左右それぞれの余白を個別にGenerativeFillで生成
    (良い形の生成結果ができるまで繰り返す。以下の生成も同じ)

  3. 縦幅を上側に2,048まで拡張
    (横は変更せず、上側に512の余白ができた状態)

  4. 上側の余白をGenerativeFillで生成

  5. 横幅を両側に2,048まで拡張
    (縦は変更せず、左右に256ずつの余白ができた状態)

  6. 左右それぞれの余白を個別にGenerativeFillで生成

  7. 上側に2,304まで拡張
    (横は変更せず、上側に256の余白ができた状態)

  8. 上側の余白をGenerativeFillで生成


 なお、生成結果はそれぞれ個別のレイヤーとして重なっていくので、次の加工のために上記が終わったら全レイヤーを結合して1枚にします。
(実は最後の7-8の拡張・生成は大分終盤で、もう少し上の空間が欲しいなと思い直して実行しました。)

(2)細部の加工

次に細部の加工を行います。実際に行ったのは主に以下の点です。

  • 足(左ひざのあたり)

  • 拡張後の左側の湖の形

  • 月の位置と周辺の空の調整

  • 右上の流れ星の追加

【足の修正】
 膝の形(厚み?)が変だったので、消して服だけが見える形で修正しました。しかし消すだけでは今度は短く見えてしまったので、再修正して調整を行いました。

左:加工前 右:加工後

【湖の形の修正】
 最初出来上がった形がおかしかったので、修正を行いました。AI生成でよくある、何かの境界の両側でつじつまが合ってない状態でした(今回は女の子を境に湖と陸地とで合っていない)。

左:加工前 右:加工後

【月の位置、周囲の空の修正】
 画像全体を上側に拡張したことによりバランスがおかしかったため、月そのものの位置を変更しました。
 最初は空間の空いた右上に移動させたのですが、女の子に当たっている光と矛盾してしまうことに気づき、中央あたりの左寄りの位置に再修正しました。
 元々月があった位置は、GenerativeFillで修正しています。
 また、移動後の月は周りの色合いが合わなくなるので、周囲の色になじむように手作業とGenerativeFill、および塗りつぶし機能(これも周囲の内容を加味してくれる)で修正しました。
 なおこれで確定ではなく、あとで微修正します。

上:加工前 中:右に移動(光の当たり方がおかしい) 下:中央左寄りに移動

【流れ星の追加】
 右上の流れ星は入れるかどうか迷ったのですが、月を入れなくなったことにより空間が広すぎる感じになってしまったので、追加しました。
(なくても夜空の青が目立つため、テーマ的には良さそうでしたが…)

 流れ星は、StableDiffusionの方で同テーマにshooting starをプロンプトとして追加した上で生成し、いい感じのものができた画像を選択してそこから流れ星のみをコピーしてきました。
 この場合も、コピー後の流れ星周辺の色合いが異なるので、こちらも手作業とGenerativeFill、および塗りつぶし機能で調整を行っています。

流れ星の元にした画像
左:加工前 右:加工後(上の画像から流れ星を追加)

 上記の各修正でもレイヤーが重なっていくので、最後にレイヤーを結合し、さらにロゴの追加して一旦出来上がりです。

 これで出来上がり、と一度思ったのですが、もう少し何かできないか…ということで、画像のサイズと月の位置、ロゴの位置に次項の調整を行いました。

(3)黄金比の導入

 さて、ここはもう誰にも気づかれないであろう、悪あがきにも近いこだわりの調整となります。

 さて、黄金比というものをご存じでしょうか?
以下の比率が黄金比と呼ばれるもので、非常に美しく感じやすいといわれる比率です。

$$
1:\frac{1 + \sqrt{5}}{2}  (= 1:1.6181…)
$$

 またこの黄金比は1:Φと書かれることもあります。
 これを、「画像全体のサイズ」「月の位置」「ロゴの位置」に取り入れることにしました。

具体的には以下のような内容です。もう誰が気づくんだという部分ですね。


  • 画像全体のサイズを、縦(上側)を少し削除して縦2,296×横2048として、「女の子の縦幅(画像下端から頭頂):画像の縦幅=1:Φ」とする。

  • 月の位置について、縦位置を「画面上部から月の下端までの幅:画面上部から女の子の頭までの幅=1:Φ」とし、横位置を「画像の右端から月の右端までの幅:画像全体の横幅=1:Φ」とする。

  • ロゴの位置について、縦位置を「女の子の右側の背の高い草の頂点からロゴの上端までの幅:女の子の右側の背の高い草の下端からの頂点までの幅=1:Φ」とし、横位置を「女の子の右側の背の高い草からロゴの左端までの幅:女の子の右側の背の高い草から画面右端までの幅=1:Φ」とする。


言葉だとわかりにくいですね。図にすると以下のような感じです。

 この状態からさらに画像全体を2倍に拡大し、縦4,592×横4096にしました。
 以上でようやく完成です。実際にはもう少し悪あがきを試みたのですが、最終的にはここまでで完成版となりました。

おまけ1:ロゴ

 ひそかに作成していたもので、SUZURIで出しているグッズの画像にはつけていました。
 ロゴの部分をアップにするとこんな感じです。

ロゴ

 よく見ると、平仮名の「くろまる」と、「ColorMerry」「AI」の文字が書かれているのがわかるかなと思います。
(絵の中に入れるので、意図的に可読性を低くしようとしました)

 また周りの囲いは円ではなく正十七角形を二重にしたものになっています。特に深い意味はないのですが、「作図可能な正多角形」として面白いので採用しました。
※ここでいう作図可能というのは、定規とコンパスだけで作図できる、という性質です。

 興味のある方は少ないかもしれませんが…一応参考記事を貼っておきます。

 なお「くろまる」の各交点や曲がり角の点は、(下側の地面?の点を除いて)頂点から降ろした垂線と対角線の交点になっています。
 また「ColorMerry」内の曲線は、すべて円弧で作られています。「AI」もほぼ三角形と縦棒なので、画像の中ではただの幾何学模様のように見えるかなと思います。
(だれも気にすることのないこだわりポイント)

おまけ2:本投稿にしなかった候補作

 企画への本投稿には回さなかった候補作をせっかくなのでここに掲載(供養)します。

女の子にスポットライト的な光を当ててみた(青の印象が薄れるのでボツ)
夜明け風?オレンジ系がなかった(入れ込みにくかった)
雪の森の中?これもオレンジ系がなかった(入れ込みにくかった)
最初に候補作になった画像。ここから、いやもっと…となっていった。
いいんだけど、緑の印象が強くなりすぎたかな。
女の子に当たる光がスポットライトみたいで青の空気感が薄かった
迷ったけど、服のイメージが違ったかな。

5.おわりに

 12月のAIGC 2nd、そして8月以降のCOLOR EXHIBITIONはまだこれからです。次回8月のCOLORO EXHIBITIONは8/26(Sat)に開催されます!

 次回以降も頑張ります!


 また、もしよろしければ以下からサポートをいただけると助かります…!
よろしくお願いいたします。


記事内容やX(Twitter)等での投稿画像を気に入っていただけましたら、よろしければサポートお願いします! いただいたサポートは生成環境の維持費に使わせていただきます!