[TheLastBen]Stable Diffusionのバージョンを指定して実行する

AI
この記事は約4分で読めます。

Google Colab上で使用する「TheLastBen」さんのノートブックを使用されている方向けです。
以下の2つのコードセルを追加して、順番に実行(バージョンを選択→実行)することで
バージョンを指定して、Stable Diffusion WebUIを実行することが出来ます。

手順は、
「Connect Google Drive」と
「Install/Update AUTOMATIC1111 repo」の次、
3番目と4番目にコードを追加します。

3番目に追加するコードはバージョンを選択するセルになります。
4番目では3番目で選択したバージョンを実行するセルになります。

追加する3番、4番のコードを実行後に「Requirements」や
「Model Download/Load」などのセルを実行してください。

2024/05/24 現在、Stable Diffusion WebUIのバージョンは1.9.3ですが、

私は1.8.0を使用しております。

3番目のコード

#@markdown # バージョン選択(選択後次の「実行」を行うこと)
#Programming by Gontaro
import ipywidgets as widgets
import requests
from datetime import datetime

my_ggef_a_ver="v[0.0.1]a-2024/05/11"
my_ggef_b_ver="v[0.0.1]b-2024/05/11"

repo_owner = "AUTOMATIC1111"
repo_name = "stable-diffusion-webui"

options = []

def get_releases(repo_owner, repo_name):
    url = f"https://api.github.com/repos/{repo_owner}/{repo_name}/releases"

    response = requests.get(url)
    if response.status_code == 200:
        releases = response.json()
        return releases
    else:
        print(f"Failed to fetch releases. Status code: {response.status_code}")
        return None

def choiceTagNames(arr):
    result=[]
    if arr:
        for release in arr:
            tag_name = release['tag_name']
            created_at = release['created_at']

            date_obj = datetime.fromisoformat(created_at.replace("Z", "+00:00"))

            form_dt = date_obj.strftime("%Y/%m/%d %H:%M:%S")
            tmp=tag_name+"#"+form_dt
            result.append(tmp)

    return result

    pass

releases = get_releases(repo_owner, repo_name)

options=choiceTagNames(releases)

select_box = widgets.Select(
    options=options,
    description='Select an option:'
)

display(select_box)
print("ThisScriptVersion:"+my_ggef_a_ver)

4番目のコード

#@markdown # バージョン変更及び実行(GIT-CheckOut)
# ユーザーが選択したオプションの値を取得
selected_option = select_box.value
print("Selected option:", selected_option)
spl = selected_option.split("#")

sver=spl[0].replace("[", "").replace(",", "")
print("ThisScriptVersion:"+my_ggef_b_ver)
!git checkout tags/$sver
command = f"git checkout tags/{sver}"
print(command)

以上です。
3番目に追加するコードを実行して、すぐに4番目のコードは実行しないでください。
必ず、3番目に追加するコードを実行後にセレクトボックスからバージョンを指定して
4番目のコードを実行するようにしてください。

コメント

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