生成AIストリーム
日本特化型画像生成AI「JSDXL」で和風画像の魅力を探求してみた!
「Japanese Stable Diffusion XL」の真価を引き出す
2023年11月27日 11:28
2023年11月17日11時、StabilityAI社から「Japanese Stable Diffusion XL」(以下JSDXL)がリリースされました。
🚀 新リリース 🚀
— Stability AI 日本公式 (@StabilityAI_JP)November 17, 2023
「Japanese Stable Diffusion XL (JSDXL)」が登場!
✨ 日本特化の商用利用可能なtext-to-imageモデル ✨
🌸 JSDXLは、日本語のプロンプトを英訳したものとは異なり、日本語そのままの理解と日本独自の文化を反映した高品質な画像生成を実現しました。
詳細はこちら💁♀️…pic.twitter.com/YYefbKvqE8
昨年8月に世界を一変させた画像生成AI「Stable Diffusion」をオープンモデルでリリースしたStabilityAI社は日本に拠点があり、日本でも特色ある開発を行っています。11月には数多くの日本語モデルがリリースされました。
今回リリースされた『JSDXL』はどのような特徴を持っているのでしょうか。単なる翻訳とは異なるのでしょうか。
試してみよう
今回のこの記事では3つの方法を紹介します。
【方法1】 HuggingFace公式の「Spaces」を使う(全ての人におすすめ)
様々な機械学習モデルが公開されているSNS「HuggingFace」の「Spaces」にて利用できるようになっています。
「HuggingFace」の中の人のアカウントで日本語を歓迎する発言が発信されています。
In other news, Japanese Stable Diffusion XL (JSDXL) was released today by@StabilityAI_JP, おめでとう、友よ 🤗
— apolinario (multimodal.art) (@multimodalart)November 17, 2023
このモデルは@huggingfaceでデモできます。
Play with it on Spaces ▶️https://t.co/sT8OzFJgoHpic.twitter.com/QjR0zxJuRS
「Spaces」での運用は有料なので、どこかに費用を負担してくれている方がいらっしゃるようです。ありがたいことです。
【方法2】 「Google Colab Pro」を使う(中上級者向け)
上記の公開「Spaces」が使えない時、「Google Colab Pro」のアカウントがある人は、自分で機械学習モデルのデモ用Webアプリ向けPythonライブラリ「Gradio」のUIを立ち上げて利用できます。
まずは「HuggingFace」上で公開されているnbを確認します。
このモデルは商用利用可能ですが、利用規約を読み、名前、在住国と所属、メールアドレス等を入力する必要があります(これを行わないと、次のステップでモデルをダウンロードできません)。
利用規約の要点は以下の部分です。
By downloading, using, or distributing any portion or element of this model, you agree to be bound by the agreement described in the LICENSE file.
(意訳)
このモデルのいかなる部分または要素をダウンロード、使用、または配布することにより、あなたはライセンスファイルに記載されている契約に拘束されることに同意するものとします。
実際のライセンスファイルはこちらにあり合意後に読むことがで可能
実際のライセンスファイルはこちらにあり、合意後に読むことができます。
続いて「Google Colab」で共有されているサンプルコードを自分のアカウントで実行します。
GPUを必要としますので、「Google Colab Pro」のアカウントでGPUインスタンスを選んで実行してください。
最後の段階まで進むと、「Gradio」のURLが生成されますのでそちらから利用できます。
【方法3】StabilityAI 社が提供のテスト用Gradio環境を使用する(初心者向け・期間限定)
「Stable Community Japan」の「Discord」で質問しながら、お試し環境で遊んでみることができます。
こちらのリンクでテスト用のWebサイト(「Gradio」)にアクセスできます。
方法を3つ紹介しましたが無料で利用できる上に、生成速度を含めた体感は方法1か方法3のほうがいいかもしれません。さすが有料のNVIDIA A10が使われていることもあり、2枚を生成するのにだいたい17秒ぐらいです。
「Discord」のコミュニティ内ではこんな感じの作品が交流されています。
モデルの特性をつかむ!テクニック紹介
さて、リリースされたJSDXLですが、いままでの「Stable Diffusion」や「SDXL」とも異なる特性があるようで、思い通りの画像を生成させるには少しコツが必要でした。ここでは、JSDXLでの作品例を新しい画像生成モデルに出会ったときのテクニックとともに、紹介していきます。
まず基本的な使い方です。[Enter your prompt]欄に自分の希望する生成したい画像のキーワードを入れて[Run]を押して待ちます。これだけです。
「ハチワレ猫」は英語では「Tuxedo cat」といわれますが、「タキシードキャット」だと、顔が八の字になっていない猫が生成されたり、猫がタキシードを着ていたりします。「ぬいぐるみ」も日本語独特の雰囲気を持ったワードなので、JSDXLならではの生成ができていると感じます。
「Advanced options」の項目
- cfg_scale:CFGとは「Stable Diffusion」用語で「Classifier Free Guidance」の略です。「どれくらい与えられたプロンプトに忠実に従うか?」のパラメーターです。7.5がデフォルト値になっています。大きすぎたり小さすぎると画像が破綻しますので、5~6ぐらいにすると多様性が増え、9~10ぐらいにすると理論上忠実になっていくはずですが、JSDXLについては7.5から動かさないぐらいが良さそうです
- size_ratio:縦横比です。例えば横長のハガキサイズにする場合は「1.46」となり、「0.5」とすると掛け軸のようになります
- n_samples:一度に生成する画像の数のようです。ソースを見ると1~5の値を取りそうですが、最大3画像が生成できるようです
- seed:「Stable Diffusion」は画像を乱数から生成しますが、これを固定することで同じ系の画像を得やすくなります。デフォルトでは[random]ですがこれを[sampling info]で表示される値にすることで、同じ系を繰り返して生成実験することができます
- negative prompt:「この画像は生成したくない」というネガティブな命令を日本語で指定します。例えば「イラスト」とすることで、実写画像が出やすくなります。逆に「写真」とするとイラストが多く出ます。本稿では略して「NP」と呼びます
実際に試してみた印象ですが、cfg_scaleもNPも絶対ではなく、だいたい1/3(10回中3回)忠実に生成するといった印象です。気長にたくさん生成してみることをおすすめします。
生成される画像の人物の顔も、実に東洋的、日本的です。本稿では「和顔」と呼ぶことにします。
もちろんうまく行かないダメな例も相当にあるのでJSDXLでの「勝ち筋」を探っていきましょう。また、他のWordToTextによる画像生成と同様、他者の商標侵害や類似性・依拠性(偶然似てしまったのではなく、原作があってこその類似画像の生成)については特に注意をしてください。
例えば「海」も、非常に太平洋っぽく出てきます。「太平洋」とすると、極稀にNSFWな感じの画像が生成されました。おおひらひろし、といった名前の人物がいらっしゃるのでしょうか。こんど彼を見かけたらシードをメモっておこう…。
「山」、海に対してちょっと日本っぽくはない感じです。特に植生が日本の山ではなさそう。一方で「高尾山」とすると、とても高尾山っぽい風景が生成されます。「高尾山ロープウェイ」とすると、今度はロープウェイが強くなります。どうも2要素ぐらいが得意で、後ろのワードに引っ張られる傾向が強い印象です。
「渋谷」で実験してみよう
いろいろ試してみると日本語の地名がなかなかおもしろい結果を生成します。「渋谷」とすると片鱗はありますが。「渋谷駅前」とするとぐっと良くなります。
ここで、実験をしてみます。
こうして見ると、本当に「日本らしさ」が出てますよね。一目見ただけで「日本だ」ってわかります。
「・」で3要素以上の画像を作ろう
いままでは2要素が限界でした。どうやら要素を多くすると絵が破綻しやすいようです。3要素以上はどうやって指定すると良いのでしょうか。格助詞「の」は便利ですが、連続して使うと主格や従属がどちらなのか、日本語の文法でも解釈が難しい一文字であります。
いろいろ試してみたところ、単純に「and」と認識させる方法として中黒「・」が効果ありそうなので実験方法を紹介します。
具体的には「渋谷駅前・男・女」として、連続的に生成していきます。「渋谷駅前男女」「渋谷、駅前、男、女」とするよりも『渋谷の駅前らしい絵』と『男女』が出やすい印象があります。理由がわからないのであくまで印象ですが、カッコで括るような効果があるのかもしれません。10枚生成でヒット率1/3ぐらいを期待できます。
ハロウィンの渋谷を生成する
渋谷で人が多いというと、ハロウィンですが、あんまり沢山の人が仮装しているような画像は生成できませんでした。
「渋谷・ハロウィン」とすると、けっこうな確率でHALLOWEENの文字が出てきます。文字を生成するのは「Stable Diffusion」の苦手とするところなので、特性を感じるところです。
実は「年賀状」というキーワードが有効だった
ここで、いったんStabilityAI社のプレスリリースを振り返ってみましょう。
「JSDXL」の使用例としては、日本市場向けのプロダクトデザイン、建築・インテリアデザイン、プロモーション資料・広告の制作、ゲーム・メタバース・映画制作においてのアイデア出しなどが考えられます。 また、「JSDXL」をさらに任意のドメインの画像にチューニングすることで、よりユーザーのニーズに即した画像生成が可能になります。
(中略)
学習データの取り扱いについて
Stability AI は、公開されているコンテンツの取り扱いに対するクリエイターのコントロールの向上に努めています。
「JSDXL」の学習データは、以下に該当するデータを除いたものを用いています。
- クリエイターから要求があったオプトアウト
- robots.txt や利用規約に基づいて禁止されたデータ
展望
Stability AI では、複数モダリティのモデルを積極的に研究開発・公開することで、日本の AI コミュニティのさらなる活性化に貢献していく予定です。
なるほど、それでは日本市場向けのグラフィックデザインとして、時節柄「年賀状」を作ってみたいと思います。ちょうどこの連載では先月、「DALL-E3」を使った年賀状生成チャレンジを紹介しました。
アスペクト比(size ratio)を1.46にするとはがきサイズになります。
「年賀状」「屏風絵」を冒頭に入れて、NPも日本語で設定するのが有効なようです。
日本とは、日本画とは、和顔とは何なのか?を考える良いきっかけになります。
商用利用も可能なモデルなので自由な画像を生成できるようになっていきましょう。年賀状シーズンにはまだ間に合う! みなさんもぜひ面白い作品やさらに有効なキーワードが発見できたらハッシュタグ #AI年賀状2024 でつぶやいてみてください。
来年は、AI画像生成のギャラリーイベントなども開催されることが多くなると思います。今から作品の幅を広げておくと、損はないと思います!