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
Google Colaboratory でStable Diffusionの実装 / Impl...
Search
tasotaku
October 29, 2022
Programming
0
370
Google Colaboratory でStable Diffusionの実装 / Implementation of Stable Diffusion at Google Colaboratory
Google Colaboratory でStable Diffusionを実装しました。少し遊んでみたのと、構造も少し調べました。
tasotaku
October 29, 2022
Tweet
Share
More Decks by tasotaku
See All by tasotaku
DQNによるポーカーの強化学習/Reinforcement Learning in Poker with DQN
tasotaku
0
710
オセロCPU/Othello CPU
tasotaku
0
120
オセロAI / OthelloAI
tasotaku
0
150
私、ChatGPTがChatGPTを解説するよ! / ChatGPT explains ChatGPT
tasotaku
0
450
機械学習入門
tasotaku
0
420
AIが作る予想外な画像を考える / Consider the unexpected images that AI creates
tasotaku
0
310
Other Decks in Programming
See All in Programming
プロダクト志向ってなんなんだろうね
righttouch
PRO
0
160
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
1
680
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
260
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
300
Beyond Portability: Live Migration for Evolving WebAssembly Workloads
chikuwait
0
390
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
370
関数型まつりレポート for JuliaTokai #22
antimon2
0
150
Enterprise Web App. Development (2): Version Control Tool Training Ver. 5.1
knakagawa
1
120
Azure AI Foundryではじめてのマルチエージェントワークフロー
seosoft
0
130
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
220
VS Code Update for GitHub Copilot
74th
1
340
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
19
3.5k
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
490
Large-scale JavaScript Application Architecture
addyosmani
512
110k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
The Cult of Friendly URLs
andyhume
79
6.5k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Site-Speed That Sticks
csswizardry
10
660
Rails Girls Zürich Keynote
gr2m
94
14k
Why Our Code Smells
bkeepers
PRO
337
57k
GraphQLとの向き合い方2022年版
quramy
47
14k
Transcript
Google Colaboratory で Stable Diffusionの実装 B2 tasotaku
もくじ ◼ Stable Diffusion とは ◼ Stable Diffusion の特徴 ◼
Diffusers ◼ Stable Diffusion の中身
Stable Diffusion とは ◼ Stable Diffusion とは、文章から画像を生成するAI ◼ Google Colaboratory
での実装方法はこちら ◼ できること ⚫ 文章から画像を生成 ⚫ 生成した画像を微調整する ⚫ 文章と画像から新たな画像を生成 ⚫ etc
Stable Diffusion の特徴 ◼ 解像度の高い画像を生成できる ◼ メモリや時間がかからない ⚫ ノートパソコンでも Google
Colaboratory で実行可能 ◼ 特定のジャンルに弱い ⚫ 学習に使ったデータセットに起因? ⚫ ファインチューニングすれば解決 ◼ 作成した画像はフリー画像
文章から画像を生成 a photograph of an astronaut riding a horse
画像と文章から画像を生成 Gold desk +
画像とマスク画像と文章から画像を生成 ◼ マスク画像を使うことで、部分的に調整が可能 robot
ファインチューニング ◼ 特定の画像で訓練することで、苦手な分野に対応する ファインチューニング前 ファインチューニング後
Diffusers ◼ Diffusers とは、段階的にノイズ除去するように訓練された機械学習システム ◼ Stable Diffusion はこれをベースに作られている 引用: https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers/diffusers_intro.ipynb
Stable Diffusion の中身 ◼ Latents ◼ A text-encoder ◼ A
U-Net ◼ Scheduler ◼ An autoencoder (VAE) 引用: https://huggingface.co/blog/stable_diffusion
Stable Diffusion の中身 ◼ Latents ◼ A text-encoder ◼ A
U-Net ◼ Scheduler ◼ An autoencoder (VAE) 引用: https://huggingface.co/blog/stable_diffusion
Latents ◼ seed値をもとにノイズ画像を作る ◼ その画像を U-Net が扱えるように、 画素行列(latents)に変換 ◼ 出力する画像は
512 × 512 なのに対して、 latents はより低次元である ◼ こうすることで、メモリと計算量を軽減している 引用: https://huggingface.co/blog/stable_diffusion
text-encoder ◼ 文章をU-Netが理解できるかたちに変換する ◼ 機械翻訳ではないので、文法はあまり見ない ⚫単語(キーワード)を複数与えるだけでも機能する 引用: https://huggingface.co/blog/stable_diffusion
U-Net と Scheduler ◼ U-Net を用いて、文章をもとにノイズ画像を ノイズの少ない画像にする ◼ Scheduler で二つの画像のノイズの差を
計算してフィードバック ◼ これを繰り返して画像(のlatents) を生成する ◼ U-Net は ResNet からなるエンコーダーと デコーダーをもつ ◼ Scheduler は複数種類があり、選ぶことができる 引用: https://huggingface.co/blog/stable_diffusion
autoencoder (VAE) ◼ U-Net で生成した latents を、画像に 復号(decode)して画像を出力する ◼ VAE
はエンコーダー(encoder)と デコーダー(decoder)の二つの部分からなる ◼ 画像生成ではデコーダーしか使わないが、 訓練する時にエンコーダーも使う 引用: https://huggingface.co/blog/stable_diffusion
学習 ◼ 元の画像にノイズをかける ◼ 文章を加えてノイズを取り除く ◼ 出力と元の画像、文章から損失を計算する 文章 比較
最後に ◼ 扱いやすさを重視したお絵描きAI ◼ フリー画像の新たな選択肢 ◼ すでに Stable Diffusion を利用したアプリなどが登場している
◼ Diffusers は用途が多く、音声や動画バージョンも作成予定らしい
参考 ◼ https://github.com/huggingface/diffusers ◼ https://colab.research.google.com/github/huggingface/noteb ooks/blob/main/diffusers/stable_diffusion.ipynb