ComfyUIのIC-Lightであらゆる写真をリライトする:プロンプト、ライトマスク、ディテール転送

ComfyUIのIC-Light v1とSD 1.5で、ポートレート、集合写真、風景のライティングを変えます。ワークフローの構築、Detail Transferで顔を保つ方法、マスクで光を導く方法、白飛びした結果を抑える方法を解説します。

Anton Tenitsky2026年10月13日約14分で読めます動画版は下にあります

このガイドはAIで英語から翻訳したもので、誤りを含む可能性があります。英語の原文を読む。

昼光のプロンプトと、キューに並んだ家族のポートレートの温かい日光を浴びたリライトバージョンを表示したComfyUI

IC-Lightは、テキストプロンプトまたはライトマスクで写真をリライトします。単に光を動かすだけではなく、プロに近いレベルの本当に良いレタッチも行い、自分自身、家族、風景のどんな粗い写真でも入力できます。ほぼどんなゲーミングノートPCのComfyUIでも、自宅で、無料で、写真をどこにもアップロードせずに動きます。

IC-Lightは、ControlNetの作者であるlllyasvielによるものです(GitHubのIC-Light)。より良い結果が出るIC-Light v2もありますが、私がこれを作った時点では、ComfyUIではなく、独自のウェブサイトの有料の非商用サービスとしてのみ提供されていました。ここではv1を使います。

ポイント

  • ノード: ComfyUI-IC-Light(Kijai)、KJNodes、Essentials、rgthree。モデル:iclight_sd15_fc。
  • グラフ: チェックポイント → Load And Apply IC-Light → KSampler。プロンプトとVAE → IC-Light Conditioning → KSampler。リサイズしてVAEエンコードした自分の写真を、foregroundとして。
  • 光をプロンプトで指定:「daylight」「foggy morning」「neon light」「spotlight」。
  • 顔を保つ: 元の画像からのDetail Transfer。
  • ライトマスクが空のlatentの代わりになります。柔らかくしないと画像が焼けます。

ComfyUIが初めてなら、ComfyUIのノードの基本から始めてください。ワークフローと私のライトマスクは、私のPatreonで無料です。

インストール

  1. Manager → Custom Nodes ManagerでIC-Lightを検索します。Kijaiのものと、huchenleiのIC-Light Nativeの2つのパックがあります。どちらも便利で、私は両方をインストールし、ここではKijaiのものを使います。
  2. KJNodes(Kijaiのユーティリティノード)もインストールします。再起動して、ページを再読み込みします。
  3. Manager → Model ManagerでIC-Lightを検索します。3つのモデルがあり、必要なのは1つだけです。
    • FC(foreground conditioned):私が使っているもの。
    • FBC(foregroundとbackground)。
    • FCON:ドキュメントによると、FCよりやや劣ります。
  4. ダウンロード後は、ページを更新(Ctrl+R)するだけです。再起動は不要です。

ワークフローを構築する

デフォルトのワークフローから始め、チェックポイントをepiCPhotoGasmに切り替えます。プロンプトの名前を「Positive」「Negative」に変え、緑と赤に色分けします。

  1. Load And Apply IC-Light: チェックポイントのモデルがここを通ってKSamplerに入ります。FCモデルを自動で拾います。
  2. IC-Light Conditioning: ポジティブプロンプト、ネガティブプロンプト、VAEを接続します。そのpositiveとnegativeの出力は、KSamplerに行きます。
  3. foreground: 自分の写真を入れたLoad Image → (Essentialsの)Image Resize → VAE Encode → conditioningのforeground入力。
iclight_sd15_fcモデルのLoad And Apply IC-Lightノードと、positive、negative、vae、foreground、opt_backgroundの入力とmultiplier 0.182のIC-Light Conditioningノード
2つのIC-Lightノード。モデルは片方を通り、プロンプト、VAE、写真はもう片方を通ります。

