mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
Improve notebook and add requirements file (#422)
This commit is contained in:
parent
29ab3c2028
commit
edada042b3
@ -3,7 +3,6 @@
|
|||||||
"nbformat_minor": 0,
|
"nbformat_minor": 0,
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"colab": {
|
"colab": {
|
||||||
"name": "Stable_Diffusion_AI_Notebook.ipynb",
|
|
||||||
"provenance": [],
|
"provenance": [],
|
||||||
"collapsed_sections": [],
|
"collapsed_sections": [],
|
||||||
"private_outputs": true
|
"private_outputs": true
|
||||||
@ -22,18 +21,18 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"source": [
|
"source": [
|
||||||
"# Stable Diffusion AI Notebook\n",
|
"# Stable Diffusion AI Notebook (Release 1.13)\n",
|
||||||
"\n",
|
"\n",
|
||||||
"<img src=\"https://user-images.githubusercontent.com/60411196/186547976-d9de378a-9de8-4201-9c25-c057a9c59bad.jpeg\" alt=\"stable-diffusion-ai\" width=\"170px\"/> <br>\n",
|
"<img src=\"https://user-images.githubusercontent.com/60411196/186547976-d9de378a-9de8-4201-9c25-c057a9c59bad.jpeg\" alt=\"stable-diffusion-ai\" width=\"170px\"/> <br>\n",
|
||||||
"#### Instructions:\n",
|
"#### Instructions:\n",
|
||||||
"1. Execute each cell in order to mount a Dream bot and create images from text. <br>\n",
|
"1. Execute each cell in order to mount a Dream bot and create images from text. <br>\n",
|
||||||
"2. Once cells 1-8 were run correctly you'll be executing a terminal in cell #9, you'll to enter `pipenv run scripts/dream.py` command to run Dream bot.<br> \n",
|
"2. Once cells 1-8 were run correctly you'll be executing a terminal in cell #9, you'll need to enter `python scripts/dream.py` command to run Dream bot.<br> \n",
|
||||||
"3. After launching dream bot, you'll see: <br> `Dream > ` in terminal. <br> Insert a command, eg. `Dream > Astronaut floating in a distant galaxy`, or type `-h` for help.\n",
|
"3. After launching dream bot, you'll see: <br> `Dream > ` in terminal. <br> Insert a command, eg. `Dream > Astronaut floating in a distant galaxy`, or type `-h` for help.\n",
|
||||||
"3. After completion you'll see your generated images in path `stable-diffusion/outputs/img-samples/`, you can also display images in cell #10.\n",
|
"3. After completion you'll see your generated images in path `stable-diffusion/outputs/img-samples/`, you can also show last generated images in cell #10.\n",
|
||||||
"4. To quit Dream bot use `q` command. <br> \n",
|
"4. To quit Dream bot use `q` command. <br> \n",
|
||||||
"---\n",
|
"---\n",
|
||||||
"<font color=\"red\">Note:</font> It takes some time to load, but after installing all dependencies you can use the bot all time you want while colab instance is up. <br>\n",
|
"<font color=\"red\">Note:</font> It takes some time to load, but after installing all dependencies you can use the bot all time you want while colab instance is up. <br>\n",
|
||||||
"<font color=\"red\">Requirements:</font> For this notebook to work you need to have [Stable-Diffusion-v-1-4](https://huggingface.co/CompVis/stable-diffusion-v-1-4-original) stored in your Google Drive, it will be needed in cell #6\n",
|
"<font color=\"red\">Requirements:</font> For this notebook to work you need to have [Stable-Diffusion-v-1-4](https://huggingface.co/CompVis/stable-diffusion-v-1-4-original) stored in your Google Drive, it will be needed in cell #7\n",
|
||||||
"##### For more details visit Github repository: [lstein/stable-diffusion](https://github.com/lstein/stable-diffusion)\n",
|
"##### For more details visit Github repository: [lstein/stable-diffusion](https://github.com/lstein/stable-diffusion)\n",
|
||||||
"---\n"
|
"---\n"
|
||||||
],
|
],
|
||||||
@ -41,6 +40,15 @@
|
|||||||
"id": "ycYWcsEKc6w7"
|
"id": "ycYWcsEKc6w7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"source": [
|
||||||
|
"## ◢ Installation"
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"id": "dr32VLxlnouf"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"source": [
|
"source": [
|
||||||
@ -68,43 +76,28 @@
|
|||||||
"from os.path import exists\n",
|
"from os.path import exists\n",
|
||||||
"\n",
|
"\n",
|
||||||
"if exists(\"/content/stable-diffusion/\")==True:\n",
|
"if exists(\"/content/stable-diffusion/\")==True:\n",
|
||||||
|
" %cd /content/stable-diffusion/\n",
|
||||||
" print(\"Already downloaded repo\")\n",
|
" print(\"Already downloaded repo\")\n",
|
||||||
"else:\n",
|
"else:\n",
|
||||||
" !git clone --quiet https://github.com/lstein/stable-diffusion.git # Original repo\n",
|
" !git clone --quiet https://github.com/lstein/stable-diffusion.git # Original repo\n",
|
||||||
" %cd stable-diffusion/\n",
|
" %cd /content/stable-diffusion/\n",
|
||||||
" !git checkout --quiet tags/release-1.09\n",
|
" !git checkout --quiet tags/release-1.13"
|
||||||
" "
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"source": [
|
"source": [
|
||||||
"#@title 3. Install Python 3.8 \n",
|
"#@title 3. Install dependencies\n",
|
||||||
"%%capture --no-stderr\n",
|
|
||||||
"import gc\n",
|
"import gc\n",
|
||||||
"!apt-get -qq install python3.8\n",
|
"\n",
|
||||||
"gc.collect()"
|
"if exists(\"/content/stable-diffusion/requirements-colab.txt\")==True:\n",
|
||||||
],
|
" %cd /content/stable-diffusion/\n",
|
||||||
"metadata": {
|
" print(\"Already downloaded requirements file\")\n",
|
||||||
"id": "daHlozvwKesj",
|
"else:\n",
|
||||||
"cellView": "form"
|
" !wget https://raw.githubusercontent.com/lstein/stable-diffusion/development/requirements-colab.txt\n",
|
||||||
},
|
|
||||||
"execution_count": null,
|
|
||||||
"outputs": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"source": [
|
|
||||||
"#@title 4. Install dependencies from file in a VirtualEnv\n",
|
|
||||||
"#@markdown Be patient, it takes ~ 5 - 7min <br>\n",
|
|
||||||
"%%capture --no-stderr\n",
|
|
||||||
"#Virtual environment\n",
|
|
||||||
"!pip install pipenv -q\n",
|
|
||||||
"!pip install colab-xterm\n",
|
"!pip install colab-xterm\n",
|
||||||
"%load_ext colabxterm\n",
|
"!pip install -r requirements-colab.txt\n",
|
||||||
"!pipenv --python 3.8\n",
|
"gc.collect()"
|
||||||
"!pipenv install -r requirements.txt --skip-lock\n",
|
|
||||||
"gc.collect()\n"
|
|
||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"cellView": "form",
|
"cellView": "form",
|
||||||
@ -116,7 +109,44 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"source": [
|
"source": [
|
||||||
"#@title 5. Mount google Drive\n",
|
"#@title 4. Load small ML models required\n",
|
||||||
|
"%cd /content/stable-diffusion/\n",
|
||||||
|
"!python scripts/preload_models.py\n",
|
||||||
|
"gc.collect()"
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"cellView": "form",
|
||||||
|
"id": "ChIDWxLVHGGJ"
|
||||||
|
},
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"source": [
|
||||||
|
"#@title 5. Restart Runtime\n",
|
||||||
|
"exit()"
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"cellView": "form",
|
||||||
|
"id": "8rSMhgnAttQa"
|
||||||
|
},
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"source": [
|
||||||
|
"## ◢ Configuration"
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"id": "795x1tMoo8b1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"source": [
|
||||||
|
"#@title 6. Mount google Drive\n",
|
||||||
"from google.colab import drive\n",
|
"from google.colab import drive\n",
|
||||||
"drive.mount('/content/drive')"
|
"drive.mount('/content/drive')"
|
||||||
],
|
],
|
||||||
@ -130,7 +160,7 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"source": [
|
"source": [
|
||||||
"#@title 6. Drive Path to model\n",
|
"#@title 7. Drive Path to model\n",
|
||||||
"#@markdown Path should start with /content/drive/path-to-your-file <br>\n",
|
"#@markdown Path should start with /content/drive/path-to-your-file <br>\n",
|
||||||
"#@markdown <font color=\"red\">Note:</font> Model should be downloaded from https://huggingface.co <br>\n",
|
"#@markdown <font color=\"red\">Note:</font> Model should be downloaded from https://huggingface.co <br>\n",
|
||||||
"#@markdown Lastest release: [Stable-Diffusion-v-1-4](https://huggingface.co/CompVis/stable-diffusion-v-1-4-original)\n",
|
"#@markdown Lastest release: [Stable-Diffusion-v-1-4](https://huggingface.co/CompVis/stable-diffusion-v-1-4-original)\n",
|
||||||
@ -152,7 +182,7 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"source": [
|
"source": [
|
||||||
"#@title 7. Symlink to model\n",
|
"#@title 8. Symlink to model\n",
|
||||||
"\n",
|
"\n",
|
||||||
"from os.path import exists\n",
|
"from os.path import exists\n",
|
||||||
"import os \n",
|
"import os \n",
|
||||||
@ -181,32 +211,27 @@
|
|||||||
"outputs": []
|
"outputs": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "markdown",
|
||||||
"source": [
|
"source": [
|
||||||
"#@title 8. Load small ML models required\n",
|
"## ◢ Execution"
|
||||||
"%%capture --no-stderr\n",
|
|
||||||
"!pipenv run scripts/preload_models.py\n",
|
|
||||||
"gc.collect()"
|
|
||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"cellView": "form",
|
"id": "Mc28N0_NrCQH"
|
||||||
"id": "ChIDWxLVHGGJ"
|
}
|
||||||
},
|
|
||||||
"execution_count": null,
|
|
||||||
"outputs": []
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"source": [
|
"source": [
|
||||||
"#@title 9. Run Terminal and Execute Dream bot\n",
|
"#@title 9. Run Terminal and Execute Dream bot\n",
|
||||||
"#@markdown <font color=\"blue\">Steps:</font> <br>\n",
|
"#@markdown <font color=\"blue\">Steps:</font> <br>\n",
|
||||||
"#@markdown 1. Execute command `pipenv run scripts/dream.py` to run dream bot.<br>\n",
|
"#@markdown 1. Execute command `python scripts/dream.py` to run dream bot.<br>\n",
|
||||||
"#@markdown 2. After initialized you'll see `Dream>` line.<br>\n",
|
"#@markdown 2. After initialized you'll see `Dream>` line.<br>\n",
|
||||||
"#@markdown 3. Example text: `Astronaut floating in a distant galaxy` <br>\n",
|
"#@markdown 3. Example text: `Astronaut floating in a distant galaxy` <br>\n",
|
||||||
"#@markdown 4. To quit Dream bot use: `q` command.<br>\n",
|
"#@markdown 4. To quit Dream bot use: `q` command.<br>\n",
|
||||||
"\n",
|
"\n",
|
||||||
"#Run from virtual env\n",
|
"import gc\n",
|
||||||
"\n",
|
"%cd /content/stable-diffusion/\n",
|
||||||
|
"%load_ext colabxterm\n",
|
||||||
"%xterm\n",
|
"%xterm\n",
|
||||||
"gc.collect()"
|
"gc.collect()"
|
||||||
],
|
],
|
||||||
@ -220,18 +245,18 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"source": [
|
"source": [
|
||||||
"#@title 10. Show generated images\n",
|
"#@title 10. Show the last 15 generated images\n",
|
||||||
"\n",
|
"import gc\n",
|
||||||
"import glob\n",
|
"import glob\n",
|
||||||
"import matplotlib.pyplot as plt\n",
|
"import matplotlib.pyplot as plt\n",
|
||||||
"import matplotlib.image as mpimg\n",
|
"import matplotlib.image as mpimg\n",
|
||||||
"%matplotlib inline\n",
|
"%matplotlib inline\n",
|
||||||
"\n",
|
"\n",
|
||||||
"images = []\n",
|
"images = []\n",
|
||||||
"for img_path in glob.glob('/content/stable-diffusion/outputs/img-samples/*.png'):\n",
|
"for img_path in sorted(glob.glob('/content/stable-diffusion/outputs/img-samples/*.png'), reverse=True):\n",
|
||||||
" images.append(mpimg.imread(img_path))\n",
|
" images.append(mpimg.imread(img_path))\n",
|
||||||
"\n",
|
"\n",
|
||||||
"# Remove ticks and labels on x-axis and y-axis both\n",
|
"images = images[:15] \n",
|
||||||
"\n",
|
"\n",
|
||||||
"plt.figure(figsize=(20,10))\n",
|
"plt.figure(figsize=(20,10))\n",
|
||||||
"\n",
|
"\n",
|
||||||
@ -253,4 +278,4 @@
|
|||||||
"outputs": []
|
"outputs": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
26
requirements-colab.txt
Normal file
26
requirements-colab.txt
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
albumentations==0.4.3
|
||||||
|
clean-fid==0.1.29
|
||||||
|
einops==0.3.0
|
||||||
|
huggingface-hub==0.8.1
|
||||||
|
imageio-ffmpeg==0.4.2
|
||||||
|
imageio==2.9.0
|
||||||
|
kornia==0.6.0
|
||||||
|
numpy==1.21.6
|
||||||
|
omegaconf==2.1.1
|
||||||
|
opencv-python==4.6.0.66
|
||||||
|
pillow==9.2.0
|
||||||
|
pip>=22
|
||||||
|
pudb==2019.2
|
||||||
|
pytorch-lightning==1.4.2
|
||||||
|
streamlit==1.12.0
|
||||||
|
taming-transformers-rom1504==0.0.6
|
||||||
|
test-tube>=0.7.5
|
||||||
|
torch-fidelity==0.3.0
|
||||||
|
torchmetrics==0.6.0
|
||||||
|
torchtext==0.6.0
|
||||||
|
transformers==4.19.2
|
||||||
|
torch==1.12.1+cu113
|
||||||
|
torchvision==0.13.1+cu113
|
||||||
|
git+https://github.com/openai/CLIP.git@main#egg=clip
|
||||||
|
git+https://github.com/lstein/k-diffusion.git@master#egg=k-diffusion
|
||||||
|
-e .
|
Loading…
Reference in New Issue
Block a user