タグ: SD

  • img2img入門(1) i2iでできることを知ろう

    この記事では、画像とプロンプトをもとにして新たな画像を生成する『image-to-image』について解説します。

      image-to-imageとは

      『image-to-image』(以下『i2i』)とは、画像とテキストプロンプトをもとにして、新たな画像を生成する方法のことです。これにより、テキストのみでは伝えにくかった細かい雰囲気や色味などが再現しやすくなります。また、t2tで生成した画像の一部分のみの修正も行うことができます。

      画面上部のメニューの左から2番目の『img2img』を選択することで使用できます。

      画像
      この画面になります

      i2iには、『img2img』『Sketch』『Inpaint』『Inpaint scketch』『Inpaint upload』の5種類の機能があります。順番に試してみましょう。

      img2imgの使い方

      まず最初に、『img2img』です。これは、指定した画像とプロンプトをもとに全く別の新たな画像を生成する機能です。実際に試してみましょう。
      まず、t2tで生成した画像を用意します。

      モデル blue_pencil (今回はblue_pencil-XL-2.9.0を使っています)
      プロンプト masterpiece, best quality, ultra detailed, 1girl
      ネガティブプロンプト worst quality, low quality, normal quality, easynegative

      画像
      生成された画像

      これを赤枠内にドラッグアンドドロップ、または枠内をクリックしてフォルダから選択してアップロードします。

      画像

      まずは設定は何も変えずに生成してみます。

      画像

      生成されました。確かに雰囲気が似ていますね。
      では、プロンプトを指定してみましょう。t2tの際と同じようにプロンプトを入力します。
      プロンプト masterpiece, best quality, ultra detailed
      ネガティブプロンプト worst quality, low quality, normal quality, easynegative, 

      画像

      先ほどよりハイクオリティで、もとのイラストの雰囲気を残したイラストになりました。
      では、プロンプトで少し女の子の見た目を変えてみましょう。プロンプトに『smile』を追加してみます。

      画像
      笑顔になりました

      色味や雰囲気はそのままに、笑顔の女の子を生成することができました。
      このように、img2imgでは、画像とプロンプトをもとにして新しいものを生成することができます。
      では、細かい設定を見ていきましょう。これは他のi2iの機能でも共通して使用します。

      画像

      ① Resize mode 
      生成する画像のサイズを変えた時の(④)、元の画像との差の補完方法です。生成する画像の横幅を2倍にし、それ以外の条件を揃えて比較してみましょう。
      元画像

      画像

      Just resize
      元画像をそのまま引き伸ばします。

      画像

      Crop and resize
      縦横比を保ったまま、一部を切り取り拡大します。

      画像

      Resize and fill
      足りない部分を生成し補完します。

      画像

      Just resize(latent upscaler)
      『Just resize』を、異なるアップスケーラーを用いて行います。

      画像

      このように、画像の補完方法が全く異なるので、目的に応じて適したものを選びましょう。

      ②Sampling method
      t2tと共通の設定です。ノイズを除去し画像を生成する過程のアルゴリズムの種類を選択します。t2tの際と同じで、デフォルトのDPM++ 2M Karrasを使うことをおすすめします。

      ③Sampling steps
      こちらもt2tでも使う設定です。ノイズを除去する回数を指定します。詳しくはC3-コラムで解説しています。

      ④Resize to/Resize by
      生成する画像のサイズを指定します。『Resize to』を選択すると縦横のサイズを指定でき、『Resize by』を選択すると拡大縮小する倍率を指定することができます。

      ⑤Batch count
      t2tと共通の設定。指定した枚数の画像を順番に生成します。

      ⑥Batch size
      t2tと共通の設定。指定した枚数の画像を同時に生成します。

      ⑦CFG Scale
      t2tと共通の設定。生成画像をどれだけプロンプトに従わせるかを調節します。

      ⑧Denoising strength
      生成画像をどの程度元画像に近づけるかを設定します。

      Denoising strengthの使い方

      ここからは、先ほどの⑧『Denoising strength』というパラメーターについて実験と解説をしていきます。これは、img2imgの画像をアップロードする箇所の下部にあるメニューで設定する数値です。

      画像

      『Denoising strength』は、元の画像と生成する画像にどれだけ差をつけるかを表します。デフォルトは0.75ですが、0に近づくと元画像に忠実に、1に近づくと元画像とは違う画像になります。実際にi2iで画像を生成して比べてみましょう。

      まず、t2iで画像を生成します。
      モデル bluepencil
      プロンプト masterpiece, best quality, ultra detailed, 1girl, 
      ネガティブプロンプト worst quality, low quality, normal quality, easynegative, 

      画像

      これをi2iのX/Y/Z plotで、『Denoising』の数値を変えて生成します。

      画像

      これらを比較すると、Denoising:0.3のイラストは元のイラストとほとんど同じですが、Denoising:1.0のイラストは、女の子の服装、髪色、背景がかなり変わっていることがわかります。このように、Denoisingの値は小さいほど元のイラストと似たものになり、大きいほど元のイラストとの差が大きくなります。

      続きはこちら!

      https://note.com/aicu/n/n853810115170

      https://note.com/aicu/n/n65145ad4f762

      https://note.com/aicu/n/n0ce22c439af7

      ※本ブログは発売予定の新刊書籍に収録される予定です。期間限定で先行公開中しています。
      メンバー向けには先行してメンバーシップ版をお届けします
      Stable Diffusionをお手軽に、しかもめっちゃ丁寧に学べてしまう情報をシリーズでお送りします。
      メンバーは価値あるソースコードの入手や質問、依頼ができますので、お気軽にご参加いただければ幸いです!

      https://note.com/aicu/membership/join

      この下にGoogle Colabで動作する「AUTOMATIC1111/Stable Diffusion WebUI」へのリンクを紹介しています。
      メンバーシップ向けサポート掲示板はこちら!応援よろしくお願いします!

      https://note.com/aicu/membership/boards/61ab0aa9374e/posts/7cab00942b22?from=self


      この記事の続きはこちらから https://note.com/aicu/n/n08ebe0637a41

      Originally published at https://note.com on Jan 5, 2024.

    1. AI動画生成の大きな一歩 StabilityAIが「SVD Image-to-Video」を公開

      AI動画生成の大きな一歩 StabilityAIが「SVD Image-to-Video」を公開

      2023年11月21日、StabilityAI社は画像から動画を生成する技術「Stable Video Diffusion」(SVD)を公開しました。
      研究者の方はGitHubリポジトリで公開されたコードを試すことができます。ローカルでモデルを実行するために必要なウェイトは、HuggingFaceで公開されています(注意:40GBのVRAMが必要です)。
      さらにStable Video Diffusion (SVD) を使って画像から動画へウェブインタフェースも近日公開予定とのこと。キャンセル待ちリストが公開されています。

      stable-video-diffusion公式アナウンス

      https://stability.ai/news/stable-video-diffusion-open-ai-video-model

      日本語アナウンス

      https://ja.stability.ai/blog/stable-video-diffusion

      https://youtu.be/G7mihAy691g

      ウェイティングリスト

      https://stability.ai/contact

      研究論文

      「Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets」(21 Nov ,2023)
      安定した映像拡散: 潜在的映像拡散モデルの大規模データセットへの拡張

      高解像度で最先端のテキストから動画、画像から動画生成のための潜在動画拡散モデル、Stable Video Diffusionを紹介する。近年、2次元画像合成のために学習された潜在拡散モデルは、時間レイヤーを挿入し、小規模で高品質なビデオデータセット上で微調整することで、生成的なビデオモデルへと変化している。しかし、文献に記載されている学習方法は様々であり、ビデオデータをキュレーションするための統一的な戦略について、この分野はまだ合意されていない。本論文では、動画LDMの学習を成功させるための3つの異なる段階を特定し、テキストから画像への事前学習、動画の事前学習、高品質動画の微調整の評価を行った。

      Translated from the original paper

      Github: https://github.com/Stability-AI/generative-models

      HuggingFace

      https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt

      Stable Video Diffusion Image-to-Video モデルカードより

      Stable Video Diffusion (SVD) Image-to-Video は、静止画像を条件フレームとして取り込み、そこから動画を生成する拡散モデルです。

      モデル詳細

      (SVD)Image-to-Videoは、画像コンディショニングから短いビデオクリップを生成するようにトレーニングされた潜在拡散モデルです。このモデルは、 SVD Image-to-Video[14フレーム]から微調整された、同じサイズのコンテキスト・フレームが与えられたときに、解像度576×1024の25フレームを生成するように訓練されています。また、広く使われている f8-デコーダを時間的整合性のために微調整した。便宜上、標準的な フレーム単位のデコーダのモデル も提供されています。

      研究目的であれば、Generative-modelsのGithubリポジトリリポジトリ: https://github.com/Stability-AI/generative-models

      最も一般的な拡散フレームワーク(学習と推論の両方)が実装されています。
      論文: https://stability.ai/research/stable-video-diffusion-scaling-latent-video-diffusion-models-to-large-datasets

      評価

      https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt

      比較チャートは、GEN-2やPikaLabsに対するSVD-Image-to-Videoのユーザー嗜好を評価したものです。SVD-Image-to-Videoは、ビデオの品質という点で、人間に好まれています。ユーザー調査の詳細については、研究論文を参照してください。

      用途:直接利用

      このモデルは研究目的でのみ使用されます。想定される研究分野や課題は以下の通りです。

      ・生成モデルの研究
      ・有害なコンテンツを生成する可能性のあるモデルの安全な展開
      ・生成モデルの限界とバイアスの調査と理解
      ・芸術作品の生成と、デザインやその他の芸術的プロセスにおける使用
      ・教育的または創造的なツールへの応用

      除外される用途を以下に示します
      使用の範囲外
      このモデルは、人物や出来事の事実または真実の表現となるように訓練されていないため、そのようなコンテンツを生成するためにモデルを使用することは、このモデルの能力の範囲外です。またこのモデルをStability AI の 利用規定 に違反するような方法で使用しないでください。

      制限とバイアス

      制限事項
      生成される動画はかなり短く(4秒未満)、モデルは完全なフォトリアリズムを達成しません。
      ・モデルは動きのないビデオや、非常に遅いカメラパンを生成することがあります。
      ・モデルはテキストで制御することができません。
      ・モデルは読みやすいテキスト(legible text)をレンダリングできません。
      ・顔や人物全般が適切に生成されないことがあります。
      ・モデルの自動エンコード部分は非可逆です。

      推奨事項
      このモデルは研究目的のみを意図しています。

      モデルを使い始めるには
      https://github.com/Stability-AI/generative-models をチェックしてください。

      最新の進歩を取り入れたモデルのアップデートに意欲的に取り組み、皆さんのフィードバックを取り入れるよう努力していますが、現段階では、このモデルは実世界や商業的な応用を意図したものではないことを強調しておきます。安全性と品質に関する皆様の洞察とフィードバックは、最終的な商業リリースに向けてこのモデルを改良する上で極めて重要です。

      StabilityAI社のリリースメッセージより翻訳

      AICU media のコメント

      StableDiffusionを2022年8月に公開してから14カ月。ついにStabilityAIがAI動画生成の大きな一歩となる「SVD Image-to-Video」をオープンに公開しました。画像を入力すると動画が生成されるDiffusionモデルのようです。フレーム間の安定性も高いようです。論文も30ページの超大作なので今後のこの分野における革新の一歩になることは間違いありません。今後も注目していきます。

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

    2. Stability Matrixが最新版 v2.6.1にアップデート

      Stability Matrixが最新版 v2.6.1にアップデート

      2023年11月17日「Automatci1111」や「Fooocus」、「ComfyUI」を代表とするStable Diffusion WebUI各種が簡単なインストーラーでセットアップできちゃう「Stability Matrix」が最新版 v2.6.1にアップデートされました。

      https://github.com/LykosAI/StabilityMatrix/releases/tag/v2.6.1

      v2.6.0以前から大きな変更点

      v.2.5.x以前のユーザは新規インストールをしたほうがいいかもしれません。

      11月10日にリリースされたStability Matrixがv2.6.0に!IntelのオンボードGPUでも動く可能性が出てきました。

      https://note.com/o_ob/n/nd5ec2fd34ad9

      大きなニュースとしては、追加学習のプロジェクトとして評価の高い「kohya_ss」のパッケージ追加されました。

      Kohya’s GUI とは

      LoRAを生成するためのGUIで、日本人のKohyaさんが開発しています。

      https://github.com/bmaltais/kohya_ss

      このリポジトリは、主にKohyaさんが開発したStable Diffusionでの機械学習のためのWindowsに特化したGradio GUIを提供しています。GUIで学習パラメータを設定し、モデルを学習するために必要なCLIコマンドを生成して実行することができます。

      LoRAとは

      画像生成やLLMにおける追加学習のことで、StableDiffusionの場合は、自分の画風を学習させたり、キャラクターや背景を安定させたりといった使い道があります。ちょうどこちらの書籍で解説しています

      https://techbookfest.org/product/guM26Wz45JGPzhkaHFVzZj

      まだバグがいっぱいありそうですが、その後、短い期間でStability Matrixが最新版 v2.6.1にアップデートされたということになります。

      https://github.com/LykosAI/StabilityMatrix/releases/tag/v2.6.1

      リリースノートによると

      ・NVIDIA GPUユーザーは、InvokeAIパッケージでCUDA 12.1を使用するように更新され、パフォーマンスが若干向上。アップデートは、パッケージの次回更新時または新規インストール時に行われます。
      注:CUDA 12.1は、Maxwell(GTX 900シリーズ)以降のGPUでのみ利用可能です。

      ・バグ修正
      レート制限を防ぐため、GitHubへのコール量を削減
      起動時にレート制限がクラッシュし、アプリが起動できなくなる問題を修正

      インストール時の不具合はこちらで修正された可能性がありますね。
      Stability MatrixによるWebUIのパッケージ管理は非常に便利なので、今後もアップデートを見守っていきたいと思います。

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

    3. シリコンバレーからみた生成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.