You are currently viewing Stable Diffusionでimg2imgを動かしたかった・・・

Stable Diffusionでimg2imgを動かしたかった・・・

前回の記事の続きです。Stable Diffusionのtxt2imgが動作すること前提で話が進みます

ただ、先に断っておくと、動きませんでした。スクリプトは起動しましたが

3時間くらい放置しても、2%くらいしか処理が進まなかったので諦めました

それでも実行してみたい!という方のために記録だけは残しておきます・・・

スクリプトを修正する

cpuモードで動作するように以下のファイルを編集します

scripts/img2img.py
43行目辺りの部分を以下のように修正

    # model.cuda()
    model.to('cpu')
    model.eval()
    return model

203行目辺りの部分を以下のように修正

    # device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
    device = torch.device("cpu")
    model = model.to(device)

247行目辺りの部分を以下のように修正

    with torch.no_grad():
        # with precision_scope("cuda"):
        with precision_scope("cpu"):
            with model.ema_scope():

ldm/models/diffusion/ddim.py
21行目辺りのif attr.device != torch.device(“cuda”):周辺を以下の通り修正

#            if attr.device != torch.device("cuda"):
#                attr = attr.to(torch.device("cuda"))
            if attr.device != torch.device("cpu"):
                attr = attr.to(torch.float32).to(torch.device("cpu")).contiguous()
        setattr(self, name, attr)

以上の修正で動くはずです

指示絵の準備

生成する画像のヒントとなる指示絵を準備します。
お絵かきソフトを利用して準備しましょう。今回は以下の画像を指示絵に利用しました。

手持ちの白上フブキちゃんを写真に撮り、トレースしたものになります。
この下手くそなイラストが、果たしてどのように変化するのか・・・

コマンドは以下のとおりです

python scripts/img2img.py --prompt "shirakami hubuki hololive illustlated by nagishiro mito" --init-img ./shitae.JPG --strength 0.8 --precision full

以上です

上記を実行したところ、ひとまずスクリプトは起動しましたが、冒頭に記載した通り処理が全く進まなかったので諦めました。
やはり、CPUで機械学習を処理するのは無理があるようなので、週末にWIndowsPC(RTX2080搭載のゲーミングノート)で再挑戦したいと思います

ルミナスボックス 白上フブキ 1/7スケール PVC製 塗装済み完成品フィギュア

コメントを残す