見出し画像

アイーンLoRA作成への道#その1


世界初!アイーンLoRA作成へ

遅くなりましたが、皆様、あけましておめでとうございます。
今年もよろしくお願いいたします

さて、昨年12月ごろから開発してまいりました
世界初のアイーンLoRAですが
結論から言いますと、ずっと失敗しております。

先に申し上げますと、「だっちゅーのLoRA」はつくらなくても
プロンプトやコントロールネットを使えば簡単につくることができたんです。
♪絶え間なく注ぐ愛の名を 永遠と呼ぶことができたなら~
しかしながら(笑)
どうしてもアイーンのポーズはできない。

どんなにプロンプトを丁寧に打ち込んでも
chatGPTと相談して、完璧な英語のプロンプトを北斗神拳のように打ち込んでも、出来ない、出てこない。(アタタタタタタ!アタッチョウ!)


良くてこんなポーズ

それどころか
俺はもう死んでいる。ひ、ひでぶ!(腕が破綻してねじれてたり。。。)

それどころか、二人目が出てきたり。

二人目が出てくる

まあ、こんな感じで難航しておりました。
そこで、LoRAをつくればいいじゃない?と思いました

LoRAを作成するための自己矛盾

まず、LoRAをつくるために、神様、仏様、ChatGPT様に相談させていただきました。

志村けんさんの「アイーン」のポーズを画像生成AIで表現する際には、著作権や肖像権の問題を回避するために、以下のようにキャラクターの特徴を抽象化してプロンプトを工夫すると良いです。例えば、「コミカルで個性的なキャラクターが、片手をあごに添え、もう片方の手を腰に当てたユーモラスなポーズをとっている」といった説明を使うのが良いでしょう。

ChatGPT

このように、「志村けん」や「アイーン」といった直接的な表現を避けつつ、特徴的なポーズや表情を伝えることで、AIでオリジナルなキャラクターを生成できます。また、具体的な衣装や背景の雰囲気を追加することで、より理想的なイメージに近づけられるでしょう。

ChatGPT

"Bend the right arm at a 90-degree angle and hold it horizontally in front of the chest."

ChatGPT

と、このようなやりとりを数回したのち、

アイーンのポーズに特化したLoRA(Low-Rank Adaptation)を作成するには、以下のステップを参考にしてください。AIモデルにポーズをしっかり学習させるためのポイントも含めています。



1. データ収集

目標:アイーンのポーズを正確に再現できるデータセットを準備します。画像の収集
志村けんさんやキャラクターが「アイーン」のポーズをしている画像を集めます。ただし、著作権や肖像権に配慮し、商用利用ができる素材を中心に選びます。
バリエーションの確保
・男女別の画像
・アングル(正面、横、斜め)
・服装や背景の異なるシーン
できるだけ多様性を持たせることで、モデルの汎用性が上がります。
データ枚数の目安
最低でも50~100枚程度が推奨されます。




2. データの加工

目標:AIが効率よく学習できる形に整えます。クロップ&リサイズ
画像を512×512ピクセルや768×768ピクセルにリサイズします(モデルの学習設定に合わせる)。
注釈の追加(タグ付け)
・ポーズの特徴をテキストで表現します。
例:bend right arm, hold palm horizontally, lean forward, playful expression, comedic pose
・タグ付けはツール(例えば DeepDanbooru)を使うと効率的です。




3. LoRAのトレーニング環境準備

目標:LoRAを学習させるためのツールをセットアップします。必要なソフトウェア
Python(最新版)
CUDA対応のGPU(NVIDIA GPUが推奨)
学習フレームワーク(Stable Diffusionベース)
Kohya’s LoRA Trainerが人気です。
事前モデルの用意
Stable Diffusionなどの既存モデルをベースにしてLoRAを作成します。




4. 学習の実施

目標:ポーズをモデルに学習させます。学習パラメータの設定
・エポック数:3~10回(データサイズに依存)
・学習率:0.0001~0.0005(初期設定で十分)
・LoRAのランク:16~32程度が一般的。
学習の流れ
画像と注釈(タグ付き)をモデルに入力。
学習中、ポーズの再現性が十分か適宜確認します。




5. テストと調整

目標:期待通りの「アイーン」ポーズを生成できるか確認します。テストプロンプト
例:1girl, standing, bend right arm at 90-degree angle, hold palm horizontally in front of chest, playful expression, simple background
結果が不十分な場合
データセットを増やす。
パラメータを調整する。
より高品質なベースモデルを試す。




6. 出力・共有

作成したLoRAを出力し、個人利用や共有目的で利用できます。商用利用の場合は、データ元のライセンス条件に注意してください。



LoRAは効率的にカスタムモデルを作成できる強力な手法ですので、上記のプロセスを試してみてください!

ChatGPT

などと大変ありがたい、素人には理解しがたいアドバイスを得る。

「コピー機LoRA」を使用した学習手法を使えば、少量の画像で特定のポーズ(今回はアイーンのポーズ)を効率的に学習させることができます。この手法では、元のモデルが既に学習している多くの情報を活用しながら、新しいポーズや特徴を追加する形でLoRAを作成します。

以下に、コピー機LoRAを用いた具体的な手順を説明します。



1. データ準備