conditioningノードには、opt_background入力もあります。背景画像を試しましたが見栄えが良くなかったのでやめました。代わりにプロンプトで背景を記述してください。empty_latent出力もあり、Empty Latent Imageノードと同じものです。後でライトマスクを入れる場所になるので、私は別のEmpty Latent Imageを残しています。

ポジティブプロンプトにdaylightやfoggy morningのようなライティングを入力して、Ctrl+Enterを押します。実行のたびに少しずつ異なります。バッチ数を増やすと、多くのバリエーションが見られます。ひどいものもあれば、使えるものもあります。選別してください。

比較して、Detail Transferで顔を保つ

結果を画像A、リサイズした元画像を画像Bにして、rgthreeのImage Comparerを追加します。スライダーをドラッグすると、顔が少し変わっているのが分かります。それがレタッチの面で、あなたを「改善」するのです。その後のあなたは、まったく同じではなくなり、それは良いことよりも悪いことのほうが多くあります。

comparerのスライダーで元画像と分割した、眼鏡をかけてひげを生やした男性のリライトされたセルフィー
近距離のcomparer:新しいライティングと、わずかにレタッチされた顔。

ディテールを戻すために、Detail Transferを追加します。リライトした出力をtarget、元の画像をsourceに入れます。Photoshopのハイパス、アンシャープマスクのコツのように機能し、強すぎることもあります。blend factorを下げて調整してください。

調整中はseedを固定する

seedがrandomizeの状態では、変更のたびにすべてが再実行され、新しい画像になります。fixedに切り替えても、次のseedがすでに設定されているため、現在の画像は固定されません。代わりに、私はこうします。seedをincrementにして1から始め、各画像に既知の番号を付けます。気に入った番号(例えば3)に戻って実行し、その後fixedに切り替えます。これで、Detail Transferの設定を変えても、そのノードだけが数秒で再実行されます。

キューに並んだリライト済みポートレートの横で、control_after_generateをincrementにしたKSampler
incrementにして、気に入った番号を選び、固定します。

ライトマスク

空のlatentの代わりに、KSamplerにライトマスクを与えます。白が光になる白黒の画像です。マスクを読み込み、VAE Encodeして、KSamplerのlatent_imageに接続します。丸、ストライプ、斜めの線などのマスクのセットを描き、私のPatreonにあります。

ワークフローに読み込んだ、斜めの白黒ストライプのライトマスク
ストライプのマスク:ブラインド越しの光。

硬いマスクは画像を焼きます。 純粋な白黒のマスクは非常に高いコントラストになり、丸いマスクは目にも当たる、とても強い光になりました。柔らかくするには、マスクとVAE Encodeの間にプレビュー付きのRemap Image Rangeを加え、最小値を上げて最大値を下げます。私は約20パーセントまで下げました。Photoshopのようなリアルタイムではなく、プレビューを見るのでさえ、グラフを実行する必要があります。

プレビューノードの柔らかい丸いライトマスク
画像が焼けないようにリマップした、丸いマスク。

マスクを使うときは、プロンプトがとても重要です。「Spotlight」は強い光に、「neon light」はネオンになりました。私は通常、6〜8個を一度にキューに入れます。(プレビューノードの数字をクリックすると、以前の実行のプレビューがすべて表示されます。ComfyUIの新しい機能です。ときどきComfyUIを更新してください。)

Multiplier: IC-Light Conditioningのデフォルトの0.182が良好です。0.155では暗くなり、0.25では画像がほぼスタイライズされたように焼けました。

白黒の結果

ときどき白黒の画像が返ってきて、理由は分かりません。ネガティブプロンプトに「black and white」を入れると、彩度がおかしくなりました。Photonモデルを試したときも、最初は多くの白黒画像が出ました。VRAM 4GBのノートPCでは、24GBのPCよりずっと頻繁に出て、PCではほとんどがカラーです。「50% saturated」のようなプロンプトが役立つことがあります。結局、プロンプトを多用するよりも、主に選別することで対処しています。プロンプトは最小限にしています。

