見出し画像

How to fix protobuf for detailer(pipe) on ComfyUI

Anyway…ComfyUIの利点は、開発者の観点…というものを想像しても(私は開発者ではないですが)とにかく自由度の高さ…ではあるのでしょう。

故に現在、A1111系WebUIとは比較にならぬ圧倒的な数の拡張機能が存在するに至りました。

Still,It has its pros and cons.

各種拡張機能は、開発者が想定する範囲での他機能との互換性は有するものの、ここまで拡張機能が膨大になってしまえば、その全てを担保する事など現実的には不可能です。

それが具体的には、両立しないPythonライブラリー、競合或いは矛盾するバージョンの併存といった問題となって顕在化する訳ですが、開発者がその全てを想定しきれないように、ユーザーもまた、その問題に直面して初めて、その対処の必要性に迫られる…という事にもなる訳ですが。

以下の記事も、だいぶ色々と溜まってきました。初出から大分経ちましたが、地道に更新してんですよ。これだってね。

基本的に、一度修正しておけば直る類の問題が多いですが、稀に常時起こり続ける質の悪いトラブルもあります。今回記述するのは、その類のものですが、protobufに関する問題です。

結論から書きますが、Layer_Style_Advanceノードの更新により、現在protobufが更新の度に5.29に固定される設定になっていますが、更に質が悪い事に、このバージョン縛りはノードそのものによって定義されている(requirements.txt等によって)訳でなく、ノードを構成する他のライブラリーの何か(そこまで特定はできていない)によって起きる現象です。

そして現在、「それ」によってImpact-PackのDetailer(Pipe)でエラーを起こす問題が生じる事が判明しています。

性質が悪いのは、Layer_Style_Advanceの更新はかなりの頻度で行われる為、その都度protobufが書き換わってしまう事です。

その都度、再更新すれば直りますが、かなり手間です。そこで対策として起動バッチファイルを以下の様に書き換えました。

set PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:32,garbage_collection_threshold:0.8
set TORCH_COMPILE_DEBUG=0
set TORCH_COMPILE_OPT_LEVEL=2
set TORCH_LOGS=recompiles,dynamo,inductor
set TORCH_INDUCTOR_VERBOSE=1
set TORCH_DYNAMO_CONFIG=force_parameter_static_shapes=false
set TRITON_CACHE_DIR=D:\USERFILES\Flux1\triton
set TORCH_HOME=D:\USERFILES\Flux1\torch
set TORCHINDUCTOR_CACHE_DIR=D:\USERFILES\Flux1\Inductor
set TEMP=D:\USERFILES\Flux1\Temp
set TEMP=D:\USERFILES\Flux1\Temp
.\python_embeded\python.exe -m pip install -U protobuf 
.\python_embeded\python.exe -s ComfyUI\main.py --use-sage-attention --windows-standalone-build --output-directory D:\USERFILES\A1111\outputs\ComfyUI

要点はprotobufなので、対策の選択肢は他にもあるのですが、とにかくLayer_Style_Advanceの更新が結構頻繁にある為(それ自体は結構な事であるが)、いちいち「何かの工程」を踏まずに対策するとなると、これが一番手っ取り早いです。かなり力ずくですがね。

不思議な事に、detailer(pipe)はprotobuf5.29に対してエラーを起こすものの、古い4世代や最新の6世代に対してはエラーを起こさないのです。あるあるっちゃーあるあるなんですけどね。

その原因迄考えてたらキリがないので、そういう無駄な事はしません。

只、この対策の結果、別なエラーが発生するので、必ず以下記事も併せて対策してください。

今日のBGMは…ローラー台でこの曲たちを連続でペダリング合わせて、かつ数時間持続できれば本回復…と言って良い曲たちです。ベストの時は、1サイクル約30分弱のコースをひたすらリピートして数時間ローラー台を回し続けられたんですよね。我ながら鍛えまくってた…て処です。

BABYMETAL - Road of Resistance - Live in Japan (OFFICIAL)

イントロにペダリング合わせるだけで、ケイデンスが150RPMを超えてきます(勿論、常時そのケイデンスな訳ではない。そんな芸当はTadej Pogacar君だって無理だ)。体調まともでなきゃ、このイントロだけで肺が終わりますね。SU-METAL中元さんの神技を堪能する前に、バイク降りる羽目になります。こんなメタルサウンドにペダリング合わせてトレーニングしよう...とか思いついた俺もまた、相当おかしい。俺が知る限り、ローラー台でそんな肺の苛め方してる人間は知りませんよ。

BABYMETAL - いいね!- Iine! - Live in TOKYO 2012

長らくセトリから消えていた曲ですが、近年急に復活していましたね。歌詞は心底意味不明ですが、BABYMETALの全曲中、リズムの相性という点ではこの曲がNo.1です。これまた間奏のドラムにペダリング合わせようと思ったら殺人的な負荷ですけどね。

BABYMETAL - シンコペーション【Live Blu-ray/DVD「BABYMETAL WORLD TOUR 2023 - 2024 LEGEND - MM」】

ここで、シンコペーション入れるんですが、これ長らく公式がなかった曲でね…やっと登場しました。間髪入れずにこの曲を入れる俺も、相当逝っちまってますが、普通にこなしてた訳ですよ。しかし、こっちはペダル回すだけですが、SU-METAL氏始め歴代メンバー全員これらのセトリを1ステージ歌若しくはダンスでこなしてた訳で…彼らもまた技術以前にフィジカルモンスターです。ローラー台回しつつ彼らを見てると、彼らの偉大さは自分の体で実感できますよ。

