Today I installed the Stable Diffusion Web UI by AUTOMATIC1111 on my ol‘ reliable Macbook Pro 2015 following this stable diffusion installation guide. And not only is it fun to do AI stuffs on an Intel Mac with no GPU whatsoever, of course I also had to run into a „first try error“ ™. This time it was that one:
RuntimeError: "LayerNormKernelImpl" not implemented for 'Half'
So how do we fix that?
Well it turns out that this „half“ thingy, that relates to floating point sizes, can be turned off. To do that, let’s revisit your
stable-diffusion-webui installation directory and open the shell script
webui-user.sh using your most beloved code editor. Here you will find the following 2 lines:
# Commandline arguments for webui.py, for example: export COMMANDLINE_ARGS="--medvram --opt-split-attention"
What we got to do now is: First we remove the leading ‚
#‚ character of the second line to uncomment it. Next, we fill the variable with
"--skip-torch-cuda-test --no-half" to make it look like this:
export COMMANDLINE_ARGS="--skip-torch-cuda-test --no-half"
Restart the stable diffusion web ui using your
webui.sh and it should behave as expected. All of that has been tested with stable-diffusion-webui commit
cf2772fab0af5573da775e7437e6acdca424f26e, which was the most recent stable version at the time of writing.
If you are on a Windows machine, the fix should be basically the same: Open the
webui-user.bat and change
COMMANDLINE_ARGS to match the following:
set COMMANDLINE_ARGS="--skip-torch-cuda-test --no-half"
Restart your server and everything should be alright. (Disclaimer: Untested due to the lack of Windows machines.)
So that’s all, hope this helps. If not, feel free to let me know in the comments below. If you find a better fix, or my post is outdated, or you found any other issues, please let me know as well. Let’s keep it as complete as possible for future users. And if you are still curious about working with Python apps or Python in general, here is another quick and handy post about handling environment variables. And here we talk about my second most favorite topic: Test Automation.
Best regards, and have a nice week!