見出し画像

暫定版 Fixed "Apply First Block Cache" of WaveSpeed on ComfyUI Portable

shiba*2さんが修正コードごと公開して下さった以下記事で気づきましたが、確かにWaveSpeedのApply First Block Cacheの挙動が異常です。

ただ、私の環境はWindows上のPortable環境でPython3.12.xを動作させているので、shiba*2さんとは動作環境が異なるので、公開頂いているスクリプトをベースにして、自分の環境用に更に修正を加えました。

ただ、全てのjsonで動作を確認した訳ではないので、とりあえず暫定です。と言うか、異常をきたす部分が私の環境ではDetailer Pipe周りなので、とりあえず「そこ」を完走させるコードは作ったものです。

コード全体は長大すぎるので貼りませんが、Cursor先生が算出した追加部分は以下です。

# first_block_cache.py ファイルの先頭に既に追加したimport文
from torch import Tensor

# ...既存のコード...

# create_patch_flux_forward_orig 関数の直前にも追加
def create_patch_flux_forward_orig(model,
                                  *,
                                  residual_diff_threshold,
                                  validate_can_use_cache_function=None):
    from torch import Tensor  # 関数内でも改めてimport
    
    # ...以下の既存コード...

エラーを見ていると、どうもtriton周りが原因の一つのようですが、これを導入しているお陰で、torch.compileをInductor backendで使えている訳ですが、不安定な感じはします。

以下記事で、triton動作によって生じる一時ファイル保存場所をカスタム指定している訳ですが、エラーの度に一時ファイルを削除する事もしています。

torch.compile含めて、WaveSpeedに関する公開jsonへの反映は画像生成分野に関しては一応完成し、以下記事にて全リストを公開していますが、今後稼働の安定性を睨みつつ、必要があればjsonの組み方から修正します。


いいなと思ったら応援しよう!