Offer the option to use symlinks instead of junctions on Windows
Proposal
It seems that Stability Matrix chose to use junctions rather than symbolic links on Windows, thanks to symlinks requiring privilege escalation. This is reasonable, but it would be beneficial to some users to be able to store models on network shares. To that end, please add a configuration option to create links using symlinks, including a warning that this will require privilege escalation (and perhaps a further warning that this will probably become bothersome if the "Remove shared folder symbolic links on shutdown" option is enabled).
Cheers!
Unfortunately the creation of symlinks requires administrator rights unless the system's local security policy has been modified to permit ordinary users.
This is the main reason we went with junctions on Windows instead of symlinks, though we could maybe add an option to switch it in the settings with an admin notice & whatnot.
In the meantime, does the "Config" model sharing option work?
Originally posted by @mohnjiles in #991
I have to agree with this. having most everything on a NAS has required some creative work around. What have others been using?
A fix I've been using is to create a net-drive and junction link that to the StabilityMatrix data directory as ./Models
I'd like a checkbox for "let me handle it." And perhaps toss us a script or at minimum a list of what gets linked where.
What have others been using?
On Windows I had an NTFS-formatted iSCSI volume on a ZFS host with 4x HDDs in a pool of two mirror vdevs. Got tired of the care and feeding of two boxen. Now I've bought it all "in-house" with MergerFS on btrfs on Linux.
Did SMB (Samba) for a while but the client-side caching has the memory of a goldfish. As soon as a checkpoint is closed it's dropped from the cache. So coming back to that checkpoint a few minutes later would involve another 6.5GB network transfer. Ugh.
I've spent far too many hours trying to invent solutions for not having a single drive large enough to hold everything SM/SD-related. MergerFS is the best hack so far.
I'd like a checkbox for "let me handle it." And perhaps toss us a script or at minimum a list of what gets linked where.
The explicit list of ways each Package's links get set up would be nice, with a way to override it, coming up with corner cases for all the ways users work around their disk space issues is a big ask.
What have others been using?
Up til now I've been lazy - SMB mount to M: on Windows from a Synology DS. I'm not very good at Windows, and wanted a way to share the same model folder between win, linux, and mac machines, it seemed the least trouble to set up.
The symlink script Claude helped me write isn't complicated, feel free to use/modify/ridicule.
Not quite sure what the problem is here - I put all my main model files on an external SSD and symlink'ed their original locations in S.M. to this disk. What additional needs do you have apart from keeping those large files away from your main system disk?
Not quite sure what the problem is here
I'm happy you have it all figured out.
...and symlink'ed their original locations in S.M. to this disk. What additional needs do you have apart from keeping those large files away from your main system disk?
That's the need, and what I'm suggesting is to add an option alter S.M.'s native functionality to allow users to use symlinks, so users can take advantage of S.M.'s link creation and management. It sounds like you did it manually, which is what I've been doing as well (as shown by the script I shared). S.M. is an effective convenience wrapper around a bunch of stable diffusion tooling, why not make linking convenient as well?