AI 画像操作ツールはここ数年で大きく進歩しました。今では、人物や動物の美しくスタイリッシュなポートレートを作成するのは非常に簡単です。しかし、AI モデルは予測が非常に困難です。そのため、ほとんどのツールは、ユーザー (または人間) が不適切な世代を取り除いて最適な世代を見つけることに依存しています。
これは、AI ツールでよく問題となる、典型的な「人間が関与する」問題です。巧妙なトリックと慎重な調整により、ほとんどのペットに確実に機能するパイプラインを構築できることがわかりました。ポーズや照明などの変化に対して非常に耐性があります。
この投稿では、その仕組みと、これを可能にする巧妙なトリックについて詳しく説明します。このパイプラインで生成できるポートレートの例をいくつか示します。
さあ始めましょう!
このテクニックの核心は IPAdapter です。これは基本的に、テキストの代わりに画像を使用してモデルにプロンプトを出す方法です (文字通り、Image Prompt Adapter の略です)。つまり、テキストの埋め込みを取得する代わりに、画像を使用して埋め込みを取得します。これは、画像からテキストに変換しなくても、画像のスタイルと構造を正確に直接キャプチャできるため、非常に強力です。ComfyUI IPAdapter ノードには、スタイル用と構成用の 2 つの入力があります。スタイルには水彩画の画像を使用し、構成には元の画像をフィードします (構成は同じまま、スタイルを変更したいため)。
スタイルの一貫性を保つ方法ができたので、ペットを忠実に表現することに集中できます。IPAdapters は画像品質に大きく偏っており、画像の類似性が損なわれます。そのため、出力が入力と同じオブジェクトのように見えるようにするには、何らかの操作を行う必要があります。
その答えは ControlNet です。ControlNet は、画像生成プロセスに追加の制約を与えるもう 1 つの優れた手法です。ControlNet を使用すると、エッジ、深度、人間の姿勢などの形で制約を指定できます。ControlNet の優れた機能は、スタックできることです。つまり、出力が入力と同様のエッジを持つように強制するエッジ コントロールネットと、出力が同様の深度プロファイルを持つように強制する深度コントロールネットを作成できます。ここで私が行っているのはまさにそれです。
コントロールネットは他のコントロールネットとスタックできるだけでなく、前述の IPAdapter と連携して動作することもできます。そのため、これに使用するツールは、スタイルを取得するためのソース イメージを備えた IPAdapter、エッジに基づいて制約するための Canny エッジ検出器を備えた ControlNet、深度プロファイルに基づいて制約するための深度を備えた ControlNet です。
技術面では、本当に必要なのはこれだけですが、生産のための機械学習の実験から私が学んだのは、これらの価値の多くは、すべてのパラメータを完璧に調整するために時間をかけることから生まれるということです。そこで、それについて少しお話ししたいと思います。
素晴らしいサンプル出力を持つモデルを見つけて、それを自分の画像で試してみたら、ひどい出来栄えだった、という経験はありませんか? 多くの場合、その唯一の理由は、モデルが自分の画像に合わせて微調整されていないことです。事前トレーニング済みのモデルの微調整をどこから始めればいいのか分からないため、完全に妨げになっているように感じることがあります。このトピックについて私が学んだことを以下に紹介します。これはこの特定のパイプラインにとどまらないため、一般的に知っておくとよい知識です。
ControlNet は非常に強力なので、出力への影響を慎重に制御する必要があります。幸い、ComfyUI のカスタム ノードを使用すると、ControlNet の影響を減らしたり、任意の時点でその影響を停止したりできます。そのため、エッジ検出器を 75% の強度に設定し、75% で生成への影響を停止し、深度検出器は 30% で停止します。強度を下げるのではなく、最後に停止する理由は、これにより、ネットワークが外部から制約されることなく、最後の数ステップでそれらによって引き起こされたアーティファクトを「クリーンアップ」できるためです。これにより、画像がきれいになります。つまり、エッジと深度を無視して、トレーニング データのみを使用して、できるだけ見栄えを良くしています。
調整すべきもう 1 つの大きな要素は KSampler です。ここでは細かい点が多数ありますが、そのうちのいくつかについて簡単に触れておきます。
まずステップがあります。これは文字通り、モデルが繰り返し実行される回数です。実行回数が増えるほど、出力はより様式化され、元の画像から遠ざかります。この効果はそれほど明白ではないことが多いため、試してみる価値があります。
次に、CFG があります。正直なところ、私はこれを完全に理解していませんが、その名前 (Classifier Free Guidance) から、モデルがプロンプトに制約されずに画像をどの程度変更して見栄えを良くできるかを制御するものだと思います。これは出力画像にも大きく影響するため、試してみる価値があります。
ここで私が使用するもう 1 つの巧妙なトリックは、空白の画像ではなく入力画像を使用して画像生成プロセスを開始し、ノイズ除去を低く抑えることです。これにより、出力は色とテクスチャの点で同じように見えるようになります。
今まで私が言及していなかったことの 1 つに、テキスト プロンプトがあります。これは通常、拡散モデルに提供する唯一の条件付けであるため、驚くべきことです。ただし、この場合、条件付けの方法が他にもたくさんあるため、テキスト プロンプトは通常邪魔になります。したがって、この場合、プロンプトは文字通り「犬」です。シェフの犬やバスルームの犬など、より様式化されたポートレートの一部では、テキスト プロンプトを少し多く使用しています。
本質的には、これは画像を水彩画風のポートレートに変換する「AI フィルター」に過ぎません。しかし、これがいかに柔軟に機能するかは驚くべきものです。たとえば、シャワーを浴びている犬の肖像画を作成するために、文字通り、画像編集ツールで画像をまとめて、それを入力として使用しました。モデルがすべてを統合し、画像をクリーンアップします。
次に、背景を削除し、テキストを追加すると、ペットの細部まですべて捉え、常に最高の光で描いた美しいポートレートが完成します。
ComfyUI ノードに関する作業と YouTube での素晴らしい解説シリーズを提供してくれた @cubiq に心から感謝します。このパイプラインのほとんどは、彼がビデオで構築し、解説したものです。
面倒な手間をかけずにペットの肖像画が欲しい場合は、pawprints.pinenlime.com から購入することを検討してください。