diff --git a/Stable_Diffusion_AI_Notebook.ipynb b/Stable_Diffusion_AI_Notebook.ipynb
index defc158346a..3508a62efa5 100644
--- a/Stable_Diffusion_AI_Notebook.ipynb
+++ b/Stable_Diffusion_AI_Notebook.ipynb
@@ -3,7 +3,6 @@
"nbformat_minor": 0,
"metadata": {
"colab": {
- "name": "Stable_Diffusion_AI_Notebook.ipynb",
"provenance": [],
"collapsed_sections": [],
"private_outputs": true
@@ -22,18 +21,18 @@
{
"cell_type": "markdown",
"source": [
- "# Stable Diffusion AI Notebook\n",
+ "# Stable Diffusion AI Notebook (Release 1.13)\n",
"\n",
"
\n",
"#### Instructions:\n",
"1. Execute each cell in order to mount a Dream bot and create images from text.
\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.
\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.
\n",
"3. After launching dream bot, you'll see:
`Dream > ` in terminal.
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.
\n",
"---\n",
"Note: 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.
\n",
- "Requirements: 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",
+ "Requirements: 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",
"---\n"
],
@@ -41,6 +40,15 @@
"id": "ycYWcsEKc6w7"
}
},
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## ◢ Installation"
+ ],
+ "metadata": {
+ "id": "dr32VLxlnouf"
+ }
+ },
{
"cell_type": "code",
"source": [
@@ -68,26 +76,32 @@
"from os.path import exists\n",
"\n",
"if exists(\"/content/stable-diffusion/\")==True:\n",
+ " %cd /content/stable-diffusion/\n",
" print(\"Already downloaded repo\")\n",
"else:\n",
" !git clone --quiet https://github.com/lstein/stable-diffusion.git # Original repo\n",
- " %cd stable-diffusion/\n",
- " !git checkout --quiet tags/release-1.09\n",
- " "
+ " %cd /content/stable-diffusion/\n",
+ " !git checkout --quiet tags/release-1.13"
]
},
{
"cell_type": "code",
"source": [
- "#@title 3. Install Python 3.8 \n",
- "%%capture --no-stderr\n",
+ "#@title 3. Install dependencies\n",
"import gc\n",
- "!apt-get -qq install python3.8\n",
+ "\n",
+ "if exists(\"/content/stable-diffusion/requirements-colab.txt\")==True:\n",
+ " %cd /content/stable-diffusion/\n",
+ " print(\"Already downloaded requirements file\")\n",
+ "else:\n",
+ " !wget https://raw.githubusercontent.com/lstein/stable-diffusion/development/requirements-colab.txt\n",
+ "!pip install colab-xterm\n",
+ "!pip install -r requirements-colab.txt\n",
"gc.collect()"
],
"metadata": {
- "id": "daHlozvwKesj",
- "cellView": "form"
+ "cellView": "form",
+ "id": "QbXcGXYEFSNB"
},
"execution_count": null,
"outputs": []
@@ -95,20 +109,14 @@
{
"cell_type": "code",
"source": [
- "#@title 4. Install dependencies from file in a VirtualEnv\n",
- "#@markdown Be patient, it takes ~ 5 - 7min
\n",
- "%%capture --no-stderr\n",
- "#Virtual environment\n",
- "!pip install pipenv -q\n",
- "!pip install colab-xterm\n",
- "%load_ext colabxterm\n",
- "!pipenv --python 3.8\n",
- "!pipenv install -r requirements.txt --skip-lock\n",
- "gc.collect()\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": "QbXcGXYEFSNB"
+ "id": "ChIDWxLVHGGJ"
},
"execution_count": null,
"outputs": []
@@ -116,7 +124,29 @@
{
"cell_type": "code",
"source": [
- "#@title 5. Mount google Drive\n",
+ "#@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",
"drive.mount('/content/drive')"
],
@@ -130,7 +160,7 @@
{
"cell_type": "code",
"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
\n",
"#@markdown Note: Model should be downloaded from https://huggingface.co
\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",
"source": [
- "#@title 7. Symlink to model\n",
+ "#@title 8. Symlink to model\n",
"\n",
"from os.path import exists\n",
"import os \n",
@@ -181,32 +211,27 @@
"outputs": []
},
{
- "cell_type": "code",
+ "cell_type": "markdown",
"source": [
- "#@title 8. Load small ML models required\n",
- "%%capture --no-stderr\n",
- "!pipenv run scripts/preload_models.py\n",
- "gc.collect()"
+ "## ◢ Execution"
],
"metadata": {
- "cellView": "form",
- "id": "ChIDWxLVHGGJ"
- },
- "execution_count": null,
- "outputs": []
+ "id": "Mc28N0_NrCQH"
+ }
},
{
"cell_type": "code",
"source": [
"#@title 9. Run Terminal and Execute Dream bot\n",
"#@markdown Steps:
\n",
- "#@markdown 1. Execute command `pipenv run scripts/dream.py` to run dream bot.
\n",
+ "#@markdown 1. Execute command `python scripts/dream.py` to run dream bot.
\n",
"#@markdown 2. After initialized you'll see `Dream>` line.
\n",
"#@markdown 3. Example text: `Astronaut floating in a distant galaxy`
\n",
"#@markdown 4. To quit Dream bot use: `q` command.
\n",
"\n",
- "#Run from virtual env\n",
- "\n",
+ "import gc\n",
+ "%cd /content/stable-diffusion/\n",
+ "%load_ext colabxterm\n",
"%xterm\n",
"gc.collect()"
],
@@ -220,18 +245,18 @@
{
"cell_type": "code",
"source": [
- "#@title 10. Show generated images\n",
- "\n",
+ "#@title 10. Show the last 15 generated images\n",
+ "import gc\n",
"import glob\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.image as mpimg\n",
"%matplotlib inline\n",
"\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",
"\n",
- "# Remove ticks and labels on x-axis and y-axis both\n",
+ "images = images[:15] \n",
"\n",
"plt.figure(figsize=(20,10))\n",
"\n",
@@ -253,4 +278,4 @@
"outputs": []
}
]
-}
\ No newline at end of file
+}
diff --git a/requirements-colab.txt b/requirements-colab.txt
new file mode 100644
index 00000000000..f9cc5600ea0
--- /dev/null
+++ b/requirements-colab.txt
@@ -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 .