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は、比較的頻繁に更新するライブラリーでもあります。更新時の方法については、更新時にまた解説します。
少しずつストレージの空きも増加中です。

