Pixiv Fanbox
【Forge対応】「IC-Light」で光源操作&背景合成!
Published 05/09/2024, 08:17:41 PM · Edited 04/01/2026, 11:40:58 AM

★20240512改訂:Forgeの拡張機能が登場したため、取り急ぎForge版インストール方法と基本的使用法を追記しました。
こんにちは、スタジオ真榊です。本日はControlnetの生みの親であるlllyasviel(イリヤスフィール)氏が公開したAIライティングツール「IC-Light」のレビュー記事です。
IC-Lightは、ある入力画像(前景)に対して、背景をテキストもしくは画像で指定することで、自然な「再照明(リ・ライティング)」ができるという画期的ツール。例えばこんな風に、キャラクターと背景を与えるだけで簡単にカラーリングや照明をなじませることができます。
ForgeなどStableDiffusion用の各種webUI上で動く拡張機能ではなく、単体で機能するツールとして発表され、その後ComfyUI、ForgeといったStableDiffusionのwebUIに拡張機能が登場しています。
この記事では誰でもできる簡単なインストール方法と、次回からダブルクリック一発で起動できるようにする方法、起動画面の見方、具体的なワークフローなどについて解説・検証していきたいと思います。
【重要】ツール版と拡張機能版、どっちがいい?
最初に重要なポイントを説明しておきますと、単体運用できるツール版はインストールがとても面倒ですが、いったん環境構築すると使い勝手は良いです。Forgeの拡張機能はインストールが簡単ですが、IC Lightの仕組みを理解してもろもろのパラメータを自分で指定しないといけない分、使いこなすのが大変かもしれません。ただ、Checkpointやサンプラー、アップスケールなどの設定に制限がないので、自由度はこちらの方が高いです。
目次
IC-Lightってどんな機能?
①背景をt2i生成する(t2iモード)
②背景画像と合成する(合成モード)
革命的な「なじませ力」
「IC-Light」のインストール方法
venv環境でのインストール方法
一発で起動画面にたどり着くには
使い方 - 1.テキスト生成
使い方 - 2.背景合成
品質をアップするには
具体的なワークフロー
光源を指定しつつ、背景合成するには
終わりに
IC-Lightってどんな機能?
IC-Lightにはテキスト入力用と背景入力用の2種類のモデルが用意されており、いずれも無料で使用することができます。背景をtext to imageで生成するか、手元の画像と合成するかの違いがあります。この記事では、前者を「t2iモード」、後者を「合成モード」と呼んで区別することにします。
①背景をt2i生成する(t2iモード)
まずはこちらの公式GitHubのサンプルをご覧ください。
前景となる女性の画像からプリプロセッサによって背景がいったん除去され、テキストプロンプトに従って新たな背景が生成されています。右側の生成画像と入力画像を見比べてみると、単に合成しただけではなく、新しい背景に自然になじむよう「再照明」がなされていることが分かります。(合成ではなく再生成なので、よく見ると、髪の毛など細部は微妙に変化しています)
使われているのは「beautiful woman, detailed face, warm atmosphere, at home, bedroom」というプロンプト。これによって色温度の高いベッドルームが生成され、Lighting Preferenceという光源指定パラメータで「Left light」と指示したことで、キャンバス左側からのライティングが実現されるーという流れです。
「前景と自然になじむ背景がt2iでオーダーメードできる」というのが、主なt2iモードのメリットと言えるでしょう。
②背景画像と合成する(合成モード)
こちらは背景をテキスト指示するのではなく、もともと用意した画像と合成する方法。下図のサンプルでは、天使像の前景と、ネオンで照らされた街の背景画像を入力し、「statue of an angel,natural lighting」(天使像、自然なライティング)と指示するだけで、右図のように2枚を自然になじませることができています。
さきほどは「left light」を指示していましたが、こちらは背景画像のライティングを自然に採用するかたちになります。(背景画像をあえて指示せず、光源を上下左右+環境光で指示することも可能です)
前景と背景の取り合わせによっては、空中に浮いているように見えるなど不自然になってしまうこともあるので、t2iモードと合成モードのどちらを使ったほうがよいかはケースバイケースになるでしょう。
革命的な「なじませ力」
「再照明」というと使いどころが難しそうに感じるかもしれませんが、IC-Lightが本当に画期的なのは、照明の整合性というよりも「キャンバス全体のカラーの統一性」をAIによって担保できる部分です。こちらの、おれおん@oron1208さんの作例が良い例でしょう。
前景の酒瓶と美麗な背景を、それぞれの詳細部分は保ちながら、自然に融合して一つの画像に仕上げることが簡単にできてしまうわけですね。もとの酒瓶画像にあった右方向に伸びる影は綺麗に除去されており、背景画像に自然になじむライティングが施されていることが分かります。
このFANBOXではこれまで、前景(キャラクター)と背景を別々に生成し、それらしくなじませる手法を研究してきましたが、背景となじませる作業はClipstudioなどを使ってそれなりに手作業で行う必要がありました。
これまでは光源の方向に応じてグロー効果を掛けたり、乗算で影を付けたり、仕上げグラデーションでカラーリングを合わせたりしなければならなかったわけですが、そうした作業をある程度AI任せにできるのは非常に助かりますね。
IC-Light(ツール版)のインストール方法
では、さっそくインストール方法を見ていきましょう。IC-Lightは前述の通り、単体で機能する「ツール版」とForgeなど別のwebUI上で機能する「拡張機能版」があります。この項では、ツール版のインストール方法を解説します。Forgeを普段から使っている方は、次項目の「Forge版のインストール方法」に飛んでください。
(※IC-Lightはモデルも含めると全体で8GB超の容量がありますので、ストレージに余裕があるか事前に確かめておくことをおすすめします)
・コマンドプロンプトを開いてリポジトリをインストール
まずはインストールしたい場所でコマンドプロンプトを開きます。よくわからない方は、インストールしたい場所のアドレスバーに「cmd」と入れてENTERキーを押せばOK。
私はGドライブ(M2.SSD)直下にインストールしたいので、Gドライブを開いた画面でコマンドプロンプトを呼び出すと、このような画面が表示されました。
そうしたら、公式GitHubのこちらの文字列「git clone https://github.com/lllyasviel/IC-Light.git」をコピペしてきて…
コマンドプロンプト(黒い画面)にこのように張り付けて、ENTERキーを押下。
しばらく待って、進行度が「100%」になればインストール完了です。このように、Gドライブ直下に「IC-Light」フォルダがコピーされました。
このあと、公式の説明ではcondaで環境を作る流れになっているのですが、その場合はAnacondaもしくはMinicondaのインストールが事前に必要になります。より手軽なvenv環境でも動かすことができましたので、ここでは初心者向けにvenv環境での作り方を紹介します。
【ちょっと脱線】Condaとかvenvって何?
Condaやvenvというのは、Pythonのプログラムやライブラリをローカル環境にインストールし、管理するためのツールです。一つのPC内で複数のプロジェクトを進行したいとき、それぞれ別の仮想環境で構築することで、プロジェクト同士の干渉や環境の混線を防ぐことができます。Condaは「Anaconda」や「Miniconda」といったパッケージをインストールしておかないと使えませんが、venvはそうした事前準備の必要がなく、お手軽に環境構築できる違いがあります。
venv環境でのインストール方法
まずIC-Lightのインストールフォルダ内でアドレスバーに「cmd」と入力し、ENTER。出てきたコマンドプロンプト画面に「python -m venv venv」と入力して、再びENTERを押下します。
すると次の行に移動しますので、今度は「venv\Scripts\activate」と入力しENTERを押します。下記のような画面になればOKです。
今度は公式GitHubのこちらの行「pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121」をコピペしてENTERします。
手順が間違っていなければ、このように必要なファイルのインストールが始まります。数GBのDLが伴うので、しばらく待ちましょう。
インストールが済んだら、次の「pip install -r requirements.txt」の行をコピペして、同じようにENTERを押します。こちらもかなり待たされます。
最後に、こちらの行「python gradio_demo.py」をコピペしてENTERしましょう。
途中でWindowsセキュリティの警告が出た場合は「許可」しておきます。
必要ファイルのインストールが終わった後、このように0.0.0.0から始まるURLが表示されます。
Ctrlキーを押しながらこのURLをクリックすれば既定ブラウザでIC-Lightが起動する…はずなのですが、venv環境で「http://0.0.0.0:7861」がうまく開けずエラー画面が出てしまう場合は、ブラウザのURL欄に直接「localhost:〇〇〇〇」(4桁の数字が入ります。上の図の場合はlocalhost:7861)と手動で打ち込んでみてください。
こちらが起動画面です。お疲れさまでした!
一発で起動画面にたどり着くには
さきほど説明した通り、IC-Lightにはt2iモードと合成モードの2種類があります。テキスト生成機能を使いたい場合は先ほどの「python gradio_demo.py」を、背景参照生成をしたい場合は、「python gradio_demo_bg.py」を実行すればOKです。
新たにIC-Lightを起動する際は、少々面倒ですが、さきほどの最初の手順で「IC-Light」のフォルダでコマンドプロンプトを起動し、「python -m venv venv」▶「venv\Scripts\activate」▶「gradio_demo_bg.py」の順に入力し、出てきたURLにアクセス(0.0.0.0をlocalhostに書き換える)という工程を踏むことになります。
毎回こんなことをやるのは面倒ですので、さくっと起動用のbatファイルを作ってしまいましょう。
メモ帳を開いて、下記の5行をそのままコピペし、「start_gradio_demo.bat」などの名前でIC-Lightフォルダに保存するだけです。
@echo off
cd /d "%~dp0"
call venv\Scripts\activate
python gradio_demo.py
pause
次回からはこちらのbatファイルをダブルクリックすれば、0.0.0.0...のURLが出るところまで一発で行けるようになります。上記はテキスト生成機能の起動batなので、背景合成機能の方はpy部分を書き換えて…
@echo off
cd /d "%~dp0"
call venv\Scripts\activate
python gradio_demo_bg.py
pause
と入力し、「start_gradio_demo_bg.bat」といった名前で保存しましょう。
もう一つ面倒なのが、0.0.0.0を「localhost」に書き換えなければならなかったところですね。これは、「gradio_demo.py」もしくは「gradio_demo_bg.py」をメモ帳で開き、最後の行の「0.0.0.0」を「127.0.0.1」に書き換えて上書き保存するだけで解決します。
こうしておくと、このように表示されるURLが0.0.0.0ではなくローカルホストを意味する「127.0.0.1」に代わるので、Ctrlキーを押しながらクリックすれば起動画面に一発でたどり着けます。あとは起動batファイルへのショートカットをデスクトップなどに作っておけば、ほぼSDwebUIと同様の使い勝手になりますね。
Forge版のインストール方法
この項目ではForge版の拡張機能としてのインストール方法を解説します。こちらは公式GitHubに書いてある通りにすればできるので、簡単に流れを説明するだけにとどめておきます。
1.Forgeを起動。「URLからインストール」に上記のリポジトリのURLを入力し、インストール。「インストール済」タブの「Apply & Quit」から適用してForgeを再起動します。
2.「stable-diffusion-webui-forge/models」フォルダに「unet」フォルダを作成し、その中に必要な2つのモデルをダウンロードします。「ツール版」とは異なるモデルを使用するので注意してください。
上記リンク先から、「iclight_sd15_fbc_unet_ldm.safetensors」と「iclight_sd15_fc_unet_ldm.safetensors」の両方をunetフォルダにDLしましょう。
3.再起動されたForge上で、Controlnetなどが並ぶtext2image画面の下の方に「IC Light」タブができていればOKです。
4.ツール版と操作回りが異なるので注意が必要。詳しくは「Forge版の使い方」の項目をご覧ください。
「ツール版」の使い方 - 1.テキスト生成
さて、さっそくt2iモードの使い方から見ていきましょう。start_gradio_demo.batをダブルクリックしてIC-Lightを起動、「localhost:〇〇〇〇」をブラウザで開くと、このような基本画面が表示されます。
左上にリライティングしたい画像を入力し、プロンプトと光源の方向、画像のサイズ・枚数・Seed値を指示して「Relight」ボタンを押すだけ。簡単ですね。
画面をスクロールすると、このようなアドバンスド機能のオプション画面もあります。ステップやスケール、Hires(高解像度補助)の各種設定などを指示することができます。ついスケールを上げたくなりますが、「2」より大きくすると破綻することが多かったので上げすぎに注意しましょう。
こちらは生成例です。左上に前景画像を入力し、「on bed,white sheets,golden time」のプロンプト指示で1024×1024pxサイズで生成したものです。光源の方向指示は「None」。「Hires scale」がデフォルトの1.5になっていますので、実際には1536x1536pxで出力されます。
よく起きるのが、このように背景除去用のプリプロセッサがうまくキャラクターを切り抜いてくれないケース。Githubのサンプルを見ている限り、IC-Lightは写実的な被写体のライティングを想定して作られているようなので、切り抜きがうまくいかないのはアニメ調の画像だからかもしれません。ここは今後のアップデートを期待したいところですね。
「ツール版」の使い方 - 2.背景合成
今度は「合成モード」の使い方です。さきほどは背景をt2iしましたが、こちらのモードでは既存の画像を背景にして、前景と合成してもらうことができます。start_gradio_demo_bg.batをダブルクリックしてIC-Lightを起動、「localhost:〇〇〇〇」をブラウザで開くと、このような基本画面が表示されます。
画面をスクロールすると、背景の「クイックリスト」があります。背景画像を自分で用意しなくても、こちらを使って使用感を確かめることが可能です。IC-Lightフォルダ内の「imgs」フォルダの中に画像をおさめておくと、こちらのクイックリストに反映されるようです。
ステップやスケールといったその他の生成パラメータはさきほどと同様なので割愛します。実際の生成例はこちら。
さきほどと同様に、前景として入力した画像から背景が除去され、ネオンカラーの背景画像と合成された上で、ライティングが馴染むよう施されているのがわかります。
こちらは自分で生成した宇宙空間のAI絵を背景にしたもの。残念ながら、こちらも一部切り抜きがうまくいっていないことが分かります。(ちなみに「Use Flipped~」を選択しているので、地球のある方向が左右逆転しています)
「Use Background Image」を選択すれば読み込ませた画像がそのまま背景になるのですが、そうしなかった場合は、白から黒へのグラデーション背景と合成されます。こちらの画像は「Left light」の例。
ちなみに「Ambient」を選択すると、指向性のない環境光が当たっている画像にすることもできます。
品質をアップするには
デフォルト値のままで生成していると、前景の細部がつぶれてしまったり、線がガタガタになってしまったりすることも多いです。生成に時間が掛かりますが、キャンバスサイズを大きめにし、Hires scaleをデフォルトの1.5より大きくすることで、品質の低下をある程度までなら防ぐことができるようです。
私はいまのところ、長辺が1024pxになるようにキャンバスサイズを調整し、Hires scaleを2以上にすることが多いです。こちらの例は、いずれも「横640x縦1024px」で生成していますが、左がHighres scale1.5、右が3で生成したものです。(同一シード同条件)
Highres scaleの最大値は3までですが、3はかなり生成時間がかかるのでご注意ください。また、プリプロセッサによる切り抜きミスだけはどうしようもないので、現状は加筆などで修正するほかありません。
「Forge版」の使い方
おおむね上記の使い方の通りですが、仕組みを理解していないとちょっとパラメータ指定などが面倒です。「t2iモード」「合成モード」のいずれもtext2image画面でできるのですが、「背景画像を指定せず、グラデーション画像と背景合成」する場合はimage2image画面で使用します。ややこしいので一つずつ見ていきましょう。
「t2iモード」はtext2image画面で「FC」を選び、前景となる画像を読み込ませるだけ。
「合成モード」もtext2image画面で「FBC」を選び、ツール版と同様に前景画像と背景画像の両方を読み込ませ、「Use Background Image」か「Use Flipped~」を選択すればOK。そのほかのパラメータを選びたい場合は、image2image画面で行う必要があります(ここがややこしい)
【各種パラメータ設定と注意点】
使用できるCheckpointはSD1.5系のみです。AnimagineXLなどを使用しようとするとエラーが生じます。サンプラーは「Euler a」がおすすめ。「DPM++ 2M Karras」を使用したら、なぜかぼやぼやになってしまいました。
いずれもツール版と同様、スケールは「2」が基本。プロンプトの考え方はツール版と同様、
PP:best quality
NP:lowres, bad anatomy, bad hands, cropped, worst quality
を基本に、「beautiful woman, detailed face」や「handsome man, detailed face」「sunshine from window」「neon light, city」などと指定します。ステップは25前後、Hires(高解像度補助)を1.5~2程度の強さで使用するのがおすすめ。
こちらが合成モードの生成例です。
こちらは左が「DPM++ 2M Karras」、右が「Euler a」でt2iモードで生成した結果です。サンプラーによってはこのようにぼやけてしまうようです。
サンプラー調査
こちらに私がよく使うサンプラーの総当たり実験結果を掲載しておきます。PPは以下の通りで、その他設定は上の生成例と同様です。
PP:best quality,beautiful woman, walking road,detailed face,cherry blossoms, park,blue sky,sunlight
Euler aのほかDDPM、Restartなどが意外とよいようですが、うろこ状というか、けば立つような感じになってしまうのがやや気になります。
アップスケーラー調査
こちらは同様にアップスケーラーの影響を調べたものです。強度はどれも0.5で掛けています。
ご覧いただくと分かるかと思いますが、全体にどうもイラストの線画部分が薄くなってしまうきらいがあるようです。プロンプトの影響もあるかもしれませんが、何かしらよりよい結果が得られる設定が分かりましたら随時追記したいと思います。
具体的なワークフロー
さて、一通りIC-Lightの使い方が分かったところで、ではこの機能をアニメ調のAIイラストで使うとなれば、どういった使い道がよいかを考えてみます。まず思いつくのは「前景と背景の合成」や「複数のキャラクターや小物の合成」をより自然にできるという部分でしょう。
たとえばこれはGWに旅行先で撮ってきた写真ですが…
適当にアニメ調にi2iしまして…
同じサイズのキャンバスを開いて、このように適当に仲良しスレミオを配置して…
2枚を合成すると、このようなことができます。
ただ、拡大表示すると画質が今一つなのと、ミオリネさんの後ろ髪など、ところどころ切り抜きが失敗していることが分かります。
image2imageでアップスケールするとこんな感じ。細部は最初の画像から変更されてしまいますが、ここから加筆することを考えれば、悪くない感じではないでしょうか。
光源を指定しつつ、背景合成するには
もう一点、この画像で気になるのは、かなり強烈な逆光のはずなのに、さほど右手前が暗くなっていない(逆に、左奥側はもっと明るく光ってよい)というところでしょうか。「合成モード」だと背景画像に合わせてなんとなくカラーを合わせて影を付けることはできるのですが、やはり光源と影の方向まで完璧にコントロールすることはできないのです。
そこで、やはり人間のディレクションを加える必要があります。例えばこのように、「Left light」でいったん左からの光を指示してしまい…
前景画像をこのように変更します。つまり、入力する前景の時点で光源を指定してしまうのですね。(※さきほどの画像だとあまりに右側が暗すぎるので、多少明暗を調整しています)
先ほどと同じように生成すると、このようになります。
i2iアップスケールをかけるとこのような感じ。
クリスタで適当に光らせるとこういう感じでしょうか。ここから加筆しないとまだ不自然なところだらけですが、光源がコントロールできると面白いことがたくさんできそうですね。
終わりに
IC-Light単体で最後まで完璧に仕上げるのは難しいかもしれませんが、これまで通りアップスケールや加筆と組み合わせることで、自然な絵作りやダイナミックなカラーリングが手軽にできるのが最大の利点かなと思います。
一方で、ネックなのはやはり切り抜きの失敗が起きやすいことと、光の方向を完璧にはコントロールできないところ。IC-Lightでできた画像をそのまま使うのではなく、レイヤー合成の材料に使うなどして加筆の一手段として使っていくのが当面はよいのではないかなと感じています。
おそらく遠からずForgeなどに拡張機能として搭載されるのではないかなと思いますし、切り抜きに使うモデルもアニメ調の切り抜きが得意なモデルに変更できるようになってくることを期待しています。
駆け足な内容でしたが、ぜひ試してみてくださいね。ではでは。
Attachments (51)

