タグ: image2image

  • [ComfyMaster16] ComfyUIでImage-to-Image(i2i)を始めよう

    「写真の表情を変えたい」、「イラストをリアルな絵画風にしたい」…
    それ、i2iで実現できます!

    こんにちわ、AICU media編集部です。
    ComfyUI マスターガイド」、いよいよ今回から「Image-to-Image(i2i)編」に突入します。
    この記事では、ComfyUIを使用したi2iの基本から応用まで、実践的なステップを踏んで解説していきます。

    前回はこちら。初回はこちら

    1. Image-to-Image(i2i)とは

    Image-to-Image(i2i)とは、既存の画像を入力として使用し、新しい画像を生成する技術です。元の画像の構造や特徴を保持しながら、新しい要素を追加したり、スタイルを変更したりすることができます。

    ComfyUIでのi2iは、通常の画像生成と同じノードの多くを使用しますが、主な違いは入力に既存の画像を使用することです。この技術は、写真の編集や修正、アートスタイルの変換、キャラクターデザインの変更、風景画の変更や拡張など、幅広い用途に活用できます。

    今回は、インペインティングによる表情の変更と、アニメ調からリアル調へのスタイル変換を解説します。

    2. インペインティングによる表情の変更

    では、実際にComfyUIでi2iのワークフローを構築してみましょう。今回は、以下の画像の表情を変えたいと思います。

    画像
    • ワークフローが埋め込まれたPNG画像(webp形式ではなく)とGoogle Colabでの ComfyUI i2i編ノートブックは文末にて提供しています
    • メニューの「Load Default」をクリックし、標準のワークフローをロードした状態にします。モデルはstable-diffusion-xl-base-1.0を使用します。
    画像
    • 次に「Load Image」ノードを追加し、「choose file to upload」から対象の画像をアップロードします。
    画像
    • ウィジェット用で右クリックし、表示されたメニューから「Open in MaskEditor」をクリックします。
    画像
    • マスク範囲を指定するためのキャンバスが表示されます。
    画像
    • 今回は、表情を変更したいので、顔をブラシで塗りつぶします。
    • 「Thikness(ペンの太さ)」「Opacity(不透明度)」「Color(ペンの色)」は作業用のパラメータです。最終画像への影響はありません。
    • その後、「Save to node」をクリックします。
    • 以下のように顔がマスキングされます。
    画像
    • 次に、「VAE Encode (for inpainting)」ノードを追加します。
    • 「Load Image」の出力「IMAGE」「MASK」を、それぞれ「VAE Encode (for inpainting)」ノードの入力「pixels」「mask」に接続します。
    • 「Load Checkpoint」ノードの出力「VAE」「VAE Encode (for inpainting)」ノードの入力「vae」に接続します。
    画像
    • 「Empty Latent Image」ノードを削除します。
    画像
    • 「VAE Encode (for inpainting)」ノードの出力「LATENT」「KSampler」ノードの入力「latent_image」に接続します。
    画像
    • ポジティブプロンプトを「1girl, smile」に変更します。
    画像
    • これで「Queue Prompt」をクリックし、生成を実行します。以下が生成結果です。表情は変わりましたが、周囲との馴染みが若干悪いです。
    画像
    • 生成結果を調整する際は、「KSampler」ノードの「denoise」の値を調整してください。この値を 1.0から 0.9, 0.8,…と下げていくことで、変化の度合いを調整できます。
    画像

    denoise = 0.8

    画像

    denoise = 0.75

    画像

    ※このパラメーターを 0.8 以下にすると、破綻しやすくなるので段階を踏みながら設定していくことをおすすめします。

    細かな制御をしたい場合はVAE Encode (for Inpainting) のパラメータ「grow_mask_by」も操作するとよいでしょう。

    「grow_mask_by」を小さい値にすると、境界線が目立つようになります。

    画像
    画像

    逆に、「grow_mask_by」を大きな値にすると境界が曖昧になります。なお最大値は64です。大きくすると処理時間が長くなります。

    denoise = 0.9, grow_mask_by = 64, seed = 1

    画像

    バッチ生成してみましょう。
    denoise = 0.9, grow_mask_by = 64, seed = 5

    画像

    3. アニメ調からリアル調へのスタイル変換

    先ほどのワークフローを利用し、アニメ調からリアル調へのスタイル変換をします。ワークフローの変更点としては、以下になります。

    • 顔に掛けていたマスクを外します。今回はスタイルを変えるので、画像全体を対象とするためです。マスクの外し方は、「Open in MaskEditor」でマスク用のキャンバスを開き、左下の「Clear」をクリックし、マスクを削除後、「Save to node」をクリックします。
    画像
    • 「VAE Encode (for inpainting)」ノードを「VAE Encode」ノードに変更します。「VAE Encode」ノードは、「VAE Encode (for inpainting)」ノードからマスクの入力が削除されたバージョンです。
    画像
    • 使用するモデルをRealVisXL_V4.0.safetensorsに変更します。RealVisXLは、実写の描写が得意なモデルで、これを利用することでリアル調のスタイルに変換します。以下のリンクからRealVisXLをダウンロードし、「ComfyUI/models/checkpoints」フォルダに格納してください。

    ※ダウンロード済みの場合は選択するだけになります。

    https://huggingface.co/SG161222/RealVisXL_V4.0/blob/main/RealVisXL_V4.0.safetensors

    • ポジティブプロンプトを「1girl」にします。表情は変えないので、smileは削除します。
    画像
    • 「KSampler」ノードの「denoise」を0.55-0.70程度に設定します。ここは、生成結果を確認しながら調整してください。
    画像
    • ここまでの設定で画像生成してみましょう。以下が生成結果です。元画像からスタイルが変わっていることが確認できます。
    画像

    4. 倫理的考慮事項

    i2iの使用には倫理的な配慮が必要です:

    1. 著作権: 他者の作品を無断で使用しない。特にdenoiseを下げすぎると、依拠性や類似性を意図して侵害することになります。
    2. プライバシー: 個人を特定できる画像の使用に注意
    3. ミスインフォメーション: 偽の画像やディープフェイクなど、誤解を招く画像の作成を避ける
    4. 不適切なコンテンツ: 有害や攻撃的な画像の生成を控える

    画像生成AIの責任は生成者にあります。責任ある使用を心がけ、創造性と倫理のバランスを保つことが重要です。

    ▶画像生成AIクリエイター仕草(v.1.0)

    【参考】AUTOMATIC1111での i2i 関連情報はこちら

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

    5. まとめ

    ComfyUIでのi2i技術は、あなたのクリエイティブな可能性を大きく広げるツールです。基本的なワークフローの構築から始まり、パラメータの微調整、高度なテクニックの適用まで、段階的に技術を磨いていくことで、より印象的で独創的な画像を生成できるようになります。

    最後に、AIを使用した創作活動には倫理的な配慮も必要です。著作権や個人情報の扱いには十分注意し、責任ある利用を心がけましょう。

    この記事を参考に、ComfyUIでのi2i探索を楽しんでください。新しい発見や素晴らしい創作の旅が、あなたを待っています!

    次回は、image-to-image編 第2回「Outpainting機能」を紹介します。
    乞うご期待!

    X(Twitter)@AICUai もフォローよろしくお願いいたします!

    画像生成AI「ComfyUI」マスターPlan

    画像生成AI「Stable Diffusion」特に「ComfyUI」を中心としたプロ向け映像制作・次世代の画像生成を学びたい方に向けたプランです。最新・実用的な記事を優先して、ゼロから学ぶ「ComfyUI」マガジンからまとめて購読できます。 メンバーシップ掲示板を使った質問も歓迎です。

    • メンバー限定の会員証が発行されます
    • 活動期間に応じたバッジを表示
    • メンバー限定掲示板を閲覧できます
    • メンバー特典記事を閲覧できます
    • メンバー特典マガジンを閲覧できます
    • 動画資料やworkflowといった資料への優先アクセスも予定

    ゼロから学ぶ「ComfyUI」マガジン

    https://note.com/aicu/m/md2f2e57c0f3c

    マガジン単体の販売は1件あたり500円を予定しております。
    2件以上読むのであればメンバーシップ参加のほうがお得です!というのもメンバーシップ参加者にはもれなく「AICU Creator Union」へのDiscordリンクをお伝えし、メンバーオンリー掲示板の利用が可能になります。

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

    もちろん、初月は無料でお試しいただけます!
    毎日新鮮で確かな情報が配信されるAICUメンバーシップ。
    退会率はとても低く、みなさまにご満足いただいております。
    ✨️オトクなメンバーシップについての詳細はこちら

    お楽しみ、メンバー向けボーナストラックには、今回のi2iサンプルワークフローが埋め込まれたPNGファイルと、i2i編で便利な Google Colab用 ComfyUI ノートブック(新作)、さらに今回の内容で使った workflowファイルをお贈りします。もりだくさんです!


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

    Originally published at https://note.com on Sept 15, 2024.

  • 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.