{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Easy-peasy Windows install" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that you will need NVIDIA drivers, Python 3.10, and Git installed\n", "beforehand - simplified\n", "[step-by-step instructions](https://github.com/lstein/stable-diffusion/wiki/Easy-peasy-Windows-install)\n", "are available in the wiki (you'll only need steps 1, 2, & 3 )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Run each cell in turn. In VSCode, either hit SHIFT-ENTER, or click on the little ▶️ to the left of the cell. In Jupyter/JupyterLab, you **must** hit SHIFT-ENTER" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%pip install pew" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%%cmd\n", "git clone https://github.com/lstein/stable-diffusion.git" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%cd stable-diffusion" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%%writefile requirements.txt\n", "albumentations==0.4.3\n", "einops==0.3.0\n", "huggingface-hub==0.8.1\n", "imageio-ffmpeg==0.4.2\n", "imageio==2.9.0\n", "kornia==0.6.0\n", "# pip will resolve the version which matches torch\n", "numpy\n", "omegaconf==2.1.1\n", "opencv-python==4.6.0.66\n", "pillow==9.2.0\n", "pip>=22\n", "pudb==2019.2\n", "pytorch-lightning==1.4.2\n", "streamlit==1.12.0\n", "# \"CompVis/taming-transformers\" doesn't work\n", "# ldm\\models\\autoencoder.py\", line 6, in \n", "# from taming.modules.vqvae.quantize import VectorQuantizer2 as VectorQuantizer\n", "# ModuleNotFoundError\n", "taming-transformers-rom1504==0.0.6\n", "test-tube>=0.7.5\n", "torch-fidelity==0.3.0\n", "torchmetrics==0.6.0\n", "transformers==4.19.2\n", "git+https://github.com/openai/CLIP.git@main#egg=clip\n", "git+https://github.com/lstein/k-diffusion.git@master#egg=k-diffusion\n", "# No CUDA in PyPi builds\n", "--extra-index-url https://download.pytorch.org/whl/cu113 --trusted-host https://download.pytorch.org\n", "torch==1.11.0\n", "# Same as numpy - let pip do its thing\n", "torchvision\n", "-e .\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%%cmd\n", "pew new --python 3.10 -r requirements.txt --dont-activate ldm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Switch the notebook kernel to the new 'ldm' environment!\n", "\n", "## VSCode: restart VSCode and come back to this cell\n", "\n", "1. Ctrl+Shift+P\n", "1. Type \"Select Interpreter\" and select \"Jupyter: Select Interpreter to Start Jupyter Server\"\n", "1. VSCode will say that it needs to install packages. Click the \"Install\" button.\n", "1. Once the install is finished, do 1 & 2 again\n", "1. Pick 'ldm'\n", "1. Run the following cell" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%cd stable-diffusion" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## Jupyter/JupyterLab\n", "\n", "1. Run the cell below\n", "1. Click on the toolbar where it says \"(ipyknel)\" ↗️. You should get a pop-up asking you to \"Select Kernel\". Pick 'ldm' from the drop-down.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### DO NOT RUN THE FOLLOWING CELL IF YOU ARE USING VSCODE!!" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# DO NOT RUN THIS CELL IF YOU ARE USING VSCODE!!\n", "%%cmd\n", "pew workon ldm\n", "pip3 install ipykernel\n", "python -m ipykernel install --name=ldm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### When running the next cell, Jupyter/JupyterLab users might get a warning saying \"IProgress not found\". This can be ignored." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%run \"scripts/preload_models.py\"" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%%cmd\n", "mkdir \"models/ldm/stable-diffusion-v1\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Now copy the SD model you downloaded from Hugging Face into the above new directory, and (if necessary) rename it to 'model.ckpt'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Now go create some magic!\n", "\n", "VSCode\n", "\n", "- The actual input box for the 'dream' prompt will appear at the very top of the VSCode window. Type in your commands and hit 'ENTER'.\n", "- To quit, hit the 'Interrupt' button in the toolbar up there ⬆️ a couple of times, then hit ENTER (you'll probably see a terrifying traceback from Python - just ignore it).\n", "\n", "Jupyter/JupyterLab\n", "\n", "- The input box for the 'dream' prompt will appear below. Type in your commands and hit 'ENTER'.\n", "- To quit, hit the interrupt button (⏹️) in the toolbar up there ⬆️ a couple of times, then hit ENTER (you'll probably see a terrifying traceback from Python - just ignore it)." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%run \"scripts/dream.py\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Once this seems to be working well, you can try opening a terminal\n", "\n", "- VSCode: type ('CTRL+`')\n", "- Jupyter/JupyterLab: File|New Terminal\n", "- Or jump out of the notebook entirely, and open Powershell/Command Prompt\n", "\n", "Now:\n", "\n", "1. `cd` to wherever the 'stable-diffusion' directory is\n", "1. Run `pew workon ldm`\n", "1. Run `winpty python scripts\\dream.py`" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.10.6 ('ldm')", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.6" }, "vscode": { "interpreter": { "hash": "a05e4574567b7bc2c98f7f9aa579f9ea5b8739b54844ab610ac85881c4be2659" } } }, "nbformat": 4, "nbformat_minor": 4 }