c4VeComtniEMV2bkFraEldSa.png

xZLUAVc7FdnWUXMfMz23wHjC.png

glDNyDphCRQbGCKyh5VOSuHN.png

oIsXRCkOxxCPqKyKYU1oQLoz.png

dqsVrLzgCangakFnOfnIeRP8.png

XHBfE3eYIIsHeCWuCDe6rQtH.png

wxigHQ7k2esl9NIsL3uuuN45.png

gaKq1ScUahKOYUGz85bYYhVU.png

ZU2HDftd3iieKbyjcIOKze9x.png

mq6mmpfpPtOEDPggnxIwTGrv.png

Yaq9c0Utz9QgmD1PK2zomdR1.png

IBqydllbZLFTm2kiiTYUQ2gG.png

VQP7Gl1rGnYAM2zBZebZYGev.png

QLW0MiyWuUdLu85MItD2hi4E.png

lSq9if2myWzOll2d6PbBkKtB.png

rH80xIvRkZqRRFtF4TN53lWd.png

1U33QH2l9qyNvnd08keTm5tq.png

xnFB5XtNGNQGJHDPxrEVZyS5.png

hrzEAGMwukkefszIYF9BPDP3.png

gnW9jJLzTI0751oFHY8AM3cZ.png

rRQHiq21rnAbPDzDtIDFPduu.png