「アイーンのポーズ」に特化した画像を用意します。画像収集
志村けんさんの「アイーン」のポーズ画像や、類似のポーズをするキャラクターの画像を用意します。
最低でも10〜20枚ほどを目指すとよいでしょう(コピー機LoRAでは少量でも可能です)。
できるだけ正面や横向きの明確なポーズの画像を選びます。
加工
画像をAIモデルで扱いやすい形に整えます。
解像度を512x512ピクセルまたは768x768ピクセルに統一。
必要であれば、背景を簡素化(透過や単色化)してポーズを際立たせる。
注釈(タグ付け)
画像に対して、以下のようなタグを付けます:
bend right arm at a 90-degree angle
hold right arm horizontally in front of chest
lean forward
playful expression
standing, one hand on hip

ChatGPT



そこから私の質問をするのですが、
「たとえば、未知のポーズがあったとして、その画像のLoRaをつくるためには、学習のために、その画像が必要だと思うのですが、最初につくる場合は、無いからつくろうとしてるのに、生成することは、矛盾してないですか?」と

確かに、未知のポーズや動作に特化したLoRAを作りたい場合、そのポーズ自体の画像が最初に存在しないのは矛盾しているように思えるかもしれません。しかし、この問題には以下のような解決策やアプローチがあります。



1. 類似ポーズから始める

未知のポーズを直接再現できる画像がない場合でも、既存の類似したポーズの画像を利用して近い形に調整することが可能です。例えば、「アイーン」のポーズの場合:
片手を胸に持ってくるポーズや、体を前に傾けたポーズなど、部分的に似ているポーズの画像を用意します。
それらを組み合わせる形でLoRAを学習させ、ポーズの基本形を構築します。
学習後に生成された結果を微調整しながら追加学習を行う。




2. 手動で画像を作成

未知のポーズに近い画像を手動で用意する方法もあります。描画ツールを使う
Photoshop、Clip Studio Paint、または無料のツール(Kritaなど)を使って、ポーズの参考画像を自作します。
シンプルな線画やスケッチでも十分です。
必要なら3Dモデリングツール(Blender、VRoid Studioなど)を使ってポーズを再現する方法もあります。
AIで部分生成して合成する
Stable Diffusionなどのモデルで部分的なポーズ(例:腕の動き、体の傾きなど)を生成し、それを編集ツールで組み合わせます。




3. 段階的な生成と学習プロンプトでポーズに近い画像を生成
未知のポーズを一度に完全再現するのは難しい場合でも、プロンプトを工夫して似た構造を持つ画像を生成します。
プロンプト例:
css
生成された画像を学習データに追加
生成された画像をもとに、LoRAの追加学習を行います。
繰り返し調整
少しずつ理想のポーズに近づけていきます。




4. ベースモデルの能力を活用

Stable Diffusionや他の大規模な事前学習モデルは、広範なポーズや構図をカバーしています。ポーズそのものが完全に未知であるケースは少ないので、以下を試すと解決できる場合があります。既存データの再確認
「未知」と思われたポーズが、実は既存のモデルで近い形で生成可能な場合があります。プロンプトやモデルの選択を調整して確認しましょう。
既存のモデルに微調整を加える
元々のモデルが持つデータを補強する形でLoRAを学習させます。




5. 矛盾を解消する工夫

生成と学習のサイクルが矛盾しているように見えるのは、「ポーズの初期情報」がない場合に起こります。この問題は、以下のように工夫することで解決できます。自分で参考画像を作成する。
既存のモデルやデータを利用して近いポーズを生成し、それをベースに改良する。
部分的に分解して学習を進め、徐々に理想のポーズを再現する。




未知のポーズを初めて作るのは確かに手間がかかりますが、手動で参考画像を作成するか、段階的なアプローチでAI生成と学習を繰り返すことで理想に近づけることが可能です。

ChatGPT

なんだと~この機械人間め!
人間様をなめやがって、ビッグバンアターーーーック!!

結局、手書きするしかないのか?と思って
創ったのが
AI+加筆で


無理やり修正した感ハンパねえ!

こんな感じで肘をまげて、掌を顔の下、顎のしたあたりにもってくる画像を無理やりつくったのです。

問題のコピー機LoRA作成方法

何枚かの画像を、といっても2枚程度ですが、同じように切り取りや貼り付けを多少の修正等でごまかしながら
アイーンのポーズをとっている画像を作成したのですが
その2枚から、例えばコピー機LoRAを作成することはできたのですが、

実際に、モデル+そのLoRAを起動させようとしたら
あ、今はSea Art 使っているんですが、
「システムキャンセル」って状態になって、生成がキャンセルされるんです。

なので、そのLoRAのイメージで作った画像は
こんな感じにできていても


ちょっと肘が変だが、水平に保たれて腕が曲がっているので、いい感じ。

実際に、このLoRAで起動するとシステムキャンセルされてしまうっていう状態です。

私のコピー機LoRAの作り方への理解が悪いのか、SeaArtでの作成がうまくいってないのか、なんとかもう少し頑張ってみたいです

ちなみに、この画像を使って、コントロールネットつかっても同じような構図やポーズの画像はできませんでした。

AIはアイーンのポーズをまだ理解していないので、
志村けんさんの伝説のギャグポーズです、と先ほどmicrosoft copilotには説明したら納得してくれました。笑

理想はプロンプトに「アイーン」と打ち込んだら
「アイーン」のポーズが出てくるようになればいいのですが。。。。



いいなと思ったら応援しよう!

Candy 山田
よろしければサポートお願いします! いただいたサポートはNvidiaのRTX4090t搭載パソコンの購入にありがたく使わせていただきます。パソコンは一位じゃないとダメなんです!笑