#2.3.0
1253 messages Ā· Page 2 of 2 (latest)
no i am talking about this thing i keep referring back to
uname -a
that's going to report the right arch
but we want the python in question to report it, the same way the installer checks it
(unless there's a huge confusion going on here, haha)
in case it wasn't clear, you should definitely cancel that install
okay.. cancelling
I'm sorry, I'm lost.. what thing did you ask me to do that I didnt do?
trying to cancel.. seems it wont till its done downloading the models
this
I wonder if this is a difference in shells between the install script and your current environment.
Okay, thought you were saying the act of installing it in a new location would make it use python 3.10
so how do I force it to use python 3.10?
okay so ... it seems like you're not really reading what i am writing
let me try again
please do
remember this? replace python3 with python3.10
yes.. I ran that.. and showed you the output
...
so run it again, replacing "python3" with "python3.10"?
YES PLEASE š„¹
dang...
yeah i think this is starting to make sense
dang?
but sorry, i've never seen such a weird thing
I thought we had confirmed this with @raw compass command
š
right, that tells us what we already know. what i was asking was to check which python saw its system as x86
ah
because that is what the installer does, too.
do you have a conda environment activated or something?
That would show up with which, though...
What if you run bash
And then my for loop up above.
yeah i'm grasping at straws here at this point; just remembering the one other person that had the issue and what they did
really good point about bash; i see the install.sh uses bash instead of zsh so i bet $PATH is different
So you could just bypass install.sh and run the python line at the end, right?
yes, to be honest i was looking forward to the python installer because there would no longer be a sh file ... but i was too hopeful heh
dont know
the problem with adding all these layers to help people is that it's just another place where something can go wrong and obfuscates things. i'd much rather just be able to say "okay on linux or mac use python3.10 to launch the installer, or on windows py -3.10"
like this?
And now if you run that script that @delicate turret sent you before...
(from within bash)
lord.. which one is that?
python3 -c "import platform; print(platform.uname().machine)"
And the same thing with python3.10, please...
that one IS 3.10
python3, I mean
So it seems that's not the problem at all. You can exit bash as that doesn't matter.
done
Seems to have installed with no issue!
frew issues though.. GFPGAN and CODEFORMER not found
Huh zsh? It should be bash.
?
that's what i said, right?
on macos the default shell is zsh; we were thinking that maybe the path env var differed between them, causing the problem
Oh. The script has #!/bin/bash at the top of it, so it should always run in bash.
right
PATH should behave the same also
that's the part we were unsure of
Gotcha
Ah so install was successful in the end?
Looks like we need to run the configure script again to get support models?
Indeed.
@summer ravine Re-run and pick option 6 on the menu to re-download those tools that are missing.
btw, it's a good idea. With our domain invoke.ai, we can add a new place for our nodes templates.
Yep. All in the plan
Nodeā¢ļø Marketplaceā¢ļø
Built in Nodes.
nodega
Thanks, will do
@raw compass its running
š
I'll probably be back around 5:30AM my time (currently 11PM).
Skip this step if you already have models installed.
Let the rest of the script run.
I installed all last time
Sure, then you can type s to skip.
weird.. why wouldnt it install these the first time through?
may have failed without you noticing or similar
i am not sure what it looks like when a download fails/stops early/etc
But this is good and exactly what you want.
okay.. going to test it.. Thanks so much to you both.. first time I've ever gotten real help on Discord
Still seeing alot of missing stuff.. Codeformer and GFPgan still missing
ok uh
the runtime dir being your installer folder is weird
no wonder it's not finding things
where did you choose to install to?
It chose to install to my User directory in an Invokeai folder... I just said yes, go ahead
yeah that should have been the right thing. when you run invokeai.sh, are you finding it there, in your home folder? not in the unzipped folder in downloads?
ohh.. I shoudl be running it from there, shouldnt I.. duh..
also, are you running it like this?
cd ~/invokeai (from opening terminal)
./invokeai.sh (then this once you're in the invokeai folder)
basically we're back to the start. somewhere in here, you've got some x86_64 stuff and it's not going to work with the arm64 stuff ... i wish i could be more specific but that's all i can say from the errors
the people it's happened to in the past ... one of them had conda or similar, installed from an x86 version of some python IDE ... somebody else had x86_64 as an architecture target for homebrew ... that's all i can say
but why does it (almost) work, when I run invoke.sh from the install directory, as I was mistakenly doing?
my guess? you had an invokeai folder in your home dir from a previous failed install that you never cleared out
so the installer is installing on top of it, trying to upgrade, etc. using what's already at the right version
Hmmmm.. dont think so..
I've been working on the handling of embeddings, and these error messages are cleaned up. The embedding manager was letting one load an incompatible embedding (trained on one model, used in another), and then issuing an error when generating the first image. This is fixed in 2.3.1
i will say ... this doesn't happen out of the blue; something python-related was installed or used at some point that was x86_64 - that's really the only common thread between the people it's happened to in the past. i have a feeling that when we/you figure it out, you'll say "oh, yeah, i did install that, but..."
LOL
well, I'm a visual effects artist, so its entirely possible I installed something.. but why would it hose Invoke.ai?
Because LOTS of things use python
I've been having fun and the initial model installer frontend is really nice now. I just need to hook it up to the model manager so that it does something! If anyone would like to try out the interface, knowing that it won't actually do anything, check out https://github.com/invoke-ai/InvokeAI/pull/2644 , do a pip install -e . and then run invokeai-model-install. When you get to the screen that shows the install process, you'll see debug messages indicating that the arguments were gathered correctly.
and you could have installed an x86 version of something by necessity or because it works transparently and you never had to worry about it
but now it's not transparent, heh
and there's no way to uninstall x86 versions of python?
it's a bit more complex than that, something was installed from somewhere but without anybody knowing what it is, we can only guess. it looks like in your most recent error it had to do with opencv and/or numpy. did you ever use homebrew?
my fear is that this is going to be one of those "oh yeah i guess there was that one weird command i had to run to get this other thing to work but i didn't really take note of it" heh
have you ever put a sticker on your mac that says "Intel Inside"
š®
LOL
I shudder at the thought of booting up the PC just to use Automatic1111.. sounds like an aircraft taking off
essentially, with python stuff, especially with ML, there's going to be a lot of compiled shared libraries. that's why/how numpy is fast, pillow is fast, etc. some of your shared libraries are for the wrong architecture. they were put there or built and put there at some point, and they're being found when you're installing InvokeAI but they can't match up with the others that are the right architecture
have you ever taken the silicon out of your M1 chip and secretly replaced it with Folgers Crystals
the only thing instant coffee is good for, is developing film. and it's not even good at that! those dang crystals
I must have at least 3 dozen addons for Blender that all use python
yeah...
might be worth right clicking blender, 'get info' and seeing if it's (Universal), (Intel), etc
its the arm64 version
hmm
well this is a big troubling mystery unfortunately. another thing you could do as you go about your normal stuff on your laptop is open activity monitor and look at your processes and see which if any are running in intel/x86 mode
it's the 'Kind' column under the 'CPU' tab
let me try that
but was it updated from a version that wasn't?
Could be something got installed before there was arm64 support for it?
No.. this computer has always been running arm64 blender
it's kinda ironic ... apple made the x86 emulation work so well that people just didn't have to worry about it
ah
that's quite a bit
can't say i'm familiar with all of those things but i would not be surprised at all if one of them tucked a lil .so/.dylib somewhere that's x86
is it.. mainly whatsapp and drobo driver
okay.. I'm going to uninstall invokeai by deleting the folder.. and try again. Is there a trick to uninstalling too?
just deleting the folder is all you need to do
one thing that wouldn't hurt at all: python3.10 -m pip cache purge - what this does is remove any previously-downloaded packages that it might otherwise try to use again for the install
i wouldn't expect pip to be dumb enough to use mixed architectures, but in the effort of being thorough...
That looks good @summer ravine
should I delete the x86 versions of python from the frameworks directory too?
To clarify, which folder did you delete? ~/invokeai?
yes
Doing this could break your other stuff
What we need to ensure is that when the installer calls python, it uses the arm64 versions
right.. so how do we do that?
In the installer script, it will run some commands starting with python. Maybe python3? Not sure - Iām not at a computer
which <whatever python is in the script> tells you which python is using
Iāll be home in a few min and happy to hop on my mac and walk thru this with you
Thanks.. I'd appreciate it
Np, probably easiest to do a screen share with voice. Iāll dm you shortly if thatās ok with you.
sure.. no problem
dm sent
hmm not seeing it
Just to close the loop on @summer ravine 's install - the issue was indeed a x86-64 version of python installed. The install script used that to install and that screwed everything up.
The solution:
- Install
brewhttps://brew.sh/ and add it to PATH per the standard brew install instructions - Install python with
brew install [email protected](brew install pythoninstalled 3.11 which did not work!) brew list [email protected]to get the path topython3.10- Edit
install.shwithPYTHON=/path/to/python3.10(from the previous command) - Run the installer
At this point, the original x86-64 python has precedence in the PATH environment variable, so the brew installed python should never interfere with anything else. But, if there is a problem, a simple brew uninstall [email protected] will remove the python version we installed, reverting the system's python PATH stuff back to where it was.
Is there a way to have a custom H/W in Invoke? Iām looking to create a 2.5:3.5 ratio image, basically a 5x7. Closest I can get is 512x704, but then I still have to crop it. 500x700 would be perfect. Or maybe an auto crop option? That would be nice!
Stable diffusion has some limitations of image dimensions. Until recently image dimensions needed to be in 64px increments. There is an upstream change which we will implement in the relatively near future which allows for 8px increments. Unfortunately that only gets you 8px closer to 500x700 but thatās what the tech is capable of.
1280x1792
640x896
960x1344
Those are 2.5:3.5 and multiples of 64. And yes, I have a program to do that for me.
You can use hires fix on any of those to create a more coherent image, though you'll lose coherence the bigger you get.
Kicking myself here, how did I miss 640x896. Thanks
I recommend starting with 640x896 and going from there.
You didn't have my program!
I actually did 640x960 and was like, hmm, close
The reason for the 5x7 is greeting cards. My daughters sketch them out and then let Invoke do its magic to make them special
Cute!
Would love to see the before and after if you and your daughters are comfortable with that š
There's a new feature in A1111 we'll likely see hitting us as a feature request soon regarding img2img control that i imagine would be good in this use-case
wow, very cool
This was very quick and dirty. You guys didnāt get to see the eye rolls when I told them why I needed a quick sketch!
Can invoke handle depth?
Not yet!
ā¢ļø
@novel pilot @pastel elm @tired bluff @young steeple @kindred grail I have a significant PR ready for review that touches multiple code owners. It adds a nice console-based front end to the initial model installer and provides the user with the ability to do the following:
- Add and remove models from the curated list at INITIAL_MODELS.yaml
- Import HuggingFace diffusers models using their repo_ids
- Import any checkpoint or safetensors file that has a reachable URL by cutting and pasting the URL
- Import a local diffusers model using its directory path
- Import a local checkpoint or safetensors file using its file path
- Recurse through a local directory and import everything inside that's importable
- Set a watch on a local directory so that whenever invokeai starts up, any new models found in that directory are imported
- Do any of the above and convert to a diffusers model
Here is the current screenshot:
I should also mention that it detects inpainting and v2 models automatically and does "the right thing"' in most cases.
To try it out, run invokeai-model-install
Oh - did not realize that more than one CodeOwner can be necesarry to review and did not want to approve since I am not the best choice for Python Code Reviews š But now I know better š
Nicely done!!!
I'm still trying to figure out how it works when a commit touches files that cross multiple code owners. I fear (or expect?) that if there are three files that were modified, each with a different code owner, then all three owners have to review and approve. Ouch, but logically correct.
BTW this PR scares me because of all the internal refactoring I had to do, so please test with a variety of scenarios - bad URLs, safetensors files that have the wrong suffix, no models.yaml file, a broken models.yaml, etc.
Last question is whether I should submit to the temptation to create a frontend for the invokeai-configure script which sets up the root directory, the invokeai.init file, and loads the support models. Right now there are just a couple of prompts that ask for confirmation of the output directory, whether to activate the NSFW checker, and enter the HuggingFace token for concept library downloading.
What we could do is to replace this with a form that has entries for multiple default settings, including the user's preferred sampler, number of steps, directories to automatically load models from, karras threshold, etc.
I have a PR open that touches code from all over and it requires approval from at least 1 of the 6 code owners to merge.
"at least" meaning... 1? 2? Unknown.
Feel free to use it as a test case.
Well, we'll find out. I'll review your PR today.
I don't think it'll interfere too much with the nodes work, if at all.
Nice detective work. For reference, the installer script looks for the following commands on PATH, in this order of priority: python3.10 python3.9 python3 python python3.11. It then calls $PYTHON -V to get the version (irrespective of the command name) and continues the search until it finds a version greater than 3.9.0. Leaving aside the problem that it is allowing unsupported version 3.11 to run, is there any change to the logic that would have caught and prevented @summer ravine 's issue? I'm hoping there is a way to determine which architecture python was built for, compare it with the current architecture, and skip if they don't match.
I'm hoping there is a way to determine which architecture python was built for, compare it with the current architecture, and skip if they don't match.
this is a great idea and definitely can be done
@solar barn
I tried to figure out checking the arch while on the call but my brief search was fruitless, so I just installed python the way I knew would work.
3.11 arm64 python caused an immediate failure during installation, before pip was able to install anything. IIRC it couldnāt resolve a particular dependency.
I can figure out / clarify both issues later
mostly i'd just like to know how this is happening ... the prior two people it's happened to, i think, were because they had brew setup for additional architectures (probably early apple silicon days) and another because they installed the x86 version of an IDE that also installed an x86 version of conda/python/forge/whatever
I think this is kinda necessary now that we have all tasted the cursed fruit (see what I did there?)! Itās so much nicer to use the arrows and toggle checkboxes.
In this case, python was a dependency of a number of blender plugins. I suspect they are older and installed to x86-64 python, in this case to the frameworks dir in library (sorry donāt have the full path but I think youāll know where Iām talking about).
it's no problem, it just means patchmatch (an optional feature) isn't enabled
ok.. thanks
okay.. having a different issue then.. thought the patchmatch eirror was causing it, but apparently not.
when I generate a 512x512 image.. its fine, but if I try 512x1024.. Invoke crashes
What's the error message?
that's probably too big for your available memory
but also on mac i know there's other problems aside from that
cant get it to do it again..
isnt there supposed to be a way to save negative prompts in Invoke?
Yes.. definitely a memory problem.. and thats fine, I can always reduce the size of the image. But Invoke should warn of that condition and give you a chance to reduce the file size, without crashing out and you lose everything
unfortunately it's more of an aspect of pytorch right now than anything ... but it does seem like they are adding some MPS memory management stuff as of late
I just added realisticVisionV13 in InvokeAi.. the results are.... unimpressive.. loads fine, no errors..but the generated art....
prompt: photorealistic beautiful rastafarian woman, fit, cinematic lighting, corpuscular rays
out of Automatic1111.. same prompt
I've heard Invoke and Automatic1111 generate different results from the same generation data.. but this is ridiculous
yeah something's wrong, but i think you may want to post in another channel at this point, either #šinvoke-chat or #š”tools-and-tips depending
hm yeah that model is broken. seems people are complaining about it even with other webuis ... probably the usual stuff; they (or a model they merged in) included some stuff that's throwing things off
Looks like a broken text encoder. Converting to diffusers usually fixes that.
after I converted a safetensors/ckpt to diffuser format, I dont get the same image, nevertheless I use the same parameters and the same seed, the image is neither close to the one generated with the original model.
Was there a custom VAE that needs to be brought in?
If you can share models for others to test would be helpful
Indeed, I did some other test with other models, some are well converted, but some are not, for example this one is not https://civitai.com/models/4825/kalista
FYI, the VAE used with the Kalista.ckpt model was the usal vae-ft-mse-840000-ema-pruned.ckpt), and
And i say Yes to this question, Replace this model's VAE with "stabilityai/sd-vae-ft-mse"? [y/N]: y
If I answer No to the VAE question, then the image I get for the second one (diffuser model) is less saturated/fade]
I have update the issue https://github.com/invoke-ai/InvokeAI/issues/2713
Kalista is a state-of-the-art stylized realism model that is extremely consistent in generating high quality outputs!This model was meant to be a quick experiment on 'simulating' additional training steps by finding the mean values of multiple different checkpoints that were trained on separate datasets.While prompting did prove quite difficult ...
Think youād need to manually bring over the custom VAE if not using the stock SD VAE
I use the standard one, and in the optimisation process I answered YES to the question about VAE
And it worked, yes?
no, I have updated the #2713, with a log file to reproduce the issue...
stabilityai/sd-vae-ft-mse is supposed to be identical to vae-ft-me-840000... which is why it is swapped in. I've assigned myself to the bug report and will see what's going on. When I've tested conversion, I get identical results.
IMHO vae is not the cause of this issue ....
So to clarify - if you use the stabilityai/sd-vae-ft-mse as your VAE repo ID, you are still experiencing significantly deteriorated results?
Yes, IMHO is not a mater of VAE, according to my test in any case. Indeed, I expect that when I convert a .ckpt/.safetensors model into a diffuser model, I get the same result when I use the same prompt, same parameters and same seed... or very close
It would only be relevant if there were a custom VAE or one was not being loaded in the diffusers format.
If the same VAE is being used in both ckpt & diffuser, then I'd agree