「生成した画像のこの顔、凄くいいんだけど再現できない…」
画像生成AIを使ったことのある方なら、誰しも一度は抱いたことがあるのではないでしょうか?
画像生成AIで作った画像は美しくて芸術的ですが、同じ顔の画像を出せないのが難点です。
他にも、「この映画のような画像の中に、自分を登場させたい!」とか。
それ、できます。
しかも、たった20分で、わずか2ドル(約300円)ほどで実現可能なんです!
画像生成AI「FLUX」と、カスタム学習モデル「LoRA」を組み合わせることで、特定の顔の特徴を持つ女性の画像を、何枚でも生成できるようになります。
難しそうに聞こえるLoRAの作成も、ウェブサービス「Replicate」を使えば驚くほど簡単。プログラミングの知識すら必要ありません。
この記事を読めば、できるようになること:
- FLUXとLoRAの基本を理解し、最新のAI画像生成技術を活用できるようになる
- Replicateを使って、わずか20分、しかも低コストで顔の特徴を学習したLoRAを作成する方法が分かる
- 作成したLoRAをFLUXで使い、同じ顔の人物画像を効率的に生成するテクニックを身につけられる
LoRAの基本
LoRA(ローラ)は「Low-Rank Adaptation」の略で、大規模な AI モデルを効率的に微調整するための技術です。
簡単に言えば、「AIにちょっとした個性を付け加える」ための道具だと考えてください。
少ないデータで学習可能:
・10~20枚程度の画像があれば、特定の顔の特徴を学習できます。
軽量:
・元のAIモデルに比べて非常に小さいサイズなので、扱いやすいです。
柔軟性:
元のAIモデルを変更せずに、新しい特徴を追加できます。
高速な学習:
通常のファインチューニングよりも短時間で学習が完了します。
Replicateに登録する
Replicateとは
Replicateは、機械学習モデルをクラウド上で簡単に実行できるプラットフォームです。特に、画像生成AIの分野で人気が高まっています。
- ウェブブラウザから直接利用可能
- 豊富な事前学習モデルを提供
- カスタムモデルの作成と実行が可能
- APIを通じて外部アプリケーションと連携できる
Replicateにサインインする
Replicateを使うためには、Githubのアカウントが必要となります。まだアカウントがない場合は、事前に作成しておいてください。

Replicateの公式サイトにアクセスします。

「Sign in」をクリック。

「Sign in with GitHub」をクリック。次の画面でGitHubのアカウントとパスワードを入力します。

メインの画面が表示されました。
支払方法の登録
Replicateは、利用前にクレジットカードなどの支払方法を登録する必要があります。

アカウント名が表示されている部分をクリック。


メニューの中の「Account settings」→「Billing」に進みます。

「Manage billing」からクレジットカードなどの支払方法を登録します。
LoRA作成の準備
LoRAの参照元となる画像を用意
オリジナルLoRAを作るための元となる画像を用意します。画像フォーマットはPNGかJPGです。
ここではMidjourneyで生成した、以下のような同じ顔の男性キャラクターの画像20枚を使います。
タイトルでは「美女」なのになぜ男?と思われるかもしれません。
実は女性キャラクターのLoRAは最初に作ってしまっていて、今回ブログ用に2回目なので、男にしてみようかと思った次第です。
「美女」キャラクターの生成結果は最後に載せています。

Midjourneyで同じ顔のキャラクターを生成する方法については、こちらを参照してください。

画像に名前を付ける
名前の付け方には以下のようなルールがあります。
a_photo_of_***().png
***はトリガーワードとなる名称、()内は連番を入れていきます。
今回は「a_photo_of_kenta(1)」という名前を付けました。20枚なので(20)までになります。
画像をまとめて圧縮する
この20枚の画像をZIPファイルにして圧縮します。

対象の画像を選択して右クリック→「圧縮先」→「ZIPファイル」を選択。

Zipファイルができました。
ReplicateでのLoRA作成手順
オリジナルLoRAを作成するページを開きます。
https://replicate.com/ostris/flux-dev-lora-trainer/train

ここでLoRAを作成するための設定をしていきます。
モデル名をつける
Destinationから入力していきます。