4曲目は勿論、これです。やっと、イントロで少し休める感じです。

BABYMETAL - Ijime,Dame,Zettai - Live at Sonisphere 2014,UK (OFFICIAL)

彼らが真に偉大なのは、この若さで既に海外を見据えて、何のアドバンテージもない処か、寧ろ最初は様々な観点から軽視されバカにされるであろう(今なお、そういう視線は0ではない)海外の、それも本場の戦場に打って出ていた事です。そして今尚、戦い続けている事です。この視線の高さで戦えている日本のアーティストは実に少ない。彼らの先輩であるONE OK ROCKもそういう戦いをしてはいますが、積み上げた実績という点では後輩の彼らが上を行きます。

トレーニングに入れていません(全曲動画や2019年のBDを使う時は入ってくる)が、改めて2019年の彼らは忘れがたい記憶です。サマソニも行きましたよ。幕張迄、脚を延ばして…勿論、往復300kmをロードバイク自走です。

中元さんと鞘師さん…知る人には今更の話ですが、アマチュア時代には広島のアクターズスクールで競い合った二人の天才が、ほんの僅かな時間、互いにプロの道に進んだ後に交差した、二度とない瞬間でした。そして改めて、この偉大な舞台に鞘師さんを連れて行って下さったBABYMETALには、最大限の感謝と敬意を払うものです。

BABYMETAL - PA PA YA!! (Glastonbury 2019)

歌詞は全日本語でも、SU-METAL氏はインタビューは完全英語でこなしますし、MOA-METAL氏も相当上達されてるんですよね。鞘師さんがまだモーニング娘。在籍当時から既に中元さんは海外で戦っていた訳で、あの人が留学と英語を志した理由の一つには、中元さんの存在もあったのでは(そもそも、
つんく♂さんも、そういう志向の人だったが)...と推測したりもします。

ペダリングの技術的な話をすると、これらのサウンドに合わせる意味は色々あるのですが、一つには裏拍の「抜き方」を意識する点があります。

裏拍自体は音楽用語ですが、これをペダリング理論に置き換えると、最もトルクをかける9時を表拍とするならば、裏拍は6時、下死点に相当します。

20世紀には、引き足を意識…的な教え方をする人が多かったんですが、現代の科学ではこれはほぼ否定されています。引き足には、特に出力加算的な意味はほとんどない…これははっきりしています。

寧ろ、ペダリングの効率を分析していった時に、下死点での「抜き方」(抜き方という用語は俺独自のもので、概念に対して、下死点に特化したペダリング技術に固定された用語は存在しないが)こそが、ペダリングにおける省力化、効率化につながる…というのが、定説です。

一方で0時、上死点においてもほぼ同様の概念は存在する訳ですが、表拍に続く下死点の方が、その直前でトルクを発生させているだけに、ここの抜き方が重要になる訳です。
(6時で発生させたトルクを引き足に加算する事は基本的にできない。踏み足と引き足に対しては別次元の出力が必要になるからだ。単純に上下が違う)

上死点に関しては、引き足の後に通過する訳ですから、引き足を意識し過ぎない限り、そこには過剰なトルクは発生しにくい理屈です。

一方、表拍に相当する9時は、素人でも初心者でもわかりやすくトルクを発生させるポイントであり、下死点の抜き方を考えた時寧ろ、そこで必要以上の余剰出力を発生させる方が、ペダリング効率としてはロスという意味になる訳です。

16ビートを基本とするハロプロイズム…つんく♂さん用語的に言えば、よく「音符を長くするな」とか「リズムが走りすぎている」とか言い方をされる訳ですが、これをペダリングに置き換えるならば、表拍で発生させたトルクが大きすぎて、下死点で死んでいる…という表現になります。

つまり、要するに「踏み過ぎなんだよ」っつー話になる訳ですね。下死点で無駄になる訳ですよ、そこに使った体力が。
(但し、音楽論としては音符を長くしてしまう事と、リズムが走りすぎている、或いは突っ込み過ぎている...という概念は同義ではなく、寧ろ相反する状態である)

表現はどうあれ、ペダリングが上手い人は、この下死点の通過させ方が上手い訳です。

だからこそ、超絶この辺の理屈を凝縮させて、大体のロード乗りが

「ペダルは踏むもんじゃねえ、回すんだよ」

…という言い回しを多用する訳ですね。
(更に言えば、脚で回すな、体幹で回せ、という言い方をする)

J-POPの平均的なBPMは、大体140と言われています。一方、ペダリングのケイデンスは、平均してそんな速度で回すことはトッププロでも無理ですが、私はそれでも一般のロード乗りとしてはケイデンス平均が高い方で、大体100から110で巡行しています。

90が理想とかいう説もありますが、私は90では低すぎて、逆にトルクが足りなくなります。

20世紀の自動車やモーターバイクに例えれば、例えば三菱ランサーエボリューションの4G63ターボのように、低回転からトルクを太く出来る人は90でも高速巡行できるんでしょうが、私は余りトルクがないので、

高回転域でトルクを引き出す、レース用NAエンジンみたいなものです。或いはHONDA NSR250Rのような、仕上げていくと超絶ピーキーなパワーバンドになる2ストロークエンジンのようなものか。

だとしても、音楽側のBPMに完全にペダリングが合う訳ではないんですが、曲中の要所要所で表拍を合わせて、トレーニングする訳ですね。

尚、これは固定ローラー台で練習しても、余り技術は上達しませんよ。

ペダリングが少しでも乱れたら、たちまたち安定性が失われる3本ローラー台で練習してこそ意味があるのです。

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