rgvGXs5ACeVoQN2ZSpY7WHlL.png

RNeiB8MK9potkVzd9765Orcr.png

KNOAoUbwVOZakEXilmOTatl5.jpeg

Y1ufeV6RUiakgWyVhJaBfpM8.png

KFJ4cTowkI49Z1thk20I8by4.png

x6uiccJnjB4wEW7J4xfDqsGD.png

YjtAI77KgYoXHvpyjIaqF5bI.jpeg

vXVlEDLGm4ogkHQ45IW8tJmZ.png

nMGPzm0fJUpKVBmwok8JB4yq.png

lT1qMX6IpjyAro8FV7DfD7rq.png

lNfv6wFwX3M3Nfh6RXG5vUVg.png

oSqOEFZPLwLLJerApjRrEp7v.jpeg

GleKqRVbYaf5UeZrG581PxyP.png

2PgvvIpLi9R6cWU9xpoPy25a.png

GFCb7dZDj7iU9oAqBMyw6gfV.png

N2ZKQBePmUglHxaRjq8a9lgR.png

euXfLDphipOjnmR84irT5bNl.jpeg

xyz_grid-0000-11111.png

xyz_grid-0000-11111 (2).png

C2zmL5FEeMYjlYYAPX3GHhTE.jpeg

UDxpEc4VTrCXhUFKurahBUCP.png

9opOG6VgYEFrHXf4PB9Gr94J.jpeg

U6LX3Mae6YefE7qsqR3TYLhT.png

l8mnZu0MMzhwZYZ8r7TMty9c.png

qJVJBPh86TtP4IbZkEjidhiD.png

rIYpk6samrLqjEqnQOw2k95X.png

QVRAUe77LrzVzRWhKPHzFzlf.png

TKCej1wc1iVPwVMS0ovzzqEB.png

7WVK6SCJQvU547fd4h9oDktQ.png

FeDDojeO2wMc23ZSlvhJ9eh1.png
