PythonでStable Diffusion を使用して画像を生成する

スポンサーリンク

PythonでStable Diffusionを使用して画像を生成してみます。

Stable Diffusionは、テキストに基づいてグラフィックを生成できる機械学習ベースの Text-to-Image モデルです。

今回はReplicateライブラリとReplicateのAPI トークンを用います。ReplicateライブラリはPythonの標準ライブラリ、モジュールではありませんので事前にインストールする必要があります。またAPI トークンを事前にReplicateに登録し取得しておく必要があります。

■今回の環境(Python)

今回のPythonは、バージョン3.10.11を用いる。(なお、Google Colaboratory(Google Colab)を使用。)

■Google Colabでノートブックの新規作成

まずは、Google Colab(https://colab.research.google.com/)にアクセスします。アクセス後、お持ちのGoogleアカウントでログインされているか確認しておきましょう。

確認後、Google Colab上部の「ファイル」から「ノートブックを新規作成」をクリックします。

クリックすると「ノートブック」が作成されます。

作成後、Replicate用Pythonクライアントのインストールを行います。(すでに完了している場合はインストール不要です。)

■環境変数の設定

import os
os.environ['REPLICATE_API_TOKEN'] = 'API トークン'

インストール後、新しいコードセルを追加し、上記のコードを入力し、「APIトークン」に取得したトークンを入力し、実行ボタンをクリックします。

■ReplicateとStable Diffusionを使用して画像を生成する

クリック後、新しいコードセルを追加し、ReplicateとStable Diffusionを使用して画像を生成するスクリプトを書いていきます。

■コード

import replicate
import webbrowser

model = replicate.models.get("stability-ai/stable-diffusion")
version = model.versions.get("db21e45d3f7023abc2a46ee38a23973f6dce16bb082a930b0c49861f96d1e5bf")
output_url = version.predict(prompt="猫")[0]
print(output_url)

まずはreplicateモジュールとwebbrowserモジュールをインポートします。次にreplicateモジュールを使用して、AIモデルを取得します。replicate.models.get()メソッドは、指定されたモデルの識別子を使用して、モデルオブジェクトを取得します。今回は”stability-ai/stable-diffusion”というモデルを使用します。

取得したモデルオブジェクトを使用して、特定のバージョンのモデルを取得します。model.versions.get()メソッドは、指定されたバージョンのモデルオブジェクトを取得します。今回は、”db21e45d3f7023abc2a46ee38a23973f6dce16bb082a930b0c49861f96d1e5bf”というバージョンを使用します。

取得したモデルバージョンを使用して、指定したプロンプト(今回は”猫”)に基づいて予測を行います。version.predict()メソッドは、指定されたプロンプトに対してモデルを実行し、予測結果を取得します。この例では、予測結果のリストの最初の要素をoutput_url変数に代入しています。

output_urlを表示します。print()関数を使用して、output_urlの値を表示します。

■実行・検証

コードセルにコードを記述後、実行ボタンをクリックします。

実行してみると、「https://replicate.delivery/pbxt/******/***.png」というURLが表示されます。このURLをWebブラウザのアドレスバーに貼り付けてアクセスしてみます。

アクセスしてみると、指定した日本語のプロンプトに基づいて予測が行われ、画像が生成されていることを確認できました。

コメント

タイトルとURLをコピーしました