任意のモデル名を入力して「Create new model」をクリックします。ここでは「kenta-flux-lora」としました。

Zipファイルのアップロード
先ほど圧縮したzipファイルをアップロードします。


トリガーワードの設定
参照画像の時に決めたトリガーワードを入力します。ここでは「kenta」となります。

トリガーワード以降のその他の設定はそのままにしておきます。ここまで入力は完了です。

「Create training」をクリック。

実行中は進捗が表示されます。

「succeeded」になれば完了です。
今回は24分かかりましたので、料金は2.2ドルでしょうか。冒頭に「20分、300円で作ることができる!」といったのはこのことです。
実際には、Midjourneyで参照画像を作るのに結構時間がかかったりするのですが…。
制作したLoRAは「Download weights」からダウンロードできます。
Replicateで画像を生成してみる
ローカルのFLUXに当て込む前に、ウェブ上で結果を確認してみましょう。
「Run trained model」をクリック。

プロンプトは以下のようにしました。「Run」で生成してみます。
Portrait photo of kenta is sitting on the steps of an old apartment

元の画像がこれなので、

きちんと参照画像が反映されているようです。
作成したLoRAをFLUX.1で使い画像生成
LoRAをダウンロードして画像生成
ダウンロード時点でファイル名は「lora.safetensors」となっていますので、分かりやすく変更しておきます。
今回は「kenta-flux-lora.safetensors」としておきました。
次に、ダウンロードしたファイルを適切なフォルダへ配置します。
使っている環境によりますが、今回はStability MatrixのWebUI Forgeを使っていますので、ここになります。
***(Stability Matrixのあるフォルダ)\Data\Models\Lora
WebUI Forgeを立ち上げ、トリガーワードを含むプロンプトを入力します。

「Lora」タブをクリックして、先ほどダウンロードしたLoraを選択します。

「Generate」をクリック。このような画像が生成されました。

女性キャラクターLoRAの実行結果
ちなみに、同じように女性キャラクターでLoRAを制作して生成した結果は以下です。
LoRA制作の参照画像とした、Midjourneyで生成した画像がこれで、

FLUX.1(flax-dev-fp8)で生成した画像がこれになります。

元の画像とは少々雰囲気が違っているような気もしますが、同じような顔の画像が生成できました。もう少し、パラメータなどの設定が必要かもしれません。
まとめ
ここまで、Replicateを使ってオリジナルのLoRAを作成し、それをFLUXと組み合わせて一貫して同じ顔のキャラクターを生成する方法を詳しく見てきました。
技術と創造性の融合
AIの進歩は、かつてはプロのイラストレーターやデザイナーにしかできなかったことを、誰もが手の届くところに置いています。
たった20分、わずか300円ほどの投資で、自分だけのオリジナルキャラクターを作り出せるようになったのです。これは、技術と人間の創造性が融合した素晴らしい例ではないでしょうか。
新しい表現の可能性
FLUXとLoRAの組み合わせは、単に「きれいな絵を作る」だけのものではありません。あなたの頭の中にあるアイデアを、より正確に、より効率的に視覚化する強力なツールなのです。
小説の挿絵、ゲームのキャラクターデザイン、漫画の登場人物など、その応用範囲は無限大です。
倫理的な配慮の重要性
同時に、この強力なツールを使用する際には、倫理的な配慮を忘れてはいけません。著作権の問題や、不適切なコンテンツの生成を避けることは、クリエイターとしての責任です。
AIを使うからこそ、より一層の注意が必要なのです。
最後に
この記事で説明したテクニックは、あくまでも基本にすぎません。ここから先は、あなた自身の創造性と試行錯誤が鍵となります。
様々なプロンプトを試し、パラメータを調整し、複数のLoRAを組み合わせてみてください。失敗を恐れず、大胆に挑戦することで、きっと予想もしなかった素晴らしい結果を得ることができるはずです!
AIは私たちの創造性を奪うものではなく、むしろ増幅させるツールです。FLUXとLoRAを使いこなすことで、あなたのクリエイティブな可能性は無限に広がっていきます!
コメント