diff --git a/latent_blending.ipynb b/latent_blending.ipynb
index deaf00a..091bf46 100644
--- a/latent_blending.ipynb
+++ b/latent_blending.ipynb
@@ -1,23 +1,615 @@
{
- "nbformat": 4,
- "nbformat_minor": 0,
- "metadata": {
- "colab": {
- "provenance": [],
- "machine_shape": "hm"
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Instructions\n",
+ "### 1) hit the white play button below \n",
+ "### 2) grab yourself a coffee 🍹 (10min wait) \n",
+ "### 3) scroll all the way to bottom of output and open link \"Running on public URL: https://xxxxxxxxx.gradio.live\" \n",
+ "### 4) there are many parameters, read here what they mean: https://github.com/lunarring/latentblending/blob/main/parameters.md\n",
+ "👇 (start here, move cursor below finger and play button will appear)"
+ ],
+ "metadata": {
+ "id": "t9DPiP5BgqfF"
+ }
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1000,
+ "referenced_widgets": [
+ "495e49b365db4a63b0a6c0c1a18618f1",
+ "0937bb0a42a04cf2a699cd0dfdb08f58",
+ "3cd77f4970ca4383af3793a0def99548",
+ "90f146b625824594bafaa2c34a985c53",
+ "23a8dffdfdf54dce87c1b0d06c215a19",
+ "f274a85e13ea4af89d6cca1ca94a2d5f",
+ "7393e0648acb43a995b7ef7f0bb0daaf",
+ "40b1274ad4124a73ac681528e2a693ad",
+ "a24ef8d929bd49469975a60630134ab3",
+ "cd09423a3d4b48f1ac9c9b618e64d233",
+ "74033ca88c5d4a6a8c3cb9ad739aca97",
+ "1eff4f1734224561a746267c4290620f",
+ "08d99a48efd14c1e9423eeb269f12d9a",
+ "e541fae739584cc3b9bbbf490f8fa2cb",
+ "e36754be14a6467e8afb564c87a53d51",
+ "93fe3baa643548b185cc1bcb7e3945d8",
+ "f3acd617d38740c480bc5d7470da1695",
+ "ba4336f6577c45bea4af940ea08b57d1",
+ "86554816cf7c4012bf702c7d833ec685",
+ "3e6d15c0a3cb431a80fe7448620af0bc",
+ "2eda918e13284c4c9afd7f167cf4af56",
+ "4f0061c718f847b29b29a20388fab641",
+ "1eb11001041144859375d5feb1b4c5bc",
+ "61236e7b09954ae8ba0e575cc9f345e9",
+ "15e76ca9be0d4f7484eba56d5a22a6ee",
+ "2f09ee0caddb4a9d94a8616fc99607a5",
+ "283eae336370485181bd8ea172debc9a",
+ "51385d57b85d4440ada34a57f3bd945a",
+ "5e3576e621584100ae7f8746cbcdf75c",
+ "ab6d9d0cf3204fc9bf94e23b2ce22256",
+ "baae00db06d1497eab6e1b5acda26c56",
+ "7e77f56335944b30a408cdd2b6a7420b",
+ "08ccfb2c004a46a995723d6e6395b345"
+ ]
+ },
+ "id": "jgZQj-tE6GWW",
+ "outputId": "3c820598-329a-4f8f-f09c-ce0163333a51",
+ "collapsed": true,
+ "cellView": "form"
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
+ "Requirement already satisfied: omegaconf in /usr/local/lib/python3.8/dist-packages (2.3.0)\n",
+ "Requirement already satisfied: PyYAML>=5.1.0 in /usr/local/lib/python3.8/dist-packages (from omegaconf) (6.0)\n",
+ "Requirement already satisfied: antlr4-python3-runtime==4.9.* in /usr/local/lib/python3.8/dist-packages (from omegaconf) (4.9.3)\n",
+ "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
+ "Requirement already satisfied: fastcore in /usr/local/lib/python3.8/dist-packages (1.5.27)\n",
+ "Requirement already satisfied: packaging in /usr/local/lib/python3.8/dist-packages (from fastcore) (21.3)\n",
+ "Requirement already satisfied: pip in /usr/local/lib/python3.8/dist-packages (from fastcore) (22.0.4)\n",
+ "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.8/dist-packages (from packaging->fastcore) (3.0.9)\n",
+ "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
+ "Requirement already satisfied: Pillow in /usr/local/lib/python3.8/dist-packages (7.1.2)\n",
+ "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
+ "Requirement already satisfied: ffmpeg-python in /usr/local/lib/python3.8/dist-packages (0.2.0)\n",
+ "Requirement already satisfied: future in /usr/local/lib/python3.8/dist-packages (from ffmpeg-python) (0.16.0)\n",
+ "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
+ "Requirement already satisfied: einops in /usr/local/lib/python3.8/dist-packages (0.6.0)\n",
+ "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
+ "Collecting open-clip-torch\n",
+ " Using cached open_clip_torch-2.9.3-py3-none-any.whl (1.4 MB)\n",
+ "Collecting ftfy\n",
+ " Downloading ftfy-6.1.1-py3-none-any.whl (53 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m53.1/53.1 KB\u001b[0m \u001b[31m3.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: torch>=1.9.0 in /usr/local/lib/python3.8/dist-packages (from open-clip-torch) (1.13.0+cu116)\n",
+ "Requirement already satisfied: huggingface-hub in /usr/local/lib/python3.8/dist-packages (from open-clip-torch) (0.11.1)\n",
+ "Requirement already satisfied: regex in /usr/local/lib/python3.8/dist-packages (from open-clip-torch) (2022.6.2)\n",
+ "Collecting sentencepiece\n",
+ " Downloading sentencepiece-0.1.97-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m23.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: tqdm in /usr/local/lib/python3.8/dist-packages (from open-clip-torch) (4.64.1)\n",
+ "Requirement already satisfied: torchvision in /usr/local/lib/python3.8/dist-packages (from open-clip-torch) (0.14.0+cu116)\n",
+ "Collecting protobuf==3.20.*\n",
+ " Downloading protobuf-3.20.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.0 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.0/1.0 MB\u001b[0m \u001b[31m55.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: typing-extensions in /usr/local/lib/python3.8/dist-packages (from torch>=1.9.0->open-clip-torch) (4.4.0)\n",
+ "Requirement already satisfied: wcwidth>=0.2.5 in /usr/local/lib/python3.8/dist-packages (from ftfy->open-clip-torch) (0.2.5)\n",
+ "Requirement already satisfied: packaging>=20.9 in /usr/local/lib/python3.8/dist-packages (from huggingface-hub->open-clip-torch) (21.3)\n",
+ "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.8/dist-packages (from huggingface-hub->open-clip-torch) (6.0)\n",
+ "Requirement already satisfied: filelock in /usr/local/lib/python3.8/dist-packages (from huggingface-hub->open-clip-torch) (3.9.0)\n",
+ "Requirement already satisfied: requests in /usr/local/lib/python3.8/dist-packages (from huggingface-hub->open-clip-torch) (2.25.1)\n",
+ "Requirement already satisfied: numpy in /usr/local/lib/python3.8/dist-packages (from torchvision->open-clip-torch) (1.21.6)\n",
+ "Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /usr/local/lib/python3.8/dist-packages (from torchvision->open-clip-torch) (7.1.2)\n",
+ "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.8/dist-packages (from packaging>=20.9->huggingface-hub->open-clip-torch) (3.0.9)\n",
+ "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests->huggingface-hub->open-clip-torch) (2.10)\n",
+ "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests->huggingface-hub->open-clip-torch) (1.24.3)\n",
+ "Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests->huggingface-hub->open-clip-torch) (4.0.0)\n",
+ "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests->huggingface-hub->open-clip-torch) (2022.12.7)\n",
+ "Installing collected packages: sentencepiece, protobuf, ftfy, open-clip-torch\n",
+ " Attempting uninstall: protobuf\n",
+ " Found existing installation: protobuf 3.19.6\n",
+ " Uninstalling protobuf-3.19.6:\n",
+ " Successfully uninstalled protobuf-3.19.6\n",
+ "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
+ "tensorflow 2.9.2 requires protobuf<3.20,>=3.9.2, but you have protobuf 3.20.3 which is incompatible.\n",
+ "tensorboardx 2.5.1 requires protobuf<=3.20.1,>=3.8.0, but you have protobuf 3.20.3 which is incompatible.\n",
+ "tensorboard 2.9.1 requires protobuf<3.20,>=3.9.2, but you have protobuf 3.20.3 which is incompatible.\u001b[0m\u001b[31m\n",
+ "\u001b[0mSuccessfully installed ftfy-6.1.1 open-clip-torch-2.9.3 protobuf-3.20.3 sentencepiece-0.1.97\n",
+ "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
+ "Collecting gradio\n",
+ " Using cached gradio-3.16.1-py3-none-any.whl (14.2 MB)\n",
+ "Requirement already satisfied: numpy in /usr/local/lib/python3.8/dist-packages (from gradio) (1.21.6)\n",
+ "Collecting python-multipart\n",
+ " Downloading python-multipart-0.0.5.tar.gz (32 kB)\n",
+ " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
+ "Requirement already satisfied: pillow in /usr/local/lib/python3.8/dist-packages (from gradio) (7.1.2)\n",
+ "Requirement already satisfied: altair>=4.2.0 in /usr/local/lib/python3.8/dist-packages (from gradio) (4.2.0)\n",
+ "Collecting httpx\n",
+ " Using cached httpx-0.23.3-py3-none-any.whl (71 kB)\n",
+ "Requirement already satisfied: fsspec in /usr/local/lib/python3.8/dist-packages (from gradio) (2022.11.0)\n",
+ "Collecting orjson\n",
+ " Downloading orjson-3.8.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (270 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m270.5/270.5 KB\u001b[0m \u001b[31m7.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: pyyaml in /usr/local/lib/python3.8/dist-packages (from gradio) (6.0)\n",
+ "Requirement already satisfied: requests in /usr/local/lib/python3.8/dist-packages (from gradio) (2.25.1)\n",
+ "Requirement already satisfied: matplotlib in /usr/local/lib/python3.8/dist-packages (from gradio) (3.2.2)\n",
+ "Requirement already satisfied: pydantic in /usr/local/lib/python3.8/dist-packages (from gradio) (1.10.4)\n",
+ "Collecting pydub\n",
+ " Downloading pydub-0.25.1-py2.py3-none-any.whl (32 kB)\n",
+ "Collecting websockets>=10.0\n",
+ " Using cached websockets-10.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (106 kB)\n",
+ "Collecting pycryptodome\n",
+ " Downloading pycryptodome-3.16.0-cp35-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.3 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.3/2.3 MB\u001b[0m \u001b[31m48.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: jinja2 in /usr/local/lib/python3.8/dist-packages (from gradio) (2.11.3)\n",
+ "Requirement already satisfied: markupsafe in /usr/local/lib/python3.8/dist-packages (from gradio) (2.0.1)\n",
+ "Collecting fastapi\n",
+ " Downloading fastapi-0.89.1-py3-none-any.whl (55 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m55.8/55.8 KB\u001b[0m \u001b[31m7.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hCollecting ffmpy\n",
+ " Downloading ffmpy-0.3.0.tar.gz (4.8 kB)\n",
+ " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
+ "Collecting uvicorn\n",
+ " Downloading uvicorn-0.20.0-py3-none-any.whl (56 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m56.9/56.9 KB\u001b[0m \u001b[31m5.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: aiohttp in /usr/local/lib/python3.8/dist-packages (from gradio) (3.8.3)\n",
+ "Requirement already satisfied: pandas in /usr/local/lib/python3.8/dist-packages (from gradio) (1.3.5)\n",
+ "Collecting markdown-it-py[linkify,plugins]\n",
+ " Using cached markdown_it_py-2.1.0-py3-none-any.whl (84 kB)\n",
+ "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.8/dist-packages (from gradio) (4.4.0)\n",
+ "Requirement already satisfied: entrypoints in /usr/local/lib/python3.8/dist-packages (from altair>=4.2.0->gradio) (0.4)\n",
+ "Requirement already satisfied: jsonschema>=3.0 in /usr/local/lib/python3.8/dist-packages (from altair>=4.2.0->gradio) (4.3.3)\n",
+ "Requirement already satisfied: toolz in /usr/local/lib/python3.8/dist-packages (from altair>=4.2.0->gradio) (0.12.0)\n",
+ "Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.8/dist-packages (from pandas->gradio) (2022.7)\n",
+ "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.8/dist-packages (from pandas->gradio) (2.8.2)\n",
+ "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.8/dist-packages (from aiohttp->gradio) (1.3.1)\n",
+ "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.8/dist-packages (from aiohttp->gradio) (4.0.2)\n",
+ "Requirement already satisfied: charset-normalizer<3.0,>=2.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->gradio) (2.1.1)\n",
+ "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.8/dist-packages (from aiohttp->gradio) (1.3.3)\n",
+ "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.8/dist-packages (from aiohttp->gradio) (6.0.4)\n",
+ "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->gradio) (22.2.0)\n",
+ "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->gradio) (1.8.2)\n",
+ "Collecting starlette==0.22.0\n",
+ " Downloading starlette-0.22.0-py3-none-any.whl (64 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m64.3/64.3 KB\u001b[0m \u001b[31m8.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hCollecting anyio<5,>=3.4.0\n",
+ " Downloading anyio-3.6.2-py3-none-any.whl (80 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m80.6/80.6 KB\u001b[0m \u001b[31m11.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hCollecting sniffio\n",
+ " Downloading sniffio-1.3.0-py3-none-any.whl (10 kB)\n",
+ "Requirement already satisfied: certifi in /usr/local/lib/python3.8/dist-packages (from httpx->gradio) (2022.12.7)\n",
+ "Collecting rfc3986[idna2008]<2,>=1.3\n",
+ " Downloading rfc3986-1.5.0-py2.py3-none-any.whl (31 kB)\n",
+ "Collecting httpcore<0.17.0,>=0.15.0\n",
+ " Downloading httpcore-0.16.3-py3-none-any.whl (69 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m69.6/69.6 KB\u001b[0m \u001b[31m9.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hCollecting mdurl~=0.1\n",
+ " Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)\n",
+ "Collecting mdit-py-plugins\n",
+ " Downloading mdit_py_plugins-0.3.3-py3-none-any.whl (50 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m50.5/50.5 KB\u001b[0m \u001b[31m6.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hCollecting linkify-it-py~=1.0\n",
+ " Downloading linkify_it_py-1.0.3-py3-none-any.whl (19 kB)\n",
+ "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.8/dist-packages (from matplotlib->gradio) (1.4.4)\n",
+ "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.8/dist-packages (from matplotlib->gradio) (0.11.0)\n",
+ "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.8/dist-packages (from matplotlib->gradio) (3.0.9)\n",
+ "Requirement already satisfied: six>=1.4.0 in /usr/local/lib/python3.8/dist-packages (from python-multipart->gradio) (1.15.0)\n",
+ "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests->gradio) (2.10)\n",
+ "Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests->gradio) (4.0.0)\n",
+ "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests->gradio) (1.24.3)\n",
+ "Requirement already satisfied: click>=7.0 in /usr/local/lib/python3.8/dist-packages (from uvicorn->gradio) (7.1.2)\n",
+ "Collecting h11>=0.8\n",
+ " Downloading h11-0.14.0-py3-none-any.whl (58 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.3/58.3 KB\u001b[0m \u001b[31m7.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: importlib-resources>=1.4.0 in /usr/local/lib/python3.8/dist-packages (from jsonschema>=3.0->altair>=4.2.0->gradio) (5.10.2)\n",
+ "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /usr/local/lib/python3.8/dist-packages (from jsonschema>=3.0->altair>=4.2.0->gradio) (0.19.3)\n",
+ "Collecting uc-micro-py\n",
+ " Downloading uc_micro_py-1.0.1-py3-none-any.whl (6.2 kB)\n",
+ "Requirement already satisfied: zipp>=3.1.0 in /usr/local/lib/python3.8/dist-packages (from importlib-resources>=1.4.0->jsonschema>=3.0->altair>=4.2.0->gradio) (3.11.0)\n",
+ "Building wheels for collected packages: ffmpy, python-multipart\n",
+ " Building wheel for ffmpy (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
+ " Created wheel for ffmpy: filename=ffmpy-0.3.0-py3-none-any.whl size=4711 sha256=82adb5a05896febb2e0f4309bfa6bc4a2e5ca3b030415afd9d8676cc4a7c7ae4\n",
+ " Stored in directory: /root/.cache/pip/wheels/ff/5b/59/913b443e7369dc04b61f607a746b6f7d83fb65e2e19fcc958d\n",
+ " Building wheel for python-multipart (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
+ " Created wheel for python-multipart: filename=python_multipart-0.0.5-py3-none-any.whl size=31678 sha256=337e866414b4cda885635ae14d369f3bfd215749e27dc7e4b7dcec7db43b1ff4\n",
+ " Stored in directory: /root/.cache/pip/wheels/9e/fc/1c/cf980e6413d3ee8e70cd8f39e2366b0f487e3e221aeb452eb0\n",
+ "Successfully built ffmpy python-multipart\n",
+ "Installing collected packages: rfc3986, pydub, ffmpy, websockets, uc-micro-py, sniffio, python-multipart, pycryptodome, orjson, mdurl, h11, uvicorn, markdown-it-py, linkify-it-py, anyio, starlette, mdit-py-plugins, httpcore, httpx, fastapi, gradio\n",
+ "Successfully installed anyio-3.6.2 fastapi-0.89.1 ffmpy-0.3.0 gradio-3.16.1 h11-0.14.0 httpcore-0.16.3 httpx-0.23.3 linkify-it-py-1.0.3 markdown-it-py-2.1.0 mdit-py-plugins-0.3.3 mdurl-0.1.2 orjson-3.8.5 pycryptodome-3.16.0 pydub-0.25.1 python-multipart-0.0.5 rfc3986-1.5.0 sniffio-1.3.0 starlette-0.22.0 uc-micro-py-1.0.1 uvicorn-0.20.0 websockets-10.4\n",
+ "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
+ "Requirement already satisfied: pytorch_lightning in /usr/local/lib/python3.8/dist-packages (1.8.6)\n",
+ "Requirement already satisfied: numpy>=1.17.2 in /usr/local/lib/python3.8/dist-packages (from pytorch_lightning) (1.21.6)\n",
+ "Requirement already satisfied: PyYAML>=5.4 in /usr/local/lib/python3.8/dist-packages (from pytorch_lightning) (6.0)\n",
+ "Requirement already satisfied: packaging>=17.0 in /usr/local/lib/python3.8/dist-packages (from pytorch_lightning) (21.3)\n",
+ "Requirement already satisfied: typing-extensions>=4.0.0 in /usr/local/lib/python3.8/dist-packages (from pytorch_lightning) (4.4.0)\n",
+ "Requirement already satisfied: torch>=1.9.0 in /usr/local/lib/python3.8/dist-packages (from pytorch_lightning) (1.12.1+cu113)\n",
+ "Requirement already satisfied: tqdm>=4.57.0 in /usr/local/lib/python3.8/dist-packages (from pytorch_lightning) (4.64.1)\n",
+ "Requirement already satisfied: torchmetrics>=0.7.0 in /usr/local/lib/python3.8/dist-packages (from pytorch_lightning) (0.11.0)\n",
+ "Requirement already satisfied: tensorboardX>=2.2 in /usr/local/lib/python3.8/dist-packages (from pytorch_lightning) (2.5.1)\n",
+ "Requirement already satisfied: fsspec[http]>2021.06.0 in /usr/local/lib/python3.8/dist-packages (from pytorch_lightning) (2022.11.0)\n",
+ "Requirement already satisfied: lightning-utilities!=0.4.0,>=0.3.0 in /usr/local/lib/python3.8/dist-packages (from pytorch_lightning) (0.5.0)\n",
+ "Requirement already satisfied: requests in /usr/local/lib/python3.8/dist-packages (from fsspec[http]>2021.06.0->pytorch_lightning) (2.25.1)\n",
+ "Requirement already satisfied: aiohttp!=4.0.0a0,!=4.0.0a1 in /usr/local/lib/python3.8/dist-packages (from fsspec[http]>2021.06.0->pytorch_lightning) (3.8.3)\n",
+ "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.8/dist-packages (from packaging>=17.0->pytorch_lightning) (3.0.9)\n",
+ "Collecting protobuf<=3.20.1,>=3.8.0\n",
+ " Downloading protobuf-3.20.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.0 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.0/1.0 MB\u001b[0m \u001b[31m17.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.8/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch_lightning) (1.3.1)\n",
+ "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.8/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch_lightning) (4.0.2)\n",
+ "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.8/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch_lightning) (6.0.4)\n",
+ "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch_lightning) (22.2.0)\n",
+ "Requirement already satisfied: charset-normalizer<3.0,>=2.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch_lightning) (2.1.1)\n",
+ "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.8/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch_lightning) (1.3.3)\n",
+ "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch_lightning) (1.8.2)\n",
+ "Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests->fsspec[http]>2021.06.0->pytorch_lightning) (4.0.0)\n",
+ "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests->fsspec[http]>2021.06.0->pytorch_lightning) (2022.12.7)\n",
+ "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests->fsspec[http]>2021.06.0->pytorch_lightning) (1.24.3)\n",
+ "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests->fsspec[http]>2021.06.0->pytorch_lightning) (2.10)\n",
+ "Installing collected packages: protobuf\n",
+ " Attempting uninstall: protobuf\n",
+ " Found existing installation: protobuf 3.20.3\n",
+ " Uninstalling protobuf-3.20.3:\n",
+ " Successfully uninstalled protobuf-3.20.3\n",
+ "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
+ "tensorflow 2.9.2 requires protobuf<3.20,>=3.9.2, but you have protobuf 3.20.1 which is incompatible.\n",
+ "tensorboard 2.9.1 requires protobuf<3.20,>=3.9.2, but you have protobuf 3.20.1 which is incompatible.\n",
+ "googleapis-common-protos 1.57.1 requires protobuf!=3.20.0,!=3.20.1,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.19.5, but you have protobuf 3.20.1 which is incompatible.\n",
+ "google-cloud-translate 3.8.4 requires protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.19.5, but you have protobuf 3.20.1 which is incompatible.\n",
+ "google-cloud-language 2.6.1 requires protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.19.5, but you have protobuf 3.20.1 which is incompatible.\n",
+ "google-cloud-firestore 2.7.3 requires protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.19.5, but you have protobuf 3.20.1 which is incompatible.\n",
+ "google-cloud-datastore 2.11.1 requires protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.19.5, but you have protobuf 3.20.1 which is incompatible.\n",
+ "google-cloud-bigquery 3.4.1 requires protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.19.5, but you have protobuf 3.20.1 which is incompatible.\n",
+ "google-cloud-bigquery-storage 2.17.0 requires protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.19.5, but you have protobuf 3.20.1 which is incompatible.\n",
+ "google-api-core 2.11.0 requires protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.19.5, but you have protobuf 3.20.1 which is incompatible.\u001b[0m\u001b[31m\n",
+ "\u001b[0mSuccessfully installed protobuf-3.20.1\n",
+ "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
+ "Requirement already satisfied: transformers in /usr/local/lib/python3.8/dist-packages (4.25.1)\n",
+ "Requirement already satisfied: requests in /usr/local/lib/python3.8/dist-packages (from transformers) (2.25.1)\n",
+ "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.8/dist-packages (from transformers) (6.0)\n",
+ "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (1.21.6)\n",
+ "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.8/dist-packages (from transformers) (4.64.1)\n",
+ "Requirement already satisfied: filelock in /usr/local/lib/python3.8/dist-packages (from transformers) (3.9.0)\n",
+ "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.8/dist-packages (from transformers) (21.3)\n",
+ "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (2022.6.2)\n",
+ "Requirement already satisfied: huggingface-hub<1.0,>=0.10.0 in /usr/local/lib/python3.8/dist-packages (from transformers) (0.11.1)\n",
+ "Requirement already satisfied: tokenizers!=0.11.3,<0.14,>=0.11.1 in /usr/local/lib/python3.8/dist-packages (from transformers) (0.13.2)\n",
+ "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.8/dist-packages (from huggingface-hub<1.0,>=0.10.0->transformers) (4.4.0)\n",
+ "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.8/dist-packages (from packaging>=20.0->transformers) (3.0.9)\n",
+ "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2.10)\n",
+ "Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (4.0.0)\n",
+ "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (1.24.3)\n",
+ "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2022.12.7)\n",
+ "Cloning into 'latentblending'...\n",
+ "remote: Enumerating objects: 492, done.\u001b[K\n",
+ "remote: Counting objects: 100% (12/12), done.\u001b[K\n",
+ "remote: Compressing objects: 100% (9/9), done.\u001b[K\n",
+ "remote: Total 492 (delta 8), reused 3 (delta 3), pack-reused 480\u001b[K\n",
+ "Receiving objects: 100% (492/492), 8.31 MiB | 38.32 MiB/s, done.\n",
+ "Resolving deltas: 100% (285/285), done.\n",
+ "Already up to date.\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "/usr/local/lib/python3.8/dist-packages/pytorch_lightning/utilities/distributed.py:258: LightningDeprecationWarning: `pytorch_lightning.utilities.distributed.rank_zero_only` has been deprecated in v1.8.1 and will be removed in v1.10.0. You can import it from `pytorch_lightning.utilities` instead.\n",
+ " rank_zero_deprecation(\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "--2023-01-14 11:34:36-- https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.ckpt\n",
+ "Resolving huggingface.co (huggingface.co)... 54.235.118.239, 3.231.67.228, 54.144.222.129, ...\n",
+ "Connecting to huggingface.co (huggingface.co)|54.235.118.239|:443... connected.\n",
+ "HTTP request sent, awaiting response... 302 Found\n",
+ "Location: https://cdn-lfs.huggingface.co/repos/24/cb/24cbc2f7542236eb613b4f16b6802d7c2bef443e86cf9d076719733866e66c3a/88ecb782561455673c4b78d05093494b9c539fc6bfc08f3a9a4a0dd7b0b10f36?response-content-disposition=attachment%3B%20filename%3D%22v2-1_512-ema-pruned.ckpt%22&Expires=1673954879&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9jZG4tbGZzLmh1Z2dpbmdmYWNlLmNvL3JlcG9zLzI0L2NiLzI0Y2JjMmY3NTQyMjM2ZWI2MTNiNGYxNmI2ODAyZDdjMmJlZjQ0M2U4NmNmOWQwNzY3MTk3MzM4NjZlNjZjM2EvODhlY2I3ODI1NjE0NTU2NzNjNGI3OGQwNTA5MzQ5NGI5YzUzOWZjNmJmYzA4ZjNhOWE0YTBkZDdiMGIxMGYzNj9yZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uPWF0dGFjaG1lbnQlM0IlMjBmaWxlbmFtZSUzRCUyMnYyLTFfNTEyLWVtYS1wcnVuZWQuY2twdCUyMiIsIkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTY3Mzk1NDg3OX19fV19&Signature=CQIu0p7KF1XEDsbXzzHKiKRBJl3js3tFBB7V8jHjRr8ZOdd941V4Q~8-FxaQvBwQBixQuUmZHdV41lz4eAwXUGq20iekgjpSYTt2-am3UxJMLqJ1HxWrFDxQuFZKapqJex6yNcPyXoBCXSz2q~Rmvyjrw2qrKcarYmJ2cOTGVGLxH2kf1SDB3g2O3rvRGN2IgYnwjU5f-5CnB5kR-tOFdOj~rYrhFHwirnWIYFSRQ37UMmRG60jNCOQcMhMKckFCfAfXD8F-DYucRwzJx3LzJ4gwgX10NQTQDU-U6~tKTSqtXNVL6MPa-DyyGJpCji4elKtFEmzCjHgY7P837IM4gA__&Key-Pair-Id=KVTP0A1DKRTAX [following]\n",
+ "--2023-01-14 11:34:36-- https://cdn-lfs.huggingface.co/repos/24/cb/24cbc2f7542236eb613b4f16b6802d7c2bef443e86cf9d076719733866e66c3a/88ecb782561455673c4b78d05093494b9c539fc6bfc08f3a9a4a0dd7b0b10f36?response-content-disposition=attachment%3B%20filename%3D%22v2-1_512-ema-pruned.ckpt%22&Expires=1673954879&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9jZG4tbGZzLmh1Z2dpbmdmYWNlLmNvL3JlcG9zLzI0L2NiLzI0Y2JjMmY3NTQyMjM2ZWI2MTNiNGYxNmI2ODAyZDdjMmJlZjQ0M2U4NmNmOWQwNzY3MTk3MzM4NjZlNjZjM2EvODhlY2I3ODI1NjE0NTU2NzNjNGI3OGQwNTA5MzQ5NGI5YzUzOWZjNmJmYzA4ZjNhOWE0YTBkZDdiMGIxMGYzNj9yZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uPWF0dGFjaG1lbnQlM0IlMjBmaWxlbmFtZSUzRCUyMnYyLTFfNTEyLWVtYS1wcnVuZWQuY2twdCUyMiIsIkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTY3Mzk1NDg3OX19fV19&Signature=CQIu0p7KF1XEDsbXzzHKiKRBJl3js3tFBB7V8jHjRr8ZOdd941V4Q~8-FxaQvBwQBixQuUmZHdV41lz4eAwXUGq20iekgjpSYTt2-am3UxJMLqJ1HxWrFDxQuFZKapqJex6yNcPyXoBCXSz2q~Rmvyjrw2qrKcarYmJ2cOTGVGLxH2kf1SDB3g2O3rvRGN2IgYnwjU5f-5CnB5kR-tOFdOj~rYrhFHwirnWIYFSRQ37UMmRG60jNCOQcMhMKckFCfAfXD8F-DYucRwzJx3LzJ4gwgX10NQTQDU-U6~tKTSqtXNVL6MPa-DyyGJpCji4elKtFEmzCjHgY7P837IM4gA__&Key-Pair-Id=KVTP0A1DKRTAX\n",
+ "Resolving cdn-lfs.huggingface.co (cdn-lfs.huggingface.co)... 108.156.83.35, 108.156.83.76, 108.156.83.97, ...\n",
+ "Connecting to cdn-lfs.huggingface.co (cdn-lfs.huggingface.co)|108.156.83.35|:443... connected.\n",
+ "HTTP request sent, awaiting response... 200 OK\n",
+ "Length: 5214865159 (4.9G) [binary/octet-stream]\n",
+ "Saving to: ‘v2-1_512-ema-pruned.ckpt’\n",
+ "\n",
+ "v2-1_512-ema-pruned 100%[===================>] 4.86G 152MB/s in 33s \n",
+ "\n",
+ "2023-01-14 11:35:10 (151 MB/s) - ‘v2-1_512-ema-pruned.ckpt’ saved [5214865159/5214865159]\n",
+ "\n",
+ "--2023-01-14 11:35:10-- http://v2-1_512-ema-pruned.ckpt/\n",
+ "Resolving v2-1_512-ema-pruned.ckpt (v2-1_512-ema-pruned.ckpt)... failed: Name or service not known.\n",
+ "wget: unable to resolve host address ‘v2-1_512-ema-pruned.ckpt’\n",
+ "FINISHED --2023-01-14 11:35:10--\n",
+ "Total wall clock time: 33s\n",
+ "Downloaded: 1 files, 4.9G in 33s (151 MB/s)\n",
+ "LatentDiffusion: Running in eps-prediction mode\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is None and using 5 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is 1024 and using 5 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is None and using 5 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is 1024 and using 5 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is None and using 10 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is 1024 and using 10 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is None and using 10 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is 1024 and using 10 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is None and using 20 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is 1024 and using 20 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is None and using 20 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is 1024 and using 20 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is None and using 20 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is 1024 and using 20 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is None and using 20 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is 1024 and using 20 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is None and using 20 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is 1024 and using 20 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is None and using 20 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 1280, context_dim is 1024 and using 20 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is None and using 10 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is 1024 and using 10 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is None and using 10 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is 1024 and using 10 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is None and using 10 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 640, context_dim is 1024 and using 10 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is None and using 5 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is 1024 and using 5 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is None and using 5 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is 1024 and using 5 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is None and using 5 heads.\n",
+ "Setting up MemoryEfficientCrossAttention. Query dim is 320, context_dim is 1024 and using 5 heads.\n",
+ "DiffusionWrapper has 865.91 M params.\n",
+ "making attention of type 'vanilla-xformers' with 512 in_channels\n",
+ "building MemoryEfficientAttnBlock with 512 in_channels...\n",
+ "Working with z of shape (1, 4, 32, 32) = 4096 dimensions.\n",
+ "making attention of type 'vanilla-xformers' with 512 in_channels\n",
+ "building MemoryEfficientAttnBlock with 512 in_channels...\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ "Downloading: 0%| | 0.00/3.94G [00:00, ?B/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "495e49b365db4a63b0a6c0c1a18618f1"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Colab notebook detected. This cell will run indefinitely so that you can see errors and logs. To turn off, set debug=False in launch().\n",
+ "Running on public URL: https://be577a0c-1c52-4507.gradio.live\n",
+ "\n",
+ "This share link expires in 72 hours. For free permanent hosting and GPU upgrades (NEW!), check out Spaces: https://huggingface.co/spaces\n",
+ "STARTING DIFFUSION!\n",
+ "autosetup_branching: num_inference_steps: 20 list_nmb_branches: [2, 3, 5, 9] list_injection_idx: [0, 5, 11, 17]\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ "computing transition: 0%| | 0/21 [00:00, ?it/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "1eff4f1734224561a746267c4290620f"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "DONE DIFFUSION! Resulted in 9 images\n",
+ "save is called!\n",
+ "MovieSaver initialized. fps=30 crf=24 pix_fmt=yuv420p codec=libx264 preset=fast\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " 0%| | 0/300 [00:00, ?it/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "1eb11001041144859375d5feb1b4c5bc"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Initialization done. Movie shape: (512, 512, 3)\n",
+ "Movie saved, 10s playtime, watch here: \n",
+ "movie_230114_114003.mp4\n"
+ ]
+ }
+ ],
+ "source": [
+ "#@title\n",
+ "# installs\n",
+ "!pip install omegaconf\n",
+ "!pip install fastcore -U\n",
+ "!pip install Pillow\n",
+ "!pip install ffmpeg-python\n",
+ "!pip install einops\n",
+ "\n",
+ "!pip install open-clip-torch\n",
+ "!pip install gradio\n",
+ "\n",
+ "import os\n",
+ "from subprocess import getoutput\n",
+ "\n",
+ "os.system(\"pip install --extra-index-url https://download.pytorch.org/whl/cu113 torch torchvision==0.13.1+cu113\")\n",
+ "os.system(\"pip install triton==2.0.0.dev20220701\")\n",
+ "gpu_info = getoutput('nvidia-smi')\n",
+ "if(\"A10G\" in gpu_info):\n",
+ " os.system(f\"pip install -q https://github.com/camenduru/stable-diffusion-webui-colab/releases/download/0.0.15/xformers-0.0.15.dev0+4c06c79.d20221205-cp38-cp38-linux_x86_64.whl\")\n",
+ "elif(\"T4\" in gpu_info):\n",
+ " os.system(f\"pip install -q https://github.com/camenduru/stable-diffusion-webui-colab/releases/download/0.0.15/xformers-0.0.15.dev0+1515f77.d20221130-cp38-cp38-linux_x86_64.whl\")\n",
+ "\n",
+ "!pip install pytorch_lightning\n",
+ "!pip install transformers\n",
+ "\n",
+ "# git\n",
+ "!git clone https://github.com/lunarring/latentblending\n",
+ "!cd latentblending; git pull; cd ..\n",
+ "\n",
+ "\n",
+ "\n",
+ "import sys\n",
+ "sys.path.append(\"/content/latentblending\")\n",
+ "import torch\n",
+ "torch.backends.cudnn.benchmark = False\n",
+ "import numpy as np\n",
+ "import warnings\n",
+ "warnings.filterwarnings('ignore')\n",
+ "import warnings\n",
+ "import torch\n",
+ "from tqdm.auto import tqdm\n",
+ "from PIL import Image\n",
+ "# import matplotlib.pyplot as plt\n",
+ "import torch\n",
+ "from movie_util import MovieSaver\n",
+ "from typing import Callable, List, Optional, Union\n",
+ "from latent_blending import LatentBlending, add_frames_linear_interp\n",
+ "from stable_diffusion_holder import StableDiffusionHolder\n",
+ "torch.set_grad_enabled(False)\n",
+ "\n",
+ "\n",
+ "#%% First let us spawn a stable diffusion holder\n",
+ "device = \"cuda\" \n",
+ "\n",
+ "# ckpt download\n",
+ "if not os.path.isfile('v2-1_512-ema-pruned.ckpt'):\n",
+ " !wget https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.ckpt v2-1_512-ema-pruned.ckpt\n",
+ "\n",
+ "fp_ckpt = \"v2-1_512-ema-pruned.ckpt\"\n",
+ "fp_config = 'latentblending/configs/v2-inference.yaml'\n",
+ "\n",
+ "sdh = StableDiffusionHolder(fp_ckpt, fp_config, device) \n",
+ "\n",
+ "from latent_blending import get_time, yml_save, LatentBlending, add_frames_linear_interp, compare_dicts\n",
+ "from gradio_ui import BlendingFrontend\n",
+ "\n",
+ "import gradio as gr\n",
+ "\n",
+ "if __name__ == \"__main__\": \n",
+ " \n",
+ " self = BlendingFrontend(sdh)\n",
+ " \n",
+ " with gr.Blocks() as demo:\n",
+ " \n",
+ " with gr.Row():\n",
+ " prompt1 = gr.Textbox(label=\"prompt 1\")\n",
+ " prompt2 = gr.Textbox(label=\"prompt 2\")\n",
+ " negative_prompt = gr.Textbox(label=\"negative prompt\") \n",
+ " \n",
+ " with gr.Row():\n",
+ " nmb_branches_final = gr.Slider(5, 125, self.nmb_branches_final, step=4, label='nmb trans images', interactive=True) \n",
+ " height = gr.Slider(256, 2048, self.height, step=128, label='height', interactive=True)\n",
+ " width = gr.Slider(256, 2048, self.width, step=128, label='width', interactive=True) \n",
+ " \n",
+ " with gr.Row():\n",
+ " num_inference_steps = gr.Slider(5, 100, self.num_inference_steps, step=1, label='num_inference_steps', interactive=True)\n",
+ " branch1_influence = gr.Slider(0.0, 1.0, self.branch1_influence, step=0.01, label='branch1_influence', interactive=True) \n",
+ " guidance_scale = gr.Slider(1, 25, self.guidance_scale, step=0.1, label='guidance_scale', interactive=True) \n",
+ " \n",
+ " with gr.Row():\n",
+ " depth_strength = gr.Slider(0.01, 0.99, self.depth_strength, step=0.01, label='depth_strength', interactive=True) \n",
+ " guidance_scale_mid_damper = gr.Slider(0.01, 2.0, self.guidance_scale_mid_damper, step=0.01, label='guidance_scale_mid_damper', interactive=True) \n",
+ " mid_compression_scaler = gr.Slider(1.0, 2.0, self.mid_compression_scaler, step=0.01, label='mid_compression_scaler', interactive=True) \n",
+ " \n",
+ " with gr.Row():\n",
+ " b_newseed1 = gr.Button(\"rand seed 1\")\n",
+ " seed1 = gr.Number(42, label=\"seed 1\", interactive=True)\n",
+ " b_newseed2 = gr.Button(\"rand seed 2\")\n",
+ " seed2 = gr.Number(420, label=\"seed 2\", interactive=True)\n",
+ " \n",
+ " with gr.Row():\n",
+ " b_run = gr.Button('step1: run preview')\n",
+ " \n",
+ " with gr.Row():\n",
+ " img1 = gr.Image(label=\"1/5\")\n",
+ " img2 = gr.Image(label=\"2/5\")\n",
+ " img3 = gr.Image(label=\"3/5\")\n",
+ " img4 = gr.Image(label=\"4/5\")\n",
+ " img5 = gr.Image(label=\"5/5\")\n",
+ " \n",
+ " with gr.Row():\n",
+ " b_save = gr.Button('step2: render video')\n",
+ " vid = gr.Video()\n",
+ " \n",
+ " with gr.Row():\n",
+ " duration = gr.Slider(0.1, 30, self.duration, step=0.1, label='duration', interactive=True) \n",
+ " fps = gr.Slider(1, 120, self.fps, step=1, label='fps', interactive=True)\n",
+ " \n",
+ " # Bind the on-change methods\n",
+ " depth_strength.change(fn=self.change_depth_strength, inputs=depth_strength)\n",
+ " num_inference_steps.change(fn=self.change_num_inference_steps, inputs=num_inference_steps)\n",
+ " nmb_branches_final.change(fn=self.change_nmb_branches_final, inputs=nmb_branches_final)\n",
+ " \n",
+ " guidance_scale.change(fn=self.change_guidance_scale, inputs=guidance_scale)\n",
+ " guidance_scale_mid_damper.change(fn=self.change_guidance_scale_mid_damper, inputs=guidance_scale_mid_damper)\n",
+ " mid_compression_scaler.change(fn=self.change_mid_compression_scaler, inputs=mid_compression_scaler)\n",
+ " \n",
+ " height.change(fn=self.change_height, inputs=height)\n",
+ " width.change(fn=self.change_width, inputs=width)\n",
+ " prompt1.change(fn=self.change_prompt1, inputs=prompt1)\n",
+ " prompt2.change(fn=self.change_prompt2, inputs=prompt2)\n",
+ " negative_prompt.change(fn=self.change_negative_prompt, inputs=negative_prompt)\n",
+ " seed1.change(fn=self.change_seed1, inputs=seed1)\n",
+ " seed2.change(fn=self.change_seed2, inputs=seed2)\n",
+ " fps.change(fn=self.change_fps, inputs=fps)\n",
+ " duration.change(fn=self.change_duration, inputs=duration)\n",
+ " branch1_influence.change(fn=self.change_branch1_influence, inputs=branch1_influence)\n",
+ " \n",
+ " b_newseed1.click(self.randomize_seed1, outputs=seed1)\n",
+ " b_newseed2.click(self.randomize_seed2, outputs=seed2)\n",
+ " b_run.click(self.run, outputs=[img1, img2, img3, img4, img5])\n",
+ " b_save.click(self.save, outputs=vid)\n",
+ " \n",
+ " demo.launch(share=self.share, inbrowser=True, debug=True, inline=False)\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "accelerator": "GPU",
+ "colab": {
+ "machine_shape": "hm",
+ "provenance": []
+ },
+ "gpuClass": "standard",
"kernelspec": {
- "name": "python3",
- "display_name": "Python 3"
+ "display_name": "Python 3",
+ "name": "python3"
},
"language_info": {
"name": "python"
},
- "accelerator": "GPU",
- "gpuClass": "premium",
"widgets": {
"application/vnd.jupyter.widget-state+json": {
- "06b88ddd7a7f4f219d5143d558445a59": {
+ "495e49b365db4a63b0a6c0c1a18618f1": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
@@ -32,14 +624,14 @@
"_view_name": "HBoxView",
"box_style": "",
"children": [
- "IPY_MODEL_2336c0a991d54ae0b72e442f8c3bc067",
- "IPY_MODEL_d723ed8d752a44a08f34ad381868953c",
- "IPY_MODEL_a69dab4944924df09bd4530b1fada113"
+ "IPY_MODEL_0937bb0a42a04cf2a699cd0dfdb08f58",
+ "IPY_MODEL_3cd77f4970ca4383af3793a0def99548",
+ "IPY_MODEL_90f146b625824594bafaa2c34a985c53"
],
- "layout": "IPY_MODEL_7dd38b2a3c284e2f8f625518dbb04997"
+ "layout": "IPY_MODEL_23a8dffdfdf54dce87c1b0d06c215a19"
}
},
- "2336c0a991d54ae0b72e442f8c3bc067": {
+ "0937bb0a42a04cf2a699cd0dfdb08f58": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -54,13 +646,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_e6b528ece6e1408789d9e4068899ebed",
+ "layout": "IPY_MODEL_f274a85e13ea4af89d6cca1ca94a2d5f",
"placeholder": "",
- "style": "IPY_MODEL_dc06126b67ff41938640057d9d78256a",
+ "style": "IPY_MODEL_7393e0648acb43a995b7ef7f0bb0daaf",
"value": "Downloading: 100%"
}
},
- "d723ed8d752a44a08f34ad381868953c": {
+ "3cd77f4970ca4383af3793a0def99548": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
@@ -76,15 +668,15 @@
"bar_style": "success",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_04fc6526cff845edb45ed39294a71df6",
+ "layout": "IPY_MODEL_40b1274ad4124a73ac681528e2a693ad",
"max": 3944692325,
"min": 0,
"orientation": "horizontal",
- "style": "IPY_MODEL_3d8dc5a7af6144c29bfda78080ed83a4",
+ "style": "IPY_MODEL_a24ef8d929bd49469975a60630134ab3",
"value": 3944692325
}
},
- "a69dab4944924df09bd4530b1fada113": {
+ "90f146b625824594bafaa2c34a985c53": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -99,13 +691,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_aaa1e7f1ce32409982c2d8746c234083",
+ "layout": "IPY_MODEL_cd09423a3d4b48f1ac9c9b618e64d233",
"placeholder": "",
- "style": "IPY_MODEL_1ca4f73e2a5d4954b03844c18d0b4db4",
- "value": " 3.94G/3.94G [00:54<00:00, 74.9MB/s]"
+ "style": "IPY_MODEL_74033ca88c5d4a6a8c3cb9ad739aca97",
+ "value": " 3.94G/3.94G [00:55<00:00, 83.3MB/s]"
}
},
- "7dd38b2a3c284e2f8f625518dbb04997": {
+ "23a8dffdfdf54dce87c1b0d06c215a19": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -157,7 +749,7 @@
"width": null
}
},
- "e6b528ece6e1408789d9e4068899ebed": {
+ "f274a85e13ea4af89d6cca1ca94a2d5f": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -209,7 +801,7 @@
"width": null
}
},
- "dc06126b67ff41938640057d9d78256a": {
+ "7393e0648acb43a995b7ef7f0bb0daaf": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -224,7 +816,7 @@
"description_width": ""
}
},
- "04fc6526cff845edb45ed39294a71df6": {
+ "40b1274ad4124a73ac681528e2a693ad": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -276,7 +868,7 @@
"width": null
}
},
- "3d8dc5a7af6144c29bfda78080ed83a4": {
+ "a24ef8d929bd49469975a60630134ab3": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
@@ -292,7 +884,7 @@
"description_width": ""
}
},
- "aaa1e7f1ce32409982c2d8746c234083": {
+ "cd09423a3d4b48f1ac9c9b618e64d233": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -344,7 +936,7 @@
"width": null
}
},
- "1ca4f73e2a5d4954b03844c18d0b4db4": {
+ "74033ca88c5d4a6a8c3cb9ad739aca97": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -359,7 +951,7 @@
"description_width": ""
}
},
- "4d23377adc3b4ea4a1d713f832ea1f58": {
+ "1eff4f1734224561a746267c4290620f": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
@@ -374,14 +966,14 @@
"_view_name": "HBoxView",
"box_style": "",
"children": [
- "IPY_MODEL_7aba7fbd76134c8b8fc18a16a492df56",
- "IPY_MODEL_d69c1b35735d452c9691ef53a240ea91",
- "IPY_MODEL_dc0c1075746946189a4af37e0bdbee93"
+ "IPY_MODEL_08d99a48efd14c1e9423eeb269f12d9a",
+ "IPY_MODEL_e541fae739584cc3b9bbbf490f8fa2cb",
+ "IPY_MODEL_e36754be14a6467e8afb564c87a53d51"
],
- "layout": "IPY_MODEL_3b1b50d04a5e4c629687def09ab84cb8"
+ "layout": "IPY_MODEL_93fe3baa643548b185cc1bcb7e3945d8"
}
},
- "7aba7fbd76134c8b8fc18a16a492df56": {
+ "08d99a48efd14c1e9423eeb269f12d9a": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -396,13 +988,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_48dd7695d798418da65858cd623310af",
+ "layout": "IPY_MODEL_f3acd617d38740c480bc5d7470da1695",
"placeholder": "",
- "style": "IPY_MODEL_07182046b1ba48deba029ebe6e3ef220",
+ "style": "IPY_MODEL_ba4336f6577c45bea4af940ea08b57d1",
"value": "computing transition: 100%"
}
},
- "d69c1b35735d452c9691ef53a240ea91": {
+ "e541fae739584cc3b9bbbf490f8fa2cb": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
@@ -418,15 +1010,15 @@
"bar_style": "success",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_aad1cb753ffd4abfa21db47798410820",
- "max": 11,
+ "layout": "IPY_MODEL_86554816cf7c4012bf702c7d833ec685",
+ "max": 21,
"min": 0,
"orientation": "horizontal",
- "style": "IPY_MODEL_478e72ecc1ac43e9a91b4b0e6c0242af",
- "value": 11
+ "style": "IPY_MODEL_3e6d15c0a3cb431a80fe7448620af0bc",
+ "value": 21
}
},
- "dc0c1075746946189a4af37e0bdbee93": {
+ "e36754be14a6467e8afb564c87a53d51": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -441,13 +1033,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_ce729b0d535142df9c7265c32fc4bc3b",
+ "layout": "IPY_MODEL_2eda918e13284c4c9afd7f167cf4af56",
"placeholder": "",
- "style": "IPY_MODEL_5d47c099526e4c60adedf7a43bf35efc",
- "value": " 11/11 [00:09<00:00, 1.13it/s]"
+ "style": "IPY_MODEL_4f0061c718f847b29b29a20388fab641",
+ "value": " 21/21 [00:25<00:00, 1.19s/it]"
}
},
- "3b1b50d04a5e4c629687def09ab84cb8": {
+ "93fe3baa643548b185cc1bcb7e3945d8": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -499,7 +1091,7 @@
"width": null
}
},
- "48dd7695d798418da65858cd623310af": {
+ "f3acd617d38740c480bc5d7470da1695": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -551,7 +1143,7 @@
"width": null
}
},
- "07182046b1ba48deba029ebe6e3ef220": {
+ "ba4336f6577c45bea4af940ea08b57d1": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -566,7 +1158,7 @@
"description_width": ""
}
},
- "aad1cb753ffd4abfa21db47798410820": {
+ "86554816cf7c4012bf702c7d833ec685": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -618,7 +1210,7 @@
"width": null
}
},
- "478e72ecc1ac43e9a91b4b0e6c0242af": {
+ "3e6d15c0a3cb431a80fe7448620af0bc": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
@@ -634,7 +1226,7 @@
"description_width": ""
}
},
- "ce729b0d535142df9c7265c32fc4bc3b": {
+ "2eda918e13284c4c9afd7f167cf4af56": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -686,7 +1278,349 @@
"width": null
}
},
- "5d47c099526e4c60adedf7a43bf35efc": {
+ "4f0061c718f847b29b29a20388fab641": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "1eb11001041144859375d5feb1b4c5bc": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HBoxModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_61236e7b09954ae8ba0e575cc9f345e9",
+ "IPY_MODEL_15e76ca9be0d4f7484eba56d5a22a6ee",
+ "IPY_MODEL_2f09ee0caddb4a9d94a8616fc99607a5"
+ ],
+ "layout": "IPY_MODEL_283eae336370485181bd8ea172debc9a"
+ }
+ },
+ "61236e7b09954ae8ba0e575cc9f345e9": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_51385d57b85d4440ada34a57f3bd945a",
+ "placeholder": "",
+ "style": "IPY_MODEL_5e3576e621584100ae7f8746cbcdf75c",
+ "value": "100%"
+ }
+ },
+ "15e76ca9be0d4f7484eba56d5a22a6ee": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "FloatProgressModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "FloatProgressModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "ProgressView",
+ "bar_style": "success",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_ab6d9d0cf3204fc9bf94e23b2ce22256",
+ "max": 300,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_baae00db06d1497eab6e1b5acda26c56",
+ "value": 300
+ }
+ },
+ "2f09ee0caddb4a9d94a8616fc99607a5": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_7e77f56335944b30a408cdd2b6a7420b",
+ "placeholder": "",
+ "style": "IPY_MODEL_08ccfb2c004a46a995723d6e6395b345",
+ "value": " 300/300 [00:03<00:00, 139.77it/s]"
+ }
+ },
+ "283eae336370485181bd8ea172debc9a": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "51385d57b85d4440ada34a57f3bd945a": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "5e3576e621584100ae7f8746cbcdf75c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "ab6d9d0cf3204fc9bf94e23b2ce22256": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "baae00db06d1497eab6e1b5acda26c56": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "ProgressStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "ProgressStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "bar_color": null,
+ "description_width": ""
+ }
+ },
+ "7e77f56335944b30a408cdd2b6a7420b": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "08ccfb2c004a46a995723d6e6395b345": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -704,294 +1638,6 @@
}
}
},
- "cells": [
- {
- "cell_type": "code",
- "source": [
- "#@markdown # **Latent Blending Repository Download**\n",
- "#@markdown ----\n",
- "!git clone https://github.com/lunarring/latentblending.git\n",
- "%cd latentblending"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "xOrehLq4KX8y",
- "outputId": "4148ea80-f815-4aeb-95ec-f4737599b895"
- },
- "execution_count": null,
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "/content/latentblending\n"
- ]
- }
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "#@markdown # **Install Dependencies**\n",
- "#@markdown ----\n",
- "!pip install -r requirements.txt --quiet\n",
- "!pip install -e . --quiet"
- ],
- "metadata": {
- "id": "kolPBQsBPs01"
- },
- "execution_count": null,
- "outputs": []
- },
- {
- "cell_type": "code",
- "source": [
- "#@markdown # **Checkpoint Downloader**\n",
- "#@markdown ----\n",
- "model_download='https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.ckpt' #@param {type:\"string\"}\n",
- "\n",
- "!wget $model_download"
- ],
- "metadata": {
- "id": "nFRa2Db3MSPD"
- },
- "execution_count": null,
- "outputs": []
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 153,
- "referenced_widgets": [
- "06b88ddd7a7f4f219d5143d558445a59",
- "2336c0a991d54ae0b72e442f8c3bc067",
- "d723ed8d752a44a08f34ad381868953c",
- "a69dab4944924df09bd4530b1fada113",
- "7dd38b2a3c284e2f8f625518dbb04997",
- "e6b528ece6e1408789d9e4068899ebed",
- "dc06126b67ff41938640057d9d78256a",
- "04fc6526cff845edb45ed39294a71df6",
- "3d8dc5a7af6144c29bfda78080ed83a4",
- "aaa1e7f1ce32409982c2d8746c234083",
- "1ca4f73e2a5d4954b03844c18d0b4db4"
- ]
- },
- "id": "li_jnabWKRIs",
- "outputId": "056d0c2a-8341-4c01-8558-2f2435511138"
- },
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "LatentDiffusion: Running in v-prediction mode\n",
- "DiffusionWrapper has 865.91 M params.\n",
- "making attention of type 'vanilla' with 512 in_channels\n",
- "Working with z of shape (1, 4, 32, 32) = 4096 dimensions.\n",
- "making attention of type 'vanilla' with 512 in_channels\n"
- ]
- },
- {
- "output_type": "display_data",
- "data": {
- "text/plain": [
- "Downloading: 0%| | 0.00/3.94G [00:00, ?B/s]"
- ],
- "application/vnd.jupyter.widget-view+json": {
- "version_major": 2,
- "version_minor": 0,
- "model_id": "06b88ddd7a7f4f219d5143d558445a59"
- }
- },
- "metadata": {}
- },
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "autosetup_branching: num_inference_steps: 15 list_nmb_branches: [2, 3, 6] list_injection_idx: [0, 9, 12]\n"
- ]
- }
- ],
- "source": [
- "import os, sys\n",
- "import torch\n",
- "torch.backends.cudnn.benchmark = False\n",
- "import numpy as np\n",
- "import warnings\n",
- "warnings.filterwarnings('ignore')\n",
- "import warnings\n",
- "import torch\n",
- "from tqdm.auto import tqdm\n",
- "from PIL import Image\n",
- "# import matplotlib.pyplot as plt\n",
- "import torch\n",
- "from movie_util import MovieSaver\n",
- "from typing import Callable, List, Optional, Union\n",
- "from latent_blending import LatentBlending, add_frames_linear_interp\n",
- "from stable_diffusion_holder import StableDiffusionHolder\n",
- "import os\n",
- "from tqdm import tqdm\n",
- "from IPython.display import HTML\n",
- "from base64 import b64encode\n",
- "import gc\n",
- "import torch\n",
- "\n",
- "torch.set_grad_enabled(False)\n",
- "gc.collect()\n",
- "torch.cuda.empty_cache()\n",
- "\n",
- "#@markdown # **Checkpoint Configuration**\n",
- "#@markdown ----\n",
- "\n",
- "fp_ckpt = '/content/latentblending/v2-1_768-ema-pruned.ckpt' #@param {type:\"string\"} \n",
- "fp_config = '/content/latentblending/configs/v2-inference-v.yaml' #@param {type:\"string\"} \n",
- "\n",
- "sdh = StableDiffusionHolder(fp_ckpt=fp_ckpt, fp_config=fp_config) \n",
- "lb = LatentBlending(sdh)\n"
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "#@markdown # **Parameter Configuration**\n",
- "#@markdown ----\n",
- "quality = 'low' #@param {type:\"string\"}\n",
- "depth_strength = 0.6 #@param {type:\"number\"}\n",
- "seed1 = 235235235 #@param {type:\"number\"}\n",
- "seed2 = 23423526 #@param {type:\"number\"}\n",
- "fixed_seeds = [seed1, seed2] \n",
- "\n",
- "prompt1 = \"a beautiful painting of a cyberpunk city by sergey kolesov and pascal blanche and greg rutkowski and sachin teng. in style of digital art. colorful comic, symmetry, hyper detailed. octane render. trending on artstation \" #@param {type:\"string\"} \n",
- "\n",
- "prompt2 = \"a beautiful portrait painting of a cyberpunk armor by simon stalenhag and pascal blanche and alphonse mucha and nekro. in style of digital art. colorful comic, film noirs, symmetry, brush stroke, vibrating colors, hyper detailed. octane render. trending on artstation \" #@param {type:\"string\"} \n",
- "\n",
- "# In seconds\n",
- "duration_transition = 12 #@param {type:\"number\"} \n",
- " \n",
- "fps = 30 #@param {type:\"number\"}\n",
- "\n",
- "lb.load_branching_profile(quality=quality, depth_strength=depth_strength)\n",
- "lb.set_prompt1(prompt1)\n",
- "lb.set_prompt2(prompt2)\n",
- "\n",
- "imgs_transition = lb.run_transition(fixed_seeds=fixed_seeds)\n",
- "\n",
- "imgs_transition_ext = add_frames_linear_interp(imgs_transition, duration_transition, fps)\n",
- "\n",
- "# Save as MP4\n",
- "fp_movie = \"movie_example1.mp4\"\n",
- "if os.path.isfile(fp_movie):\n",
- " os.remove(fp_movie)\n",
- "ms = MovieSaver(fp_movie, fps=fps, shape_hw=[sdh.height, sdh.width])\n",
- "for img in tqdm(imgs_transition_ext):\n",
- " ms.write_frame(img)\n",
- "ms.finalize()\n",
- "\n",
- "def visualize_video_colab(video_path):\n",
- " mp4 = open(video_path,'rb').read()\n",
- " data_url = \"data:video/mp4;base64,\" + b64encode(mp4).decode()\n",
- " return HTML(\"\"\"\n",
- " \n",
- " \"\"\" % data_url)\n",
- "\n",
- "\n",
- "\n",
- "visualize_video_colab(fp_movie)\n",
- "\n"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 557,
- "referenced_widgets": [
- "4d23377adc3b4ea4a1d713f832ea1f58",
- "7aba7fbd76134c8b8fc18a16a492df56",
- "d69c1b35735d452c9691ef53a240ea91",
- "dc0c1075746946189a4af37e0bdbee93",
- "3b1b50d04a5e4c629687def09ab84cb8",
- "48dd7695d798418da65858cd623310af",
- "07182046b1ba48deba029ebe6e3ef220",
- "aad1cb753ffd4abfa21db47798410820",
- "478e72ecc1ac43e9a91b4b0e6c0242af",
- "ce729b0d535142df9c7265c32fc4bc3b",
- "5d47c099526e4c60adedf7a43bf35efc"
- ]
- },
- "id": "5QuVVl2-0xAh",
- "outputId": "afd08806-35ac-4126-92a3-bf3a185056c2"
- },
- "execution_count": null,
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "autosetup_branching: num_inference_steps: 15 list_nmb_branches: [2, 3, 6] list_injection_idx: [0, 9, 12]\n"
- ]
- },
- {
- "output_type": "display_data",
- "data": {
- "text/plain": [
- "computing transition: 0%| | 0/11 [00:00, ?it/s]"
- ],
- "application/vnd.jupyter.widget-view+json": {
- "version_major": 2,
- "version_minor": 0,
- "model_id": "4d23377adc3b4ea4a1d713f832ea1f58"
- }
- },
- "metadata": {}
- },
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Initialization done. Movie shape: (768, 768, 3)\n",
- "MovieSaver initialized. fps=30 crf=24 pix_fmt=yuv420p codec=libx264 preset=fast\n"
- ]
- },
- {
- "output_type": "stream",
- "name": "stderr",
- "text": [
- "100%|██████████| 360/360 [00:04<00:00, 83.42it/s]\n"
- ]
- },
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Movie saved, 12s playtime, watch here: \n",
- "movie_example1.mp4\n"
- ]
- },
- {
- "output_type": "execute_result",
- "data": {
- "text/plain": [
- ""
- ],
- "text/html": [
- "\n",
- " \n",
- " "
- ]
- },
- "metadata": {},
- "execution_count": 15
- }
- ]
- }
- ]
+ "nbformat": 4,
+ "nbformat_minor": 0
}
\ No newline at end of file