[AI×副業]イラスト生成AI制作日記No.3:Colabの問題とCursorの使用
今回はいよいよプロトタイプ制作です!
前回はHugging FaceでLoRAを決めようというところで終わりました。
LoRA選択
結論は以下のLoRAを使うことにしました。
https://huggingface.co/RiverZ/normal-lora

決めた理由はChatGPTがこのLoRAが適しているといったからです笑
この選択は結果的にミスだったんですが、とにかく何もわからない状況でChatGPTの言いなりになってました。これは反省してます。ただ、この時はそんなことわからなかったのでこのLoRAを使うことにしました。
Colabでプロトタイプ制作
結論からいうとこれは上手くできませんでした!
その原因について解説します。colabを使おうとしている人は注意してください。
原因を一言でいえばライブラリのバージョンが競合です
そもそもColabはGoogleが用意した共有の仮想マシン環境であり、あらかじめ以下のものが入ってます
Python(通常は3.x系)
ライブラリ(例:numpy, torch, tensorflow, matplotlibなど)
ライブラリ:すでに誰かが作ってくれた関数やクラスの集まり
→「よく使う便利なコードの詰め合わせパック」
問題はこのライブラリがColab標準にあわせたバージョンで入っているということです。例えば
pip install transformers==4.38.0
このとき、transformersが依存しているのは例えばこういう構成です:
tokenizers>=0.14.1
numpy>=1.21
torch>=1.13
しかし、Colab側にはあらかじめ次のような別のバージョンが入っている場合:
tokenizers==0.10.3
torch==1.9.0
このようなとき、pipは指定したライブラリに合わせるため、既にあるライブラリを上書きしたり、新たに依存パッケージをインストールし直します。
すると:
Colabにもともと入っているTensorFlowや他のライブラリとバージョンが合わなくなって機能しなくなる。という原理でプロトタイプを作るどころではなくなったのです。
ローカル環境に変更(Cursorの導入)
そこでローカル環境でプロトタイプを作ることにしました。
そして今回初めて”Cursor”というエディタをつかうことにしました。前から存在は知っていたのですが、初心者にはハードルが高く感じ手を出せていませんでしたがこれを機に使ってみました。
使ってみるとこれがまたすごい、、、、

今までは、ChatGPTに作りたいものを伝えてコードを出力してもらい、それをコピペして使っていました。
ただ、コードが長くなったり複雑になってくると、出力されたコードに整合性のとれていない部分が出ることもあり、結局自分で修正する作業が増えることがありました。
一方でCursorは、エディタ上でAIがコードの文脈を理解しながらその場で修正案を提案してくれるため、全体の流れを踏まえた一貫性のある修正がしやすく、そうした手間が大きく減りました。
Cursorについての詳しい記事も今後作ろうと思います。
エラー発生
新しい親友”Cursor”くんの手助けでプロトタイプの制作も進み、あと少しで完成!というところでエラーが発生。。。
この原因は私のControlNetに対する理解の浅さです
そもそも今回のプロトタイプは
プロンプトを入力(座禅している少女)
ポーズの画像を渡す(座禅ポーズ)
画像生成
の流れで作動するものです。取り合えず画像生成の流れを実感したいという考えでいうなれば「試作品の試作品」といった感じです。
はじめに渡していた画像は
【Stable Diffusion Web UI】ControlNetの使い方 OpenPose
にあったいかにもAI画像といったものにしました。

この画像を渡していざ生成!とやってもErrorと出るだけでした。。。
そして調べてみると、ControlNet(OpenPose)は「骨格線画(スケルトン画像)」をポーズ画像として必要としているためこの画像は検討違いだったのです。(これは先ほどのサイトを読めばわかることでした)
ControlNetの仕組みも理解できたので以下の画像に変更しました。するとちゃんと機能しました!

プロトタイプ完成
プロトタイプが生成した画像は以下のようなものになりました
始めは機能した喜びでいいように見えてましたが、今見ると全然だめですね笑

改善点とこれから
まずこの画像、私が求めている画風と全く違います!!私は以下の画像のようなシンプルなイラストを求めています。

これの原因は簡単。LoRAを適したものに選べてないことです。ChatGPTの言いなりになった弊害が出てきました笑
このような画風にするにはLoRAを見直す必要があります。いろいろと探してみたのですがなかなかいいのが見つかりません。。。
そこで私はLoRAを自作することに決めました!!
なので次回はLoRA制作です!
今回は私のめんどくさがり屋がかなり悪い方向で作用して初歩的なエラーが起きちゃったので反省です。次回もお楽しみに
おしまい
