見出し画像

Symbolic Link for Python libralies


ここまで何度か触れていますが…PCスペック以前の問題としてSSD残量がひっ迫し、殊に動画生成AIのテストをしたいのにその余力がなく、
(時間的余裕もないのだが)

ストレージ内のデータの整理整頓を進めています。

SSDを増設すればいいじゃん…とかいう安直な発想は、私は嫌いでしてね。

ロードバイク関連で、使い捨て思考に対して散々ボロクソに批判しているのと、思考の本質は同じです。

SSDの増設自体を否定はしませんが、

その前にやる事、やれる事がまだまだあんだろうがよ…やる事やらねえで、やれる事やらねえで、安直な事してんじゃねえよ

...これは私の全ての行動原理です。

という訳で、とにかく色々やっている訳ですが、

Symbolic Link for torch

How to make symbolic link

その過程で、試しておきたかった事があります。シンボリックリンクによるpytorchライブラリーの共用です。

画像&動画生成AIだけでも、A1111、Forge、reForge、ComfyUI…4つインストールしている訳ですが、これらはLama-Cleanerのようには簡単に統合が出来ないんですよ。

例えば、A1111とForgeは、そもそもgradioが共用できません。
(その視点で行くと、A1111とreForgeの方がまだ可能性がある。ただ、A1111はtransformersの最新版使用が出来ないので、それが出来るreForgeがA1111の制約に引っ張られてしまう)

為に、仮想環境が最低4つ存在する訳ですが、これはストレージに対してとてつもない負担です。

そこで、まずPythonライブラリーの中でも単独で5GB近くを食う、torchに関して、A1111環境からForge環境へのリンクを作成してみました。

あっさり、成功しました。

シンボリックリンクは作成の手間はかかりますが、一度環境作ってしまえばそれなりに楽なので、今回は最もサイズを食うPytorchで、環境を作っておきました。

ComfyUIはPython3.12.x動作なので共用できませんが、3.11.x環境のPytorchは、これでストレージの節約が出来ます。1個当たり4.8GBはでかいです。

…とは言え、まだまだ先は長いぜ…


Dドライブ残は僅か40GB弱…ここにはComfyUIとForgeがあって、加えてベースモデル、LoRA、ControlNet…全部置いてるので、1TBを使い切るのがあっという間でしたさ。

How to update

リンク元でPytorchを更新した際に、リンク先のPytorchを更新する方法について解説します。

要点としては、torchフォルダはリンクによって自動的に更新される為、それ以外のフォルダを手動で置き換えればよい…という事です。

この場合、リンク元であるA1111をPytorch 2.7.1+cu128に更新した後に、2.7.0+cu128を適用しているreForgeのPytorchを更新する形を例に取って解説していきます。

まず、リンク先のSite packageフォルダを開き、以下の5個のフォルダを削除します。

次に、下図のようにA1111側の同フォルダを開き、削除した5個のフォルダをreForge側にコピーします。

この後、reForgeを起動すると下図のようにPytorch2.7.1+cu128を適用する形でreForgeが起動します。

Symbolic link for tensorflow

次に、torchに次ぐ1.4GBというサイズを抱えるtensorflowについても、リンクを作成しましたが、これも無事動作しました。

A1111からForge、reForgeにリンクを作成することにより、3GBの節約が出来ます。ただ、リンクは余り増やし過ぎると管理が大変なので、GBクラスのサイズを持つライブラリーに対してのみ、使用する感じになります。

実の処、torchとtensorflow…この2つだけで、Pythonライブラリーが食うストレージの大半を占めているのです。

Symbolic link for onnxruntime-gpu

最後に、onnxruntime-gpuにもリンクを設定しました。約700MBです。

torchとonnxruntime-gpuは、比較的頻繁に更新するライブラリーでもあります。更新時の方法については、更新時にまた解説します。

少しずつストレージの空きも増加中です。




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