柳谷智宣のAI ウォッチ!

LoRAとは ~スマホで自撮りした写真から画像生成AIで自分の画像を自由に作りまくる方法

知っておきたい画像生成AIのいま[前編]

 本連載「柳谷智宣のAI ウォッチ!」では、いま話題のAI(生成AI)を活用したサービスを中心に取り上げていく(基本的に1サービスにつき前後編を予定)。今回は、生成AIプラットフォーム「Fal.ai」とLoRAの利用法を取り上げる。
生成AIプラットフォーム「Fal.ai」

 MidjourneyやStable Diffusionといった画像生成AIで好きな画像を生成している人も多いのではないだろうか。筆者も、記事で使うイメージカットなどをMidjourneyで生成している。

 そんな中、特定の人物の画像を生成したいことがある。もちろん、他人の画像を生成するのはNGだが、自分の画像を生成し、例えばプロフィール写真やブログのワンポイント画像に使うといった具合だ。いちいち撮影するのは面倒だが、生成AIで作れるなら手間が省ける。

 そんなときに使うのが「LoRA(Low-Rank Adaptation)」という技術だ。画像生成AIなどで、モデルの特定の能力を拡張したり、新しいスタイルや機能を学習させたりできる。AIモデル全体を再トレーニングするのではなく、一部だけに小規模な調整を加えることで、コストや時間を節約できるのが特徴だ。

 自分でファインチューニングしたLoRAを作るには、ある程度の知識とある程度のメモリを積んだグラフィックスカードが必要で、これまではハードルが高かった。しかし、生成AIプラットフォームである「Fal.ai」が安価なLoRA学習サービスを提供しているので、誰でも手軽に自分のLoRAを作れるようになった。今回は、スマホで自撮りした写真から自分の画像を生成AIで自由に作りまくる方法を紹介する。

生成AIプラットフォーム「Fal.ai」を利用する

 「Fal.ai」にログインしたら、まずは[Billing]を開いて課金する。AIのトレーニングは2米ドルくらいで、画像生成は1枚0.0035ドルと格安なので、10~20ドル課金すればしばらく遊べる。

 課金したら「flux-lora-fast-training」を開き、写真をアップロードする。最低4枚以上の画像が必要で、個別にドラッグ&ドロップしてもよいし、ZIPファイルにまとめてアップロードしてもよい。ネット上の画像ならURLを入力することも可能だ。

まずは[Billing]タブで課金する
画像をアップロードする

 今回はスマホで撮影した写真30枚をアップロードしてみた。写真を見ればわかる通り、よれよれのTシャツを着ている写真だ。画像をアップロードしたらトリガーワードを指定して[Start]をクリックする。トリガーワードとは作成したLoRAを有効にするための合言葉で、プロンプトに使いそうな単語は指定しないこと。

 少し待つと学習が終わるので「Training history」の[Run interence]をクリックする。

トリガーワードを指定して[Start]をクリックする
学習処理が「Completed」になったら[Run interence]をクリックする

 「Playground」が開いたら、トリガーワードを入力し、画像を生成してみよう。まずは大学の教壇でハンバーガーを食べる自分を生成してみる。ちなみに、プロンプトは英語で入力する必要がある。

 あっけなく自分がハンバーガーを食べる写真が生成された。自分で見ても本人にしか見えないし、人物の手の描写も含めて画像は破綻していない。1枚の生成金額は約0.6円。ここまで手軽に、激安に、特定の人物の生成が可能になるのは驚異的だ。

大学の教壇でハンバーガーを食べる自分を生成した
ほかにもシャンゼリゼ通りを歩く自分を生成
銃を持って戦う自分を生成

 もし英語のプロンプトを考えるのが難しいなら、ChatGPTに聞いてしまってもOK。エグゼクティブ風の自分がオフィスで働く写真のプロンプトを考えてもらい、Fal.aiに入力したところ、問題なくリアリティのある画像が生成された。

ChatGPTに画像生成用のプロンプトを考えてもらうのもあり
いい感じのオフィスショットを生成できた

 [More]をクリックすると追加の設定画面が開き、画像サイズや一度に生成する画像枚数を変更できる。もちろん、サイズを大きくしたり、枚数を増やしたりすれば、その分コストがかかることは忘れないように。

 ちなみに「Enable Safety Checker」という項目はプレイグラウンドではOFFにできない。これは、NSFW(not safe for work)、つまりエロい画像を生成させないようにするもの。例えば、裸でベッドに寝ている男性、と入力すると画像が黒くなり生成されない。

1度に4枚ずつ生成させることもできる
ちなみにエロい画像は生成できない

LoRAをダウンロードしてローカルのStable Diffusionで画像を生成する

 安いとはいえ大量に生成したいのでコストがかかるのは避けたい、もしくは生成する画像を検閲されたくない、というのであれば、自前の環境でStable Diffusionを動作させる手がある。

 メモリをたくさん積んだNVIDIA製のグラフィックスボードが必要になるし、環境の構築には少し手間がかかる。そうとはいえ、ネットで調べれば構築方法はいくらでも見つかるし、「Stability Matrix」という簡単インストールができるツールも公開されているので、興味のある人はチャレンジしてみよう。

 今回利用したのは「Stable Diffusion WebUI Forge」だ。Hugging Faceからモデル(flux1-dev.safetensors)、テキストエンコーダー(t5xxl_fp16.safetensors)、クリップ( clip_l.safetensors)、VAE(ae.safetensors)をダウンロードし、所定のフォルダーに保存する。後は、Fal.aiで学習させたLoRAを「Training History」からダウンロードし、LoRAのフォルダーにコピーすれば準備完了。

 作成したLoRAを有効にして「man standing」と入力したら、いかつい自分が生成された。ちなみに、クラウドでは弾かれた「a man sleeping naked on bed」も普通に生成できる。

学習させたLoRAをダウンロードする
ローカル環境のStable DiffusionでLoRAを使って画像を生成できる
この場合、NSFWの画像も生成可能になる

 以上が、スマホで自撮りした写真を学習させて画像生成AIで自分の写真を生成させる方法となる。とても便利で楽しいが、そうも無邪気なことばかり言っていられない。ちょっと考えるだけで悪用される可能性大だ。考えておかなければならない「ディープフェイク問題」に関しては、後編で紹介する予定だ。

著者プロフィール:柳谷 智宣

IT・ビジネス関連のライター。キャリアは26年目で、デジタルガジェットからWebサービス、コンシューマー製品からエンタープライズ製品まで幅広く手掛ける。近年はAI、SaaS、DX領域に注力している。日々、大量の原稿を執筆しており、生成AIがないと仕事をさばけない状態になっている。

・著者Webサイト:https://prof.yanagiya.biz/

柳谷智宣のAI ウォッチ! 記事一覧