cedro-blog

Stable Diffusionのimg2imgをGoogle Colabでやってみる

1.はじめに

 AI画像生成を行うStable Diffusionに、img2img(画像と文から画像生成する機能)が追加されました。前回に続いて、Google Colabで動かしてみたいと思います。

2.コード

 Hugging Faceからアクセス・トークンの取得をしていない方は、前回のブログの「2.アクセス・トークンの取得」を参考に取得してから下記に進んで下さい。

 コードはGoogle Colabで動かす形にしてGithubに上げてありますので、それに沿って説明して行きます。自分で動かしてみたい方は、この「リンクをクリックし表示されたノートブックの先頭にある「Colab on Web」ボタンをクリックすると動かせます。

 まず、セットアップをおこないます。

 次に、Hugging Faceにログインします。

 すると下記の表示が現れます。your Hugging Face tokens page をクリックしてHugging FaceのHPに飛び、Access Tokensをコピーして来ます。そして、「Token」のところへAccess Tokenをペーストし、「Login」をクリックします。

 

 それでは、本体プログラムを実行します。

 実行が完了すると下記の画面が最後に表示されます。以降は、このGUIから操作を行います。

 それでは、実際に動かしてみましょう。まず、英文を記入します。ここでは、「The Lady of the rose」と記入しています。次に、Strengthで画像にどれだけ文を影響させるか(数字が大きいほど影響度大)スライダーで設定します。ここでは0.75と設定しています。

 そして、画像(jpg)をInital imageにドラッグ&ドロップします(上手く行かない場合はクリックするとファイルウインドウが開くのでそこから選択します)。ここでは、バラの花を背にした女性の画像を使っています。最後に、「Run」をクリックします。

 変換が完了すると下に画像が2枚表示されます。これは画像に「The Lady of the rose」という文を0.75のStrength(強さ)で影響させた結果です。基本的な構成は変更せず細部だけオリジナルなものに変わっていることが分かります。

 画像のダウンロードは、画像上で右クリックして「名前を付けて画像を保存」を選択します。

 なお、Inital imageを空白にして、文のみで画像生成しようとすると、「RuntimeError: CUDA out of memory.」でエラーが発生する場合があります。もしそうなった場合は、「ランタイム/ランタイムを接続解除して削除」をクリックして最初からやり直して下さい。

 この機能の応用例がTwitterにありましたので、参考に載せておきます。

 この機能は色々な応用が出来そうで面白いですね。

 では、また。

2022.8.31 アップデート

 github.com/huggingface のコードの修正に伴い、コードをアップデートしました。