Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
自分の学習データで画像生成AIを使ってみる話
Search
moyashi
June 08, 2024
Technology
2
800
自分の学習データで画像生成AIを使ってみる話
画像生成を手元データから追加学習。Stable Diffusionで使える LoRAを作成。ただ、キャラクターの学習は思っていたような結果にならなかった話。
moyashi
June 08, 2024
Tweet
Share
More Decks by moyashi
See All by moyashi
順番待ちWebサービス 「MATENE」を 有料化した話と サービスを続けられた理由
moyashi
0
26
AIコーディングエージェントのはなし
moyashi
0
97
機械学習で画像を分類してみた話
moyashi
1
88
メールを受信トレイに届けよう - Gmailガイドラインの話
moyashi
3
830
Visual Studio Codeの使い方 基礎編
moyashi
0
120
プログラミング支援AI GitHub Copilot すごいの話
moyashi
0
4.7k
アナログ電話のナンバーディスプレイを安価にIT化する話
moyashi
1
190
Other Decks in Technology
See All in Technology
Black Hat USA 2025 Recap ~ クラウドセキュリティ編 ~
kyohmizu
0
520
今、MySQLのバックアップを作り直すとしたら何がどう良いのかを考える旅
yoku0825
0
230
3年ぶりの re:Invent 今年の意気込みと前回の振り返り
kazzpapa3
0
200
エンジニアに定年なし! AI時代にキャリアをReboot — 学び続けて未来を創る
junjikoide
0
180
Datadog On-Call と Cloud SIEM で作る SOC 基盤
kuriyosh
0
160
CloudFormationコンソールから、実際に作られたリソースを辿れるようになろう!
amixedcolor
1
170
ソフトウェア開発現代史: 55%が変化に備えていない現実 ─ AI支援型開発時代のReboot Japan #agilejapan
takabow
2
1.9k
AIエージェントは「使う」だけじゃなくて「作る」時代! 〜最新フレームワークで楽しく開発入門しよう〜
minorun365
11
1.6k
エンタープライズ企業における開発効率化のためのコンテキスト設計とその活用
sergicalsix
1
360
CodexでもAgent Skillsを使いたい
gotalab555
9
4.5k
エンジニアにとってコードと並んで重要な「データ」のお話 - データが動くとコードが見える:関数型=データフロー入門
ismk
0
480
Flutterコントリビューションのススメ
d_r_1009
1
350
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
320
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
The Pragmatic Product Professional
lauravandoore
36
7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
Scaling GitHub
holman
463
140k
Docker and Python
trallard
46
3.6k
4 Signs Your Business is Dying
shpigford
186
22k
Music & Morning Musume
bryan
46
6.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Transcript
自分の学習データで 画像生成AIを 使ってみる話 2024/06/08 伊勢IT交流会
もやし工房 石黒 光茂 @koike_moyashi mitsushige.ishiguro もやし工房
画像生成 色々ある ChatGPT(DALL-E) Bing Image Creator Midjourney Adobe Firefly その他
色々
テキストを入れると画像を作ってくれるやつが多い
今回は手元データを学習させ、そこから画像生成をする話
きっかけ → 昨年グラフィックボード(ゲーム用ではない)を買った → 使い道がない
ローカルPCでの画像生成と言えば... Stable Diffusion “イオン”の本屋さんでも1、2冊は本が置いてあるくらいメジャー! オープンソース。無料、商用利用も可能。 Pythonベースで、Windows、Linux、MacOSで動く。
ローカルPCでの画像生成と言えば... 生成 学習 ノイズを徐々に加えてノイズにする ノイズを徐々に除去していく (これでなぜ指示した画像が生成されるのか…) 拡散モデル(Diffusion Model) 仕組み的なやつ https://arxiv.org/abs/2006.11239より引用
ローカルPCでの画像生成と言えば... 生成 学習 ノイズを徐々に加えてノイズにする ノイズを徐々に除去していく (これでなぜ指示した画像が生成されるのか…) 拡散モデル(Diffusion Model) 仕組み的なやつ https://arxiv.org/abs/2006.11
239 なんだか良く分からないけど すごい!
ローカルPCでの画像生成と言えば... • カスタマイズの自由度が高い プラグイン/拡張機能や、 ダウンロードできるモデルデータと呼ばれる 生成元データが大量にあり、自由に入れられる • 高いクオリティの画像を生成可能 • WebAPIとしても使える(システム間連携など)
• ”センシティブ”な画像も生成可能 特徴
ローカルPCでの画像生成と言えば... • ユーザコミュニティが活発なオープンソース ← 楽しい! 特徴
ローカルPCでの画像生成と言えば... • ユーザコミュニティが活発なオープンソース ← 楽しい! • 自由度が高い→設定できる項目が多いので、 初見だと意味がわからない。 • UIは変えられるがWebUIが一般的
特徴
Stable Diffusionで使えるモデルデータ例 https://civitai.com/models 顔やキャラクターだけでなく、画風、モノ、ネタ系などいろいろある。ユーザコミュニティ大事。
動かし方 • ストレージはちょっと大きいほうが良い • 1モデルデータで3~5GBとか • ビデオメモリは大きければ大きいほど楽 • OSにそのまま Python(venv)
• Windows: WSL 2 + docker (今回はこれ) • Google Colab (Pro) 、専用サービスなど 動かし方
どんな事ができるか? • テキストから画像を作成 text2img • 画像から画像を作成 img2img 元の画像をベースに新たに描く ポーズ指定 一部だけ◯◯
• 追加学習データを使う • 拡張機能を使って、その他色々
画像から画像を作成(元の画像をベースに新たに描く)
画像から画像を作成(ポーズ指定) プロンプトだけでは指定が難しいポーズを指定できる。写真のポーズをイラストに反映したりとかにも使える。
追加学習データを使う これが本題 手元のデータを使って、オリジナルのキャラクターを出したり、 特定の顔の写真を生成できる
学習データ作成は大きく分けて2種類 • データの大元のモデルデータと言うのを作る →すごく時間がかかる&VRAMも沢山必要 &学習させる枚数も多い。大変(らしい) • モデルデータを利用して追加学習データを作る →今回はこれ。 追加学習の方法は何種類かある。 現在ちょうど良いバランス(情報も多い)なのが、
LoRA(Low-Rank Adaptation)と言う手法。
追加学習(LoRA) 顔やイラストそのものだけでは無く、色々なことを学習できる。 色合い、画風、光具合、などなど • イラストならイラストのモデル、 人間なら人間のモデルデータを元に作る(元学習データに挟み込む) • 高いクオリティの元モデル + 独自の(顔、キャラクター、色合い、画風、などなど)
→ 高いクオリティの独自の(顔、キャラクター、色合い、画風、などなど)が作れる
先日のニュース 引用:https://www.yomiuri.co.jp/national/20240601-OYT1T50224/
追加学習の大きな流れ (同じような顔、キャラクターを作る場合) 1.元データ(画像)を用意 (場合よっては面倒) 2.いい感じに加工 (面倒くさい) 3.1枚1枚にキャプションを付ける (自動) 4.キャプションの編集 (面倒くさい)
5.学習させる (やや時間かかる) 6.学習結果を使う
元データ(画像)を用意→いい感じに加工(面倒くさい) • 今回は顔とキャラクター。20枚程度 • 高解像度のモデルデータSDXLを使う場合は1024px。キャラクターはSD1.5 512px。 • 場合によっては結構面倒(顔だけにする、小さい画像を大きくするなど)
元データ(画像)を用意 • 三重のおやつと言えば • マスヤの方に、キャラクターのラフ案みたいなのを AIに書かせることができないか?と言う話を聞いていた。 • 学習用データを提供していただいた ※ このスライドを公開する事も許可をいただいています
元データ(画像)を用意→いい感じに加工(面倒くさい) • 今回は顔とキャラクター。20枚程度 • 高解像度のモデルデータSDXLを使う場合は1024,1024px。キャラクターは512px • 場合によっては結構面倒(顔だけにする、小さい画像を大きくするなど)
1枚1枚にキャプションを付ける • 1枚1枚にキャプションと呼ばれる説明書きをつける • 手で書いても良いけど面倒なのでAIにやらせて、後で直す • 画像の内容を短文で説明してくれる。すごい。 • cartoon style,
• a happy smiling yellow triangle character with red cheeks, • making peace signs with both hands, • vector art 「画像について、Stable Diffusion のプロンプト風に説明してください。 出力は英語のテキストのみにしてください。」
キャプションの編集(面倒くさい) ここから、 • このキャラクターを表している 「イラスト調、黄色の三角、足が赤い、手が白色」 などを削除して、独自の呼出キーワードを加える • AIが独自の呼出キーワードを 「イラスト調、黄色の三角、足が赤い、手が白色 」と認識してくれる
• かなり面倒
キャプションの編集(面倒くさい) • 黄色い三角のキャラクター • 赤い靴を履いている • 目は大きい • 赤い口 •
手に白い手袋をしている • 日本スタイルのカトゥーン • 腕を上げている • スマイル • 片方の足をこちらに向けている • ONISEN (呼出キーワード) • 腕を上げている • スマイル • 片方の足をこちらに向けている • 手はピースをしている • ほっぺが赤い 自動キャプション 変更後 青の部分がこのキャラクターの特徴(他の画像にも含まれている要素)なので 学習させるために削除 右側の赤は足したところ
学習させる(時間かかる) • キャラクターは15分程度 • 高解像度の顔は2時間程度 • グラフィックボードの性能によって早さは変わる • 何やかや難しいパラメータが沢山ある •
GPUメモリをあふれさせると、PCのメモリを使う→すごく遅くなる • 設定箇所が多く、調整が難しくて未だによくわからない
学習結果をテスト 先程の「呼出キーワード」とともに、描きたいことや、描いてほしくないことを書いて生成
繰り返す 1回では上手く行かないので、上記を色々変えながら繰り返す 青の部分を学習しすぎた? 学習データを少なくしすぎた? コツがわからない。ネットを見てるといい 感じに作ってるので、私の実力不足かと… 顔データは比較的簡単にできたけど、キャラクターは難しかった。 元データ
その他の方法 LoRAを作成せず、元画像からいい感じに似せるキャラクターリファレンス機能 記事を見てるとこれだけで、いい感じにやってる人もいたが…
雑感 • AIに学習させる行為そのものは楽しいが、 試行錯誤はあまり自動化できず、かなり時間かかる。経験? • ネットの記事を見てると簡単そうだけど、そこまで上手く行かなかった。 聞いたこと無い用語が多く、内容が想像できない。経験・知識不足。 • この技術をお金に変える方法は 分からない
雑感 プロ(イラスト、漫画、商業写真)が補助的に使う。 Kindleで出す。 これ以外もあるはず… 引用 https://www.yomiuri.co.jp/national/20240601-OYT1T50225/
雑感 • 自分の顔のモデルデータは実験には使いづらい 気軽にいつもしてない服装とかが楽しめるが、使い道は思いつかない • 進歩が早く(経験不足もあり) できてくるデータに気まぐれ感があるので、 クライアントワークでは怖くてできない • 数ヶ月後にはもっと簡単に良い感じのものができてそう
参考 Stable Diffusion本体 Stable Diffusion WebUI https://github.com/AUTOMATIC1111/stable-diffusion-webui Stable Diffusion WebUI
Docker https://github.com/AbdBarho/stable-diffusion-webui-docker Stable Diffusion WebUI Forge https://github.com/lllyasviel/stable-diffusion-webui-forge LoRA作成 Kohya's GUI https://github.com/bmaltais/kohya_ss キャラクター (結局うまく行ってない) 元モデル: runwayml/stable-diffusion-v1-5 繰り返し:10 Epoch:25 枚数:20 Optimizer: Adafactor 写真 元モデル: stabilityai/stable-diffusion-xl-base-1.0 繰り返し:10 Epoch:25 枚数:20 Optimizer: Adafactor