タグ: 画像生成

  • 日本語で画像を生成できる新技術「JSDXL」とは?和風画像を生成してみよう!

    日本語で画像を生成できる新技術「JSDXL」とは?和風画像を生成してみよう!

    この記事では、StabilityAI社が新たにリリースした「JSDXL」の概要、使い方、実際に生成できる画像を公式リリースに基づいて解説していきます。

    公式リリース

    2023年11月17日11時、StabilityAI社から「Japanese Stable Diffusion XL」(以下JSDXL)がリリースされました。

    🚀 新リリース 🚀
    「Japanese Stable Diffusion XL (JSDXL)」が登場!
    ✨ 日本特化の商用利用可能なtext-to-imageモデル ✨

    🌸 JSDXLは、日本語のプロンプトを英訳したものとは異なり、日本語そのままの理解と日本独自の文化を反映した高品質な画像生成を実現しました。

    公式リリースはこちら

    https://ja.stability.ai/blog/japanese-stable-diffusion-xl

    昨年8月に世界を一変させた画像生成AI「Stable Diffusion」をオープンモデルでリリースしたStabilityAI社は日本に拠点があり、日本でも特色ある開発を行っています。11月には数多くの日本語モデルがリリースされました。

    今回リリースされた『JSDXL』はどのような特徴を持っているのでしょうか。単なる翻訳とは異なるのでしょうか。公式リリースを読み解いてみましょう。

    「Japanese Stable Diffusion XL(JSDXL)」は、最新の英語版 text-to-image モデルSDXLに対して、日本語入力はもちろん、日本の文化やものが理解・反映された画像生成に特化させた日本向け text-to-image モデルです。
    昨今、SDXL を含む強力な text-to-image モデルが公開されております。これらと翻訳ツールを組み合わせることで日本語入力は可能ですが、日本特有の表現の認識が難しい点や開発コストがかかる点、モデルが認識できるテキスト最大文字数の制限などの課題があります。また、英語プロンプトをそのまま「呪文」として扱い画像生成することも可能ですが、大規模に学習されたモデルは西洋系の画像生成が得意であり日本スタイルの画像生成がまだまだ物足りないのが現実です。
    「JSDXL」は、Stable Diffusion の中で最高性能である SDXL の汎用性と高解像度の画像生成能力をできる限り維持したまま、以下の点を可能にした日本特化モデルです。
    ・日本語をモデルが直接扱うことができ、日本語特有の表現を認識可能
    ・日本の広範囲な文化やアート、伝統的なものから現代的なものまで含め、それらを反映した高解像度で質の高い画像を作成することが可能
    ・また、SDXL にはテキストエンコーダーが2つありますが、「JSDXL」には1つのみであるため、SDXL と比べ、より効率的な推論が可能になります。

    ■公式リリースより引用

    つまり、日本語を英語に翻訳して画像を生成するのではなく、日本語を学習することで日本特有のものを生成可能にしている、ということですね。

    StabilityAI日本の代表・Jerry Chiさんのツイート

    JSDXLの使い方

    それでは、実際にJSDXLを使って画像を生成してみましょう。
    今回のこの記事では、JSDXLを使う方法を3つ紹介します。

    (方法1) HuggingFace公式の「Spaces」を使う(最も簡単)

    様々な機械学習モデルが公開されているSNS「HuggingFace」の「Spaces」にてJSDXLが利用できるようになっています。

    https://huggingface.co/spaces/stabilityai/japanese-stable-diffusion-xl

    HuggingFaceの中の人のアカウントで、日本語を歓迎する発言が発信されています。

    Spacesでの運用は有料なので、どこかで費用を負担してくれている方がいらっしゃいます。ありがたいことです。

    (方法2) Google Colab Pro を使う(中上級者向け)

    上記の公開Spacesが使えない時、Google Colab Proのアカウントがある人は、自分でGradioのUIを立ち上げて利用できます。

    まずは HuggingFace上で公開されているJSDXLのライセンスを確認します。

    https://huggingface.co/stabilityai/japanese-stable-diffusion-xl

    このモデルは商用利用可能ですが、利用規約を読み、名前、在住国と所属、メールアドレス等を入力する必要があります。
    (これを行わないと、次のステップでモデルをダウンロードできません)

    利用規約
    > 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.

    (意訳)このモデルのいかなる部分または要素をダウンロード、使用、または配布することにより、あなたはライセンスファイルに記載されている契約に拘束されることに同意するものとします。

    実際のライセンスファイルはこちらにあり、合意後に読むことができます。

    https://huggingface.co/stabilityai/japanese-stable-diffusion-xl/blob/main/LICENSE

    続いてこちらのURLでGoogle Colabによるサンプルコードが共有されていますので、自分のアカウントで実行します。

    https://colab.research.google.com/github/Stability-AI/model-demo-notebooks/blob/main/japanese_stable_diffusion_xl.ipynb

    GPUを必要としますので、Colab ProのアカウントでGPUインスタンスを選んで実行してください。

    最後の段階まで進むと、GradioのURLが生成されますのでそちらから利用できます。

    Google ColabのV100でGradioを使った例

    (方法3) StabilityAI 社が提供しているテスト用Gradio環境を使用する(初心者向け・期間限定)

    https://discord.gg/stablejp

    初心者は 「Stable Community Japan」のDiscord で質問しながら、お試し環境で遊んでみることができます。
    discord招待リンク

    こちらのリンクで テスト用のWebサイト(Gradio)にアクセスできます

    https://discord.com/channels/1062784909191680120/1088440176398831729/1175022582655893535

    https://____.gradio.live/

    というURLが期間限定で無料で試せるように公開されていますので、試してみてください。

    今回は、②の方法で画像を生成していきます。

    実際に生成してみよう

    では、実際にプロンプトを入力して画像を生成してみましょう。
    各パラメーター、枠に数値やプロンプトを指定し、『Run』を押すだけで生成することができます。

    • prompt ここに生成したいものを記述します。
    • cfg_scale 画像がプロンプトに従う程度を指定します。デフォルトの7.5で問題ありません。
    • steps 画像からノイズを除去するステップ数を指定します。こちらもデフォルトの40で問題ありません。
    • width,height 生成する画像の縦横の大きさを指定します。
    • n_samples 一度に生成する画像の数を指定します。
    • seed (integer or ‘random’) 画像を生成する乱数です。最初は「random」にしておきましょう。値を固定することで、同じ条件でプロンプトや他の数値の比較ができます。
    • negative prompt 生成したくないものを記述します。

    ※実際に試してみた印象ですが、cfg_scaleもNPも絶対ではなく、だいたい1/3(10回中3回)といった印象です。気長にたくさん生成してみることをおすすめします。

    美味しい和食の生成

    それでは、さっそく日本独自の文化を生成してみましょう。

    「幕の内弁当、使い捨て弁当箱」

    よく見るお弁当です
    売り物のお弁当が再現されています!

    プロンプト「日本、板前、寿司職人」
    ネガティブプロンプト「無人」

    おかみさんの存在が現実感を出しています
    カウンター席ですね!

    しっかり日本文化が再現されています!
    これは個人的な感覚ですが、「寿司職人」など「モノ+人」の単語を指定すると、「モノ」の方が強く出てしまいがちです。人物が出力されない場合、ネガティブプロンプトに「無人」と記述すると上手くいくことが多いです。

    じわじわくる「和顔」ですね。

    掛け軸の生成

    また、縦横比を工夫することで、掛け軸や巻物が良い感じに生成されました。

    「掛け軸」「水墨画」「松竹梅」「鯉」などが良いキーワードになりそうです。

    「白黒」を指定するとスタイリッシュになります。

    年賀状の生成に便利

    弊社CEO白井が以前リリースした記事にて、「年賀状」というキーワードを使って年賀状を生成したのですが、JSDXLでも試してみたところ、雰囲気を掴んだ画像が生成されました。

    https://forest.watch.impress.co.jp/docs/serial/aistream/1537430.html

    プロンプト「年賀状」

    他にも、「屏風絵」「渋谷」「原宿」なども効果的なようです。
    ぜひ試してみてください!

    Originally published at https://note.com on November 22, 2023.

  • シリコンバレーからみた生成AI — Stable Diffusion内部を学ぶ

    シリコンバレーからみた生成AI — Stable Diffusion内部を学ぶ

    AICUメディア事業部のKotoneです!
    前回の記事にて、10月30日(月)から11月2日(木)にシリコンバレーで行われた「ODSC West(Open Data Science Conference)」というデータサイエンスのカンファレンスをレポートしました。

    (前回)シリコンバレーからみた生成AI — Stable Diffusionの重要性

    https://corp.aicu.ai/ja/stable-diffusion-at-odsc-west

    この記事では、生成AIの誕生からStableDiffusionの発表、画像生成AIの急速な発展を再確認しました。
    今回は第2弾ということで、シリコンバレー在住のKojiのレポートから、前回の続きをお伝えします。
    Diffusion Model(拡散モデル)を使った世界初のオープンソースの技術であるStable Diffisionは、一体どういった経緯で生まれたのでしょうか。

    Stable Diffusionは、ドイツのミュンヘン大学のコンピュータビジョン研究所の Bjorn Ommer(ビヨン・オマール)教授が開発した Latent Diffusion Model(LDM) という技術をベースとして、RunwayML社の Patrick Esser氏と StablityAI社 の Robin Rambach氏が協力して開発されたものです。

    Stable DiffusionはイギリスのStabilityAI社によって発表され、3つの重要な特徴を有しています。
    ①オープンソースコード
    ②学習とファインチューニングが容易
    ③一般ユーザレベルのGPUで稼働する
    開発費はわずか60万ドルでしたが、2022年10月には101Mドルを資金調達できたそうです。StablityAI社は元々ヘッジファンドマネージャーであったEmad氏によって2019年に設立された企業です。

    2023年4月はStable Diffusionにとって大躍進の月でした。Advanced SDXL、Stable LM (LLM)、Stable Vicuna(Chatbot)の3つの新しいツールが発表されました。。これらにより、Mo-Di Diffusion、InstructPix2Pix、ControlNet、WebUI、CivitAI、Robo Diffusionなど他社の様々な関連技術の開発が誘発されました。

    以下はStable Diffusionの直感的な解説です。テキストからイメージを作ります。たとえば、「ネコ」から「ネコの写真」を生成します。しかし、テキストを直接変換するものではありません。テキストの指示にしたがって、リバースディフュージョン(逆拡散)によって、ノイズからイメージを生成するのです。これは3つの技術要素でできています。
    ①Noise to Image:ノイズから画像を生成する
    ②Guidance of Text:テキストによるガイダンス
    ③Reverse Diffusion:逆拡散

    テキストプロンプトは、「変更されたノイズのある画像は、テキストの説明文に少し似ている」といったように、ノイズ画像を変更する方法を指示(ガイダンス)します。

    この直感の例を見てみましょう。この例では、入力テキスト “Boy”(少年)に対して、この画像 が与えられたとします。さて、この少年の画像のどこに問題があるでしょうか? 耳と頭を変える必要がありますね。そこで、”Boy “というテキストが “ears “(耳)を変更するようガイド(指示)します。Stable Diffusionでは、このガイドはピクセルレベル、つまり1ドット単位で行います。エンコードされたテキストは、どのピクセルを少しだけ変更するか教えます。

    Stable Diffusionの直感的な画像生成プロセスです。Forward Diffusion(順方向拡散)はノイズを加えることで、Reverse Diffusion(逆拡散)は「ノイズ除去処理」です。

    Calculate:現在の画像のノイズ加算
    Remove:現在の画像のノイズを取り除く(Denoising)
    Repeate:繰り返し
    Stable Diffusion は、このノイズ付加⇒ノイズ除去⇒繰り返し…の繰り返しです。実はノイズの生成や逆のノイズ除去計算はニューラルネットワークで容易に行うことができます。しかし、すべてのエラーを一度のステップで予測することは出来ませんので、ステップバイステップで行っていきます。

    特に画像からノイズを除去するプロセスには膨大な時間がかかります。その時間を短縮するため Stable DiffusionではLatent Space(潜在空間)という概念を利用します。複雑で膨大な画像データを「その画像の特徴を表す、より少ない次元」で表現する「特徴ベクトル」として扱うことで、画像生成に利用するパラメーター数を削減します。
    たとえば、人の顔を表現するのに、画像の一つ一つのピクセルの情報で表現しようとするとデータ量は大きくなりますが、髪の色、目の色、顔の形、などの特徴を数値(ベクトル)で表すことにすると、大幅にデータ圧縮することができます。

    Stable DiffusionはLatent Stable Diffusionを示します。そして以下の3つの要素で理解できます。
    Latent(潜在):エンコードされた入力、デコードされた出力
    Stable(安定):ノイズを除去するための小さな変更
    Diffusion(拡散):ノイズ除去

    テキストからノイズを計算するためのガイダンス(指示)をどのように受け取るのでしょうか?テキストもまたLatent Space(潜在空間)にエンコードされます。しかし、それはテキスト自体の潜在空間です。画像とテキストが潜在空間で交わるこのプロセスは、すべてのテキストから画像へのモデルの基礎です。この現象により、テキストと画像モデルの境界線が曖昧になっています。そしてこのことは、次の論文で解決されました。2021年のCLIP論文です。

    CLIP(Contrastive Language-Image Pre-training、対照的な言語-画像事前トレーニング)とは、テキストと画像のデータペアを同時に理解することを目的とした技術です。具体的には、テキストの説明と対応する画像を関連付けることで、モデルは特定のテキスト記述にマッチする画像を生成する能力を学びます。

    CLIPは以下のように機能します。
    1.事前学習: CLIPモデルは、インターネットから収集された大量のテキストと画像のペアで事前学習されます。この学習プロセスでは、テキストエンコーダと画像エンコーダが使用され、それぞれがテキストと画像のデータを高次元の潜在空間にマッピングします。
    2.コントラスト学習: この潜在空間内で、正しいテキストと画像のペアは近接して表現され、誤ったペアは離れた位置に表現されるように学習されます。これにより、モデルは正確なマッチングを予測できるようになります。
    3.ゼロショット学習: CLIPはゼロショット学習能力も持っています。訓練中に見たことがない新しいカテゴリの画像やテキストに対しても、正確な関連付けを行うことができます。
    CLIP(Contrastive Language-Image Pre-training) の論文: https://arxiv.org/abs/2103.00020

    Stable Diffusionは、DDPM(Denoising Diffusion Probabilistic Model)と呼ばれるプロセスを活用しています。このプロセスは、大量のデータセットで何百万回も行われるトレーニングと、実際に画像を生成する際の推論の2つの主要なステップに分けられます。
    1.トレーニング:トレーニング段階では、既知の量のノイズを画像に加え、テキスト情報に基づいてそのノイズを除去する方法をモデルが学習します。このプロセスは何百万回も繰り返され、モデルはテキストと画像の対応関係をより正確に理解するようになります。
    2.推論: 推論段階では、ランダムなノイズからスタートし、テキスト情報に従って徐々にノイズを減らしていきます。このプロセスを繰り返し行い、テキスト情報に合致した、ノイズのない画像が得られるまで続けます。
    DDPMは、ノイズのあるデータからノイズを除去していくことでデータの本来の分布を学習する確率的モデルであり、このアプローチによってテキストから画像を生成することが可能になります。

    DDPMの論文: https://arxiv.org/abs/2006.11239

    Kotoneの感想
    画像生成に使われている専門用語を分解して理解することで、どのような技術が使われているのかを理解できました。画像生成とLLMは一見関係ないように感じますが、TransformerやCLIPをはじめとしてテキストと画像を結びつける技術にLLMが関わっているのだと実感できました。

    次回はOSDC編の最終回、もう一歩踏み込んでVAEなどの解説に入っていきます!

    Originally published at https://note.com on November 20, 2023.

  • シリコンバレーからみた生成AI — Stable Diffusionの重要性

    シリコンバレーからみた生成AI — Stable Diffusionの重要性

    AICUメディア事業部のKotoneです!
    最近LLMについての勉強を始めました。私が今力を入れている画像生成の根元にある技術なので、そもそもの基本的な考え方を知ることができ、とても興味深いです。

    さて、今回は当社CFOのKojiから、10月30日(月)から11月2日(木)にシリコンバレーで行われた「ODSC West(Open Data Science Conference)」というデータサイエンスのカンファレンスのレポートが届きました。
    Stable Diffusionに関するまとまった講演もあったとのことで、皆さんにご紹介したいと思います!


    10月30日(月)から11月2日(木)までODSC West(Open Data Science Conference)がシリコンバレーで実施されました。

    シリコンバレーでは生成AIがビジネスの中心と言ってよいほど、データサイエンスやAIに関するカンファレンスやミートアップはさまざまなものが開催されます。本カンファレンスは主に現場のエンジニア向けにフォーカスされており、ワークショップやチュートリアルが中心で、現場で開発に従事していると思われる若手エンジニアが多数参加していました。毎年この時期に開催されていますが、今回の特徴は、昨年夏から急激に盛り上がってきた生成AIについてのプレゼンやワークショップが多数行われたことでした。

    私自身これまでオンライン大学などでさまざまなAIやデータサイエンスの講義を受講してきましたが、生成AIに関してはこの1年の進歩が非常に早く,
    大学でのカリキュラムの整備がほとんど追いついてない状況です。一方、ODSCは、現場のシニアエンジニアがワークショップ形式で教えるスタイルが主体のため、最新の技術や手法を学ぶのに最も優れているカンファレンスの一つで、今年は特にとても楽しみにしていました。

    各人が自分のPCを動かしながら講演を聞いています

    今回のカンファレンスではStable Diffusionについてのプレゼンがありましたので、ご紹介したいと思います(但し、本件は初心者にも理解できるようにSandeep Singh氏による解説であり、Stability AI社の公式な見解に基づく講演内容ではないことをお含みおきください)。

    本件は、「Mastering Stable Diffusion」というテーマで、3つの講演内容で構成されていました。本レポートでは、1番目の「Embark on an Exciting Journey with Generative AI」についてご紹介したいと思います。
    プレゼンターは、Beans AI社におけるコンピュータビジョン部門の開発ヘッドであるSandeep Singh氏でした。なお、プレゼン資料の原稿はSandeepさんから直接いただいており、 ブログ記事で日本の読者向けにご紹介することも快諾を得ております。Sandeepさんありがとうございます!

    Stable Diffusion: A New Frontier for Text-to-Image Paradigm

    実際のスライド

    単にStable Diffusionの解説のみならず、生成AIの歴史から紐解いた内容で、とてもわかりやすく、興味深い内容でした。

    立ち見が多数出るほどの人気の内容でした。

    Stable Diffusionは、深層学習のテクニックを使って自動で画像を生成するものですが、単なる技術にとどまらず、知識、人間の興味、理解の探索などのシンフォニーである、というふうにSandeepさんは位置づけています。

    Stable Diffusionの技術の基盤となるDeep Learningですが、様々なコンセプトと技術があります。

    従来のAIは、データの分析から予測や意志決定を行うものですが、一方、生成AIは学習したパターンから何か新しいものを生み出すもので、従来型のAIを超えたものである、と位置づけています。そのためパラダイムシフトが生まれ、創造性を生む力を持つようになったということです。

    生成AIですが、テキスト(LLM、ChatGPT、GoogleBARD、Cohereなど)、画像・映像(Stable Diffusion、Dell-e2、Midjourneyなど)、音声(MusicLMなど)等があります。

    2014年あたりから生成AIのモデルが登場しはじめ、次第に複雑で高度なものに進化していきました。2020年以降、生成能力が人間を超えるものが登場し、専門家の間では話題となっておりました。さらには2022年には一般ユーザが簡単に利用できるレベルのものが登場し、世界中の注目を集めることになりました。

    画像生成の世界では、VAE、GAN、CLIP、GLIDEなどが次々と登場し、2022年夏頃にStableDiffusion、Dall-e2、Midjourney、Imagenなどが発表され、世間の認知度が一気に高まることになりました。

    Stable Diffusionの登場
    それでは、なぜStable Diffusionは注目すべきものなのでしょうか?それは、テキストからイメージを作ることができる驚異的な技術であることは言うまでもないことですが、Diffusion Model(拡散モデル)を使った世界初のオープンソースの技術であることです。元はと言えば、流体やガスの物理現象を応用したものです。同時期に登場したDalle2(OpenAI社)、Imagen(Google)なども類似の技術を使っているものと思われますが、残念ながら未公開です。

    Stable Diffusion: Why care?
    *Almost all Text-to-Image techniques are Inspired by This!
    *Poster Child of Text-to-Image Model.
    *First Open Source State of Art Diffusion Model.
    *Inspired by Physics of Fluids/Gases
    *Improved Image Reconstruction
    *Robustness to Variability, more resilient to changes in illumination, contrast
    *Enhanced Edge Preservation as in Image above.

    Stable Diffusionは何がすごいのか?

    • ほとんどのText-to-Imageテクニックはこれにインスパイアされている!
    • Text-to-Imageモデルの「わかりやすい姿」(Poster Child)
    • 初のオープンソースによる最先端の拡散モデル
    • 流体/気体の物理学にインスパイアされている
    • 画像再構成の改善
    • 変化に強く、照明やコントラストの変化に強い
    • エッジ保存を強化している

    2022年は、画像生成AIにとって驚異的な年となりました。OpenAIは4月にDalle2を発表し、5月にはGoogleがAmagenを、Midjorneyが7月に発表と、次々と高度なツールが発表されたのです。しかし、いずれも素晴らしいものではありましたが技術内容は未公開であったため、研究者やコミュニティによって評価を行うこと自体が困難でした。

    そして、2022年8月Stable Diffusionが登場しました。Stable Diffusionは世界初のオープンソースモデルであることから、多くの研究者や技術者から注目されました。単純で美しいコードによるDiffusionアプローチには、興奮が沸き起こりました。さらに重要なこととして、コモディティ化されたハードウエアで動かすことが可能、ということがわかり、世界中の多くの研究者や技術者、そして一般人までが一気に飛びついたのでした。

    ここから先の歴史についてはみなさんご存知のことも多いかと存じます。

    レポートは次回に続きます。


    生成AI(GenerativeAI)という言葉が世間で言われるようになったのはここ2、3年のことなので、2014年のAIというのは全く馴染みが無く、逆に新鮮に聞こえてしまいました。こうして振り返って見ると、とても短い期間に画像生成AIが広まっていったことが再確認できますね。

    Kotone&しらいはかせの感想

    Kotone:VAE、GAN、CLIPなどはStable Diffusionをさわっていると時々視界に入る単語ですね!
    はかせ:「 AIとコラボして神絵師になる 論文から読み解くStable Diffusion」で解説したつもりだったのですが、公開から1年、さらに俯瞰する時期が来ているかもしれませんね。
    Kotone:用語集助かります、整理して勉強していきたいと思います。
    はかせ:私は 東京工業大学 総合理工学研究科 知能システム科学 という専攻で博士を取得したのですが、当時は「知能システム」という分野は1970年代からサイバネティックス、ロボット・制御工学といった分野で研究されていました。もちろん2000年ごろにはすでに機械学習といった分野も存在し、研究室では強化学習、バックプロパゲーションなどをシミュレーションしたり、VRで体験できるようにしたり、ソフトウェアロボットにしたり、それを人間の脳から筋骨格系への信号と比較したり…といった研究です。制御となると目標とすべき正解やゴールがありますが、私の分野のようにエンタテインメント、アート、インタラクティブといった分野は定義も難しく、推論をするにも正解は何なのか、といったところで議論が終わる事が多かったです。

    講演は続きます。次回は Stable Diffusionの内部構造、仕組みについての解説になるそうです!

    Originally published at https://note.com on November 16, 2023.