InvokeAI icon indicating copy to clipboard operation
InvokeAI copied to clipboard

[enhancement]: Unified Directory Structure Tree

Open xerohaveit opened this issue 9 months ago • 1 comments

Is there an existing issue for this?

  • [x] I have searched the existing issues

Contact Details

No response

What should this feature add?

Dealing with large files over the internet could be cumbersome, but downloading and organizing them definitely is. Here are two common scenarios:

1- when downloading a large controlnet for example through Invoke app, internet connection might drop or a power outage might occur for god knows why, making the download fails and trying again won't resume the download, but will restart it from the beginning.

2- here comes a new issue, config files are missing, even if they are also downloaded. from what I've seen, downloads through Invoke app will make a temporary folder to download whatever [tmpinstall_xxxxxxxx] and then move what it downloaded to the intended folder and with a proper name, but when downloading from outside the app, there's no clear way to know what the final name of that folder should be.

Alternatives

1- (downloading issues) ===> users commonly tackle this by downloading the files from outside invoke app to utilize something like common download managers or aria2 to benefit from pausing/resuming the download without having to restart it, then using invoke app to scan a folder that contains what they downloaded, or point to the file directly. But will face another issue of missing config files.

===> developers might utilize a cross-platform downloader like aria2 and pass the arguments needed for resuming downloads (I'm not sure if aria2's "file-preallocation" and "sequential-downloading" could help in that regard, but it's easy to figure that out)

2- (Missing configs) ===> a couple of solutions are possible:

  • add the ability to point the path of the config file manually.
  • automatically search (non-recursively) for an included config file inside the scanned directory, configs will have a fixed name "config.json" usually.
  • maybe taking advantage of invoke's excellent model-type identification when they're downloaded outside the app and instruct users where to put them and what to name them so the config file included will be instantly recognized.

====General Solution===== the classic way utilized in many projects, especially those using gradio WebUI is point out from the beginning where to put each file, this proves to be successful but will take out the great flexibility of invoke. but to be honest, it's not that obvious the something like Canny Hard Edge Detection for SD and SDXL should be structured like this without any prior knowledge of that structure

\models\SDXL\t2i_adapter\Hard Edge Detection (canny).0 \models\SD-1\t2i_adapter\Hard Edge Detection (canny)

Additional Content

No response

xerohaveit avatar Mar 07 '25 23:03 xerohaveit

Have you tried the Scan Models feature? This allows you to import models from a "classic" folder structure into Invoke.

iwr-redmond avatar Mar 08 '25 21:03 iwr-redmond