プレビューノードの斜めの線のライトマスクと、キューに並んだリライト結果
斜めの線のマスク:光は、顔よりも背景に当たりがちです。

高解像度

SD 1.5とIC-Lightは512 × 512で学習されています。マスクが同じサイズ(リサイズノードを使います)であれば、1024 × 1024の画像を入力することもできます。結果は少し焼けてよりスタイライズされましたが、品質は高くなりました。アップスケーラーが肌をプラスチックのように柔らかくすることがあるので、それには価値があるかもしれません。

光を手で描く

ライトマスクを直接描くこともできます。

  1. Load Imageを右クリック → Open in Mask Editorで、光が当たる場所を塗ります(顔で1950年代のフィルムノワール風を試しました)。
  2. Convert Mask to Imageにしてから、VAE Encodeに入れます。
  3. 結果がぼやける場合は、サイズを確認してください。マスクが512 × 512の画像と正確に一致しないと、すべてが壊れます。
  4. 柔らかくします:画像に変換する前にMask Blur(Essentials)(私は66を使いました)、その後、白を下げたRemap Image Rangeを約30パーセントで適用します。

集合写真と風景

IC-Lightは、複数の人物にも機能します。生成した家族写真で、「daylight」は興味深い結果になりました。子供の上の光線のマスクや、プロンプトの「beam of light」は、クレイジーな光線を作りました。multiplierの調整が必要かもしれません。

昼光のプロンプトと、キューに並んだ家族のポートレートの3つの温かい日光を浴びたバリエーション
集合写真での「Daylight」。

オーストラリアの風景写真では、「daylight」は興味深い結果になり、「sunset」はあまりに赤く不気味になり、「afternoon」は、ときに存在しない風景で海を置き換えましたが、うまくいくこともありました。プロンプトを試行錯誤する必要があります。

入力として岩場のビーチの写真、Photonモデルとafternoonのプロンプト、キューに並んだ深い赤の日没の結果
ビーチの写真:「sunset」はあまりに赤くなりました。

結果をアップスケールする

リライトした512 pxの画像は、私の無料アップスケーリングのワークフローで8Kまで拡大できます。結果は必ずしも素晴らしくはなく、512のリライト画像のほうが良いと感じることが多くありました。それでも解像度が必要なら、十分な結果が得られます。

動画版を見る (19:19)

上の内容はすべて動画でも説明しています。画面を見ながら進めたい方はこちらをどうぞ。 動画は英語です。

よくある質問

ComfyUIでIC-Light v2を使えますか?

私がこれを作った時点では使えませんでした。IC-Light v2は、独自のウェブサイトで有料の非商用サービスとしてのみ提供されていました。このガイドでは、ローカルで動くIC-Light v1を使います。

どのIC-Lightモデルをダウンロードすべきですか?

FC(foreground-conditioned)モデルだけを使っています。FBCモデルは背景も受け取りますが、背景画像を試しても見栄えが良くなかったため、代わりにプロンプトで背景を記述しています。

リライトした画像が白飛びしたり、白黒になったりするのはなぜですか?

硬い白黒のライトマスクは画像を白飛びさせます。Remap Image Rangeとマスクのぼかしで柔らかくしてください。白黒の結果は、VRAM 4GBのノートPCではよく出て、24GBのPCではまれでした。「50% saturated」のようなスタイルのプロンプトが役立つことがあります。

IC-Light Conditioningのmultiplierは、いくつにすべきですか?

デフォルトの0.182がよく機能します。0.155では暗くなり、0.25では画像がほぼスタイライズされたように焼けました。

Anton Tenitsky は コンピュータグラフィックスで15年以上の経験を持つ3Dアーティストで、Nickelodeon、Gameloft、Marvel Rivalsをはじめ多くのクライアントと仕事をしてきました。 プロフィールを見る

関連ガイド