InvokeAI icon indicating copy to clipboard operation
InvokeAI copied to clipboard

[bug]: configure_invokeai.py insists on installing models in $HOME/invokeai

Open asmaloney opened this issue 3 years ago • 4 comments

Is there an existing issue for this?

  • [X] I have searched the existing issues

commit hash

62b80a81d366239d3a482d8939721932fe367a9f

OS

macOS

GPU

cpu

VRAM

8 GB

What happened?

I'm running python scripts/configure_invokeai.py to config things.

I have read the changes here.

I want models/outputs/config (root) to be $HOME/foo/invokeai-install.

When I run python scripts/configure_invokeai.py it asks me to Select the default directory for image outputs which I set to $HOME/foo/invokeai-install, then it asks about NSFW, then it asks about downloading models.

It automatically starts downloading the models again to put them in $HOME/invokeai.

This install process would make a lot more sense to me if it just asked for one location (root) at the beginning and then put the configs, outputs, and models there. (Maybe it could continue to ask about changing the default output directory, but not really necessary IMHO.)

Screenshots

No response

Additional context

I haven't figured out a workaround for this.

Contact Details

No response

asmaloney avatar Dec 11 '22 18:12 asmaloney

Thanks for the report. Could you post a log or screenshot of the interactions?

lstein avatar Dec 12 '22 13:12 lstein

I see the problem. In 2.2.4 the configure script is not responsible for setting the location of the invokeai runtime directory. Instead this directory gets set up by the install script and then the configure script is called to populate it with models. I agree that this is confusing behavior and I will modify the script so that it does not ask you for the location of the output directory.

Right now, if the install script has already created $HOME/invokeai and you want to move the directory to $HOME/foo/invokeai-install, here are the recommended steps:

mv $HOME/invokeai $HOME/foo/invokeai-install
cd $HOME/foo/invokeai-install
source .venv/bin/activate                # alternatively, launch invoke.sh and enter the "developer's console"
pip install -r requirements.txt
pip install https://github.com/invoke-ai/InvokeAI/archive/refs/tags/v2.2.4.zip

I tested this on a Linux box. Hopefully it will work on your system as well. The reason to do the pip installs again, is that once a virtual environment (.venv) is set up, python doesn't take kindly to it being moved. Because pip will use cached libraries, this setup should be relatively quick.

You might also need to do a configure_invokeai.py as the last step, but this should not be strictly necessary if your models directory is already populated.

lstein avatar Dec 12 '22 13:12 lstein

the configure script is not responsible for setting the location of the invokeai runtime directory.

Ah! Thanks. This explains it.

I wasn't trying to move anything actually - I was just updating a working installation:

  • pull master
  • conda env update
  • python scripts/configure_invokeai.py

This is how I have been doing it for a while...

(I didn't think to look for the install script. Even after reading your ALERT, "root directory" seemed like a configuration.)

asmaloney avatar Dec 12 '22 14:12 asmaloney

Confirming I'm replicating I ran:

set INVOKEAI_ROOT=C:\Users\ ... \InvokeAI

where the "..." gets you from C to the location you installed it. And then ran and it worked

python scripts/configure_invokeai.py

sutt avatar Dec 13 '22 01:12 sutt