Feature: Ray Alternative (Instant Model Loading) #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds
nataili.enable_ray_alternative
switch which, if enabled (disabled by default) uses an alternative to Ray.This feature changes nataili to use a persistent disk cache, rather than the ray object store which is lost each time the worker is restarted.
Benefits:
Downsides:
Note that Ray is still used, just not used for caching the large ckpt models.
The model cache files are stored in the folder
model-cache
in the Ray temp dir, if the ray temp dir has been moved using it's environmental variable (RAY_TEMP_DIR), the model cache files will also move with it.Instructions For Testing
Change
AI-Horde-Worker/requirements.txt
contents to be:Run
./update-runtime.cmd
(or .sh on Linux)Edit the file
AI-Horde-Worker/worker/argparser/stable_diffusion.py
to add "enable_ray_alternative" to the imports on line2:and add the following line at the end of the file: