diff --git a/examples/JARVIS.ipynb b/examples/JARVIS.ipynb new file mode 100644 index 000000000..1a5a4c6b1 --- /dev/null +++ b/examples/JARVIS.ipynb @@ -0,0 +1,624 @@ +{ + "cells": [ + { + "cell_type": "code", + "source": [ + "# Welcome to JARVIS.\n", + "\n", + "# The core of JARVIS is powered by Open Interpreter:\n", + "\n", + "for chunk in interpreter.chat(\"What's 34/24?\", stream=True, display=False):\n", + " print(chunk)\n", + "\n", + "# (This cell is for demonstration purposes. Do not run it until you've setup JARVIS below.)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "I-16BvnEun7n", + "outputId": "77ada0ad-e6a3-4f6b-a36c-372924f1f0bc" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "{'role': 'assistant', 'type': 'code', 'format': 'python', 'start': True}\n", + "{'role': 'assistant', 'type': 'code', 'format': 'python', 'content': '34'}\n", + "{'role': 'assistant', 'type': 'code', 'format': 'python', 'content': '/'}\n", + "{'role': 'assistant', 'type': 'code', 'format': 'python', 'content': '24'}\n", + "{'role': 'assistant', 'type': 'code', 'format': 'python', 'end': True}\n", + "{'role': 'computer', 'type': 'confirmation', 'format': 'execution', 'content': {'type': 'code', 'format': 'python', 'content': '34/24'}}\n", + "{'role': 'computer', 'type': 'console', 'start': True}\n", + "{'role': 'computer', 'type': 'console', 'format': 'active_line', 'content': 1}\n", + "{'role': 'computer', 'type': 'console', 'format': 'output', 'content': '1.4166666666666667'}\n", + "{'role': 'computer', 'type': 'console', 'format': 'active_line', 'content': None}\n", + "{'role': 'computer', 'type': 'console', 'end': True}\n", + "{'role': 'assistant', 'type': 'message', 'start': True}\n", + "{'role': 'assistant', 'type': 'message', 'content': 'Approx'}\n", + "{'role': 'assistant', 'type': 'message', 'content': 'imately'}\n", + "{'role': 'assistant', 'type': 'message', 'content': ' '}\n", + "{'role': 'assistant', 'type': 'message', 'content': '1'}\n", + "{'role': 'assistant', 'type': 'message', 'content': '.'}\n", + "{'role': 'assistant', 'type': 'message', 'content': '417'}\n", + "{'role': 'assistant', 'type': 'message', 'content': '.'}\n", + "{'role': 'assistant', 'type': 'message', 'end': True}\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Install **(You must run ❗️`Runtime > Restart Session`❗️ after this)**" + ], + "metadata": { + "id": "lE2GSFLJoOtI" + } + }, + { + "cell_type": "code", + "source": [ + "!pip install open-interpreter" + ], + "metadata": { + "id": "iwI1Dhv7uzD-", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "05188b29-5bea-4967-cdac-8d7e7e319b8f" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Requirement already satisfied: open-interpreter in /usr/local/lib/python3.10/dist-packages (0.2.0)\n", + "Requirement already satisfied: appdirs<2.0.0,>=1.4.4 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (1.4.4)\n", + "Requirement already satisfied: astor<0.9.0,>=0.8.1 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (0.8.1)\n", + "Requirement already satisfied: git-python<2.0.0,>=1.0.3 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (1.0.3)\n", + "Requirement already satisfied: html2image<3.0.0.0,>=2.0.4.3 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (2.0.4.3)\n", + "Requirement already satisfied: inquirer<4.0.0,>=3.1.3 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (3.2.1)\n", + "Requirement already satisfied: ipykernel<7.0.0,>=6.26.0 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (6.28.0)\n", + "Requirement already satisfied: jupyter-client<9.0.0,>=8.6.0 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (8.6.0)\n", + "Requirement already satisfied: litellm<2.0.0,>=1.15.10 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (1.16.19)\n", + "Requirement already satisfied: matplotlib<4.0.0,>=3.8.2 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (3.8.2)\n", + "Requirement already satisfied: openai<2.0.0,>=1.6.1 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (1.6.1)\n", + "Requirement already satisfied: posthog<4.0.0,>=3.1.0 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (3.1.0)\n", + "Requirement already satisfied: psutil<6.0.0,>=5.9.6 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (5.9.7)\n", + "Requirement already satisfied: pyyaml<7.0.0,>=6.0.1 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (6.0.1)\n", + "Requirement already satisfied: rich<14.0.0,>=13.4.2 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (13.7.0)\n", + "Requirement already satisfied: six<2.0.0,>=1.16.0 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (1.16.0)\n", + "Requirement already satisfied: tiktoken<0.5.0,>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (0.4.0)\n", + "Requirement already satisfied: tokentrim<0.2.0,>=0.1.13 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (0.1.13)\n", + "Requirement already satisfied: toml<0.11.0,>=0.10.2 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (0.10.2)\n", + "Requirement already satisfied: wget<4.0,>=3.2 in /usr/local/lib/python3.10/dist-packages (from open-interpreter) (3.2)\n", + "Requirement already satisfied: gitpython in /usr/local/lib/python3.10/dist-packages (from git-python<2.0.0,>=1.0.3->open-interpreter) (3.1.40)\n", + "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from html2image<3.0.0.0,>=2.0.4.3->open-interpreter) (2.31.0)\n", + "Requirement already satisfied: websocket-client<2.0.0,>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from html2image<3.0.0.0,>=2.0.4.3->open-interpreter) (1.7.0)\n", + "Requirement already satisfied: blessed>=1.19.0 in /usr/local/lib/python3.10/dist-packages (from inquirer<4.0.0,>=3.1.3->open-interpreter) (1.20.0)\n", + "Requirement already satisfied: editor>=1.6.0 in /usr/local/lib/python3.10/dist-packages (from inquirer<4.0.0,>=3.1.3->open-interpreter) (1.6.5)\n", + "Requirement already satisfied: readchar>=3.0.6 in /usr/local/lib/python3.10/dist-packages (from inquirer<4.0.0,>=3.1.3->open-interpreter) (4.0.5)\n", + "Requirement already satisfied: comm>=0.1.1 in /usr/local/lib/python3.10/dist-packages (from ipykernel<7.0.0,>=6.26.0->open-interpreter) (0.2.1)\n", + "Requirement already satisfied: debugpy>=1.6.5 in /usr/local/lib/python3.10/dist-packages (from ipykernel<7.0.0,>=6.26.0->open-interpreter) (1.6.6)\n", + "Requirement already satisfied: ipython>=7.23.1 in /usr/local/lib/python3.10/dist-packages (from ipykernel<7.0.0,>=6.26.0->open-interpreter) (7.34.0)\n", + "Requirement already satisfied: jupyter-core!=5.0.*,>=4.12 in /usr/local/lib/python3.10/dist-packages (from ipykernel<7.0.0,>=6.26.0->open-interpreter) (5.7.0)\n", + "Requirement already satisfied: matplotlib-inline>=0.1 in /usr/local/lib/python3.10/dist-packages (from ipykernel<7.0.0,>=6.26.0->open-interpreter) (0.1.6)\n", + "Requirement already satisfied: nest-asyncio in /usr/local/lib/python3.10/dist-packages (from ipykernel<7.0.0,>=6.26.0->open-interpreter) (1.5.8)\n", + "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from ipykernel<7.0.0,>=6.26.0->open-interpreter) (23.2)\n", + "Requirement already satisfied: pyzmq>=24 in /usr/local/lib/python3.10/dist-packages (from ipykernel<7.0.0,>=6.26.0->open-interpreter) (25.1.2)\n", + "Requirement already satisfied: tornado>=6.1 in /usr/local/lib/python3.10/dist-packages (from ipykernel<7.0.0,>=6.26.0->open-interpreter) (6.3.2)\n", + "Requirement already satisfied: traitlets>=5.4.0 in /usr/local/lib/python3.10/dist-packages (from ipykernel<7.0.0,>=6.26.0->open-interpreter) (5.7.1)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from jupyter-client<9.0.0,>=8.6.0->open-interpreter) (2.8.2)\n", + "Requirement already satisfied: aiohttp in /usr/local/lib/python3.10/dist-packages (from litellm<2.0.0,>=1.15.10->open-interpreter) (3.9.1)\n", + "Requirement already satisfied: certifi<2024.0.0,>=2023.7.22 in /usr/local/lib/python3.10/dist-packages (from litellm<2.0.0,>=1.15.10->open-interpreter) (2023.11.17)\n", + "Requirement already satisfied: click in /usr/local/lib/python3.10/dist-packages (from litellm<2.0.0,>=1.15.10->open-interpreter) (8.1.7)\n", + "Requirement already satisfied: importlib-metadata>=6.8.0 in /usr/local/lib/python3.10/dist-packages (from litellm<2.0.0,>=1.15.10->open-interpreter) (7.0.1)\n", + "Requirement already satisfied: jinja2<4.0.0,>=3.1.2 in /usr/local/lib/python3.10/dist-packages (from litellm<2.0.0,>=1.15.10->open-interpreter) (3.1.2)\n", + "Requirement already satisfied: python-dotenv>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from litellm<2.0.0,>=1.15.10->open-interpreter) (1.0.0)\n", + "Requirement already satisfied: tokenizers in /usr/local/lib/python3.10/dist-packages (from litellm<2.0.0,>=1.15.10->open-interpreter) (0.15.0)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.8.2->open-interpreter) (1.2.0)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.8.2->open-interpreter) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.8.2->open-interpreter) (4.47.0)\n", + "Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.8.2->open-interpreter) (1.4.5)\n", + "Requirement already satisfied: numpy<2,>=1.21 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.8.2->open-interpreter) (1.23.5)\n", + "Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.8.2->open-interpreter) (9.4.0)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.8.2->open-interpreter) (3.1.1)\n", + "Requirement already satisfied: anyio<5,>=3.5.0 in /usr/local/lib/python3.10/dist-packages (from openai<2.0.0,>=1.6.1->open-interpreter) (3.7.1)\n", + "Requirement already satisfied: distro<2,>=1.7.0 in /usr/lib/python3/dist-packages (from openai<2.0.0,>=1.6.1->open-interpreter) (1.7.0)\n", + "Requirement already satisfied: httpx<1,>=0.23.0 in /usr/local/lib/python3.10/dist-packages (from openai<2.0.0,>=1.6.1->open-interpreter) (0.26.0)\n", + "Requirement already satisfied: pydantic<3,>=1.9.0 in /usr/local/lib/python3.10/dist-packages (from openai<2.0.0,>=1.6.1->open-interpreter) (2.5.3)\n", + "Requirement already satisfied: sniffio in /usr/local/lib/python3.10/dist-packages (from openai<2.0.0,>=1.6.1->open-interpreter) (1.3.0)\n", + "Requirement already satisfied: tqdm>4 in /usr/local/lib/python3.10/dist-packages (from openai<2.0.0,>=1.6.1->open-interpreter) (4.66.1)\n", + "Requirement already satisfied: typing-extensions<5,>=4.7 in /usr/local/lib/python3.10/dist-packages (from openai<2.0.0,>=1.6.1->open-interpreter) (4.9.0)\n", + "Requirement already satisfied: monotonic>=1.5 in /usr/local/lib/python3.10/dist-packages (from posthog<4.0.0,>=3.1.0->open-interpreter) (1.6)\n", + "Requirement already satisfied: backoff>=1.10.0 in /usr/local/lib/python3.10/dist-packages (from posthog<4.0.0,>=3.1.0->open-interpreter) (2.2.1)\n", + "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich<14.0.0,>=13.4.2->open-interpreter) (3.0.0)\n", + "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich<14.0.0,>=13.4.2->open-interpreter) (2.16.1)\n", + "Requirement already satisfied: regex>=2022.1.18 in /usr/local/lib/python3.10/dist-packages (from tiktoken<0.5.0,>=0.4.0->open-interpreter) (2023.6.3)\n", + "Requirement already satisfied: idna>=2.8 in /usr/local/lib/python3.10/dist-packages (from anyio<5,>=3.5.0->openai<2.0.0,>=1.6.1->open-interpreter) (3.6)\n", + "Requirement already satisfied: exceptiongroup in /usr/local/lib/python3.10/dist-packages (from anyio<5,>=3.5.0->openai<2.0.0,>=1.6.1->open-interpreter) (1.2.0)\n", + "Requirement already satisfied: wcwidth>=0.1.4 in /usr/local/lib/python3.10/dist-packages (from blessed>=1.19.0->inquirer<4.0.0,>=3.1.3->open-interpreter) (0.2.12)\n", + "Requirement already satisfied: runs in /usr/local/lib/python3.10/dist-packages (from editor>=1.6.0->inquirer<4.0.0,>=3.1.3->open-interpreter) (1.2.0)\n", + "Requirement already satisfied: xmod in /usr/local/lib/python3.10/dist-packages (from editor>=1.6.0->inquirer<4.0.0,>=3.1.3->open-interpreter) (1.8.1)\n", + "Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.10/dist-packages (from httpx<1,>=0.23.0->openai<2.0.0,>=1.6.1->open-interpreter) (1.0.2)\n", + "Requirement already satisfied: h11<0.15,>=0.13 in /usr/local/lib/python3.10/dist-packages (from httpcore==1.*->httpx<1,>=0.23.0->openai<2.0.0,>=1.6.1->open-interpreter) (0.14.0)\n", + "Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.10/dist-packages (from importlib-metadata>=6.8.0->litellm<2.0.0,>=1.15.10->open-interpreter) (3.17.0)\n", + "Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.10/dist-packages (from ipython>=7.23.1->ipykernel<7.0.0,>=6.26.0->open-interpreter) (67.7.2)\n", + "Requirement already satisfied: jedi>=0.16 in /usr/local/lib/python3.10/dist-packages (from ipython>=7.23.1->ipykernel<7.0.0,>=6.26.0->open-interpreter) (0.19.1)\n", + "Requirement already satisfied: decorator in /usr/local/lib/python3.10/dist-packages (from ipython>=7.23.1->ipykernel<7.0.0,>=6.26.0->open-interpreter) (4.4.2)\n", + "Requirement already satisfied: pickleshare in /usr/local/lib/python3.10/dist-packages (from ipython>=7.23.1->ipykernel<7.0.0,>=6.26.0->open-interpreter) (0.7.5)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from ipython>=7.23.1->ipykernel<7.0.0,>=6.26.0->open-interpreter) (3.0.43)\n", + "Requirement already satisfied: backcall in /usr/local/lib/python3.10/dist-packages (from ipython>=7.23.1->ipykernel<7.0.0,>=6.26.0->open-interpreter) (0.2.0)\n", + "Requirement already satisfied: pexpect>4.3 in /usr/local/lib/python3.10/dist-packages (from ipython>=7.23.1->ipykernel<7.0.0,>=6.26.0->open-interpreter) (4.9.0)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2<4.0.0,>=3.1.2->litellm<2.0.0,>=1.15.10->open-interpreter) (2.1.3)\n", + "Requirement already satisfied: platformdirs>=2.5 in /usr/local/lib/python3.10/dist-packages (from jupyter-core!=5.0.*,>=4.12->ipykernel<7.0.0,>=6.26.0->open-interpreter) (4.1.0)\n", + "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich<14.0.0,>=13.4.2->open-interpreter) (0.1.2)\n", + "Requirement already satisfied: annotated-types>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1.9.0->openai<2.0.0,>=1.6.1->open-interpreter) (0.6.0)\n", + "Requirement already satisfied: pydantic-core==2.14.6 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1.9.0->openai<2.0.0,>=1.6.1->open-interpreter) (2.14.6)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->html2image<3.0.0.0,>=2.0.4.3->open-interpreter) (3.3.2)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->html2image<3.0.0.0,>=2.0.4.3->open-interpreter) (2.0.7)\n", + "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->litellm<2.0.0,>=1.15.10->open-interpreter) (23.2.0)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp->litellm<2.0.0,>=1.15.10->open-interpreter) (6.0.4)\n", + "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->litellm<2.0.0,>=1.15.10->open-interpreter) (1.9.4)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp->litellm<2.0.0,>=1.15.10->open-interpreter) (1.4.1)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp->litellm<2.0.0,>=1.15.10->open-interpreter) (1.3.1)\n", + "Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->litellm<2.0.0,>=1.15.10->open-interpreter) (4.0.3)\n", + "Requirement already satisfied: gitdb<5,>=4.0.1 in /usr/local/lib/python3.10/dist-packages (from gitpython->git-python<2.0.0,>=1.0.3->open-interpreter) (4.0.11)\n", + "Requirement already satisfied: huggingface_hub<1.0,>=0.16.4 in /usr/local/lib/python3.10/dist-packages (from tokenizers->litellm<2.0.0,>=1.15.10->open-interpreter) (0.20.1)\n", + "Requirement already satisfied: smmap<6,>=3.0.1 in /usr/local/lib/python3.10/dist-packages (from gitdb<5,>=4.0.1->gitpython->git-python<2.0.0,>=1.0.3->open-interpreter) (5.0.1)\n", + "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from huggingface_hub<1.0,>=0.16.4->tokenizers->litellm<2.0.0,>=1.15.10->open-interpreter) (3.13.1)\n", + "Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.10/dist-packages (from huggingface_hub<1.0,>=0.16.4->tokenizers->litellm<2.0.0,>=1.15.10->open-interpreter) (2023.6.0)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.3 in /usr/local/lib/python3.10/dist-packages (from jedi>=0.16->ipython>=7.23.1->ipykernel<7.0.0,>=6.26.0->open-interpreter) (0.8.3)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.10/dist-packages (from pexpect>4.3->ipython>=7.23.1->ipykernel<7.0.0,>=6.26.0->open-interpreter) (0.7.0)\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "!pip install git+https://github.com/openai/whisper.git -q\n", + "!pip install gradio==3.50 -q\n", + "!pip install elevenlabs -q" + ], + "metadata": { + "id": "GIyJZlbVYob4", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "619e0903-eae5-4d8c-a203-4d584fce03c5" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n", + " Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n", + " Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m20.3/20.3 MB\u001b[0m \u001b[31m66.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m299.2/299.2 kB\u001b[0m \u001b[31m34.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25h" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Set your API Keys" + ], + "metadata": { + "id": "yBlPE7TRVJWF" + } + }, + { + "cell_type": "code", + "source": [ + "eleven_labs_api_key = \"\" # https://elevenlabs.io/speech-synthesis\n", + "openai_api_key = \"\" # https://platform.openai.com/account/api-keys" + ], + "metadata": { + "id": "LI_6uNbs_K9W" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Setup" + ], + "metadata": { + "id": "aeic06e-o5Wh" + } + }, + { + "cell_type": "markdown", + "source": [ + "### Misc Imports" + ], + "metadata": { + "id": "CjrhRX6fWkXL" + } + }, + { + "cell_type": "code", + "source": [ + "import gradio as gr\n", + "import time" + ], + "metadata": { + "id": "XbzTmzACWlyV" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Open Interpreter" + ], + "metadata": { + "id": "T9KaJXLXQtYJ" + } + }, + { + "cell_type": "code", + "source": [ + "from interpreter import interpreter\n", + "\n", + "interpreter.llm.api_key = openai_api_key\n", + "interpreter.auto_run = True" + ], + "metadata": { + "id": "gpNOy1sLQs0v" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Whisper" + ], + "metadata": { + "id": "TQ9iTzMQYs9u" + } + }, + { + "cell_type": "code", + "source": [ + "import whisper\n", + "model = whisper.load_model(\"base\")" + ], + "metadata": { + "id": "YstqtPbGoWXA" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "def transcribe(audio):\n", + "\n", + " # load audio and pad/trim it to fit 30 seconds\n", + " audio = whisper.load_audio(audio)\n", + " audio = whisper.pad_or_trim(audio)\n", + "\n", + " # make log-Mel spectrogram and move to the same device as the model\n", + " mel = whisper.log_mel_spectrogram(audio).to(model.device)\n", + "\n", + " # detect the spoken language\n", + " _, probs = model.detect_language(mel)\n", + "\n", + " # decode the audio\n", + " options = whisper.DecodingOptions()\n", + " result = whisper.decode(model, mel, options)\n", + " return result.text" + ], + "metadata": { + "id": "JtTvvQQPcOZZ" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### ElevenLabs" + ], + "metadata": { + "id": "kf751XxlyOd9" + } + }, + { + "cell_type": "code", + "source": [ + "from elevenlabs import generate, play, set_api_key\n", + "\n", + "set_api_key(eleven_labs_api_key)" + ], + "metadata": { + "id": "qRcI6nlx8Cun" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "import io\n", + "from pydub import AudioSegment\n", + "\n", + "def get_audio_length(audio_bytes):\n", + " # Create a BytesIO object from the byte array\n", + " byte_io = io.BytesIO(audio_bytes)\n", + "\n", + " # Load the audio data with PyDub\n", + " audio = AudioSegment.from_mp3(byte_io)\n", + "\n", + " # Get the length of the audio in milliseconds\n", + " length_ms = len(audio)\n", + "\n", + " # Optionally convert to seconds\n", + " length_s = length_ms / 1000.0\n", + "\n", + " return length_s" + ], + "metadata": { + "id": "o78_YmQwEBvL" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "def speak(text):\n", + " speaking = True\n", + " audio = generate(\n", + " text=text,\n", + " voice=\"Daniel\"\n", + " )\n", + " play(audio, notebook=True)\n", + "\n", + " audio_length = get_audio_length(audio)\n", + " time.sleep(audio_length)" + ], + "metadata": { + "id": "Ru3Z4M_L_FCK" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Run" + ], + "metadata": { + "id": "X93f9Q5E_Gd5" + } + }, + { + "cell_type": "code", + "source": [ + "# @title JARVIS\n", + "# @markdown ### **Setup Instructions**\n", + "# @markdown 1. Run this cell, then scroll down to use the interface (don't click the link, and **give the interface 60 seconds to load**).\n", + "# @markdown 2. Press the `Record from Microphone` button.\n", + "# @markdown 3. Allow access to your microphone, then speak your command.\n", + "# @markdown 4. Stop the recording, then press `Submit`.\n", + "# @markdown\n", + "# @markdown\n", + "# @markdown JARVIS will respond verbally + carry out your command.\n", + "\n", + "last_sentence = \"\"\n", + "\n", + "with gr.Blocks() as demo:\n", + "\n", + " chatbot = gr.Chatbot()\n", + " audio_input = gr.inputs.Audio(source=\"microphone\", type=\"filepath\")\n", + " btn = gr.Button(\"Submit\")\n", + "\n", + " def transcribe(audio):\n", + " audio = whisper.load_audio(audio)\n", + " audio = whisper.pad_or_trim(audio)\n", + " mel = whisper.log_mel_spectrogram(audio).to(model.device)\n", + " _, probs = model.detect_language(mel)\n", + " options = whisper.DecodingOptions()\n", + " result = whisper.decode(model, mel, options)\n", + " return result.text\n", + "\n", + " def add_user_message(audio, history):\n", + " user_message = transcribe(audio)\n", + " return history + [[user_message, None]]\n", + "\n", + " def bot(history):\n", + " global last_sentence\n", + "\n", + " user_message = history[-1][0]\n", + " history[-1][1] = \"\"\n", + " active_block_type = \"\"\n", + " language = \"\"\n", + " for chunk in interpreter.chat(user_message, stream=True, display=False):\n", + "\n", + " # I built this before we build the flags, like \"start\": True and \"end\": True.\n", + " # See the streaming example above. You can use those \"start\" and \"end\" flags to\n", + " # start the code blocks, message blocks, etc. Here we track it manually and ignore the flags.\n", + "\n", + " # You should use the flags though! I was just lazy. We should rebuild this soon.\n", + "\n", + " # Message\n", + " if chunk[\"type\"] == \"message\" and \"content\" in chunk:\n", + " if active_block_type != \"message\":\n", + " active_block_type = \"message\"\n", + " history[-1][1] += chunk[\"content\"]\n", + "\n", + " last_sentence += chunk[\"content\"]\n", + " if any([punct in last_sentence for punct in \".?!\\n\"]):\n", + " yield history\n", + " speak(last_sentence)\n", + " last_sentence = \"\"\n", + " else:\n", + " yield history\n", + "\n", + " # Code\n", + " if chunk[\"type\"] == \"code\" and \"content\" in chunk:\n", + " if active_block_type != \"code\":\n", + " active_block_type = \"code\"\n", + " history[-1][1] += f\"\\n```{chunk['format']}\"\n", + " history[-1][1] += chunk[\"content\"]\n", + " yield history\n", + "\n", + " # Output\n", + " if chunk[\"type\"] == \"confirmation\":\n", + " history[-1][1] += \"\\n```\\n\\n```text\\n\"\n", + " yield history\n", + " if chunk[\"type\"] == \"console\":\n", + " if chunk.get(\"format\") == \"output\":\n", + " if chunk[\"content\"] == \"KeyboardInterrupt\":\n", + " break\n", + " history[-1][1] += chunk[\"content\"] + \"\\n\"\n", + " yield history\n", + " if chunk.get(\"format\") == \"active_line\" and chunk[\"content\"] == None:\n", + " # Active line will be none when we finish execution.\n", + " # You could also detect this with \"type\": \"console\", \"end\": True.\n", + " history[-1][1] = history[-1][1].strip()\n", + " history[-1][1] += \"\\n```\\n\"\n", + " yield history\n", + "\n", + " if last_sentence:\n", + " speak(last_sentence)\n", + "\n", + " btn.click(add_user_message, [audio_input, chatbot], [chatbot]).then(\n", + " bot, chatbot, chatbot\n", + " )\n", + "\n", + "demo.queue()\n", + "demo.launch(debug=True)" + ], + "metadata": { + "id": "O-xIJaH949uv", + "cellView": "form" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# @title Text-only JARVIS\n", + "# @markdown Run this cell for a ChatGPT-like interface.\n", + "\n", + "with gr.Blocks() as demo:\n", + " chatbot = gr.Chatbot()\n", + " msg = gr.Textbox()\n", + "\n", + " def user(user_message, history):\n", + " return \"\", history + [[user_message, None]]\n", + "\n", + " def bot(history):\n", + "\n", + " user_message = history[-1][0]\n", + " history[-1][1] = \"\"\n", + " active_block_type = \"\"\n", + "\n", + " for chunk in interpreter.chat(user_message, stream=True, display=False):\n", + "\n", + " # Message\n", + " if chunk[\"type\"] == \"message\" and \"content\" in chunk:\n", + " if active_block_type != \"message\":\n", + " active_block_type = \"message\"\n", + " history[-1][1] += chunk[\"content\"]\n", + "\n", + " last_sentence += chunk[\"content\"]\n", + " if any([punct in last_sentence for punct in \".?!\\n\"]):\n", + " yield history\n", + " speak(last_sentence)\n", + " last_sentence = \"\"\n", + " else:\n", + " yield history\n", + "\n", + " # Code\n", + " if chunk[\"type\"] == \"code\" and \"content\" in chunk:\n", + " if active_block_type != \"code\":\n", + " active_block_type = \"code\"\n", + " history[-1][1] += f\"\\n```{chunk['format']}\"\n", + " history[-1][1] += chunk[\"content\"]\n", + " yield history\n", + "\n", + " # Output\n", + " if chunk[\"type\"] == \"confirmation\":\n", + " history[-1][1] += \"\\n```\\n\\n```text\\n\"\n", + " yield history\n", + " if chunk[\"type\"] == \"console\":\n", + " if chunk.get(\"format\") == \"output\":\n", + " if chunk[\"content\"] == \"KeyboardInterrupt\":\n", + " break\n", + " history[-1][1] += chunk[\"content\"] + \"\\n\"\n", + " yield history\n", + " if chunk.get(\"format\") == \"active_line\" and chunk[\"content\"] == None:\n", + " # Active line will be none when we finish execution.\n", + " # You could also detect this with \"type\": \"console\", \"end\": True.\n", + " history[-1][1] = history[-1][1].strip()\n", + " history[-1][1] += \"\\n```\\n\"\n", + " yield history\n", + "\n", + " msg.submit(user, [msg, chatbot], [msg, chatbot], queue=False).then(\n", + " bot, chatbot, chatbot\n", + " )\n", + "\n", + "demo.queue()\n", + "demo.launch(debug=True)" + ], + "metadata": { + "id": "mL1LS3NTlTtv", + "cellView": "form" + }, + "execution_count": null, + "outputs": [] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "provenance": [], + "collapsed_sections": [ + "lE2GSFLJoOtI", + "yBlPE7TRVJWF", + "aeic06e-o5Wh", + "CjrhRX6fWkXL", + "T9KaJXLXQtYJ", + "TQ9iTzMQYs9u", + "kf751XxlyOd9" + ], + "gpuType": "T4" + }, + "kernelspec": { + "display_name": "Python 3", + "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.9.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/examples/Open_Interpreter_Demo.ipynb b/examples/Open_Interpreter_Demo.ipynb new file mode 100644 index 000000000..ef5d824a4 --- /dev/null +++ b/examples/Open_Interpreter_Demo.ipynb @@ -0,0 +1,17482 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "dT4HzysPiaGl" + }, + "source": [ + "# Welcome!\n", + "\n", + "**Open Interpreter** is an open-source project that lets GPT-4 execute Python code locally — or in this case, in Google Colab.\n", + "\n", + "In this demo notebook, we'll explore a few powerful use-cases for Open Interpreter:\n", + "\n", + "1. Writing and editing dozens of documents based on some criteria.\n", + "2. Creating \"slowed and reverbed\" versions of songs with just a YouTube link.\n", + "3. Redrawing every frame in a music video with Stable Diffusion.\n", + "\n", + "Now, grab a drink + an `OPENAI_API_KEY` and let's get started!\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jzxdJd3d3fdd" + }, + "source": [ + "
\n", + "\n", + "![banner_6.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABkAAAACMCAIAAACrlPIFAAAEFElEQVR4nO3YwbGcQBBEwW0MwQH8w4j1DwdwZHTWQURIX2zXLJkGEHWiJ16NMV7A61VV3ROAyby3s3sCTG8/1u4JAHCjp70Y77vsy03fBQAAAID/QsACAAAAIJqABQAAAEA0AQsAAACAaAIWAAAAANEELAAAAACiCVgAAAAARBOwAAAAAIgmYAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOq7gHca4zRPYEvVOXXATzdezu7J8Bv9mPtnsDj+BPyTfxF8y3dAwAAAADgioAFAAAAQDQBCwAAAIBoAhYAAAAA0QQsAAAAAKIJWAAAAABEE7AAAAAAiCZgAQAAABBNwAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZU7+3s3vBR+7F2TwCAGz3tsv+EVwHcbYzRPYEvVFXdE4AGS/cAAAAAALgiYAEAAAAQTcACAAAAIJqABQAAAEA0AQsAAACAaAIWAAAAANEELAAAAACiCVgAAAAARBOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACACdV7O7s3AP9oP9buCTC9MUb3BJhAVXVPAOCjvJG+24yXfekeAAAAAABXBCwAAAAAoglYAAAAAEQTsAAAAACIJmABAAAAEE3AAgAAACCagAUAAABANAELAAAAgGgCFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMKF6b2f3BvgL+7F2TwDgEcYY3ROAOFXVPQH4I33juy3dAwAAAADgioAFAAAAQDQBCwAAAIBoAhYAAAAA0QQsAAAAAKIJWAAAAABEE7AAAAAAiCZgAQAAABBNwAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZUY4zuDUCDquqeAABtvIHh57wngU9augcAAAAAwBUBCwAAAIBoAhYAAAAA0QQsAAAAAKIJWAAAAABEE7AAAAAAiCZgAQAAABBNwAIAAAAgmoAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMqLoHMKsxRvcE4BZVTgPwOe/t7J7A4+zH2j0BoNmM93fpHgAAAAAAVwQsAAAAAKIJWAAAAABEE7AAAAAAiCZgAQAAABBNwAIAAAAgmoAFAAAAQDQBCwAAAIBoAhYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADChX71cObS5I15+AAAAAElFTkSuQmCC)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "N72lFowc2GZv" + }, + "source": [ + "# Setup" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "rW6EmHRli1fN" + }, + "source": [ + "First, let's install `open-interpreter`:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "4pDQ5xE-lokf" + }, + "outputs": [], + "source": [ + "!pip install open-interpreter\n", + "# Google Colab users: restart your runtime here." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "iYHe0KLri7lU" + }, + "source": [ + "Open Interpreter is best used with GPT-4. You can [grab an API key for it here](https://platform.openai.com/account/api-keys).\n", + "\n", + "❗ **Remember to restart your runtime** (`Runtime` > `Restart`) before running the next cell, or you will get an error." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "SCEh9l8LZqcL" + }, + "outputs": [], + "source": [ + "from interpreter import interpreter\n", + "\n", + "# Paste your OpenAI API key below.\n", + "interpreter.llm.api_key = \"your_openai_api_key\"" + ] + }, + { + "cell_type": "markdown", + "source": [ + "**By default, Open Interpreter will ask for confirmation before executing any code.**\n", + "\n", + "Since Google Colab is a safe, isolated environment, we recommend enabling `auto_run`. This mimics the behavior of OpenAI's code interpreter." + ], + "metadata": { + "id": "6hQubS1mFe8r" + } + }, + { + "cell_type": "code", + "source": [ + "interpreter.auto_run = True" + ], + "metadata": { + "id": "CrI5b2IAFeDk" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "A1wGFVu9MNpM" + }, + "source": [ + "# Basic Examples" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "loqh8HJ-oQAG" + }, + "source": [ + "## Hello, World!" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "KQGYgFehnumE" + }, + "source": [ + "Let's start by asking the interpreter to print hello world." + ] + }, + { + "cell_type": "code", + "source": [ + "interpreter.chat(\"Please print hello world.\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 182, + "referenced_widgets": [ + "8e4d22ad1dcc44ec882bb9c6663de431", + "915e05fbbcd44fb1b0402d5a51b9dcf6", + "ed7c54937ec94948915fbe589e04d312", + "ef25bc033b0b419bb7b33e05aed61b43", + "1672ae981ae041ae8b26126e30f29882", + "84e676b87e204fa9b36f1ec2ccefc396" + ] + }, + "id": "sasDzlwm0JAZ", + "outputId": "b47ab4ba-6134-42b4-e288-5fd55a1dad89" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\n", + "\n" + ], + "text/html": [ + "
\n",
+              "\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "8e4d22ad1dcc44ec882bb9c6663de431" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "ed7c54937ec94948915fbe589e04d312"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "1672ae981ae041ae8b26126e30f29882"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        }
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "iixIiFSsn4LZ"
+      },
+      "source": [
+        "Great! The model decided to run a **code block** then tell us its output."
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "2VwbdspIofFC"
+      },
+      "source": [
+        "## Math"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "sf-CMTm2oizg"
+      },
+      "source": [
+        "For this example, we're going to open an interactive chat in our terminal with `interpreter.chat()`.\n",
+        "\n",
+        "💬 **The interactive chat behaves exactly like ChatGPT.** 💬"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "uytMTyy6qFMd"
+      },
+      "source": [
+        "Try this:\n",
+        "\n",
+        "1. Ask Open Interpreter to solve an equation like `10x + 14 = 12`\n",
+        "2. Watch it use a Python library called `sympy` to solve it.\n",
+        "3. Stop the cell to leave the interactive chat."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 336,
+          "referenced_widgets": [
+            "1326436b350b45ed82d6a1be8d9402ce",
+            "ef334d3eb6a043608312c67aa3c7e3b8",
+            "75a72b485eb0422a820209bef270a311",
+            "065b7774a5a34beebb77f7e6a1501617",
+            "50e4adc0bc80423e9549ba0ca3c1125d",
+            "9ad527758ac44f7ba5cf5501f0a2ccc1"
+          ]
+        },
+        "id": "ZpwadxmIoiIR",
+        "outputId": "bea0ba64-593d-41dc-c805-bb3f047413ce"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Type 'exit' to leave the chat.\n",
+            "\n",
+            "> Can you solve this equation? 10x + 14 = 21 / 3\n"
+          ]
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "1326436b350b45ed82d6a1be8d9402ce", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "75a72b485eb0422a820209bef270a311",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "50e4adc0bc80423e9549ba0ca3c1125d",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "> exit\n"
+          ]
+        }
+      ],
+      "source": [
+        "interpreter.chat()"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "Y-TzGmZ2rVPd"
+      },
+      "source": [
+        "## Web Browsing"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "2QWXsSwarjav"
+      },
+      "source": [
+        "Let's ask Open Interpreter to browse the web.\n",
+        "\n",
+        "1. Start by opening an interactive chat again with `interpreter.chat()`.\n",
+        "2. Type a query like \"what are the last 10 BBC news headlines?\""
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 1000,
+          "referenced_widgets": [
+            "523049f89f904844ab674b9410ee61c4",
+            "73078cc9fc5741fcb130caa028914bf9",
+            "26d0efdbe3624615a7bf632af1e8c60b",
+            "cc23e29c55ac41fa9bfbb35230fb67e7",
+            "f45bcc741325488c834cb344c9b2b0fe",
+            "c97723ce541246e28c2ec4459cc3151f",
+            "0bb8a3df854e46129e51445df4f8192b",
+            "ff2383ba5a3943cf8ab4f0cedcb40c3f",
+            "8b67d19d967b4ec8a22e595c3aea1f79",
+            "4ecb19ab194440e7962991fe4c9332a7",
+            "5a9695b9f4f8410b8c3cc92819ad081c",
+            "cc1a30ae29f5499d8156470700faae6c"
+          ]
+        },
+        "id": "2WlB4ArZlbOE",
+        "outputId": "e549febb-35f1-48e2-90ef-320beeec313a"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Type 'exit' to leave the chat.\n",
+            "\n",
+            "> What are the last 10 BBC news headlines?\n"
+          ]
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "523049f89f904844ab674b9410ee61c4",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "26d0efdbe3624615a7bf632af1e8c60b",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "f45bcc741325488c834cb344c9b2b0fe",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "0bb8a3df854e46129e51445df4f8192b", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "8b67d19d967b4ec8a22e595c3aea1f79",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "5a9695b9f4f8410b8c3cc92819ad081c",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "> exit\n"
+          ]
+        }
+      ],
+      "source": [
+        "interpreter.chat()"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "Ace0nkv8s66H"
+      },
+      "source": [
+        "Here it likely ran two code blocks:\n",
+        "\n",
+        "1. The first code block installed `feedparser` from pip.\n",
+        "1. The second used `feedparser` to read the BBC's RSS feed.\n",
+        "\n",
+        "Notice that the first code block **was a shell command.** Open Interpreter uses Jupyter internally, so it can run shell commands *and* Python."
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "bLWX5tB0rzyW"
+      },
+      "source": [
+        "## Resetting the Chat"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "bZmlAKzjtWJZ"
+      },
+      "source": [
+        "In Python, the Open Interpreter instance remembers your conversation history.\n",
+        "\n",
+        "If you want it to forget previous messages, you can reset it:"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "DQzDB8qetlYH"
+      },
+      "outputs": [],
+      "source": [
+        "interpreter.messages = []"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "6clx6Pyhtmzj"
+      },
+      "source": [
+        "Now it won't remember the previous examples.\n",
+        "\n",
+        "
\n", + "\n", + "`Why might I want to do this?`\n", + "\n", + "
\n", + "\n", + "To reduce the number of tokens that get sent to OpenAI.\n", + "\n", + "We need to send OpenAI your entire conversation history (automatically limited to the maximum amount GPT-4 can handle) everytime 1) we send it a message or 2) a code block produces an output.\n", + "\n", + "
\n", + "\n", + "**Note:** The command-line version of Open Interpreter resets itself automatically." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "eC27gX51wCm-" + }, + "source": [ + "# Advanced Examples" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "c73LbswP4YQF" + }, + "source": [ + "## YouTube Link -> Animation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 341 + }, + "id": "WBAR6xgMSUWX", + "outputId": "7623079d-e3a2-44b6-e84f-1e571c70506f" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 51 + } + ], + "source": [ + "# Watch the final output:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ultKeJM9wHuz" + }, + "source": [ + "I've always been fascinated by hand drawn animation. Let's see if we can use Open Interpreter to express that.\n", + "\n", + "We'll ask it to redraw every frame in Steve Lacey's \"Bad Habit\" video with `replicate`. They have a service that can redraw images in new styles.\n", + "\n", + "
\n", + "\n", + "`Doesn't this require logging into \"replicate\"?`\n", + "\n", + "
\n", + "\n", + "Yes, and this is a great reason to use Open Interpreter! We can simply log in to `replicate`, then tell the interpreter how to use it ([I just pasted in replicate's quick start](https://replicate.com/jagilley/controlnet-pose/api)).\n", + "Because code is run locally, the interpreter is \"logged in\" too." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "-oLsybTEwelU" + }, + "outputs": [], + "source": [ + "# First, let's install Replicate and log in.\n", + "\n", + "!pip install replicate\n", + "import os\n", + "os.environ[\"REPLICATE_API_TOKEN\"] = \"api_token\" # Get yours: https://replicate.com/account" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "referenced_widgets": [ + "0fc2ff891df145cd802b1b0f1c369adb", + "a6ddbeb9b5ef4ea58858eabac8fde3c6", + "daba6cb342374830be9830b57d96a599", + "41707e7b17314b17a249388903e0ce71", + "a21bd572aad1457890fd77e77ae60cde", + "800d0a52c55346119c920db787b7f229", + "c39c77408c5e4ab99f127a1306f27554", + "ece854c5547443d78f1e8c0d8960ad47", + "43008ef3259f4bc0aa7662907abe1c03", + "dfae26728db147cb98311156e758816b", + "e280512ec6404a2e9849072c1ac4a74a", + "626af5cf397440b2baec64ed98ea5c3f", + "87f4047550f14103ac55a7ee2736f3ef", + "e6feb1cf757b44bba8fbdecd9b185178", + "83897e5d417c4801b9033373ab047563", + "a2766ca73ab9400d87bbaa96008ebb3b", + "7388e925607147d0903d6b59642d21c1", + "7978261c27704717bf0f5df5231c3dee", + "dff5f7eed46245c6ba0606360289f704", + "151cf723f20d41c392149082e4b987c6", + "d7e431b748474de0a69eee41e44d6eb7", + "e343d276aac5477bb4f9917eb5d8d8db", + "b821ba1c3698465092f5d390725fd535", + "93d564a6d8c842f29e3fcb5e8b8d2a18", + "5313074cfc7b4a70a8031e99640353fc", + "76227155ec874b2bbdd633477275162d", + "d911c9e7aedd42519ee06ef45a0224d2", + "e660cf408ab34428a4f579f4b3770f5e", + "e738acc7f303409f9af430957bb73425", + "7735b6aa07bb48e198f2e79bb8483006", + "c22ab4bfa43a460088c58b6679d60360", + "2e9f43e734694e76829a9ed2a61439be", + "7eed9d874bf846a7b5e545b9c98d417d", + "5e5a5fd06a6d46e3b85e9587d50adfdb", + "dbb96798015249abbad237f9086ac8ff", + "0b001f96904d4c91bf26ad72420e9cca", + "9080b44022b647908b0c8f8dabc51e5f", + "c18416a315554529bbf7f4f4543ecaa3", + "a7c6c1912ff3442e878fe2f19a7bab01", + "2044f647ec5b4bb6a3a363f40bfc45b1", + "298d9dd581714eb68c5f8e179c92065c", + "dbee4b5e838b4cd6bf8da3949c563daa" + ] + }, + "id": "jVG-vqNgODiK", + "outputId": "69af54d6-b93e-4353-ee59-b74d1b0fa880" + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "0fc2ff891df145cd802b1b0f1c369adb", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "daba6cb342374830be9830b57d96a599",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "a21bd572aad1457890fd77e77ae60cde",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "c39c77408c5e4ab99f127a1306f27554",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "43008ef3259f4bc0aa7662907abe1c03",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "e280512ec6404a2e9849072c1ac4a74a",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "87f4047550f14103ac55a7ee2736f3ef",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "83897e5d417c4801b9033373ab047563",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "7388e925607147d0903d6b59642d21c1",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "dff5f7eed46245c6ba0606360289f704",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "d7e431b748474de0a69eee41e44d6eb7",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "b821ba1c3698465092f5d390725fd535",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "5313074cfc7b4a70a8031e99640353fc",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "d911c9e7aedd42519ee06ef45a0224d2",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "e738acc7f303409f9af430957bb73425",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "c22ab4bfa43a460088c58b6679d60360",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "7eed9d874bf846a7b5e545b9c98d417d",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "dbb96798015249abbad237f9086ac8ff", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "9080b44022b647908b0c8f8dabc51e5f", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "a7c6c1912ff3442e878fe2f19a7bab01",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "298d9dd581714eb68c5f8e179c92065c",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "# Now we'll ask interpreter to redraw the video using Replicate.\n",
+        "\n",
+        "message = \"\"\"\n",
+        "\n",
+        "I want to edit a video so it's in 12 fps and each frame is redrawn with ControlNet\n",
+        "to give it a stop motion / hand-drawn animation feeling.\n",
+        "\n",
+        "Here's how you use ControlNet on a single frame, from Replicate's quick start:\n",
+        "\n",
+        "import replicate\n",
+        "output = replicate.run(\n",
+        "    \"jagilley/controlnet-canny:aff48af9c68d162388d230a2ab003f68d2638d88307bdaf1c2f1ac95079c9613\",\n",
+        "    input={\"image\": open(\"path/to/file\", \"rb\"), \"prompt\": \"\"}\n",
+        ")\n",
+        "\n",
+        "(I've noticed that this always returns a list of two links. Just use the second one.)\n",
+        "\n",
+        "Please download this video and just use the seconds from 0:10 to 0:17:\n",
+        "https://www.youtube.com/watch?v=VF-FGf_ZZiI\n",
+        "\n",
+        "Then reduce it to 12fps, and then replace those frames with ControlNet redraws\n",
+        "using random prompts that evoke stop motion / hand-drawn animation--\n",
+        "think embroidery, pencil art, claymation, yarn on a table, etc--\n",
+        "then add the original sound back.\n",
+        "\n",
+        "Thanks!\n",
+        "\n",
+        "\"\"\"\n",
+        "\n",
+        "interpreter.messages = [] # Reset the chat\n",
+        "interpreter.chat(message) # Pass in the message above"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "YX-g17nXU1JE"
+      },
+      "source": [
+        "
\n", + "\n", + "Just for fun, imagine a function that takes a `youtube_url`, passes it into `interpreter.chat(message)` with the instructions above, then returns the processed filename:\n", + "\n", + "```python\n", + "def animate_video(youtube_url):\n", + " interpreter.messages = []\n", + " interpreter.message(f'Animate {youtube_url} with the following steps then save to final.mp4. ...')\n", + " return 'final.mp4'\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "I1WSa-Jw0KM0" + }, + "source": [ + "## Create documents" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000, + "referenced_widgets": [ + "0f4453a4442c4304b22d673c9b1a72ab", + "4ed501ea235a4e77a2d7f4e9ef49eb23", + "85a2c311f8cd4fd484dd5a95079d9dcb", + "bd5ea7bd835a483095abe490c447dd32", + "affa3daf1b964d0995f83ab890e1e214", + "45d35e811af74d4b9798eb2efa6fbe19", + "42895ff661844f4b8e03699a3ac93267", + "fc51add87d6744bc8fb46911b671eac5", + "d045b96ac66249c6af3b39562216c469", + "e32b943cf46c49b49a53275b33b06072", + "00ba9165fc8c406e9ac0fffa01cac05d", + "4a16bcbbc01e40dfb0b835c4af36cc54", + "faa25b85f22545f09f98b5d43cbd21b1", + "74a068f07b49454bba51058b0c1772ae" + ] + }, + "id": "mvkatiSHQr8Z", + "outputId": "e80ed572-d01f-4a09-9a0d-108634b97775" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "0f4453a4442c4304b22d673c9b1a72ab", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "85a2c311f8cd4fd484dd5a95079d9dcb",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "affa3daf1b964d0995f83ab890e1e214",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "42895ff661844f4b8e03699a3ac93267",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "d045b96ac66249c6af3b39562216c469",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "00ba9165fc8c406e9ac0fffa01cac05d", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "faa25b85f22545f09f98b5d43cbd21b1",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "interpreter.messages = [] # Reset the chat\n",
+        "interpreter.chat(\"\"\"Can you make a folder called documents and put five .docx files in it\n",
+        "and write a sentence about machine learning in each of them?\"\"\") # Pass a message directly into chat"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "cM7Yf5pHgeDW"
+      },
+      "source": [
+        "## Edit all documents in a folder"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 1000,
+          "referenced_widgets": [
+            "e6247bda53784a498401796d47b5cd3c",
+            "40af2b00dea44c7a93604188fa913f49",
+            "49254282d5644edeb2f217b59b9bf28b",
+            "b3e874cde5924727b3c2cdb93de1e68a",
+            "ed07889e87744f3aa90e1a211b5b81ff",
+            "673dce80b4b54a7384a460b0075759fb",
+            "7244e69be33b441cb435377b5abee7af",
+            "c0a1d45a04b7406683954288d08915b1",
+            "e6e713a9e71d495baa5a435abcb27ee1",
+            "d849c6a21c8b41a8bbb0abc8a95997c5",
+            "7bc0945fc38c4f7c958bdafed2823093",
+            "dcfeecca01c345f58eebb9b6209cb5ad",
+            "1c0545391e074baf8a5fe4f7b892fdd1",
+            "57f2e054ead24f71a958cae8de41c2b7",
+            "bc0abb5adb504f1395bbff2e8a5404ef",
+            "18a380ea6a594f64b8381b1cd1bb2594",
+            "32f692de87e245e8be0d3d0ec83a2689",
+            "9201ae6c615b46ec8c97b198f56c38ed"
+          ]
+        },
+        "id": "o1NJy2Y9RRqM",
+        "outputId": "6a012dd6-e97d-4fe2-8f8c-4e373fe82e64"
+      },
+      "outputs": [
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "e6247bda53784a498401796d47b5cd3c",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "49254282d5644edeb2f217b59b9bf28b",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "ed07889e87744f3aa90e1a211b5b81ff",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "7244e69be33b441cb435377b5abee7af",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "e6e713a9e71d495baa5a435abcb27ee1",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "7bc0945fc38c4f7c958bdafed2823093",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "1c0545391e074baf8a5fe4f7b892fdd1", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "bc0abb5adb504f1395bbff2e8a5404ef",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "32f692de87e245e8be0d3d0ec83a2689",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "interpreter.messages = []\n",
+        "interpreter.chat(\"\"\"Go through all the .docx files in my 'documents' folder\n",
+        "and replace every occurrence of 'Machine Learning' with 'AI'.\"\"\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 397,
+          "referenced_widgets": [
+            "ed507d688c4747158749a94ce44b26b9",
+            "8e94b43d08f848159b7c621693e26878",
+            "575438c672314d12b722af00426a8971",
+            "2e56b90a86e94cb5b51cf56b86837410",
+            "b5508ace4d4844b68a2fc0f23e320db9",
+            "2acee6da53c748b194bd4445bdba02a4"
+          ]
+        },
+        "id": "JLgWXbb_ShkE",
+        "outputId": "f0eedc07-894d-4fe6-a92d-516065141270"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ed507d688c4747158749a94ce44b26b9", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "575438c672314d12b722af00426a8971",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "b5508ace4d4844b68a2fc0f23e320db9",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "# If you don't run interpreter.messages = [], it will remember your conversation.\n",
+        "interpreter.chat(\"I wanted to replace the files, so please delete the old ones and rename the new ones\")"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "YlDX4rl8x1EF"
+      },
+      "source": [
+        "## Slow + Reverb a YouTube Link"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 1000,
+          "referenced_widgets": [
+            "5b414a1b78f44530a2e4d127641b88d7",
+            "1c0e5743735d4490a8f6a010c77aeb40",
+            "b94baeecf44949ee9e76b2c080f0b3db",
+            "3164bb1a7475448e9f5bcaaadd74c63d",
+            "f86e25f5432b4589b9045ba52ebed7ae",
+            "99b83169a2c5408dbfa7b835db2d7171",
+            "4192c99e48fa40eeba50ac981cfd500b",
+            "0ef2a15fe9594494b7957e9dab6166b0",
+            "45e937a0dcaf405b8865cceb68551be4",
+            "6731e56abeba4af69d33942800665902",
+            "d0aafd6be71f4f548e2ef6df1fb0dde1",
+            "b21732a379674ae7860fca91e4741739",
+            "b460785b83194ce8a69121c358c2a5a8",
+            "c7e4f15aa81a48d9a390beb2ebb24cd3",
+            "cf53e6745eb14d44a6ce84d8f1efb3e9",
+            "9d35e8077b634453a9da6c9bdf55c104",
+            "c31a702d90604293b9494824157c5493",
+            "77e0222fd2c54dbca7932d57e517601a",
+            "2dc18ff0d5a64d04a13c602ed889b486",
+            "b3a3183812fa46d7af4dcade094153d1",
+            "1b5741879e894f93b66e7f0572892db9",
+            "fb34c40c88f7423a891c85730730d011",
+            "82e71737f0d941d1a57fb9882c1a303f",
+            "61c835b06ac043c0a06cecf241d7fa48",
+            "aa6c553f705d413fb4908e0d97aa017d",
+            "8df28d357a604e64b6d7353891fbdaa3",
+            "e0ca1b4596b44f4285dcd52000aa62c0",
+            "1356d617a0c74b9fb9dc4f94d78f62aa",
+            "4f016d1a2474432eb5a601735e6437e2",
+            "98c4cba0cfb043b7a75b9a80e7661e46",
+            "267f3fe5e392407d88b0be2f178ba149",
+            "6f7b2b5688184ea5aa32b7eba22546e6",
+            "f036842ca1f14c80943388ea7eba105c",
+            "e38fcb7d81394b1c8c1356f9d272511e",
+            "a59185faa5bb4ef3ba9810b94096d85e",
+            "2e658de9a31945bb8221cee533efdc15",
+            "caec7c9c20f848d0b94b4dd0db73892c",
+            "0d24fe34dd454245ab16fd84734a063d",
+            "f491c55d72df4b589454a8861197376b",
+            "3bba172d1af2465181679c8b336704a7",
+            "8497cd04499f48eb9a305e6c3db8b38d",
+            "e64b5e68e0e84553a9e303ba55d389d0",
+            "163a7b62b46f463b991bba3140df45f4",
+            "2ced3555ea7a4e358c5ee24ad61affb5",
+            "77d06811ac04459ba507adec1b053905",
+            "f25805a2402f4a7ba505fb75554bdbed",
+            "bfffa91fc96f4f5b9ca25b29025938c6",
+            "d007873a1ec540b9b73cba17251362b0",
+            "5635e4c8e7734b3b95693f789c9239ba",
+            "f944a4b42ef14ae889efef3f5369e173",
+            "feb8283edfbb49b989a8d29c98701bf0",
+            "0e33aaf3c5dd44dda84ebc379dd78417"
+          ]
+        },
+        "id": "Tun9x2jzx33d",
+        "outputId": "dbe7e631-14c9-4ccb-8dbc-c47da8f361a4"
+      },
+      "outputs": [
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "5b414a1b78f44530a2e4d127641b88d7",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "b94baeecf44949ee9e76b2c080f0b3db",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "f86e25f5432b4589b9045ba52ebed7ae",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "4192c99e48fa40eeba50ac981cfd500b", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "45e937a0dcaf405b8865cceb68551be4",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d0aafd6be71f4f548e2ef6df1fb0dde1", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "b460785b83194ce8a69121c358c2a5a8",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "cf53e6745eb14d44a6ce84d8f1efb3e9", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "c31a702d90604293b9494824157c5493",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "2dc18ff0d5a64d04a13c602ed889b486",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "1b5741879e894f93b66e7f0572892db9",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "82e71737f0d941d1a57fb9882c1a303f",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "aa6c553f705d413fb4908e0d97aa017d",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "e0ca1b4596b44f4285dcd52000aa62c0",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "4f016d1a2474432eb5a601735e6437e2",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "267f3fe5e392407d88b0be2f178ba149", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "f036842ca1f14c80943388ea7eba105c",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a59185faa5bb4ef3ba9810b94096d85e", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "caec7c9c20f848d0b94b4dd0db73892c",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "f491c55d72df4b589454a8861197376b", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "8497cd04499f48eb9a305e6c3db8b38d",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "163a7b62b46f463b991bba3140df45f4", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "77d06811ac04459ba507adec1b053905",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "bfffa91fc96f4f5b9ca25b29025938c6", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "5635e4c8e7734b3b95693f789c9239ba",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "feb8283edfbb49b989a8d29c98701bf0",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "name": "stderr",
+          "output_type": "stream",
+          "text": [
+            "WARNING:urllib3.connectionpool:Connection pool is full, discarding connection: api.openai.com. Connection pool size: 10\n"
+          ]
+        }
+      ],
+      "source": [
+        "message = \"Can you slow + reverb this song? https://www.youtube.com/watch?v=8GW6sLrK40k\"\n",
+        "\n",
+        "interpreter.messages = []\n",
+        "interpreter.chat(message)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 75
+        },
+        "id": "3_uywJFkISTi",
+        "outputId": "14fdb933-bcea-4b34-cb63-e05ebbe895a6"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/html": [
+              "\n",
+              "                    \n",
+              "                  "
+            ],
+            "text/plain": [
+              ""
+            ]
+          },
+          "execution_count": 23,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "# Listen to the final result:"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "source": [
+        "Now we could open `interpreter.chat()`, ask it to slow it down more, add more reverb, or even create a video with [a .gif backround](https://i.giphy.com/media/zIV7iWK9f0x8Y/giphy.webp)."
+      ],
+      "metadata": {
+        "id": "HjjwO8MUzSiI"
+      }
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "E9MTDnOWLMP8"
+      },
+      "source": [
+        "## Open Interpreter Artwork"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "18HfxkCQKuQP"
+      },
+      "source": [
+        "![banner_6.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABkAAAACMCAIAAACrlPIFAAAEFElEQVR4nO3YwbGcQBBEwW0MwQH8w4j1DwdwZHTWQURIX2zXLJkGEHWiJ16NMV7A61VV3ROAyby3s3sCTG8/1u4JAHCjp70Y77vsy03fBQAAAID/QsACAAAAIJqABQAAAEA0AQsAAACAaAIWAAAAANEELAAAAACiCVgAAAAARBOwAAAAAIgmYAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOq7gHca4zRPYEvVOXXATzdezu7J8Bv9mPtnsDj+BPyTfxF8y3dAwAAAADgioAFAAAAQDQBCwAAAIBoAhYAAAAA0QQsAAAAAKIJWAAAAABEE7AAAAAAiCZgAQAAABBNwAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZU7+3s3vBR+7F2TwCAGz3tsv+EVwHcbYzRPYEvVFXdE4AGS/cAAAAAALgiYAEAAAAQTcACAAAAIJqABQAAAEA0AQsAAACAaAIWAAAAANEELAAAAACiCVgAAAAARBOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACACdV7O7s3AP9oP9buCTC9MUb3BJhAVXVPAOCjvJG+24yXfekeAAAAAABXBCwAAAAAoglYAAAAAEQTsAAAAACIJmABAAAAEE3AAgAAACCagAUAAABANAELAAAAgGgCFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMKF6b2f3BvgL+7F2TwDgEcYY3ROAOFXVPQH4I33juy3dAwAAAADgioAFAAAAQDQBCwAAAIBoAhYAAAAA0QQsAAAAAKIJWAAAAABEE7AAAAAAiCZgAQAAABBNwAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZUY4zuDUCDquqeAABtvIHh57wngU9augcAAAAAwBUBCwAAAIBoAhYAAAAA0QQsAAAAAKIJWAAAAABEE7AAAAAAiCZgAQAAABBNwAIAAAAgmoAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMqLoHMKsxRvcE4BZVTgPwOe/t7J7A4+zH2j0BoNmM93fpHgAAAAAAVwQsAAAAAKIJWAAAAABEE7AAAAAAiCZgAQAAABBNwAIAAAAgmoAFAAAAQDQBCwAAAIBoAhYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADChX71cObS5I15+AAAAAElFTkSuQmCC)"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "n540tKZmJ-zt"
+      },
+      "source": [
+        "The artwork for Open Interpreter was illustrated by Open Interpreter. How?\n",
+        "\n",
+        "It was given a description inspired by [Ruby Chen's](https://rubywjchen.com/) GPT-4 artwork:"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 842,
+          "referenced_widgets": [
+            "b1ed6a8960964d01937082e84b55cf3a",
+            "2d23c9f050f745cdaadd6806811fe0ff",
+            "e96fdcfcde144e78b7977830628e77f9",
+            "afddf4997e1a4d009f278b34486a71aa"
+          ]
+        },
+        "id": "IEkUr0bju5Sp",
+        "outputId": "23de2a77-e571-454c-97f9-69acd691ff28"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b1ed6a8960964d01937082e84b55cf3a", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "e96fdcfcde144e78b7977830628e77f9",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "message = \"\"\"\n",
+        "\n",
+        "Hello! I'd like your help making some artwork for the Open Interpreter project.\n",
+        "\n",
+        "It's going to be pixel art, ~160 wide and 14 pixels tall. Black background.\n",
+        "\n",
+        "I'd like to see rectangles on every other row. These should be anywhere from\n",
+        "~6 to 36 pixels in width. They should be placed randomly around the image, never touching eachother\n",
+        "(the space between them should be ~16-64 pixels). They can go off screen / butt up against the edges.\n",
+        "\n",
+        "Half of these rectangles should be white, half should be a powerful purple color: R138 G43 B226\n",
+        "\n",
+        "Once you've created it, please scale it up with nearest-neighbor 10x.\n",
+        "\n",
+        "Please make ~10 options I can review, like banner_1.png, banner_2.png, etc.\n",
+        "\n",
+        "\"\"\"\n",
+        "\n",
+        "interpreter.messages = []\n",
+        "interpreter.chat(message)"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "OTTkCcIshgmB"
+      },
+      "source": [
+        "## Add subtitles to videos"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "source": [
+        "`replicate` also has a speech-to-text service that generates subtitle files (.srt).\n",
+        "\n",
+        "Let's ask Open Interpreter to use some code [copied from replicate's quickstart](https://replicate.com/m1guelpf/whisper-subtitles/api) to add hardcoded subtitles to a video:"
+      ],
+      "metadata": {
+        "id": "NKA7CWtSfrUf"
+      }
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 1000,
+          "referenced_widgets": [
+            "56f46ba6d7254804843b932c97007f85",
+            "2b36d066449447c1817a4a5f945aada3",
+            "44646c403c814456a6a4665c3236a79d",
+            "5bb4cd46aed946578d102122a0944a71",
+            "c72c1bac807b40d297fdba74958df4de",
+            "fe21edae84cc4778a3ddc2fcaedfbc3d",
+            "6aae7d9824224170be7f43c8c423c488",
+            "1c79566727f944fcbe35f3d793f110e3",
+            "155ee92669cc4e1180a1568bfffb8720",
+            "7da8ca4865a647d6ac46a64af17fd02d",
+            "8b00506f94854fcc971d08b1577a531a",
+            "6d14d7db445b4f829275aea79bd0dbd1",
+            "2882213b1cce4520b8e0ee44be5f1924",
+            "1038b781d07d4e8e8df69bff5b2df9ad",
+            "d77d9d8269874d54b6762f634e916206",
+            "9d1e55aa8c544a3aa780fa2230b82c21",
+            "c89ae989cd4549e58606b7d2cd95ece4",
+            "aae61f21148843148e082f1349b130ae"
+          ]
+        },
+        "id": "BTB3zD5QnJd8",
+        "outputId": "e14e476c-4128-4dc8-eb2b-3b0a24093aad"
+      },
+      "outputs": [
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "56f46ba6d7254804843b932c97007f85",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "44646c403c814456a6a4665c3236a79d",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "c72c1bac807b40d297fdba74958df4de",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "6aae7d9824224170be7f43c8c423c488", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "155ee92669cc4e1180a1568bfffb8720",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "8b00506f94854fcc971d08b1577a531a",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "2882213b1cce4520b8e0ee44be5f1924",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "d77d9d8269874d54b6762f634e916206",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "c89ae989cd4549e58606b7d2cd95ece4",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "message = \"\"\"\n",
+        "Hello! I just logged into Replicate on this machine. You have my permission to run any code.\n",
+        "\n",
+        "Could you use their speech-to-text service to hardcode subtitles to the bottom of billyking.mp4 and make billy_subbed.mp4?\n",
+        "\"\"\"\n",
+        "\n",
+        "# Again, let's give Open Interpreter an example of how to use the service.\n",
+        "message += \"\"\"\n",
+        "Here's some code that Replicate provides for how to use their service:\n",
+        "\n",
+        "import replicate\n",
+        "output = replicate.run(\n",
+        "    \"m1guelpf/whisper-subtitles:7f686e243a96c7f6f0f481bcef24d688a1369ed3983cea348d1f43b879615766\",\n",
+        "    input={\"audio_path\": open(\"path/to/file\", \"rb\")} # Can also be a video path\n",
+        ")\n",
+        "print(output)\n",
+        "\n",
+        "\"\"\"\n",
+        "\n",
+        "# Now let's reset and run Open Interpreter.\n",
+        "interpreter.messages = []\n",
+        "interpreter.chat(message)"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "t9v9bo4x2Z3f"
+      },
+      "source": [
+        "You can [watch the output video here.](https://youtube.com/shorts/F6gOzP691po?feature=share)"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "KrgUKfZDLTEa"
+      },
+      "source": [
+        "## YouTube video -> TikTok Clip"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 1000,
+          "referenced_widgets": [
+            "dfd7d092f15c4b33b4d9b4c299a56577",
+            "46f16ac02db04d13bdf9461b2e268ad3",
+            "894485c6aa7a4560b1625b0667c4b0ad",
+            "c2678de51ec648b78d4965a3b898ffef",
+            "1ba7ab9f477040ccb236598ef1085084",
+            "58c456a67739434b87b368aefc561eff",
+            "ba8772dae7fd44e4937b74a810235984",
+            "4ea12542e3134a719e8ca95bf443d710",
+            "7e39eac50d9b4e6e83818eccc7003bab",
+            "c1d7c09472ef40fa94bc348a0ce07711",
+            "70e01c3e03814cf2891e77d0f27f5e0a",
+            "5401202e0cbc4b7d93601ffceee34823",
+            "acfb473b29e44673a1fff74002d1a9fb",
+            "c04640e4839d455b9faf31eb0f6cc24a",
+            "e34e60e6f4a748fb856638e13dcea9ee",
+            "ea5366ee0804463b8ef07de383494750",
+            "e6b9ad18bbf94231be36619c23829365",
+            "1379bc8127c34125a9edcaa6ff80cb29",
+            "633eb737a8a540618283944da6587395",
+            "0422283e06104822a0b17e36537887ba",
+            "9c4a0269b2f545fd91690a0e05916486",
+            "54ba24de07fd495da0709275580522c4",
+            "5c29036bf1394564ac06e60a277c2f4b",
+            "13288eb48c78450bb9c29905f1cfe5cc",
+            "0a2bad1e724c412d9400b8ec3757d5fe",
+            "71be2ada61ca4eeca6c9c3169bf5a981",
+            "05159ee8a8ce4d1f842636561b767c1e",
+            "d41a011efd5148b998b27e7ecb43d6d6",
+            "f89766aa83954606822ac810550089a4",
+            "c092298defd44aea990d9b4e7368fb39",
+            "f9f0fbe9b4e8458daff8f0b208afe06d",
+            "4a0fea39019242139a82c33d7513ccb7",
+            "e94d50d8f12d4e97a9e4a147e1717a44",
+            "903ff249dcad4e2bbb19f036ee19d2cb",
+            "f4a860ee64cd4d1dbddcf49bccafb1d2",
+            "2484cf82892e4459972b079943d9fe4d",
+            "7f88ac26e8cb4dce8d372d38501bdec2",
+            "646e8aa419f3420cbc453d285634a114",
+            "2d1cd08ae5be4df8bef9f9ebc9347349",
+            "a954618bf6d344c285f74578e496dc0c",
+            "a5da8f42711545d09911118485e8e83e",
+            "303c046d8d1e44c8b20e21678d26ee71",
+            "71346df88e4c4123b952c6606eb2acf0",
+            "cf0ee63e4bab46acacb822a12586db47",
+            "5a1dc9c1a1d642a1a9ea4e60c18ce53d",
+            "fd6e706a8ee04707a3423071a6415341",
+            "eae96616b13a46bfae7a02eb59259c74",
+            "37efe298ef1d499993852f8dfba85757",
+            "613b2d7898184c9f91302f0137a1bf0a",
+            "a96323047b04490aa28cb68056a3242d",
+            "ca48e8fcc96b4e0d985c7a3096aa04bb",
+            "8775c6e74caa4e2e85935960e6d9bf1a",
+            "8b359f3ad34840ebbf9e40348d7fcc44",
+            "1d5dd9f4d7cd41ab98e463f7fe8dc5d3",
+            "e8c4baed02d34a21a3e7de3a69b3a158",
+            "9ec4005929104fd9aa041b7460b5298f",
+            "f0115b2d6740493484333cccfcbcf41c",
+            "a60d203e2b3b466da2f420c1396b90b2",
+            "26fea9a4ea31438c8bbe14445910c8e5",
+            "6887887f49b14c249cb892a9c936070b",
+            "806ab28204a440b58ba5fde861e13d48",
+            "a68ae6eec13d47d182388c12e8874457",
+            "77f449758de3412abd0d78d059d43ef1",
+            "edf044df54ef451781627f91bac2a9c3",
+            "e468488a3ec14569adfd1bcdaefd9a35",
+            "cf2aaac773e442b0bc8fbbc152dd0b23",
+            "b4827858c2fe4cc28f9fc38fef5040c3",
+            "86328979d39d4e689f787d27e0989adc",
+            "b6a181f821044dcc875efcbc2fed3747",
+            "c9e6274288f640af92d3224b0393390a",
+            "2cf83094efd74450a44684621cec09ba",
+            "9c56ce6494ae4d13a9c652e93d08d34f",
+            "5b13f6f7553f4ef69b4deb45734b3906",
+            "62b5f3bf807f4e17a0fee6e73b19b50f",
+            "4d37ead524de46239d479f3d5660af3f",
+            "fd62af45f4c74a9a93a93ed62415f62f",
+            "5ca82a2033fb4b0c93ba168d64f6ef9e",
+            "6c4cadeb9ad74ad5984cb26042f1b36a"
+          ]
+        },
+        "id": "RxbP1THRwCcp",
+        "outputId": "a4ded3e7-0bfd-472d-befb-0e0841df38a8"
+      },
+      "outputs": [
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "dfd7d092f15c4b33b4d9b4c299a56577"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "894485c6aa7a4560b1625b0667c4b0ad"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "1ba7ab9f477040ccb236598ef1085084"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "ba8772dae7fd44e4937b74a810235984"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "7e39eac50d9b4e6e83818eccc7003bab"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "70e01c3e03814cf2891e77d0f27f5e0a"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "acfb473b29e44673a1fff74002d1a9fb"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "e34e60e6f4a748fb856638e13dcea9ee"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "e6b9ad18bbf94231be36619c23829365"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "633eb737a8a540618283944da6587395"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "9c4a0269b2f545fd91690a0e05916486"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "5c29036bf1394564ac06e60a277c2f4b"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "0a2bad1e724c412d9400b8ec3757d5fe"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "05159ee8a8ce4d1f842636561b767c1e"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "f89766aa83954606822ac810550089a4"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "f9f0fbe9b4e8458daff8f0b208afe06d"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "e94d50d8f12d4e97a9e4a147e1717a44"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "f4a860ee64cd4d1dbddcf49bccafb1d2"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "WARNING:py.warnings:/usr/local/lib/python3.10/dist-packages/moviepy/video/io/ffmpeg_reader.py:123: UserWarning: Warning: in file clip.mkv, 2764800 bytes wanted but 0 bytes read,at frame 819/820, at time 27.33/27.33 sec. Using the last valid frame instead.\n",
+            "  warnings.warn(\"Warning: in file %s, \"%(self.filename)+\n",
+            "\n"
+          ]
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "7f88ac26e8cb4dce8d372d38501bdec2"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "2d1cd08ae5be4df8bef9f9ebc9347349"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "a5da8f42711545d09911118485e8e83e"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "71346df88e4c4123b952c6606eb2acf0"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "5a1dc9c1a1d642a1a9ea4e60c18ce53d"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "eae96616b13a46bfae7a02eb59259c74"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n",
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "613b2d7898184c9f91302f0137a1bf0a" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "ca48e8fcc96b4e0d985c7a3096aa04bb"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "8b359f3ad34840ebbf9e40348d7fcc44"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "e8c4baed02d34a21a3e7de3a69b3a158"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "f0115b2d6740493484333cccfcbcf41c"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n",
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "26fea9a4ea31438c8bbe14445910c8e5" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "806ab28204a440b58ba5fde861e13d48"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n",
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "77f449758de3412abd0d78d059d43ef1" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "e468488a3ec14569adfd1bcdaefd9a35"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n",
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "b4827858c2fe4cc28f9fc38fef5040c3" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "b6a181f821044dcc875efcbc2fed3747"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "2cf83094efd74450a44684621cec09ba"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "5b13f6f7553f4ef69b4deb45734b3906"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "4d37ead524de46239d479f3d5660af3f"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "5ca82a2033fb4b0c93ba168d64f6ef9e"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        }
+      ],
+      "source": [
+        "message = \"\"\"\n",
+        "\n",
+        "I'd like your help in making a TikTok clip of this: https://www.youtube.com/watch?v=KgHkAwaW_lk\n",
+        "\n",
+        "Please cut the clip from this -- from 0:15 to 0:38 -- and crop it to portrait (exactly 9:16-- this will be tricky)\n",
+        "around the face in the frame. Just follow the face horizontally -- the final video should be as tall as the original.\n",
+        "\n",
+        "You'll need to smoothly/softly follow the one face in the frame so please smoothly average out the motion\n",
+        "between confident face detections. Then put the audio back in. Thanks!\n",
+        "\n",
+        "\"\"\"\n",
+        "\n",
+        "interpreter.messages = []\n",
+        "interpreter.chat(message)"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "source": [
+        "Nice! It's saved as `cropped_clip_with_audio.mkv`.\n",
+        "\n",
+        "One problem -- if we want to send it to our phone and upload it to TikTok or YT Shorts, we'll need it to be an `.mp4` file.\n",
+        "\n",
+        "So, let's just ask for that:"
+      ],
+      "metadata": {
+        "id": "uOyXpFqf3_oJ"
+      }
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "# The interpreter remembers our conversation unless we explicitly .reset() it.\n",
+        "interpreter.chat(\"Looks great! Can you convert it to an mp4?\")"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 562,
+          "referenced_widgets": [
+            "647b95ec7a5b40979432289c033ccd79",
+            "85e5e774473d4d629a91899373d2602b",
+            "82db7edca0184c31a689eb8ad4785611",
+            "5988deb63066470bb3225344289929e9",
+            "4bb6ea2b3ce6407cb1b85c32ad828415",
+            "09287fc3783049898cdb624d0cc4bf81"
+          ]
+        },
+        "id": "84C89ntP4lxm",
+        "outputId": "ec6ffbf0-9f29-4c0a-dfaf-b8d3b7e27b08"
+      },
+      "execution_count": null,
+      "outputs": [
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "\n",
+              "\n"
+            ],
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "647b95ec7a5b40979432289c033ccd79" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [], + "text/html": [ + "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "82db7edca0184c31a689eb8ad4785611"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Output()"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "4bb6ea2b3ce6407cb1b85c32ad828415"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [],
+            "text/html": [
+              "
\n"
+            ]
+          },
+          "metadata": {}
+        }
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "source": [
+        "Amazing. Now we can display the final result in Google Colab, too:"
+      ],
+      "metadata": {
+        "id": "1U_yIkHt4yrH"
+      }
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "# Final output:"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 732
+        },
+        "id": "13UWfW1K3nl4",
+        "outputId": "6c84fa20-f3f3-4056-bfea-88aad4195163"
+      },
+      "execution_count": null,
+      "outputs": [
+        {
+          "output_type": "execute_result",
+          "data": {
+            "text/plain": [
+              ""
+            ],
+            "text/html": [
+              "\n",
+              "\n"
+            ]
+          },
+          "metadata": {},
+          "execution_count": 11
+        }
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "C1vMxJzikQ_D"
+      },
+      "source": [
+        "## Bonus: Image -> Animation"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "source": [
+        "Another `replicate` example -- let's use ControlNet to turn [this image](https://i.ibb.co/f0p4Q5R/i-heart-victoria-paris.png) into 90s-style animated intro."
+      ],
+      "metadata": {
+        "id": "rVl1c4sMfuoL"
+      }
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 1000,
+          "referenced_widgets": [
+            "73bf63b8705645d7b893f91cdc1716fa",
+            "540e7806e7c145d3a26fceb5c0ef8aa1",
+            "1276e768ba0143ac98e1a1369dedd755",
+            "0cd08b7a5f5a4d8c9cd61e5df2a43dc3",
+            "7924e96ff4484d9888b85bf7f7630cdc",
+            "ee9b39134cf84f089d4868aae1851900",
+            "a8733b66c6594a9b82309adeda08104f",
+            "d6a7ae990c474869934f5862a89dd274",
+            "554e5912797c4fa88f6e557ca6367711",
+            "723d3e051e9649a392ae0a54e4399a73",
+            "5a9e09aff4cd4665912a50bc8ad5fe93",
+            "dde784ca98904ba49ba23dda2100076a",
+            "4f2343ab60004171a8768a8339e82c0e",
+            "a46c38d5d2864821ba81ad63259670db",
+            "50c94edabfc146229a8a576445093731",
+            "6031e59c120a48b98b4597dcb10a2d9a",
+            "a10d5975091b4b8fb99544dea8de13d0",
+            "bbf6af49c88c4c5d909b61ad8b67b5fa",
+            "e632cf8148b5443eb888ad154820dac2",
+            "942032ef5a7b46a0866adf65a07ca9b6",
+            "6c4817e94e354e6998e9665f6a509d38",
+            "78f2b7f6451d4315964aea44ac02db78",
+            "ef7637cf473b48a59806e2a66042cba1",
+            "d70ab8f629f446c19c41c3293b905d83",
+            "961f446973c6459cadc262fca5193d9d",
+            "58ce723038e04fd2810f4985e864544a",
+            "eb83234ed4724410aec6bde226f104a1",
+            "b37d96a06ec148fab77a1a5121bfc74b",
+            "886daf8914584873b21fb95604cfa84f",
+            "456f954392e84f46b7f68b50101bd62e",
+            "38bd644aee574f47b65793c655bcc9c9",
+            "5e77c72502414e0ba7c79c1cc8324b95",
+            "1ab1dc792ecf498fb44978beb9fad234",
+            "6bd4412598a24f4b82c9fd8918a3e0ae",
+            "2ce496485d074f51a900bcf1435f6080",
+            "aeb40687d81a48e19f173059cc9f7100",
+            "1f97758eecde4cc7beb4439fdda4e8ea",
+            "4b67d55493c84fc6bdb48f1317374124",
+            "ad1cdb2076be4851b5d3a9af551e2e1e",
+            "0cbcc3ce78ac4df28d0326e591a2418e",
+            "48b7cb834ffe4597b7589228a8b7d11d",
+            "46c63dde8afb4b87b56913bc55b59ade"
+          ]
+        },
+        "id": "lWNRJ0Ku8hji",
+        "outputId": "c5525728-d241-4a66-f96d-7f58e0261fd1"
+      },
+      "outputs": [
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "73bf63b8705645d7b893f91cdc1716fa",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "1276e768ba0143ac98e1a1369dedd755",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/plain": [
+              "['metal', 'embroidery', 'crayon']"
+            ]
+          },
+          "execution_count": 45,
+          "metadata": {},
+          "output_type": "execute_result"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "7924e96ff4484d9888b85bf7f7630cdc",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "a8733b66c6594a9b82309adeda08104f",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "554e5912797c4fa88f6e557ca6367711",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "5a9e09aff4cd4665912a50bc8ad5fe93",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "4f2343ab60004171a8768a8339e82c0e",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "50c94edabfc146229a8a576445093731",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "a10d5975091b4b8fb99544dea8de13d0",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "e632cf8148b5443eb888ad154820dac2",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "6c4817e94e354e6998e9665f6a509d38",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ef7637cf473b48a59806e2a66042cba1", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "961f446973c6459cadc262fca5193d9d",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "eb83234ed4724410aec6bde226f104a1", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "886daf8914584873b21fb95604cfa84f",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n",
+              "\n",
+              "
\n" + ], + "text/plain": [ + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "38bd644aee574f47b65793c655bcc9c9", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "1ab1dc792ecf498fb44978beb9fad234",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "2ce496485d074f51a900bcf1435f6080",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "1f97758eecde4cc7beb4439fdda4e8ea",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "ad1cdb2076be4851b5d3a9af551e2e1e",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "48b7cb834ffe4597b7589228a8b7d11d",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Output()"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/html": [
+              "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "message = \"\"\"\n",
+        "Hi, I want to make a video that's comprised of 12 frames. The 12 frames should be of the image\n",
+        "victoria.png run through controlnet with different materials as prompts.\n",
+        "\n",
+        "I'm logged into replicate on this machine. Here's how to use replicate's controlnet:\n",
+        "\n",
+        "output = replicate.run(\n",
+        "    \"jagilley/controlnet-canny:aff48af9c68d162388d230a2ab003f68d2638d88307bdaf1c2f1ac95079c9613\",\n",
+        "    input={\"image\": open(\"path/to/file\", \"rb\"), \"prompt\": \"metal\"}\n",
+        ")\n",
+        "print(output)\n",
+        "\n",
+        "Can you run victoria.png through this 12 times with different materials each time like \"metal\", \"embroidery\", and \"crayon\"?\n",
+        "Then stitch together the 12 pictures into a 1 second video clip. Thank you!\n",
+        "\"\"\"\n",
+        "\n",
+        "interpreter.messages = []\n",
+        "interpreter.chat(message)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "# Watch the final output:"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 321
+        },
+        "id": "QIBeCFA25E_h",
+        "outputId": "6dae1485-b6b7-4653-aea1-54185fad37d2"
+      },
+      "execution_count": null,
+      "outputs": [
+        {
+          "output_type": "execute_result",
+          "data": {
+            "text/plain": [
+              ""
+            ],
+            "text/html": [
+              "\n",
+              "        \n",
+              "        "
+            ],
+            "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEABALDBoYFhsaGRodHRofIB8lHx8dHSUlJSUlLicxMC0nLS01PVBCNThLOS0tRWFFS1NWW1xbMkFlbWRYbFBZW1cBERISGRYZLxsbL1c3NzdXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXXVdXV//AABEIAWgB4AMBIgACEQEDEQH/xAAbAAABBQEBAAAAAAAAAAAAAAAAAQIDBAUGB//EAEcQAAIBAgIFBwoEBAYBAwUAAAABAgMRBCEFEjFBUQYTImFxkbEyQ1JygYKDocHCM0Ji0RQjsuEkRHOSovA0FVNjByWTo7P/xAAYAQEBAQEBAAAAAAAAAAAAAAAAAQIDBP/EACMRAQEAAgICAgMBAQEAAAAAAAABAhEDMRIhMkETIlFhcRT/2gAMAwEAAhEDEQA/APPwAAAAAAAAADreQbt/E/C+85I6zkL/AJj4X3gddrD1IiHI0iTWFuMQ5AOuLcaKQPjIdrEaHAPuI5DQYC3GsUa2AjG3HDGAawOQg24AxrYrY24CNiBcRsAuJcBGACNgIygchLiAAtxdYZcLgLcNYa2ADri6wwAHOQXGXABXIa5AxAHawjmINYD9cXnCMUB+uJzgwQCVVByqkAAYHLSd+Y+J9pzB0fK7zHxPtOcJVAABAAAAAAAAAAAAAAAAAAdZyF/zHwvvOTOr5Df5j4X3AdaOGIeaQqHIYPQDkKNTFRA5CjRbgOAS4AAjFEYDWNY5jGAjGjrDQEYwdIaAgjFEYCCAJcoGNYogAIxRGAgAIAMAEuAogXEAViXEEAcAAADWOYjAQUBAAQViAAAARznK3zPxPtOcOi5W+Z+J9pzpK0AACAAAAAAAAAAAAAAAAAA6vkP/AJj4X3HKHV8h/wDMfC+4sHVoehg5MqHDhg5MgchyGCpgPAbcVMBwJiAA64jAihXhJtRkpOLtKzvZ8GA9jWLcawhGNYrEkFNYwdJjQEEYojKEGsGJcIW4gkmkrt2XWV5Y2mvzX9XPwKb0sXEuUZ6TS2Qk+2y/cqz0lV3KC72XwtZueMa7EuYLx1Zv8R+xRX0NKjibrN57H/3uFxsXHOZdLdwI9YWaepKSdrZd5me/S2yTdPEMqpUnfypd7GLETWyb9ufidPx1y/Li12BmQ0lJZSjdcY5PuLlHERn5L7VvXsM2WOkylWLgNFuZaKIwuAADAQAAAABBQA5vlb5n4n2nOnR8rvM/E+05wlUAAEAAAAAAAAAAAAAAAAAB1fIf/MfC+45Q6rkR/mPhfcWDrLioYKisn3FTGChT0xbjUKEOFTGCp8Fd7Eut5AOc81GKcpPZFeLe5C42McPQnXxErqCvqRdo33R4u7G1dJ4fCpxi3WrfnVNXd+DexLqOT5SaTq4uKjUlCjTTvGmnrOT3OTyDPbOrcpMRVoKispynK7ht1W8oLhvXZY3+TWiZYanJz8uerrR3RtsXbmZPJjRadR1W1LUyjlv3vuOvjkjLokuDEC5UAjYNjbgI8xjHSmks2kNjCc/Jg7elLor92WRLZOyXGTqxjtaXiTrBvbKb7Iq3z2+Aiw6jdqKXi/btNzDbleWTpTnXf5YO3GXRX7/IhlOctsrdUVb5smrJ3Epwe9HSYRxvLlVOrSine13xlm/mRSzL1TDuTyRDVp06WdWpCHVKST7jXqMftkoVIMYqTeTQ+vpnCx8lyqP9Mcu9lKpp9vyKMY9cm2/lYzeSOk4smhDBraQ4qpzVVJ7Jx+af7Ndxlz0tiJfn1eqKS/uRXnJqU5ylbZdt+Jzyy27YYeN7dNh66Y+Gm8IlKnUquElOV7wk1uW1J8DCw9Z3FxWiY1G5RybzMS6dLJZquh5qFVXpTjUXGEkyi8JLXtsXFnM1MHVpO8W7rfFtMuYflDiEnCp/MyaTl5Sy4/ub/JXL8M+j6mlaKm0oTsm0pXWfXYt4ZRrZ0J60lnq+TNdaW/2XOddJsRKUGmrprY02miedb/Hi7HDY5p6tXJ7pfvwZfuY2i8esbCVOrb+IjFuMtnORW2/6lt60Pw+IlSepLOO4a30m9eq1hSOM07NPJj0zLZwgXAKRigAAI2KAHN8rfM/E+0506Llb5n4n2nOkqgAAgAAAAAAAAAAAAAAAAAOp5E/5j4f3HLHU8if8x8P7iwrqkOGDkVk5AJcUByFuMF1gFuMqYfn4qKcktbNp6qy3X/YJXdorbJ27OL7i+7RtFZJK1jUx2555+PSKjo+hRg3KMbRTey0Ukrt9Z5dpDGc9WqVLW15Skklayvku6x3vLHHc1g5peVUtBdj8r5I4DRtHnK9OG5yV+xEymvS8dtm67nQuH5rDwi9trvtZoxIIEyMuh9wGjkwBsY2OkNYFzA0YuKnqpyu8322LLV2MwP4C97xY5TtkdsXkz3tHURFzfcTzqLgRVLNNNXTyafA2wzMfpDDUL87Ujf0Y9KXcjDxPK2Kyo0PbUf0X7mniuTOFnmoc2+MHZdzyMfE8lKq/CnGS4ZRZyvk74+DMxOnMVUvrVXFejBKC+WZnO8nfNvi/3Nb/ANFlB2qJp8GrFylo1Lcc/wDrtP8AGDChJ7FYsU8DJnQQwS4E8cMlwKMKnoplqGjMrGyqaHaqIrLpaNtuLfM2RZEkgKVSgpbUUa+i43ulmbLgNlEoxVo/iNr6Nkop6jakrppNp52NeUSxXjfC0H/qr/8AZIsm6xndTbndG4R0sRTqpNKMru6aytZ/Jlusk79WwfNshbOsx04XK5JaVdxSe69n28faaFKqmjJqNRpVHJ2Vsr8dwuFruNjnl274XcbSHIgpVLolTMtngIABcUQAOd5XeZ+J9pzh0XK3zPxPtOdJVAABAAAAAAAAAAAAAAAAAAdRyKf/AJHw/uOXOn5Gef8Ah/cWDqkxbjExyKycKMTHAOAS42UrJt7FmBNg1erOXoJRXa838tUmcryYmEp6tNJ7Xm+15j1TO+M1Hjzu643l5iL1aNO/kwcmuuWz5IzOS1LWxLl6MX3sZyoxPO46u90ZOEeyPR8UzU5IUOhOe95HC3dezCaxkdJFEqZESIinXBMawTAcIxGDArYXlbh6beHrxnTlByWs1dPN522mlTx1Ksr0KlOo+Cmr920xNK6Mp110ktbjbPvObxGgqtN3pyeXA1LYzcJXoak9kk12jFUzaOBoacx2Gyc5SivyzWsvnmauG5ZUpWVanKD9KGa7mbmf9c7xX6dTJkEnZlbD6Ro1vwqsJ9V7S7mTSedmrPgbll6cssbOyVJtqzSae5q5Tnho/lvD1c13MtSImi+MrPlZ0rOnOO5T9XJ9zEjUTdtj4PJk+qJOCazSfbmYvH/HTHmv2auoGhmo15Lt1PNfuNdZryovtjmjncLHbHkxySsQRSTzQXMtlZGx41lEVTYyniNOwp0oUZUqj1HLpq2q9Zt5d5dmsjG0jgOczuVLJe0tPSWHqO2tqPhNWXfsJqlFq3Dc+PYc1VwMolrRWlZUJalS8qL2rfH9UTUzv2xeOfS3jMK5y1nJuK2Q3R/7xFgy9i4arVndNJxa2NPYyKEU80u1fUZT7TDL6q5gpZFxMqUFbYWomHU+4XEABbiAAHPcrPM/E+0506HlZ5n4n2nPEqgAAgAAAAAAAAAAAAAAAAAOm5G+f+H9xzJ03I3z/wAP7iwdOmOQwVMqJAuNuAQ64ko6zjH0pRT7L3fyTG3JMKr1l+mMm+12S+pYmV9NHeFSerBye5N9wzWzRR5R1+bwNeXGKiveaj9TtenjnuvNK9TWlKXpNy73c7Pk7T1cNDrzOJSvJLrSO/0fHVpwXBHne5eQ5MYKgFARBcB1wY24XAJIhlElbI5AV6mHjLJpMzcVoOlPYrPqNmwkkBx+I0BUg7wd7bB2H0zjMNlJuUfRqLWX9jqnEr4jCxltRRVwfKijOyqJ0pe2Uf3RsUqsZx1oyUlxi7o5vEaChLycjNlgcRh5a1OUlbfFtGpnY55cWNdvYie05zCcqJx6OIpqf6l0ZfszbwmkqFb8OrHWf5JdGXc9vsOkzlccuLKf6mq7CtCV24vZYt1I8URQpdK5tznbF0XjnqRi3sVjVjVXR4ylGK7W7K5zNDoya4Not1JydN2vdK67UeZ7nQ1aVSLaajdfq/sQuU/Q/wCSJ5YlVoU6y2VIJvqkspLvQyze1nWYSx57yZSoece+DSW+8X9SGTuT1rZrc7ozKdVwm4S3bzGWOnTDPyPqUkzMxmBTV0bJHVp3TMOitoyo54V035VGV1/pyvfufiEJOMkxdFQtWqcHSnfvVgmjth08/J2twnqtL8rV49nAu05GW3/Lv6Lv7Ht+hbwta5zs1XbG7i6IIKRoCiChHPcrPM/E+0506LlZ5n4n2nOkrQAAIAAAAAAAAAAAAAAAAADpeR3n/h/cc0dLyP8AP/D+4sK6YUaKVkotxooA2T4DzsuLjHuV/uK5c0bFc1F+leX+5t+FjWPbnyX0nhG9mjI5bz1cCo+lOHyuzeoxscvy/qfyaEeMpPuX9zpn048fyjisNG9WC/Ujv8Ouijg9HK9en2ne0diOEetOhyGoLlDgG3C5AogCMAGsUawAQGxLlAIwuBA1xI50romEYGZidGQqLpRz4mLi9BzhnB3XBnVSRHKIHM4XTeJw7UZ9OHoz+ktqN7A6dw9ZpXdOXoztZ9jEr4WM/KVzHxWhVtjc1LZ0lxmXZkl/NqJenLxLtG2x8CjSwzhusi9QpveRUmiK+pOWHl5MnrU3wlw9vijVbsYmMwzea8pF7B49VlqyyqpZp/mXpL6nTDLTjyY/azNX2lLGYXnFeOU1sfFcGWZtjDpZtxlsUaVVxerPoy4MnlPosn8pWmlJcGhqpwWagvm/E5+DtOaIcLT1acpvyp5L1VtftfgRTZZrTuVZI3JqOVu7s6OcJL9Mvkr/AEIsLVs0SS6MJv8AS17Xl9Sonmc8u3fj6b1Odx5Tw88kWkzDZ6FQ1C3A5/lX5n4n2nPHQcqvM/E+058lagAAIAAAAAAAAAAAAAAAAADpOR/n/h/cc2dJyQ8/8P7iwdKKmNArJ1wEEuAlSdoyfBPwNbCQ1acI+jGK7kYtd9Fri4rvkl9TUraSw9Ly61ONuMlf5G8fTlye40IPI4rl9O88PHhCT75W+hsVeV+ChsnOb/RB+Lscnyk0xDGVIShGUYxhq9K176zd8u0udmmePCy7qholf4iHadxBnD6I/wDIidtE5R6E6kKmRpklyhQEuImQOBiXBsBGNuK2NuUKIwEZAgrEAuwrYjC4NgIxrFEYDWhrhceAFeWHTFVK2wlYjAgnEysbhWmpwupLNNbjZkiKdO4FHC6VjLo1bQnul+WX7MuMy8bgVuRTpYqtQyT1oejJXXs4G5nY5ZccvTfuMlMz6emYPy4Si/02aJv/AFCg/wA9u2Mkb84x+OxLKQkIleekaK2OUuyP7larj5zygtRP/d/YnlF8Ks4qspPUjsi7yfF8PYQoZShZE9Km2znXWTUXsNsRcgytSjkTxIqVMUamLcDA5VeZ+J9pz50HKrzPv/ac+StQAAEAAAAAAAAAAAAAAAAAB0nJDz/w/uObOk5Ief8Ah/cWFdGFwEKycIxLgA2rTUouLScXtTMfEaCpfljq+1m0NaA5HEaKnF9HYQrR1Tgd3h9FTrwjUTpwjK9rpyeTa2ZcCHSmiZ4XD1K7qxnqWerzWre8ktus7beA0nlHLaM0dKNRSZ1FPYjFw+m4OWq4tN5G3TatkRpIOuM1hblDrhcRMAFuJrBcQAYjFuNlKybeQQJgPpYWpUzf8uPGS6T7I/uZ2ka0KFZQTeq6al0ne71n3bC60nlN6XbgUsPjVPYW0yNHCMViXAQQViAAgAAgg4AGNCWHMQCKUUyliMEpbjSGtAc7WwTT2EDw7W46WVNMq18OlmBiqiyelQNWei5KnTnrxfOR1rOLVs7WvfMjnRcIuV4tK17X3tLh1l1WfKIKdAt06dh0I5EiQUiRIhBSByY64xMVMKwuVPmff+0wDf5UeZ9/7TAJVAABAAAAAAAAAAAAAAAAAAdHyR8/8P7jnDouSfnvh/cWFdGKNuJcrJwXG3EAeIxtxJMDYwOI1MNQV/yJv2sh5U1L6Nrvqh//AEic9V0ljKUUoKhKMVZNxlrWWy+ZnY/TWNxFKVKeoqcrXUYJbGmvmje5py8MvLbEpytNPrR29CpeKfUcdDA1LronWYKGrCKe2xzjsuJjyOIvOq9r3fBXZRJcNYY2/Qqf/jl+xG8RHfddqsET3BkakmKpAK2WsJGKhzjV5uTSvutvS4lRonhJqlFPLOTs1ubN4xzzuonnWvte05HlTK+Jiv8A4l/XI6NzOd09RlLFRajJrm45qLa8qRc+mOPtLomn0UbC+ZRwNowzy45MuqWRzeg5sBrYKQD2NIefV7K8nwim/Ac+d281O3sXiypuHgQupNZypTS42v4DqdaMtj9gNpGDEEZFDEYXI5VYrbJd4D7iEfPR9Jd45zXFAKRVvJEdePpLvG1pq20DScU8Jh78Ki7qkjNxcLUKvZfuaZSr4/ERgoQnHUjfVTit7u8+1srPH4iScZamq1Z2Wdu83MvWnHwu9rWHxW4uwkZNGm7mnRWRh1TXFuNuFwHCiABh8pvNe/8AaYRu8pvNe/8AaYRK0AACAAAAAAAAAAAAAAAAAA6Hko/xvh/cc8dByV898P7iwdBUqaqbexJtl+GiK8vywjwvP9kZ0ldNcb/M6bRNfnMLSk9uqk+2PRfgac8rqOGq6djCpKnKDvGUotqWWTtfYaWAqxrygoStru1+HE5XlDRdPH4mP/yza7JPWXyZv8jE3Ny3Qg370nZfLWJO1vW3SR0NTTzq1X1dFeCOH03pKUMVVhRm+bhLVzd7tbX33Oy0njeap1Kt/Ii2u3d87HmecpZ5uTzZrOaY47b7r0p4PDakb0lKUkr3lJ7u0qcpdHYejgatSFCnGa1LSSzV5x2PsuaNNZU+yPgVeWj/APt8/Xp+JqyaYmV8tOEweLkqkbydm1tZ1VKascXS8pdp3OhoJR51/lyiuveznHfK6m12nhlFXq5v0E8l2ve+ot0sXaNoqNNcIqxTjUcl0t5n6R01SwqUc51PRW7te466kjhu5Nv+JlxfeI8QpdGcVKL3NXRyMOVktbp0Y6v6ZO67zfwuIjWpqpTd4vLPanvT6yyypcbj7M0ho+0XVwzeV3Kld7P0/sUcNj9bO9mbdG8Wc3p3D8xiVOOVOr0kuD/Mvr7TGWOnTjy36rpNF1W8JHN7Z7/1MgrO727zHocoqVCiqUqdRyTbvHVtm7ra+st4bE89CNWKaUtZWe3J2NY2dMZ43e082Nji5IV3szL0hpGnQnqSUm3FPo2tnfrNW/1mTfS3pDEt0arvsg33EGDxLazZm1tL06kJwjGd5RaV7W8SxgXs4HHK+3fCWT21XP28LZt8Eusm5hR/Fzf/ALa2L1uL6tnaGDkoR51+W0+bXorY5dr2di6yB1bt55t5m8cdsZ5/UW5VXayyXCKsu5DZXtn3ladeNOLnUlqwW9+HaZOJ5Txv/Lptr9Tt4G7lI5THLLpuMZUUZeUrvismvaZGF09CbtJOm3vvePfuNSMmhuZGssEc5Sp5tuUOO9dv7kqqJ7x1k9qye1cVwM2bdKepti849n9jnljp2wz36q9OWTJ1P+TRyWcZf1yKTqZFig70KL6qn9bM49tZ/FK1kr2KOiqClDncQrxzUIS2Stld9XiXL5LqKuMrek0opLqSW462RwxtLVxSv0IxitySSRnaVrKPNySSk3K9srrLaPp4ulN2jUjfcndeKKGlJ3qW9GKX1MZWadcJ7bNKhSlgqE9Ra83VUnd3dptL5EDwlPUk1GzUZPyntSuSYOX+Aw/r1v6hyfQn6k/6WWT0zbfLTPwtfIu0akpu0Fd7Xd5JcWY1BmzD+XQivzVOlL1fyr6+0xJt1t0RyttlJ+rZL53HU5vc2+qVvEp1asYLWm7Rd7ZXb7CXCV4TT1He21NWaN6jG72u06iY9MpVJ6k4tbJLPtRZhUuYdIx+U3mvf+0wzb5SP8L3/tMQzWoAACAAAAAAAAAAAAAAAAAA6Dkr573PuOfN/kt573PuLBvtmxyZq/y61N/lqXXZJJ+KZjlrQdXUxTj/AO5TffF38GzU7c8+nOcu6Gpjda2VSEX2tZPwRq8kY6mEc/Tk+5ZeNxv/ANRKOWHqJbHUi33NeDLujKPN4ajDeopvteb8TWM/Zm39GfytxGrhVC+dSS7ln42OV0fS1p9ib+TNHlXidfE6l8qcUva839Buh6fQqStti/Azn7reE1i7ek8o+rHwKHK6rraPkv1w+pbot2j6sfAzeVEv8BP/AFIfU65fFwx+bisN5aO+p0tSlCmvyxz7Xm33s4PAr+dTXGcV3s7zGVGpPtMcbrymV6yp05Sf5U33HB1ajqTlKXlSbb7WdVpmq3haj6kv+SOawFHXqJDkvs4562nwuAc7G5o+bwan0ZTjJeTG3lbnn7Szh6CglxJ9RMxPTpffpn1+VU1lCil1zbefYjK0jperiFFT1bRd1qwtna3E3auBjJ7EQS0bHgW5WpMZOmdg8LzsbvabeDjzdCnBbNar/UMp0VTVlvJab6C9afiMO2eT4pk7nMacWtifcgdEqyuYGkf/ACn6sPA6Z9OfH2TB4C9mzUjSzUY7ZNRT7Xa4YfyVkSUPx6fa/lFnF2XajTbt5Kyj2LYVIwtJ9pKshJ5XfU33I9PUeTtzemcU6tZxT6EMl2733kNHBOQYOGs7va22b+HoJLYee3b1yammNLR2Rr6Dqt05UpZyprWj1wvZr2NrvJpUw0ZTSxcf1QqRftjf6FnpMvcWdexU0mk6Snvi13PL9iaMr7SPG/gVV+ls733Hmx9WKVKveJpYeX+Ho/E/rZz9GpmbeHl/Io+//Wzjh29HJ0sOWRgaYqupV1N0bN9rV/Bmy5GLUV69R/qZvPpz4+0FPB33Dq1BpcTVoJW2Da9O6OOndNg1/gKP+pW8UIn0J+rLwJKC/wAFS/1K3iiFSymv0S8GdZ8XC/Jj0myaePqa3TSmstmTslYZhkWaVB1JasVnvb2JdbOcdqq46o8RUU4xcUoxik91r/uP0TTlHEWttjI0oYGnDynKb4X1Y9yz+ZYpNLo04xim9kVa/bxNarFynSrjsox9Z+A7CTurEeOfQj630Y3CPMl7ax6VeUXmvf8AtMU2eUPmvf8AoYxmtgAAgAAAAAAAAAAAAAAAAAOg5K+e9z7jnzf5Lee9z7iwb7G0p83WpVPRmk+yXRfiOZFXjeDS22yKzWryjwn8RQjC12q1N9ivZvuY5tK/D6DKOJ14Qn6UYvvRR0xiubw1WW+1l2vI7T17ebdv6uHxdbnas5+lJv2XyN/B0tWh7rv3HPYeGtOK6zq3TtSa/S/A4PU2qErJeovAzOUsr4Gov10/qaCl0YdcY+Bm8omngqltmvT8Wd78Xmx+bkMLK1WD4Si+5nd4zOV1s2nB0V0kd1hJ85Rpye22rLtWX9/ac8HXkZ+l4XwtRLgn3ST+hhaH/FR1lSG5q6e1dRzUsJLD19V7L3jL0obmXOfZx31p0EHkS07tqMU5N3sl2XKtGonFGhoyqoylUd9VR1U913a9uy3zMybayuogqSlG+tGUe2LRFz64mnWxUbXi7S7jC5T4yXMRjfpSlwzsuvuLcdM48m7pPGvGTdnmgg70l68/ExNDzd77/wCxt4XOl78/EYdnJ8UkIGFpH/yX6sPA6G2Rg6ThbEJ8YR+TaN59OfF2v4ZdEfRdsRS65Nd8WNwqWrdtIjxc9W0o5uLUl123HF3X75iT4cbrvFmk+nDOMldEbuz0x5XP4FasrcG0b1LYZuOwzhU5xeTLb1S/uW8PWTR57NPVLuLL2MTAv/Ep+hTqS+VvqMnVSRNQpOEHrK06lrp7VFbE+3b3Fxm6zndQyxBpCp/Iq9cWu/ItuORk6ar6sIwW2Tu+xf38DtldR58PdZtKWZu0JfyKXv8A9TMKhG7Nyh+BS7an9Ryw7ejk6SXMl/iz9aXiaqRk+dn60vE3m58fbSo7AqrJhR2BVeRydk1PLB0v9St4oqvZL1ZeDLVNf4Sl69bxRXn5M/Vl4M6TpxvyZNGVkbcIqnCMN+UpPjJ5/JWRhUtxuYt9OXC/0M4t5qOOx/NuyV5vNLcu0h0VVnUxMHOV1HWlbYlZPcVtIR/nSvvs12WNHRdB06cqjyc1aHZvfY/oN7rWpIfjXlHt+g3DbRcY8o9rEwu0lJ0q8oNlL3/oYxsaf2Uvf+hjma3AAAQAAAAAAAAAAAAAAAAAG/yW897n3GAb/Jbz3ufcWDfEaFBlQ3DVNWLjbZKS7814/Iy+VGIfM04X8qV32Jf3LlenK+tCcoy/SzF0jhq1RrWk5Wva9jXl605+H7bUtFQvWidRNdCXY/AxNFYOcKl5I3ZK8Wuow6LNNuUIP9EfAp6dVsFVXXT/AKhq0nKlCMZUXLVildTWdt+wz9JaX52jOnzUlraubknskn9DrcprThMb5bYdDy49p1uCxCpPpfhztd8Hul2bmclCLujqaCUqcb8DnNx2s22pQTXWV6kYyWrOEZpbFJZp8U9qM6hi50Oi050ty/NHqXFdRep46hUd1Uinwl0X3M6yy9uHjcejY4WlDzTfrVJyXcOnUcuxZJLJJdm4mnKEl5cLesiliMfh6V9aopP0Y9J/IvqHuplxexZtvYkcppjG8/Wbj5EVqw7OPtZPpPS86y1ILUpcN8u39jOp03J2OeWW3TDHXtp6HhkbOBfRkuE380mVMBh9WJLrulPXs3GVlJdmxrvYx9Vc5uL42rQpztrxva9mm0+8ZTrRkrxesuoNZt5Hb1Xl9w3G0KMaFVxp9Lm5tNybs9V5owsPXclZtmxj6kY0pqckrxkrPa7o5+i7SOWXb08e9e25orEpN0JvJu9Nv+kuSjZmNqayLVHSjh0ayclsU1tt+pb+3aXDL6rHJhb7i4875dqayfU0Mhhad9ko+pLLudyWnVhNXhJSXUP1DpcZXKZWEiqcM4RbkvzTd2uzgRTrZjnFq5n4nH0qe168vRj9XuJ6xNXKrlbEKEHOWUV8/wC5zNevKtUc3v2LgtyFxWLnXknNpRXkxvZL/vEmw1OO9rvOWWW3oww8U1KlaBp4b8Cl7/8AWyrLVasmu8WljqcaVODb1oqSfRlvk3w6xj2uc3F1PIx5/iz9eXiXVpCl6T/2T/YpSetOUlscm13lyu2eOWdtOhsCtsEobEOrLosw6JIO2EodtZ/8yCp5M/Vl/SyB6RtTp03B9DWzvtvJsjnj9aMkoNXTW3irG9zTlcbvajDYbFOtzkFLfsl2rL+5lKmx9NTg7xe3amrpmZXSzbTssrwjJrZrRUrdlxlWterGLd5O7eezLYU54uq8klHrWbIlh5PjfiWpJftdxrV4rfndbxcKiClhbFyjCxGmdp/zXv8A0Mc2NP8Amvf+hjma0AACAAAAAAAAAAAAAAAAAA3+S3nvc+4wDf5Lee9z7iwb4MLiFZI0MdMkEAYoJCjhrAhqU7leeDT3IuMbrAUlo6Jcp07Kwaw9BTHTuVa+CUlsRfuI0Bh1NFrcl3IgejmdE4obzaAwqWjG9poYfAKJfUUPUQI1GwypDIsIYyoyK+EzusnxWTK9RV9nOT7zblFDHSQNOeWEk3d7eLzZZjhWzX5lcAVNEVBSpWQ+dC6J1CwqiBi4jR1neOT6is+ejkpz/wBzOhlAilQXADn506kvKcn2tsRYV8Df/h1wEdBICLk9TUY15NJ2UNqT3s1OeXBdXRRQwEVGNaN0r6m+29lhyVkrxsutHXDWnn5N+SnpWXSg+qe7rRVjRUiXSU4uUbSUrKV7NO2z+5HhZbjGXbph0VYMmhhixBEiiZbNpxsh7Q6wAVKuFTzsRfwnUX2NsBVVAXmixYNUCvzSHKBLqhqgMURyFsAGPp/zfv8A0Mg2NP8Am/f+hjma0AAAAAAAAAAAAAAAAAAAADf5L+e9z7jAN7kx573PuLBvgIBWQAAwEYjFEYC0KevUjBtpNS2WvkstqZJV0dC9o1Kl+vUf0IaMtWtSf6mv+LLKrOXSeT2nTGSxw5MspfTmsHLE4ipzdKN5Lyt0YrjJ7kblPBSiunXi5b9SDkvY21fuJqdGNKEqdJdGUnOXGTbur9S2IjqSUXZyV+F0ZmP9buf8Nnham2nUhPqfRl9V8yo8RKEtWpFplpQzErRU46s81ue9daLcf4k5PfslOopLJkhjVJyoy6181xL+GxKmusw7LQspKO1pLtFw9OVSWrHLe29iXE0oRpUV0I607eXLOX9vYamNrnnyTHtmJSl5FOcuyEmNnTqrN0aiXqS/Y0KuNm/Kk+8ZSxGs/K7jp+Jx/wDR/jJeJS8pNdqt4kkKilsZrVK8lk5X6nmUMThac05JakuMdntRm8bePNL3EbGsqQxDUnCeTX/UT65zdzp1VHJte1jXiIreu9E2jpLXrNpNqENqT/OXVLgo/wC1fsbxw25ZcnjdMznk99+wbPERWV7vgP0rQnVq0YU9ste72JJWzZa52lhY83QWf5qj8pvtJ4+1/J62oVKsrX1J29RkUcSpMsVMXOWes79pmaQxcm4q/SWbe+z2L6i46Mc9jFYbnHfUlLPak/oVXo9rzU+6RtaHrN4ed2/xfsX7llzfF95ccds58njdOdhR1HquLi+tP6l6jStmN0lUcq0Lu9o/cx1OdlmYs1XSXc2tKaSu3ZFiFGrKN1FQi9kqj1U+xbWLhaKpwjWqK9SSUqcWrqEd0n+p7uBDWryldt9rbNTH+sZZ/UOlSa211f8ATBvxaE5uW6on2wt4MoSx9JPOor9Sb8EWsLioVE9WV7bcmvEuolyyS6zXlWtxi7r90OTEabZShW1JON7pPJ9RLjprDLa8AyE7jzLYsIKADbBYViAY/KDzXv8A0Mc2NP8Am/f+hjkrQAAIAAAAAAAAAAAAAAAAADd5M+d9z7jCN7kx573PuLBvIBBblZABcQAY1iiMKiqOzg+E4f1K5cnGxQxXkS6s+40ZdJ/NdjOnG4cv1WZp/HSoUIxi7TqXV1laK2268zkW7u72nQcq1+A+qfijnjGfbpxfFt6G0hJNU5ybg3ZN/le72G5NXWZzmi6SlGSZ0NKetShJ7Ws+1ZM1hWeTH7Z+k6X8u6/L4bzOweK1ZbTaqJSUovemjl02mTOLx31p6Bo1xVCOq05StKVmm7vYn2IknDvOPwnSS6s7raiy8diKfkVXZbppSXe8zeHJqOWfBcruVb0tp2FCbp04KpNeVJvKL4LizNjykq76dP2XRmujn0pXb682WaOjK1T8OjUl1qnLxZi55Wus4sJOnR6P0jHEwbWUo+VF5260+BNOWRn6G0TUw05Va1oJwcVDWTk22ty2LItuR1xts9uGeMl9MnTHRlTmux+K+o6hiboTTX4cX+pfUo4ZnLOe3fjv6tvAy6Vb1If1luNUztHTzq+pD+otbDpx9OPL8liVaybW1q1zGxWNhBtSleXBK7J9IYnm6ba27u1mDSouXbxJnlrprjw3N1q0MXTm7KTT4SVr9hm1KmtOUuLy7NxJ/BsSdBo527dpJOmxoZ/4eX+tL+iJbZU0SrYVddSo/lFfQs6514+nn5e2PjX/AIh9Sj4EuEgqlanB+S5JPs3lfGO9efu/0odQrc3UhU9GSb7Dle3onxbGMxDnUk91/wDqMvSdOcoRtfVTeskm+xvq2l2cbSfb8hFJrY7G+45S6rn7RWWVybC1pU5qcVfc09jNr+If5lGXbFMZJUpbaUF1xWr4GfGt+cqhVxNWptk0vRjkv7hTjZWRbnhY2vC6tubv3MjpU0yXbU19J8LNlxFanCxYiRThGAAIAoAYun/N+/8AQyDY5Qea9/6GOStAAAgAAAAAAAAAAAAAAAAAN3kz533PuMI3eTPnfc+4sK3QACsgAEAUQBAG1I3TJqNT+XFvbqpPtWREyOnLoW4Skn4/U6YX25cs9Kun6Wvh1Jfklf2PJ/Q5do7VQWq4yzi0011M57G6O5mT/NTfkzXg+DJyT3s4cvWjtCPajZpStS9+fiY2Ai4yvHO+6zzfUbVWOpTjF+UleXrPNrvM4dt8nRkNq7Tlq2U5Lg34nSxlZp8MzmKkrtvi2/mazZ4vtuaBwdSvrato04216ktkeq299RuRwWHh5NN1XvnVe3siskN0TR1cFRislJa8utt7yy8v7Fwxmt1y5uS71ESxThlBRiv0RSGVK1WXlSk1nteRgaU0tNVJQpNJRyct7e8yp4mpLypzfbJi5yN48ds911sJRctXXTk911uFuYOgab55ye6En4L6m3rGsctxjPDVZ+mn/LXrL6lDDl3TPkR9aP1KeH2GM+3bj+LS0c86nqw/qLTkVNH+d9WH9TJmaw6c+T5KWmH0YL9Xgn+5FhYD9KbIes/AXCGMu3XD4rcaZHWposJEdbYzLZcG7YamuMqr/wCRI5EVLKhR9WT75sU64dPNn2zK2dafb9EPdO8Rl71Jv9TL9ChOpG8IdHZrydo37X/c5Xt3nSnSxcqaUZK8Vsa2rq7CX+Pp22te6ydYCKzqVbv0aa+5/sZOIpOM5RtezduzcXdiamS9/GU/S+TJKdRSzi79hk23KGfaamCwkqUG55Sm01HfFK+3g3fZ1FmVqXGSLUXZFChUtYnxVXVjbe8vZvK9KlcVcY06UrkqIaMbIlMtHCAIAXFEADI5Qea9/wChjmxp/wA37/0MclaAABAAAAAAAAAAAAAAAAAAbvJnzvufcYRucmvO+59xYVugAMrIAQLgDEAAEY2kulNcVGX0f0HjVlUg+N496v4pFnbOU3EeLnKEJONrpN577Z2KmGx8KsXlf0oSV+9b0abSZxtaLpVZJNpxk7PftN53TnxyV0kK8YvoRhC/oRSfftFlPWRnUsXVcb6tOfW42fyYk8fWtZQhHrSbfzZJlFuGSXSFZUqdr9OSslwW9mGkTThKTbd23vZYw2Cbd2Zy9umM1HS6Ir62DhG/Sp3i+Ntq+RM5Pe8jJpqVJ60NtrNPZJcGXqGMpzdr6st8J5Pv2P2HXjs1p5uXju9xk6U0FVU5VKUHUhLPo5uL3pop0NG4ieUaMlxbi4pe1nXxclnFu/Uynj5yfSnJ2/VL9xlxfbWHP9VSw+Gjh6UlrKdWbWs4+TGKv0U97HwkZ2Jx6V1DpPjuL1NSsnq5NIk1PS5S33VfS2dPscfEoUGaWOpuVKeWaTfdmZNGVjGXbrh01tH+d9WH9TJ0Q6NV41n+mmsvWZMovgbw6cuT5M/Sn5O1+A7CCaVXke36CYRmMu3XD4tPcQ1djJlsIa2xmWiU/wAKj/prxb+oqGyr00oLXjlTgtvUJ/G0fT+Tf0OsvpwyltZWu05P9UvFlvR+Jf4be13jfZfevkimo5C8xrHP7d7NzTXldCNRflQhO2zWT+jKcataCyd1+pXEeLq8ILsi/wBzXlHOYWdNCFbV/DhCn6kUn37fmVq+JUeuXD9yrKdSe1vsWQtPDEt/jUx/psU5yuzSoU7IjpUrFmJGj0hREFyBQEABRGFxrYGVp7zfvfQyDW075v3voZJK0AACAAAAAAAAAAAAAAAAAA2+Tfnfc+4xDb5N+d9z7iwblwEFKyAAApBRBQBEde9rrammvY7kg2SCIf4ynvk4vhJNf2MDS8U8RKUXGSkk7xaavaz2daN+dJPcU62j03sNW2zTOOMxu4q6KntRovDpkGGwGpK5oJGW1WOGitxKqaW4lsFgiNxyK1bDqW1XLrQ1xAyKmHlHyZTXZJoqzoTflNvtbZvOA10lwAwlhZD/AOGlub9jZs80g5sDGWHn6Uv9zHwwjNXmkKqaApKg0spSi/0ya8CCWHqenP8A3v8Ac1tQTUAx/wCHk9t32tssUKDTNDm0CggFjsCUbigFUcRhbsh/g2abiJqAUI4Unp0LFhQF1QiHm0JzS4E9gsBCqSHKBJYLAIoi2FAAAAARgDEClEC4lwjK075v3voZJrad83730MkzWgAAAAAAAAAAAAAAAAAAAAbfJzzvufcYhtcnPO+59xYVuBcQCsluAgAKAAACC3ABAYMLgJYBbgAgAAAILcGA0LCiNAIIKIAMQUAoAACBiAFwABLgFKAgBCiA2NAcA1C3AUBoXAW4JiAAXFTGgA4aAjAGwGioDL035v3voZRq6b83730MolaAABAAAAAAAAAAAAAAAAAAbXJzzvufcAFhW0KIBWSgAAFwuAAAAAA0IAAAAAAIgAABiAAXAAAQQAKEuAAQFwAAEAQAFAAAAAAEYgAAAABRcS4AEAAAADEABLiAAAFwAKy9Neb976GWAEqgAAgAAAAAAD//2Q==\n"
+          },
+          "metadata": {},
+          "execution_count": 10
+        }
+      ]
+    }
+  ],
+  "metadata": {
+    "colab": {
+      "provenance": [],
+      "collapsed_sections": [
+        "I1WSa-Jw0KM0",
+        "cM7Yf5pHgeDW",
+        "YlDX4rl8x1EF",
+        "E9MTDnOWLMP8",
+        "OTTkCcIshgmB",
+        "KrgUKfZDLTEa",
+        "C1vMxJzikQ_D"
+      ],
+      "gpuType": "V100"
+    },
+    "kernelspec": {
+      "display_name": "Python 3",
+      "name": "python3"
+    },
+    "language_info": {
+      "name": "python"
+    },
+    "widgets": {
+      "application/vnd.jupyter.widget-state+json": {
+        "00ba9165fc8c406e9ac0fffa01cac05d": {
+          "model_module": "@jupyter-widgets/output",
+          "model_module_version": "1.0.0",
+          "model_name": "OutputModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/output",
+            "_model_module_version": "1.0.0",
+            "_model_name": "OutputModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/output",
+            "_view_module_version": "1.0.0",
+            "_view_name": "OutputView",
+            "layout": "IPY_MODEL_4a16bcbbc01e40dfb0b835c4af36cc54",
+            "msg_id": "",
+            "outputs": [
+              {
+                "data": {
+                  "text/html": "
                                                                                                                   \n  from docx import Document                                                                                        \n                                                                                                                   \n  # Creating 5 documents with sentences about Machine Learning.                                                    \n  doc_texts = [                                                                                                    \n      'Machine learning is a method of data analysis that automates analytical model building.',                   \n      'It is a branch of artificial intelligence based on the idea that systems can learn from data.',             \n      'Machine learning is an application of artificial intelligence (AI) that provides systems the ability to au  \n      'Machine learning focuses on the development of computer programs that can access data and use it learn for  \n      'The process of learning begins with observations or data, such as examples, direct experience, or instruct  \n  ]                                                                                                                \n                                                                                                                   \n  def create_doc(path, text):                                                                                      \n      doc = Document()                                                                                             \n      doc.add_paragraph(text)                                                                                      \n      doc.save(path)                                                                                               \n                                                                                                                   \n  # Creating and saving the documents.                                                                             \n  for i in range(5):                                                                                               \n      create_doc(f'documents/doc{i+1}.docx', doc_texts[i])                                                         \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdocx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mDocument\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Creating 5 documents with sentences about Machine Learning.\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdoc_texts\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mMachine learning is a method of data analysis that automates analytical model building.\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mIt is a branch of artificial intelligence based on the idea that systems can learn from data.\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mMachine learning is an application of artificial intelligence (AI) that provides systems the ability to au\u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mMachine learning focuses on the development of computer programs that can access data and use it learn for\u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mThe process of learning begins with observations or data, such as examples, direct experience, or instruct\u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mdef\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;166;226;46;48;2;39;40;34mcreate_doc\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpath\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtext\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdoc\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mDocument\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdoc\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34madd_paragraph\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtext\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdoc\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msave\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpath\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Creating and saving the documents.\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrange\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcreate_doc\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mf\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mdocuments/doc\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m+\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m1\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m.docx\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdoc_texts\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "065b7774a5a34beebb77f7e6a1501617": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "0b001f96904d4c91bf26ad72420e9cca": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "0bb8a3df854e46129e51445df4f8192b": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_ff2383ba5a3943cf8ab4f0cedcb40c3f", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  import feedparser                                                                                                \n                                                                                                                   \n  feed = feedparser.parse('http://feeds.bbci.co.uk/news/rss.xml')                                                  \n  [entry.title for entry in feed.entries[:10]]                                                                     \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfeedparser\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfeed\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfeedparser\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mparse\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mhttp://feeds.bbci.co.uk/news/rss.xml\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mentry\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtitle\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mentry\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfeed\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mentries\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m10\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "0cbcc3ce78ac4df28d0326e591a2418e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "0cd08b7a5f5a4d8c9cd61e5df2a43dc3": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "0d24fe34dd454245ab16fd84734a063d": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "0e33aaf3c5dd44dda84ebc379dd78417": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "0ef2a15fe9594494b7957e9dab6166b0": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "0f4453a4442c4304b22d673c9b1a72ab": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_4ed501ea235a4e77a2d7f4e9ef49eb23", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  import os                                                                                                        \n  os.mkdir('documents')                                                                                            \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mos\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mos\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmkdir\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mdocuments\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "0fc2ff891df145cd802b1b0f1c369adb": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_a6ddbeb9b5ef4ea58858eabac8fde3c6", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  This is a multi-step task. Here's the plan:                                                                      \n                                                                                                                   \n   1 Install necessary packages: yt-dlp for downloading the YouTube video, moviepy for video editing, and          \n     replicate for using ControlNet.                                                                               \n   2 Download the video from YouTube.                                                                              \n   3 Extract the audio from the video to add it back later.                                                        \n   4 Cut the video to the specified time frame (0:10 to 0:17).                                                     \n   5 Reduce the video to 12 frames per second.                                                                     \n   6 For each frame in the video, use ControlNet to redraw it with a random prompt that evokes a stop motion /     \n     hand-drawn animation.                                                                                         \n   7 Combine the redrawn frames into a new video.                                                                  \n   8 Add the original audio back to the new video.                                                                 \n                                                                                                                   \n  Let's start with the first step, which is installing the necessary packages.                                     \n                                                                                                                   \n
\n", + "text/plain": " \n This is a multi-step task. Here's the plan: \n \n \u001b[1;33m 1 \u001b[0mInstall necessary packages: \u001b[1;36;40myt-dlp\u001b[0m for downloading the YouTube video, \u001b[1;36;40mmoviepy\u001b[0m for video editing, and \n \u001b[1;33m \u001b[0m\u001b[1;36;40mreplicate\u001b[0m for using ControlNet. \n \u001b[1;33m 2 \u001b[0mDownload the video from YouTube. \n \u001b[1;33m 3 \u001b[0mExtract the audio from the video to add it back later. \n \u001b[1;33m 4 \u001b[0mCut the video to the specified time frame (0:10 to 0:17). \n \u001b[1;33m 5 \u001b[0mReduce the video to 12 frames per second. \n \u001b[1;33m 6 \u001b[0mFor each frame in the video, use ControlNet to redraw it with a random prompt that evokes a stop motion / \n \u001b[1;33m \u001b[0mhand-drawn animation. \n \u001b[1;33m 7 \u001b[0mCombine the redrawn frames into a new video. \n \u001b[1;33m 8 \u001b[0mAdd the original audio back to the new video. \n \n Let's start with the first step, which is installing the necessary packages. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "1038b781d07d4e8e8df69bff5b2df9ad": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "1276e768ba0143ac98e1a1369dedd755": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_0cd08b7a5f5a4d8c9cd61e5df2a43dc3", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  import replicate                                                                                                 \n                                                                                                                   \n  material_prompts = ['metal', 'embroidery', 'crayon']                                                             \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mreplicate\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmaterial_prompts\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mmetal\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34membroidery\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mcrayon\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "1326436b350b45ed82d6a1be8d9402ce": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_ef334d3eb6a043608312c67aa3c7e3b8", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  import sympy as sp                                                                                               \n                                                                                                                   \n  x = sp.symbols('x')                                                                                              \n  equation = 10*x + 14 - 21/3                                                                                      \n  solution = sp.solve(equation, x)                                                                                 \n  solution                                                                                                         \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msympy\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mas\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msp\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msp\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msymbols\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mx\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mequation\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m10\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m*\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m+\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m14\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m21\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m3\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msolution\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msp\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msolve\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mequation\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msolution\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "1356d617a0c74b9fb9dc4f94d78f62aa": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "151cf723f20d41c392149082e4b987c6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "155ee92669cc4e1180a1568bfffb8720": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_7da8ca4865a647d6ac46a64af17fd02d", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  {'language': 'english', 'subtitles': \"WEBVTT\\n00:00.000 --> 00:02.000\\n Well I'm a stoner man\\n00:04.000 -->     \n  00:07.000\\n That's right I took in man\\n00:08.560 --> 00:10.560\\n Put a joint in my hand\\n00:12.240 -->          \n  00:14.240\\n And lose control\\n00:16.840 --> 00:18.840\\n Well, I'm a lunatic man\\n00:21.440 --> 00:23.440\\n I     \n  got right crazy man\\n00:25.560 --> 00:28.720\\n Then take you long if you're out\\n00:28.720 --> 00:30.720\\n I'm   \n  out of game trouble\\n00:35.720 --> 00:37.720\\n I could\\n00:37.720 --> 00:39.720\\n No\\n00:39.720 --> 00:41.720\\n  \n  Oh\\n00:41.720 --> 00:43.720\\n No\\n\", 'text': \" Well I'm a stoner man That's right I took in man Put a joint in   \n  my hand And lose control Well, I'm a lunatic man I got right crazy man Then take you long if you're out I'm out  \n  of game trouble I could No Oh No\"}                                                                               \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m{'language': 'english', 'subtitles': \"WEBVTT\\n00:00.000 --> 00:02.000\\n Well I'm a stoner man\\n00:04.000 --> \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m00:07.000\\n That's right I took in man\\n00:08.560 --> 00:10.560\\n Put a joint in my hand\\n00:12.240 --> \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m00:14.240\\n And lose control\\n00:16.840 --> 00:18.840\\n Well, I'm a lunatic man\\n00:21.440 --> 00:23.440\\n I \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mgot right crazy man\\n00:25.560 --> 00:28.720\\n Then take you long if you're out\\n00:28.720 --> 00:30.720\\n I'm \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mout of game trouble\\n00:35.720 --> 00:37.720\\n I could\\n00:37.720 --> 00:39.720\\n No\\n00:39.720 --> 00:41.720\\n\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mOh\\n00:41.720 --> 00:43.720\\n No\\n\", 'text': \" Well I'm a stoner man That's right I took in man Put a joint in \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mmy hand And lose control Well, I'm a lunatic man I got right crazy man Then take you long if you're out I'm out\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mof game trouble I could No Oh No\"}\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "163a7b62b46f463b991bba3140df45f4": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_2ced3555ea7a4e358c5ee24ad61affb5", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  !pip install pydub                                                                                               \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;150;0;80;48;2;30;0;16m!\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34minstall\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpydub\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "18a380ea6a594f64b8381b1cd1bb2594": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "1ab1dc792ecf498fb44978beb9fad234": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_6bd4412598a24f4b82c9fd8918a3e0ae", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Traceback (most recent call last):                                                                               \n    Cell In[45], line 3                                                                                            \n      print(clip.write_videofile('video.mp4', codec='mpeg4'))                                                      \n    File <decorator-gen-73>:2 in write_videofile                                                                   \n    File /usr/local/lib/python3.10/dist-packages/moviepy/decorators.py:54 in requires_duration                     \n      return f(clip, *a, **k)                                                                                      \n    File <decorator-gen-72>:2 in write_videofile                                                                   \n    File /usr/local/lib/python3.10/dist-packages/moviepy/decorators.py:130 in use_clip_fps_by_default              \n      new_a = [fun(arg) if (name=='fps') else arg                                                                  \n    File /usr/local/lib/python3.10/dist-packages/moviepy/decorators.py:130 in <listcomp>                           \n      new_a = [fun(arg) if (name=='fps') else arg                                                                  \n    File /usr/local/lib/python3.10/dist-packages/moviepy/decorators.py:117 in fun                                  \n      raise AttributeError(\"No 'fps' (frames per second) attribute specified\"                                      \n  AttributeError: No 'fps' (frames per second) attribute specified for function write_videofile and the clip has   \n  no 'fps' attribute. Either provide e.g. fps=24 in the arguments of the function, or define the clip's fps with   \n  `clip.fps=24`                                                                                                    \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mTraceback (most recent call last):\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Cell In[45], line 3\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m print(clip.write_videofile('video.mp4', codec='mpeg4'))\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m File :2 in write_videofile\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m File /usr/local/lib/python3.10/dist-packages/moviepy/decorators.py:54 in requires_duration\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m return f(clip, *a, **k)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m File :2 in write_videofile\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m File /usr/local/lib/python3.10/dist-packages/moviepy/decorators.py:130 in use_clip_fps_by_default\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m new_a = [fun(arg) if (name=='fps') else arg\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m File /usr/local/lib/python3.10/dist-packages/moviepy/decorators.py:130 in \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m new_a = [fun(arg) if (name=='fps') else arg\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m File /usr/local/lib/python3.10/dist-packages/moviepy/decorators.py:117 in fun\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m raise AttributeError(\"No 'fps' (frames per second) attribute specified\"\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mAttributeError: No 'fps' (frames per second) attribute specified for function write_videofile and the clip has \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mno 'fps' attribute. Either provide e.g. fps=24 in the arguments of the function, or define the clip's fps with \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m`clip.fps=24`\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "1b5741879e894f93b66e7f0572892db9": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_fb34c40c88f7423a891c85730730d011", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  import pedalboard                                                                                                \n  print(dir(pedalboard))                                                                                           \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpedalboard\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprint\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdir\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpedalboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "1c0545391e074baf8a5fe4f7b892fdd1": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_57f2e054ead24f71a958cae8de41c2b7", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  from docx import Document                                                                                        \n                                                                                                                   \n  # Open and read each document, replacing 'Machine Learning' with 'AI'                                            \n  for filename in files:                                                                                           \n      print(f'Processing {filename}')                                                                              \n                                                                                                                   \n      # Open the document                                                                                          \n      doc = Document(os.path.join('documents', filename))                                                          \n                                                                                                                   \n      # Loop through each paragraph in the document                                                                \n      for paragraph in doc.paragraphs:                                                                             \n          # Replace all occurrences of 'Machine Learning' (any case) with 'AI'                                     \n          paragraph.text = paragraph.text.replace('Machine Learning', 'AI').replace('machine learning', 'AI').rep  \n                                                                                                                   \n      # Save the modified document to a new file                                                                   \n      doc.save(os.path.join('documents', f'new_{filename}'))                                                       \n      print(f'Finished processing {filename}')                                                                     \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdocx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mDocument\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Open and read each document, replacing 'Machine Learning' with 'AI'\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfilename\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfiles\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprint\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mf\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mProcessing \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfilename\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Open the document\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdoc\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mDocument\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mos\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpath\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mjoin\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mdocuments\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfilename\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Loop through each paragraph in the document\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mparagraph\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdoc\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mparagraphs\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Replace all occurrences of 'Machine Learning' (any case) with 'AI'\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mparagraph\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtext\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mparagraph\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtext\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mreplace\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mMachine Learning\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mAI\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mreplace\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mmachine learning\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mAI\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrep\u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Save the modified document to a new file\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdoc\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msave\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mos\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpath\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mjoin\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mdocuments\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mf\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mnew_\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfilename\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprint\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mf\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mFinished processing \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfilename\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "1c0e5743735d4490a8f6a010c77aeb40": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "1c79566727f944fcbe35f3d793f110e3": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "1f97758eecde4cc7beb4439fdda4e8ea": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_4b67d55493c84fc6bdb48f1317374124", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  clip.fps = 12                                                                                                    \n  clip.write_videofile('video.mp4', codec='mpeg4')                                                                 \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfps\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m12\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwrite_videofile\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mvideo.mp4\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcodec\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mmpeg4\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "2044f647ec5b4bb6a3a363f40bfc45b1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "267f3fe5e392407d88b0be2f178ba149": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_6f7b2b5688184ea5aa32b7eba22546e6", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  print(Pedalboard.__doc__)                                                                                        \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprint\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPedalboard\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m__doc__\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "26d0efdbe3624615a7bf632af1e8c60b": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_cc23e29c55ac41fa9bfbb35230fb67e7", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  !pip install feedparser                                                                                          \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;150;0;80;48;2;30;0;16m!\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34minstall\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfeedparser\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "2882213b1cce4520b8e0ee44be5f1924": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_1038b781d07d4e8e8df69bff5b2df9ad", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip                                           \n                                                                                                                   \n  # Load the video                                                                                                 \n  video = VideoFileClip(\"billyking.mp4\")                                                                           \n                                                                                                                   \n  subtitles_dict = {                                                                                               \n      '00:00.000 --> 00:02.000': \"Well I'm a stoner man\",                                                          \n      '00:04.000 --> 00:07.000': \"That's right I took in man\",                                                     \n      '00:08.560 --> 00:10.560': 'Put a joint in my hand',                                                         \n      '00:12.240 --> 00:14.240': 'And lose control',                                                               \n      '00:16.840 --> 00:18.840': \"Well, I'm a lunatic man\",                                                        \n      '00:21.440 --> 00:23.440': \"I got right crazy man\",                                                          \n      '00:25.560 --> 00:28.720': \"Then take you long if you're out\",                                               \n      '00:28.720 --> 00:30.720': \"I'm out of game trouble\",                                                        \n      '00:35.720 --> 00:37.720': 'I could',                                                                        \n      '00:37.720 --> 00:39.720': 'No',                                                                             \n      '00:39.720 --> 00:41.720': 'Oh',                                                                             \n      '00:41.720 --> 00:43.720': 'No',                                                                             \n  }                                                                                                                \n                                                                                                                   \n  # Create the text clips for each subtitle and add them to the video                                              \n  video_clips = [video]                                                                                            \n  for timestamp, subtitle in subtitles_dict.items():                                                               \n      start, end = timestamp.split(' --> ')                                                                        \n      start_time = sum(float(x) * 60 ** i for i,x in enumerate(reversed(start.split(':'))))                        \n      end_time = sum(float(x) * 60 ** i for i,x in enumerate(reversed(end.split(':'))))                            \n      txt_clip = TextClip(txt=subtitle, fontsize=24, color='white')                                                \n      txt_clip = txt_clip.set_start(start_time).set_duration(end_time - start_time).set_position(('bottom'))       \n      video_clips.append(txt_clip)                                                                                 \n                                                                                                                   \n  final = CompositeVideoClip(video_clips)                                                                          \n  final.write_videofile('billy_subbed.mp4')                                                                        \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmoviepy\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34meditor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mVideoFileClip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mTextClip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mCompositeVideoClip\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Load the video\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mVideoFileClip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mbillyking.mp4\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msubtitles_dict\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m{\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m00:00.000 --> 00:02.000\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mWell I\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mm a stoner man\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m00:04.000 --> 00:07.000\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mThat\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34ms right I took in man\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m00:08.560 --> 00:10.560\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mPut a joint in my hand\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m00:12.240 --> 00:14.240\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mAnd lose control\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m00:16.840 --> 00:18.840\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mWell, I\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mm a lunatic man\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m00:21.440 --> 00:23.440\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mI got right crazy man\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m00:25.560 --> 00:28.720\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mThen take you long if you\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mre out\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m00:28.720 --> 00:30.720\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mI\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mm out of game trouble\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m00:35.720 --> 00:37.720\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mI could\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m00:37.720 --> 00:39.720\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mNo\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m00:39.720 --> 00:41.720\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mOh\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m00:41.720 --> 00:43.720\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mNo\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m}\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Create the text clips for each subtitle and add them to the video\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo_clips\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtimestamp\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msubtitle\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msubtitles_dict\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mitems\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mstart\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mend\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtimestamp\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msplit\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m --> \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mstart_time\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msum\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfloat\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m*\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m60\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m*\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m*\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34menumerate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mreversed\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mstart\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msplit\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m:\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mend_time\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msum\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfloat\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m*\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m60\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m*\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m*\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34menumerate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mreversed\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mend\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msplit\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m:\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtxt_clip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mTextClip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtxt\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msubtitle\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfontsize\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m24\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcolor\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mwhite\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtxt_clip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtxt_clip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mset_start\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mstart_time\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mset_duration\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mend_time\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mstart_time\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mset_position\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mbottom\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo_clips\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mappend\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtxt_clip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfinal\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mCompositeVideoClip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo_clips\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfinal\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwrite_videofile\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mbilly_subbed.mp4\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "298d9dd581714eb68c5f8e179c92065c": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_dbee4b5e838b4cd6bf8da3949c563daa", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  I have completed the task. The final video has been saved as final_video.mp4. It has been edited to have a       \n  frame rate of 12 fps, and each frame has been redrawn with ControlNet using random prompts that evoke a stop     \n  motion / hand-drawn animation feeling. The original sound has been added back to the video.                      \n                                                                                                                   \n
\n", + "text/plain": " \n I have completed the task. The final video has been saved as \u001b[1;36;40mfinal_video.mp4\u001b[0m. It has been edited to have a \n frame rate of 12 fps, and each frame has been redrawn with ControlNet using random prompts that evoke a stop \n motion / hand-drawn animation feeling. The original sound has been added back to the video. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "2acee6da53c748b194bd4445bdba02a4": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "2b36d066449447c1817a4a5f945aada3": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "2ce496485d074f51a900bcf1435f6080": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_aeb40687d81a48e19f173059cc9f7100", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  It seems like the error occurred because the frames per second (fps) information was missing while writing the   \n  video file. I am going to run the code again but this time with fps=12 added. This means there will be 12        \n  frames image shown in one second which is what we want. Let's try that.                                          \n                                                                                                                   \n
\n", + "text/plain": " \n It seems like the error occurred because the frames per second (fps) information was missing while writing the \n video file. I am going to run the code again but this time with \u001b[1;36;40mfps=12\u001b[0m added. This means there will be 12 \n frames image shown in one second which is what we want. Let's try that. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "2ced3555ea7a4e358c5ee24ad61affb5": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "2d23c9f050f745cdaadd6806811fe0ff": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "2dc18ff0d5a64d04a13c602ed889b486": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_b3a3183812fa46d7af4dcade094153d1", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  It seems like there was an error because the Stretch class could not be imported from the pedalboard module.     \n  This could be because the Stretch class does not exist in the pedalboard module.                                 \n                                                                                                                   \n  Let's verify the available classes and functions in the pedalboard module.                                       \n                                                                                                                   \n
\n", + "text/plain": " \n It seems like there was an error because the \u001b[1;36;40mStretch\u001b[0m class could not be imported from the \u001b[1;36;40mpedalboard\u001b[0m module. \n This could be because the \u001b[1;36;40mStretch\u001b[0m class does not exist in the \u001b[1;36;40mpedalboard\u001b[0m module. \n \n Let's verify the available classes and functions in the \u001b[1;36;40mpedalboard\u001b[0m module. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "2e56b90a86e94cb5b51cf56b86837410": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "2e658de9a31945bb8221cee533efdc15": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "2e9f43e734694e76829a9ed2a61439be": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "3164bb1a7475448e9f5bcaaadd74c63d": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "32f692de87e245e8be0d3d0ec83a2689": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_9201ae6c615b46ec8c97b198f56c38ed", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  I have finished processing all the .docx files in your 'documents' folder. Here's what I did:                    \n                                                                                                                   \n   1 I went through each document in the 'documents' folder.                                                       \n   2 Opened each document and replaced all occurrences of 'Machine Learning' (ain any form of capitalization)      \n     with 'AI'.                                                                                                    \n   3 Saved the modified documents with a 'new_' prefix in their original location.                                 \n                                                                                                                   \n  You should see the updated files in your 'documents' folder named as 'new_doc1.docx', 'new_doc2.docx', etc.      \n  Feel free to check them and let me know if everything looks good!                                                \n                                                                                                                   \n
\n", + "text/plain": " \n I have finished processing all the .docx files in your 'documents' folder. Here's what I did: \n \n \u001b[1;33m 1 \u001b[0mI went through each document in the 'documents' folder. \n \u001b[1;33m 2 \u001b[0mOpened each document and replaced all occurrences of 'Machine Learning' (ain any form of capitalization) \n \u001b[1;33m \u001b[0mwith 'AI'. \n \u001b[1;33m 3 \u001b[0mSaved the modified documents with a 'new_' prefix in their original location. \n \n You should see the updated files in your 'documents' folder named as 'new_doc1.docx', 'new_doc2.docx', etc. \n Feel free to check them and let me know if everything looks good! \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "38bd644aee574f47b65793c655bcc9c9": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_5e77c72502414e0ba7c79c1cc8324b95", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  from moviepy.editor import ImageSequenceClip                                                                     \n                                                                                                                   \n  # Create a video using the generated frames                                                                      \n  clip = ImageSequenceClip(images, durations=[1/12]*len(images))                                                   \n  clip.write_videofile('video.mp4', codec='mpeg4')                                                                 \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmoviepy\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34meditor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mImageSequenceClip\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Create a video using the generated frames\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mImageSequenceClip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mimages\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdurations\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m1\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m12\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m*\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mlen\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mimages\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwrite_videofile\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mvideo.mp4\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcodec\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mmpeg4\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "3bba172d1af2465181679c8b336704a7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "40af2b00dea44c7a93604188fa913f49": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "41707e7b17314b17a249388903e0ce71": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "4192c99e48fa40eeba50ac981cfd500b": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_0ef2a15fe9594494b7957e9dab6166b0", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  !yt-dlp -f 'bestaudio' -o 'original_song.%(ext)s' 'https://www.youtube.com/watch?v=8GW6sLrK40k'                  \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;150;0;80;48;2;30;0;16m!\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34myt\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdlp\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mf\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mbestaudio\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mo\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34moriginal_song.\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m%(ext)s\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mhttps://www.youtube.com/watch?v=8GW6sLrK40k\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "42895ff661844f4b8e03699a3ac93267": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_fc51add87d6744bc8fb46911b671eac5", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  !pip install python-docx                                                                                         \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;150;0;80;48;2;30;0;16m!\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34minstall\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpython\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdocx\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "43008ef3259f4bc0aa7662907abe1c03": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_dfae26728db147cb98311156e758816b", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  import yt_dlp                                                                                                    \n                                                                                                                   \n  url = 'https://www.youtube.com/watch?v=VF-FGf_ZZiI'                                                              \n                                                                                                                   \n  # Download the video                                                                                             \n  yt_dlp.YoutubeDL({'outtmpl': 'original_video.mp4'}).download([url])                                              \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34myt_dlp\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34murl\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mhttps://www.youtube.com/watch?v=VF-FGf_ZZiI\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Download the video\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34myt_dlp\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mYoutubeDL\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m{\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mouttmpl\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34moriginal_video.mp4\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m}\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdownload\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34murl\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "44646c403c814456a6a4665c3236a79d": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_5bb4cd46aed946578d102122a0944a71", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  !pip install replicate moviepy pysrt                                                                             \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;150;0;80;48;2;30;0;16m!\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34minstall\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mreplicate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmoviepy\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpysrt\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "456f954392e84f46b7f68b50101bd62e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "45d35e811af74d4b9798eb2efa6fbe19": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "45e937a0dcaf405b8865cceb68551be4": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_6731e56abeba4af69d33942800665902", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n   Extracting URL: https://www.youtube.com/watch?v=8GW6sLrK40k                                                     \n   8GW6sLrK40k: Downloading webpage                                                                                \n   8GW6sLrK40k: Downloading ios player API JSON                                                                    \n   8GW6sLrK40k: Downloading android player API JSON                                                                \n   8GW6sLrK40k: Downloading m3u8 information                                                                       \n   8GW6sLrK40k: Downloading 1 format(s): 251                                                                       \n   Destination: original_song.webm                                                                                 \n     0.0% of    3.49MiB at  426.25KiB/s ETA 00:08   0.1% of    3.49MiB at  882.45KiB/s ETA 00:04   0.2% of         \n  3.49MiB at    1.69MiB/s ETA 00:02   0.4% of    3.49MiB at    3.13MiB/s ETA 00:01   0.9% of    3.49MiB at         \n  2.66MiB/s ETA 00:01   1.8% of    3.49MiB at    3.07MiB/s ETA 00:01   3.6% of    3.49MiB at    4.12MiB/s ETA      \n  00:00   7.1% of    3.49MiB at    5.58MiB/s ETA 00:00  14.3% of    3.49MiB at    9.78MiB/s ETA 00:00  28.6% of    \n  3.49MiB at   15.31MiB/s ETA 00:00  57.2% of    3.49MiB at   24.85MiB/s ETA 00:00 100.0% of    3.49MiB at         \n  35.39MiB/s ETA 00:00 100% of    3.49MiB in 00:00:00 at 22.41MiB/s                                                \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Extracting URL: https://www.youtube.com/watch?v=8GW6sLrK40k\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 8GW6sLrK40k: Downloading webpage\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 8GW6sLrK40k: Downloading ios player API JSON\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 8GW6sLrK40k: Downloading android player API JSON\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 8GW6sLrK40k: Downloading m3u8 information\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 8GW6sLrK40k: Downloading 1 format(s): 251\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Destination: original_song.webm\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 0.0% of 3.49MiB at 426.25KiB/s ETA 00:08\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 0.1% of 3.49MiB at 882.45KiB/s ETA 00:04\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 0.2% of \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m3.49MiB at 1.69MiB/s ETA 00:02\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 0.4% of 3.49MiB at 3.13MiB/s ETA 00:01\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 0.9% of 3.49MiB at \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m2.66MiB/s ETA 00:01\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 1.8% of 3.49MiB at 3.07MiB/s ETA 00:01\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 3.6% of 3.49MiB at 4.12MiB/s ETA \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 7.1% of 3.49MiB at 5.58MiB/s ETA 00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 14.3% of 3.49MiB at 9.78MiB/s ETA 00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 28.6% of \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m3.49MiB at 15.31MiB/s ETA 00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 57.2% of 3.49MiB at 24.85MiB/s ETA 00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 100.0% of 3.49MiB at \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m35.39MiB/s ETA 00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 100% of 3.49MiB in 00:00:00 at 22.41MiB/s\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "46c63dde8afb4b87b56913bc55b59ade": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "48b7cb834ffe4597b7589228a8b7d11d": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_46c63dde8afb4b87b56913bc55b59ade", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  I have successfully created a 12-frame video, 'video.mp4', using different material prompts for the image        \n  'victoria.png'. Each frame was generated using the controlnet model via replicate and the material prompts       \n  'metal', 'embroidery', and 'crayon'. The frames were stitched together into a 1-second video clip. Please check  \n  the on your computer for the generated video file 'video.mp4'.                                                   \n                                                                                                                   \n
\n", + "text/plain": " \n I have successfully created a 12-frame video, 'video.mp4', using different material prompts for the image \n 'victoria.png'. Each frame was generated using the controlnet model via replicate and the material prompts \n 'metal', 'embroidery', and 'crayon'. The frames were stitched together into a 1-second video clip. Please check \n the on your computer for the generated video file 'video.mp4'. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "49254282d5644edeb2f217b59b9bf28b": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_b3e874cde5924727b3c2cdb93de1e68a", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  import os                                                                                                        \n                                                                                                                   \n  # List all files                                                                                                 \n  files = os.listdir('documents')                                                                                  \n                                                                                                                   \n  # Filter out only .docx files                                                                                    \n  files = [file for file in files if file.endswith('.docx')]                                                       \n                                                                                                                   \n  files                                                                                                            \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mos\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# List all files\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfiles\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mos\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mlistdir\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mdocuments\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Filter out only .docx files\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfiles\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfile\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfile\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfiles\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mif\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfile\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mendswith\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m.docx\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfiles\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "4a16bcbbc01e40dfb0b835c4af36cc54": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "4b67d55493c84fc6bdb48f1317374124": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "4ecb19ab194440e7962991fe4c9332a7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "4ed501ea235a4e77a2d7f4e9ef49eb23": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "4f016d1a2474432eb5a601735e6437e2": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_98c4cba0cfb043b7a75b9a80e7661e46", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Traceback (most recent call last):                                                                               \n    Cell In[9], line 2                                                                                             \n      board = Pedalboard([PitchShift(semitones=-5), Reverb(room_size=0.5,                                          \n  TypeError: Pedalboard.__init__() got an unexpected keyword argument 'sample_rate'                                \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mTraceback (most recent call last):\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Cell In[9], line 2\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m board = Pedalboard([PitchShift(semitones=-5), Reverb(room_size=0.5,\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mTypeError: Pedalboard.__init__() got an unexpected keyword argument 'sample_rate'\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "4f2343ab60004171a8768a8339e82c0e": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_a46c38d5d2864821ba81ad63259670db", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  output_urls = []                                                                                                 \n  for prompt in material_prompts:                                                                                  \n      for _ in range(4):                                                                                           \n          output = replicate.run(                                                                                  \n              'jagilley/controlnet-canny:aff48af9c68d162388d230a2ab003f68d2638d88307bdaf1c2f1ac95079c9613',        \n              input={'image': open('victoria.png', 'rb'), 'prompt': prompt}                                        \n          )                                                                                                        \n          output_urls.append(output[1])                                                                            \n  output_urls                                                                                                      \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34moutput_urls\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprompt\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmaterial_prompts\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m_\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrange\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m4\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34moutput\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mreplicate\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrun\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mjagilley/controlnet-canny:aff48af9c68d162388d230a2ab003f68d2638d88307bdaf1c2f1ac95079c9613\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34minput\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m{\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mimage\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mopen\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mvictoria.png\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mrb\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mprompt\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprompt\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m}\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34moutput_urls\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mappend\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34moutput\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m1\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34moutput_urls\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "50c94edabfc146229a8a576445093731": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_6031e59c120a48b98b4597dcb10a2d9a", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  ['https://replicate.delivery/pbxt/zrqhegeMmzmWu06Tq2Rq4Df0Mh0eBMVwfPT7OjzJB1NIkSCKC/output_1.png',               \n  'https://replicate.delivery/pbxt/pZfDRfLvrhge6oZRxzHihoPcm0VEg8DprAzlYctVdgkMpkgiA/output_1.png',                \n  'https://replicate.delivery/pbxt/cSM7xxMjC67INlxGYf655U3lYpgzxbxWoh2GgZ3J5INVKJoIA/output_1.png',                \n  'https://replicate.delivery/pbxt/f2PilmS7o0SyA6CpYIJ8SHES9lQjstnggWaGcvvcXUyXKJoIA/output_1.png',                \n  'https://replicate.delivery/pbxt/3LqcWxCYn6rfFyH9LqjDMJV9RCc8Cnt13eCGHnVYuRM4USQRA/output_1.png',                \n  'https://replicate.delivery/pbxt/3ZtaSRvsA6p6INT1JEqvQwPPdipZOoZzgwpDcKLIf1keUSQRA/output_1.png',                \n  'https://replicate.delivery/pbxt/i9eesm9VJvstfpT8USw3oSiWprHbWJf6UUg0f7URK4kIoSCKC/output_1.png',                \n  'https://replicate.delivery/pbxt/TXTCbLIEdWKzFF1rv7Nk7db0bZYSZjJdmfPBl129eO9GVSQRA/output_1.png',                \n  'https://replicate.delivery/pbxt/6mTEtWiXPhpDFN5902KGv9woakleMcxvVPfAKAujtYSKVSQRA/output_1.png',                \n  'https://replicate.delivery/pbxt/65lDz1ZrvSZrLZ80HlmV6BW5ISc7NKX6bYep7VQnAMrnKJoIA/output_1.png',                \n  'https://replicate.delivery/pbxt/BjsWyNDNxT6cI10wcfdBmgL3shIHZwBKzzgTNdzK3mfUVSQRA/output_1.png',                \n  'https://replicate.delivery/pbxt/cgO83iENeWVlWqi415kiwGo7WMuRNkrG0HeluNrmCVUYVSQRA/output_1.png']                \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m['https://replicate.delivery/pbxt/zrqhegeMmzmWu06Tq2Rq4Df0Mh0eBMVwfPT7OjzJB1NIkSCKC/output_1.png', \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m'https://replicate.delivery/pbxt/pZfDRfLvrhge6oZRxzHihoPcm0VEg8DprAzlYctVdgkMpkgiA/output_1.png', \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m'https://replicate.delivery/pbxt/cSM7xxMjC67INlxGYf655U3lYpgzxbxWoh2GgZ3J5INVKJoIA/output_1.png', \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m'https://replicate.delivery/pbxt/f2PilmS7o0SyA6CpYIJ8SHES9lQjstnggWaGcvvcXUyXKJoIA/output_1.png', \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m'https://replicate.delivery/pbxt/3LqcWxCYn6rfFyH9LqjDMJV9RCc8Cnt13eCGHnVYuRM4USQRA/output_1.png', \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m'https://replicate.delivery/pbxt/3ZtaSRvsA6p6INT1JEqvQwPPdipZOoZzgwpDcKLIf1keUSQRA/output_1.png', \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m'https://replicate.delivery/pbxt/i9eesm9VJvstfpT8USw3oSiWprHbWJf6UUg0f7URK4kIoSCKC/output_1.png', \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m'https://replicate.delivery/pbxt/TXTCbLIEdWKzFF1rv7Nk7db0bZYSZjJdmfPBl129eO9GVSQRA/output_1.png', \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m'https://replicate.delivery/pbxt/6mTEtWiXPhpDFN5902KGv9woakleMcxvVPfAKAujtYSKVSQRA/output_1.png', \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m'https://replicate.delivery/pbxt/65lDz1ZrvSZrLZ80HlmV6BW5ISc7NKX6bYep7VQnAMrnKJoIA/output_1.png', \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m'https://replicate.delivery/pbxt/BjsWyNDNxT6cI10wcfdBmgL3shIHZwBKzzgTNdzK3mfUVSQRA/output_1.png', \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m'https://replicate.delivery/pbxt/cgO83iENeWVlWqi415kiwGo7WMuRNkrG0HeluNrmCVUYVSQRA/output_1.png']\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "50e4adc0bc80423e9549ba0ca3c1125d": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_9ad527758ac44f7ba5cf5501f0a2ccc1", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  The solution to the equation 10x + 14 = 21 / 3 is x = -0.7.                                                      \n                                                                                                                   \n
\n", + "text/plain": " \n The solution to the equation \u001b[1;36;40m10x + 14 = 21 / 3\u001b[0m is \u001b[1;36;40mx = -0.7\u001b[0m. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "523049f89f904844ab674b9410ee61c4": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_73078cc9fc5741fcb130caa028914bf9", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  To get latest news headlines from BBC, we can use web scraping libraries in python like BeautifulSoup. However,  \n  the usage of such tools may violate terms of service of the website. Alternatively, we can use the BBC RSS feed  \n  to get the latest news.                                                                                          \n                                                                                                                   \n  Let's try this using the feedparser library in Python. I will install this library if isn't already installed.   \n  After this, I'll get the last 10 BBC news headlines using their RSS feed.                                        \n                                                                                                                   \n
\n", + "text/plain": " \n To get latest news headlines from BBC, we can use web scraping libraries in python like BeautifulSoup. However, \n the usage of such tools may violate terms of service of the website. Alternatively, we can use the BBC RSS feed \n to get the latest news. \n \n Let's try this using the \u001b[1;36;40mfeedparser\u001b[0m library in Python. I will install this library if isn't already installed. \n After this, I'll get the last 10 BBC news headlines using their RSS feed. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "5313074cfc7b4a70a8031e99640353fc": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_76227155ec874b2bbdd633477275162d", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  It seems like the video was downloaded as a .webm file instead of a .mp4 file. I'll adjust the code to use the   \n  correct filename.                                                                                                \n                                                                                                                   \n
\n", + "text/plain": " \n It seems like the video was downloaded as a \u001b[1;36;40m.webm\u001b[0m file instead of a \u001b[1;36;40m.mp4\u001b[0m file. I'll adjust the code to use the \n correct filename. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "540e7806e7c145d3a26fceb5c0ef8aa1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "554e5912797c4fa88f6e557ca6367711": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_723d3e051e9649a392ae0a54e4399a73", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  https://replicate.delivery/pbxt/IavszBht716pMhxufdF8Ch7cv0Pun1eTQarLmQVxkbAPUSQRA/output_1.png                   \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mhttps://replicate.delivery/pbxt/IavszBht716pMhxufdF8Ch7cv0Pun1eTQarLmQVxkbAPUSQRA/output_1.png\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "5635e4c8e7734b3b95693f789c9239ba": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_f944a4b42ef14ae889efef3f5369e173", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
\n
\n", + "text/plain": "\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "56f46ba6d7254804843b932c97007f85": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_2b36d066449447c1817a4a5f945aada3", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Great, let's start by using the provided Replicate code to convert the audio of billyking.mp4 to text. Then,     \n  I'll use moviepy to add these as subtitles to your video. I'll need the replicate, moviepy, and possibly the     \n  pysrt Python packages to do this.                                                                                \n                                                                                                                   \n  I will first install the needed packages. After that, we will proceed to running the Replicate code and          \n  processing the output.                                                                                           \n                                                                                                                   \n
\n", + "text/plain": " \n Great, let's start by using the provided Replicate code to convert the audio of \u001b[1;36;40mbillyking.mp4\u001b[0m to text. Then, \n I'll use moviepy to add these as subtitles to your video. I'll need the \u001b[1;36;40mreplicate\u001b[0m, \u001b[1;36;40mmoviepy\u001b[0m, and possibly the \n \u001b[1;36;40mpysrt\u001b[0m Python packages to do this. \n \n I will first install the needed packages. After that, we will proceed to running the Replicate code and \n processing the output. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "575438c672314d12b722af00426a8971": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_2e56b90a86e94cb5b51cf56b86837410", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  All files have been updated.                                                                                     \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mAll files have been updated.\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "57f2e054ead24f71a958cae8de41c2b7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "58ce723038e04fd2810f4985e864544a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "5a9695b9f4f8410b8c3cc92819ad081c": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_cc1a30ae29f5499d8156470700faae6c", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  The last 10 news headlines from BBC are:                                                                         \n                                                                                                                   \n    1 'Disposable vapes: Councils call for total ban by 2024'                                                      \n    2 'SAG strike: Actors join writers on Hollywood picket lines'                                                  \n    3 'Bournemouth beach deaths: No police action to be taken'                                                     \n    4 'Summer holidays: Will there be more travel chaos this year?'                                                \n    5 'Just Stop Oil protesters interrupt the Proms'                                                               \n    6 'Stare at smokers to stop them, Hong Kong health chief urges public'                                         \n    7 'Europe heatwave: More record temperatures expected'                                                         \n    8 \"Extra energy bill scheme was 'staggering failure', says MP\"                                                 \n    9 \"Shekhar Kapur: Hollywood's diversity push is guilt driven\"                                                  \n   10 'NI officers told not to wear police uniforms at Pride'                                                      \n                                                                                                                   \n
\n", + "text/plain": " \n The last 10 news headlines from BBC are: \n \n \u001b[1;33m 1 \u001b[0m'Disposable vapes: Councils call for total ban by 2024' \n \u001b[1;33m 2 \u001b[0m'SAG strike: Actors join writers on Hollywood picket lines' \n \u001b[1;33m 3 \u001b[0m'Bournemouth beach deaths: No police action to be taken' \n \u001b[1;33m 4 \u001b[0m'Summer holidays: Will there be more travel chaos this year?' \n \u001b[1;33m 5 \u001b[0m'Just Stop Oil protesters interrupt the Proms' \n \u001b[1;33m 6 \u001b[0m'Stare at smokers to stop them, Hong Kong health chief urges public' \n \u001b[1;33m 7 \u001b[0m'Europe heatwave: More record temperatures expected' \n \u001b[1;33m 8 \u001b[0m\"Extra energy bill scheme was 'staggering failure', says MP\" \n \u001b[1;33m 9 \u001b[0m\"Shekhar Kapur: Hollywood's diversity push is guilt driven\" \n \u001b[1;33m 10 \u001b[0m'NI officers told not to wear police uniforms at Pride' \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "5a9e09aff4cd4665912a50bc8ad5fe93": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_dde784ca98904ba49ba23dda2100076a", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  The first image transformation with the 'metal' prompt was successful. The output image URL is                   \n  'https://replicate.delivery/pbxt/IavszBht716pMhxufdF8Ch7cv0Pun1eTQarLmQVxkbAPUSQRA/output_1.png'.                \n                                                                                                                   \n  Next, I'll use the material prompts 'embroidery' and 'crayon' to transform the image. Each of these              \n  transformations will then be performed four times to attain 12 frames. Let's start by transforming the image     \n  with each of the prompts.                                                                                        \n                                                                                                                   \n
\n", + "text/plain": " \n The first image transformation with the 'metal' prompt was successful. The output image URL is \n 'https://replicate.delivery/pbxt/IavszBht716pMhxufdF8Ch7cv0Pun1eTQarLmQVxkbAPUSQRA/output_1.png'. \n \n Next, I'll use the material prompts 'embroidery' and 'crayon' to transform the image. Each of these \n transformations will then be performed four times to attain 12 frames. Let's start by transforming the image \n with each of the prompts. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "5b414a1b78f44530a2e4d127641b88d7": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_1c0e5743735d4490a8f6a010c77aeb40", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Sure, I can do that. We will use the yt-dlp library to download the audio from the YouTube video, and then the   \n  pedalboard library to apply the slow and reverb effects. Let's start by downloading the audio.                   \n                                                                                                                   \n
\n", + "text/plain": " \n Sure, I can do that. We will use the \u001b[1;36;40myt-dlp\u001b[0m library to download the audio from the YouTube video, and then the \n \u001b[1;36;40mpedalboard\u001b[0m library to apply the slow and reverb effects. Let's start by downloading the audio. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "5bb4cd46aed946578d102122a0944a71": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "5e5a5fd06a6d46e3b85e9587d50adfdb": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "5e77c72502414e0ba7c79c1cc8324b95": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "6031e59c120a48b98b4597dcb10a2d9a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "61c835b06ac043c0a06cecf241d7fa48": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "626af5cf397440b2baec64ed98ea5c3f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "6731e56abeba4af69d33942800665902": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "673dce80b4b54a7384a460b0075759fb": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "6aae7d9824224170be7f43c8c423c488": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_1c79566727f944fcbe35f3d793f110e3", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  import replicate                                                                                                 \n                                                                                                                   \n  output = replicate.run(                                                                                          \n      \"m1guelpf/whisper-subtitles:7f686e243a96c7f6f0f481bcef24d688a1369ed3983cea348d1f43b879615766\",               \n      input={\"audio_path\": open(\"billyking.mp4\", \"rb\")}                                                            \n  )                                                                                                                \n  output                                                                                                           \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mreplicate\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34moutput\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mreplicate\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrun\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mm1guelpf/whisper-subtitles:7f686e243a96c7f6f0f481bcef24d688a1369ed3983cea348d1f43b879615766\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34minput\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m{\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34maudio_path\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mopen\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mbillyking.mp4\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mrb\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m}\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34moutput\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "6bd4412598a24f4b82c9fd8918a3e0ae": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "6c4817e94e354e6998e9665f6a509d38": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_78f2b7f6451d4315964aea44ac02db78", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Requirement already satisfied: opencv-python-headless in /usr/local/lib/python3.10/dist-packages (4.8.0.74)      \n  Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (2.27.1)                      \n  Requirement already satisfied: numpy>=1.21.2 in /usr/local/lib/python3.10/dist-packages (from                    \n  opencv-python-headless) (1.22.4)                                                                                 \n  Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests)  \n  (1.26.16)                                                                                                        \n  Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests)     \n  (2023.5.7)                                                                                                       \n  Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from        \n  requests) (2.0.12)                                                                                               \n  Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests) (3.4)     \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: opencv-python-headless in /usr/local/lib/python3.10/dist-packages (4.8.0.74)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (2.27.1)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: numpy>=1.21.2 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mopencv-python-headless) (1.22.4)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(1.26.16)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(2023.5.7)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mrequests) (2.0.12)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests) (3.4)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "6d14d7db445b4f829275aea79bd0dbd1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "6f7b2b5688184ea5aa32b7eba22546e6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "723d3e051e9649a392ae0a54e4399a73": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "7244e69be33b441cb435377b5abee7af": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_c0a1d45a04b7406683954288d08915b1", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  The .docx files in your 'documents' folder are:                                                                  \n                                                                                                                   \n  doc1.docx                                                                                                     \n  doc2.docx                                                                                                     \n  doc3.docx                                                                                                     \n  doc4.docx                                                                                                     \n  doc5.docx                                                                                                     \n                                                                                                                   \n  Now, I'm going to install a Python package called python-docx that allows us to operate on Microsoft Word        \n  (.docx) files. After the installation, I will read each .docx file and perform the replacement operation. Let's  \n  proceed with the installation!                                                                                   \n                                                                                                                   \n
\n", + "text/plain": " \n The .docx files in your 'documents' folder are: \n \n \u001b[1;33m • \u001b[0mdoc1.docx \n \u001b[1;33m • \u001b[0mdoc2.docx \n \u001b[1;33m • \u001b[0mdoc3.docx \n \u001b[1;33m • \u001b[0mdoc4.docx \n \u001b[1;33m • \u001b[0mdoc5.docx \n \n Now, I'm going to install a Python package called \u001b[1;36;40mpython-docx\u001b[0m that allows us to operate on Microsoft Word \n (.docx) files. After the installation, I will read each .docx file and perform the replacement operation. Let's \n proceed with the installation! \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "73078cc9fc5741fcb130caa028914bf9": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "7388e925607147d0903d6b59642d21c1": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_7978261c27704717bf0f5df5231c3dee", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Traceback (most recent call last):                                                                               \n    Cell In[3], line 2                                                                                             \n      video = VideoFileClip('original_video.mp4')                                                                  \n    File /usr/local/lib/python3.10/dist-packages/moviepy/video/io/VideoFileClip.py:88 in __init__                  \n      self.reader = FFMPEG_VideoReader(filename, pix_fmt=pix_fmt,                                                  \n    File /usr/local/lib/python3.10/dist-packages/moviepy/video/io/ffmpeg_reader.py:35 in __init__                  \n      infos = ffmpeg_parse_infos(filename, print_infos, check_duration,                                            \n    File /usr/local/lib/python3.10/dist-packages/moviepy/video/io/ffmpeg_reader.py:270 in ffmpeg_parse_infos       \n      raise IOError((\"MoviePy error: the file %s could not be found!\\n\"                                            \n  OSError: MoviePy error: the file original_video.mp4 could not be found!                                          \n  Please check that you entered the correct path.                                                                  \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mTraceback (most recent call last):\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Cell In[3], line 2\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m video = VideoFileClip('original_video.mp4')\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m File /usr/local/lib/python3.10/dist-packages/moviepy/video/io/VideoFileClip.py:88 in __init__\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m self.reader = FFMPEG_VideoReader(filename, pix_fmt=pix_fmt,\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m File /usr/local/lib/python3.10/dist-packages/moviepy/video/io/ffmpeg_reader.py:35 in __init__\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m infos = ffmpeg_parse_infos(filename, print_infos, check_duration,\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m File /usr/local/lib/python3.10/dist-packages/moviepy/video/io/ffmpeg_reader.py:270 in ffmpeg_parse_infos\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m raise IOError((\"MoviePy error: the file %s could not be found!\\n\"\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mOSError: MoviePy error: the file original_video.mp4 could not be found!\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mPlease check that you entered the correct path.\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "73bf63b8705645d7b893f91cdc1716fa": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_540e7806e7c145d3a26fceb5c0ef8aa1", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Certainly, we can do this task in a few steps:                                                                   \n                                                                                                                   \n   1 Run the controlnet model on victoria.png with each material prompt.                                           \n   2 Download the resulting images.                                                                                \n   3 Stitch together these images into a video.                                                                    \n                                                                                                                   \n  Before we start, there are some things we need to clarify:                                                       \n                                                                                                                   \n  We need to know the full list of material prompts. You've mentioned \"metal\", \"embroidery\", and \"crayon\". We   \n     need 9 more.                                                                                                  \n  The frame rate of the video. With 12 images in 1 second, it's assumed that we will have a frame rate of 12    \n     frames per second (fps).                                                                                      \n                                                                                                                   \n  Let's go ahead with 3 materials you provided for now and we will add more later. We'll set the frame rate to 12  \n  fps.                                                                                                             \n                                                                                                                   \n  To proceed, I will first need to:                                                                                \n                                                                                                                   \n   1 Import the package replicate which should be installed on your system.                                        \n   2 Create a list of material prompts.                                                                            \n   3 Run the controlnet model with each material prompt and store the URLs of the output images.                   \n                                                                                                                   \n  Let's start with importing replicate and preparing the material prompts.                                         \n                                                                                                                   \n  (Note that you won't see the code execution output in this platform due to our backend design. However, you'll   \n  still get any output relevant to our task.)                                                                      \n                                                                                                                   \n
\n", + "text/plain": " \n Certainly, we can do this task in a few steps: \n \n \u001b[1;33m 1 \u001b[0mRun the \u001b[1;36;40mcontrolnet\u001b[0m model on \u001b[1;36;40mvictoria.png\u001b[0m with each material prompt. \n \u001b[1;33m 2 \u001b[0mDownload the resulting images. \n \u001b[1;33m 3 \u001b[0mStitch together these images into a video. \n \n Before we start, there are some things we need to clarify: \n \n \u001b[1;33m • \u001b[0mWe need to know the full list of material prompts. You've mentioned \"metal\", \"embroidery\", and \"crayon\". We \n \u001b[1;33m \u001b[0mneed 9 more. \n \u001b[1;33m • \u001b[0mThe frame rate of the video. With 12 images in 1 second, it's assumed that we will have a frame rate of 12 \n \u001b[1;33m \u001b[0mframes per second (fps). \n \n Let's go ahead with 3 materials you provided for now and we will add more later. We'll set the frame rate to 12 \n fps. \n \n To proceed, I will first need to: \n \n \u001b[1;33m 1 \u001b[0mImport the package \u001b[1;36;40mreplicate\u001b[0m which should be installed on your system. \n \u001b[1;33m 2 \u001b[0mCreate a list of material prompts. \n \u001b[1;33m 3 \u001b[0mRun the \u001b[1;36;40mcontrolnet\u001b[0m model with each material prompt and store the URLs of the output images. \n \n Let's start with importing \u001b[1;36;40mreplicate\u001b[0m and preparing the material prompts. \n \n (Note that you won't see the code execution output in this platform due to our backend design. However, you'll \n still get any output relevant to our task.) \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "74a068f07b49454bba51058b0c1772ae": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "75a72b485eb0422a820209bef270a311": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_065b7774a5a34beebb77f7e6a1501617", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  [-0.700000000000000]                                                                                             \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[-0.700000000000000]\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "76227155ec874b2bbdd633477275162d": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "7735b6aa07bb48e198f2e79bb8483006": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "77d06811ac04459ba507adec1b053905": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_f25805a2402f4a7ba505fb75554bdbed", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Requirement already satisfied: pydub in /usr/local/lib/python3.10/dist-packages (0.25.1)                         \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: pydub in /usr/local/lib/python3.10/dist-packages (0.25.1)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "77e0222fd2c54dbca7932d57e517601a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "78f2b7f6451d4315964aea44ac02db78": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "7924e96ff4484d9888b85bf7f7630cdc": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_ee9b39134cf84f089d4868aae1851900", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  I've set up the three material prompts that you mentioned - 'metal', 'embroidery', and 'crayon'.                 \n                                                                                                                   \n  To ensure the video clip contains 12 equally-spaced frames from these three materials, we'll run the             \n  replication four times for each of the material prompts.                                                         \n                                                                                                                   \n  Let's create these images first by running victoria.png through replicate's controlnet with different material   \n  prompts. I'll store these images locally so we can later combine them into a video.                              \n                                                                                                                   \n  For this task, I need to write a loop that will iterate over each material, generate the image using             \n  replicate's controlnet and save the generated image locally. Let's do it step by step. First, let's try it with  \n  one material to ensure that the image generation process is working correctly. Here we go...                     \n                                                                                                                   \n
\n", + "text/plain": " \n I've set up the three material prompts that you mentioned - 'metal', 'embroidery', and 'crayon'. \n \n To ensure the video clip contains 12 equally-spaced frames from these three materials, we'll run the \n replication four times for each of the material prompts. \n \n Let's create these images first by running victoria.png through replicate's controlnet with different material \n prompts. I'll store these images locally so we can later combine them into a video. \n \n For this task, I need to write a loop that will iterate over each material, generate the image using \n replicate's controlnet and save the generated image locally. Let's do it step by step. First, let's try it with \n one material to ensure that the image generation process is working correctly. Here we go... \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "7978261c27704717bf0f5df5231c3dee": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "7bc0945fc38c4f7c958bdafed2823093": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_dcfeecca01c345f58eebb9b6209cb5ad", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Requirement already satisfied: python-docx in /usr/local/lib/python3.10/dist-packages (0.8.11)                   \n  Requirement already satisfied: lxml>=2.3.2 in /usr/local/lib/python3.10/dist-packages (from python-docx)         \n  (4.9.3)                                                                                                          \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: python-docx in /usr/local/lib/python3.10/dist-packages (0.8.11)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: lxml>=2.3.2 in /usr/local/lib/python3.10/dist-packages (from python-docx) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(4.9.3)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "7da8ca4865a647d6ac46a64af17fd02d": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "7eed9d874bf846a7b5e545b9c98d417d": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_5e5a5fd06a6d46e3b85e9587d50adfdb", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  import os                                                                                                        \n  import numpy as np                                                                                               \n  from PIL import Image                                                                                            \n                                                                                                                   \n  # Create a directory to store the frames                                                                         \n  os.makedirs('frames', exist_ok=True)                                                                             \n                                                                                                                   \n  # Extract frames from the video                                                                                  \n  for i, frame in enumerate(video.iter_frames()):                                                                  \n      # Convert the frame to an image                                                                              \n      image = Image.fromarray(np.uint8(frame))                                                                     \n                                                                                                                   \n      # Save the image                                                                                             \n      image.save(f'frames/frame_{i}.png')                                                                          \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mos\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnumpy\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mas\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnp\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPIL\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mImage\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Create a directory to store the frames\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mos\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmakedirs\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mframes\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mexist_ok\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mTrue\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Extract frames from the video\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mframe\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34menumerate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34miter_frames\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Convert the frame to an image\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mimage\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mImage\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfromarray\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnp\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34muint8\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mframe\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Save the image\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mimage\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msave\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mf\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mframes/frame_\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m.png\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "800d0a52c55346119c920db787b7f229": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "82e71737f0d941d1a57fb9882c1a303f": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_61c835b06ac043c0a06cecf241d7fa48", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  ['AudioProcessorParameter', 'Bitcrush', 'Chain', 'Chorus', 'Clipping', 'Compressor', 'Convolution', 'Delay',     \n  'Distortion', 'ExternalPlugin', 'GSMFullRateCompressor', 'Gain', 'HighShelfFilter', 'HighpassFilter',            \n  'IIRFilter', 'Invert', 'LadderFilter', 'Limiter', 'LowShelfFilter', 'LowpassFilter', 'MP3Compressor', 'Mix',     \n  'NoiseGate', 'PeakFilter', 'Pedalboard', 'Phaser', 'PitchShift', 'Plugin', 'PluginContainer', 'Resample',        \n  'Reverb', 'VST3Plugin', '_AVAILABLE_PLUGIN_CLASSES', '__builtins__', '__cached__', '__doc__', '__file__',        \n  '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', '_klass', '_pedalboard', 'io',   \n  'load_plugin', 'numpy', 'process', 'utils', 'version']                                                           \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m['AudioProcessorParameter', 'Bitcrush', 'Chain', 'Chorus', 'Clipping', 'Compressor', 'Convolution', 'Delay', \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m'Distortion', 'ExternalPlugin', 'GSMFullRateCompressor', 'Gain', 'HighShelfFilter', 'HighpassFilter', \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m'IIRFilter', 'Invert', 'LadderFilter', 'Limiter', 'LowShelfFilter', 'LowpassFilter', 'MP3Compressor', 'Mix', \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m'NoiseGate', 'PeakFilter', 'Pedalboard', 'Phaser', 'PitchShift', 'Plugin', 'PluginContainer', 'Resample', \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m'Reverb', 'VST3Plugin', '_AVAILABLE_PLUGIN_CLASSES', '__builtins__', '__cached__', '__doc__', '__file__', \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m'__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', '_klass', '_pedalboard', 'io', \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m'load_plugin', 'numpy', 'process', 'utils', 'version']\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "83897e5d417c4801b9033373ab047563": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_a2766ca73ab9400d87bbaa96008ebb3b", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  from moviepy.video.io.VideoFileClip import VideoFileClip                                                         \n                                                                                                                   \n  # Load the video                                                                                                 \n  video = VideoFileClip('original_video.mp4')                                                                      \n                                                                                                                   \n  # Extract the segment from 0:10 to 0:17                                                                          \n  video = video.subclip(10, 17)                                                                                    \n                                                                                                                   \n  # Reduce the frame rate to 12 fps                                                                                \n  video = video.set_duration(7).set_fps(12)                                                                        \n                                                                                                                   \n  # Save the modified video                                                                                        \n  video.write_videofile('modified_video.mp4', codec='libx264')                                                     \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmoviepy\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mVideoFileClip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mVideoFileClip\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Load the video\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mVideoFileClip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34moriginal_video.mp4\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Extract the segment from 0:10 to 0:17\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msubclip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m10\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m17\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Reduce the frame rate to 12 fps\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mset_duration\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m7\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mset_fps\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m12\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Save the modified video\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwrite_videofile\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mmodified_video.mp4\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcodec\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mlibx264\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "8497cd04499f48eb9a305e6c3db8b38d": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_e64b5e68e0e84553a9e303ba55d389d0", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Traceback (most recent call last):                                                                               \n    Cell In[9], line 3                                                                                             \n      audio, sample_rate = sf.read('original_song.webm')                                                           \n    File /usr/local/lib/python3.10/dist-packages/soundfile.py:285 in read                                          \n      with SoundFile(file, 'r', samplerate, channels,                                                              \n    File /usr/local/lib/python3.10/dist-packages/soundfile.py:658 in __init__                                      \n      self._file = self._open(file, mode_int, closefd)                                                             \n    File /usr/local/lib/python3.10/dist-packages/soundfile.py:1216 in _open                                        \n      raise LibsndfileError(err, prefix=\"Error opening {0!r}: \".format(self.name))                                 \n  LibsndfileError: Error opening 'original_song.webm': Format not recognised.                                      \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mTraceback (most recent call last):\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Cell In[9], line 3\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m audio, sample_rate = sf.read('original_song.webm')\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m File /usr/local/lib/python3.10/dist-packages/soundfile.py:285 in read\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m with SoundFile(file, 'r', samplerate, channels,\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m File /usr/local/lib/python3.10/dist-packages/soundfile.py:658 in __init__\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m self._file = self._open(file, mode_int, closefd)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m File /usr/local/lib/python3.10/dist-packages/soundfile.py:1216 in _open\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m raise LibsndfileError(err, prefix=\"Error opening {0!r}: \".format(self.name))\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mLibsndfileError: Error opening 'original_song.webm': Format not recognised.\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "85a2c311f8cd4fd484dd5a95079d9dcb": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_bd5ea7bd835a483095abe490c447dd32", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n                                                                                                                   \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "87f4047550f14103ac55a7ee2736f3ef": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_e6feb1cf757b44bba8fbdecd9b185178", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  The video has been successfully downloaded and saved as \"original_video.mp4\".                                    \n                                                                                                                   \n  Next, I'll extract the segment from 0:10 to 0:17 and reduce its frame rate to 12 fps.                            \n                                                                                                                   \n  Let's proceed with this plan:                                                                                    \n                                                                                                                   \n   1 Load the video using MoviePy.                                                                                 \n   2 Extract the segment from 0:10 to 0:17.                                                                        \n   3 Reduce the frame rate to 12 fps.                                                                              \n   4 Save the modified video.                                                                                      \n                                                                                                                   \n
\n", + "text/plain": " \n The video has been successfully downloaded and saved as \"original_video.mp4\". \n \n Next, I'll extract the segment from 0:10 to 0:17 and reduce its frame rate to 12 fps. \n \n Let's proceed with this plan: \n \n \u001b[1;33m 1 \u001b[0mLoad the video using MoviePy. \n \u001b[1;33m 2 \u001b[0mExtract the segment from 0:10 to 0:17. \n \u001b[1;33m 3 \u001b[0mReduce the frame rate to 12 fps. \n \u001b[1;33m 4 \u001b[0mSave the modified video. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "886daf8914584873b21fb95604cfa84f": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_456f954392e84f46b7f68b50101bd62e", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Requirement already satisfied: moviepy in /usr/local/lib/python3.10/dist-packages (1.0.3)                        \n  Requirement already satisfied: decorator<5.0,>=4.0.2 in /usr/local/lib/python3.10/dist-packages (from moviepy)   \n  (4.4.2)                                                                                                          \n  Requirement already satisfied: tqdm<5.0,>=4.11.2 in /usr/local/lib/python3.10/dist-packages (from moviepy)       \n  (4.65.0)                                                                                                         \n  Requirement already satisfied: requests<3.0,>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from moviepy)    \n  (2.27.1)                                                                                                         \n  Requirement already satisfied: proglog<=1.0.0 in /usr/local/lib/python3.10/dist-packages (from moviepy)          \n  (0.1.10)                                                                                                         \n  Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.10/dist-packages (from moviepy) (1.22.4)  \n  Requirement already satisfied: imageio<3.0,>=2.5 in /usr/local/lib/python3.10/dist-packages (from moviepy)       \n  (2.25.1)                                                                                                         \n  Requirement already satisfied: imageio-ffmpeg>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from moviepy)   \n  (0.4.8)                                                                                                          \n  Requirement already satisfied: pillow>=8.3.2 in /usr/local/lib/python3.10/dist-packages (from                    \n  imageio<3.0,>=2.5->moviepy) (8.4.0)                                                                              \n  Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from            \n  requests<3.0,>=2.8.1->moviepy) (1.26.16)                                                                         \n  Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from               \n  requests<3.0,>=2.8.1->moviepy) (2023.5.7)                                                                        \n  Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from        \n  requests<3.0,>=2.8.1->moviepy) (2.0.12)                                                                          \n  Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from                     \n  requests<3.0,>=2.8.1->moviepy) (3.4)                                                                             \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: moviepy in /usr/local/lib/python3.10/dist-packages (1.0.3)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: decorator<5.0,>=4.0.2 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(4.4.2)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: tqdm<5.0,>=4.11.2 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(4.65.0)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: requests<3.0,>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(2.27.1)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: proglog<=1.0.0 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(0.1.10)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.10/dist-packages (from moviepy) (1.22.4)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: imageio<3.0,>=2.5 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(2.25.1)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: imageio-ffmpeg>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(0.4.8)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: pillow>=8.3.2 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mimageio<3.0,>=2.5->moviepy) (8.4.0)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mrequests<3.0,>=2.8.1->moviepy) (1.26.16)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mrequests<3.0,>=2.8.1->moviepy) (2023.5.7)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mrequests<3.0,>=2.8.1->moviepy) (2.0.12)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mrequests<3.0,>=2.8.1->moviepy) (3.4)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "8b00506f94854fcc971d08b1577a531a": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_6d14d7db445b4f829275aea79bd0dbd1", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  According to the output received from Replicate's speech-to-text service, the subtitles generated are in the     \n  WEBVTT format. Note that the file format consists of timestamped text data representing spoken dialogue. Looks   \n  like the presented text is:                                                                                      \n                                                                                                                   \n                                                                                                                   \n   WEBVTT                                                                                                          \n   00:00.000 --> 00:02.000                                                                                         \n    Well I'm a stoner man                                                                                          \n   00:04.000 --> 00:07.000                                                                                         \n    That's right I took in man                                                                                     \n   00:08.560 --> 00:10.560                                                                                         \n    Put a joint in my hand                                                                                         \n   00:12.240 --> 00:14.240                                                                                         \n    And lose control                                                                                               \n   00:16.840 --> 00:18.840                                                                                         \n    Well, I'm a lunatic man                                                                                        \n   00:21.440 --> 00:23.440                                                                                         \n    I got right crazy man                                                                                          \n   00:25.560 --> 00:28.720                                                                                         \n    Then take you long if you're out                                                                               \n   00:28.720 --> 00:30.720                                                                                         \n    I'm out of game trouble                                                                                        \n   00:35.720 --> 00:37.720                                                                                         \n    I could                                                                                                        \n   00:37.720 --> 00:39.720                                                                                         \n    No                                                                                                             \n   00:39.720 --> 00:41.720                                                                                         \n    Oh                                                                                                             \n   00:41.720 --> 00:43.720                                                                                         \n    No                                                                                                             \n                                                                                                                   \n                                                                                                                   \n  Though we have the subtitles now, we need to impose these onto the video using MoviePy and save it as            \n  \"billy_subbed.mp4\". Let's proceed with that. If the final video doesn't look right, it might be due to the       \n  inaccuracies in the timestamps or in the transcription. Let's give it a try, though.                             \n                                                                                                                   \n
\n", + "text/plain": " \n According to the output received from Replicate's speech-to-text service, the subtitles generated are in the \n WEBVTT format. Note that the file format consists of timestamped text data representing spoken dialogue. Looks \n like the presented text is: \n \n \u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mWEBVTT\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m00:00.000 --> 00:02.000\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m Well I'm a stoner man\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m00:04.000 --> 00:07.000\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m That's right I took in man\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m00:08.560 --> 00:10.560\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m Put a joint in my hand\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m00:12.240 --> 00:14.240\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m And lose control\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m00:16.840 --> 00:18.840\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m Well, I'm a lunatic man\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m00:21.440 --> 00:23.440\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m I got right crazy man\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m00:25.560 --> 00:28.720\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m Then take you long if you're out\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m00:28.720 --> 00:30.720\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m I'm out of game trouble\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m00:35.720 --> 00:37.720\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m I could\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m00:37.720 --> 00:39.720\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m No\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m00:39.720 --> 00:41.720\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m Oh\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m00:41.720 --> 00:43.720\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m No\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n \u001b[48;2;39;40;34m \u001b[0m \n \n Though we have the subtitles now, we need to impose these onto the video using MoviePy and save it as \n \"billy_subbed.mp4\". Let's proceed with that. If the final video doesn't look right, it might be due to the \n inaccuracies in the timestamps or in the transcription. Let's give it a try, though. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "8b67d19d967b4ec8a22e595c3aea1f79": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_4ecb19ab194440e7962991fe4c9332a7", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  ['Disposable vapes: Councils call for total ban by 2024', 'SAG strike: Actors join writers on Hollywood picket   \n  lines', 'Bournemouth beach deaths: No police action to be taken', 'Summer holidays: Will there be more travel    \n  chaos this year?', 'Just Stop Oil protesters interrupt the Proms', 'Stare at smokers to stop them, Hong Kong     \n  health chief urges public', 'Europe heatwave: More record temperatures expected', \"Extra energy bill scheme was  \n  'staggering failure', says MP\", \"Shekhar Kapur: Hollywood's diversity push is guilt driven\", 'NI officers told   \n  not to wear police uniforms at Pride']                                                                           \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m['Disposable vapes: Councils call for total ban by 2024', 'SAG strike: Actors join writers on Hollywood picket \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mlines', 'Bournemouth beach deaths: No police action to be taken', 'Summer holidays: Will there be more travel \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mchaos this year?', 'Just Stop Oil protesters interrupt the Proms', 'Stare at smokers to stop them, Hong Kong \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mhealth chief urges public', 'Europe heatwave: More record temperatures expected', \"Extra energy bill scheme was\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m'staggering failure', says MP\", \"Shekhar Kapur: Hollywood's diversity push is guilt driven\", 'NI officers told \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnot to wear police uniforms at Pride']\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "8df28d357a604e64b6d7353891fbdaa3": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "8e94b43d08f848159b7c621693e26878": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "9080b44022b647908b0c8f8dabc51e5f": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_c18416a315554529bbf7f4f4543ecaa3", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  from moviepy.editor import ImageSequenceClip                                                                     \n                                                                                                                   \n  # Create a list of the redrawn frames                                                                            \n  frames = [f'redrawn_frames/frame_{i}.png' for i in range(len(os.listdir('redrawn_frames')))]                     \n                                                                                                                   \n  # Create a clip from the redrawn frames                                                                          \n  clip = ImageSequenceClip(frames, fps=12)                                                                         \n                                                                                                                   \n  # Add the original audio to the clip                                                                             \n  clip = clip.set_audio(video.audio)                                                                               \n                                                                                                                   \n  # Save the final video                                                                                           \n  clip.write_videofile('final_video.mp4', codec='libx264')                                                         \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmoviepy\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34meditor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mImageSequenceClip\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Create a list of the redrawn frames\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mframes\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mf\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mredrawn_frames/frame_\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m.png\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrange\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mlen\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mos\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mlistdir\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mredrawn_frames\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Create a clip from the redrawn frames\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mImageSequenceClip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mframes\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfps\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m12\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Add the original audio to the clip\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mset_audio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34maudio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Save the final video\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwrite_videofile\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mfinal_video.mp4\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcodec\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mlibx264\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "9201ae6c615b46ec8c97b198f56c38ed": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "93d564a6d8c842f29e3fcb5e8b8d2a18": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "942032ef5a7b46a0866adf65a07ca9b6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "961f446973c6459cadc262fca5193d9d": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_58ce723038e04fd2810f4985e864544a", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  12                                                                                                               \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m12\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "98c4cba0cfb043b7a75b9a80e7661e46": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "99b83169a2c5408dbfa7b835db2d7171": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "9ad527758ac44f7ba5cf5501f0a2ccc1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "9d1e55aa8c544a3aa780fa2230b82c21": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "9d35e8077b634453a9da6c9bdf55c104": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "a10d5975091b4b8fb99544dea8de13d0": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_bbf6af49c88c4c5d909b61ad8b67b5fa", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  I have successfully created 12 images using ControlNet with different material prompts, we now have their URLs.  \n  The next step is to download these images and then merge them into a single video.                               \n                                                                                                                   \n  In order to accomplish this, we will first need to install the opencv-python library for manipulating our        \n  images and creating our video, as well as the requests library for downloading our images from the internet.     \n  Let's do that.                                                                                                   \n                                                                                                                   \n
\n", + "text/plain": " \n I have successfully created 12 images using ControlNet with different material prompts, we now have their URLs. \n The next step is to download these images and then merge them into a single video. \n \n In order to accomplish this, we will first need to install the \u001b[1;36;40mopencv-python\u001b[0m library for manipulating our \n images and creating our video, as well as the \u001b[1;36;40mrequests\u001b[0m library for downloading our images from the internet. \n Let's do that. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "a21bd572aad1457890fd77e77ae60cde": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_800d0a52c55346119c920db787b7f229", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Output truncated. Showing the last 2000 characters. Adjust via `interpreter.max_output_chars`.                   \n                                                                                                                   \n  0:00:01     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.7/2.7 MB 61.2 MB/s eta 0:00:00                            \n  Requirement already satisfied: decorator<5.0,>=4.0.2 in /usr/local/lib/python3.10/dist-packages (from moviepy)   \n  (4.4.2)                                                                                                          \n  Requirement already satisfied: tqdm<5.0,>=4.11.2 in /usr/local/lib/python3.10/dist-packages (from moviepy)       \n  (4.65.0)                                                                                                         \n  Requirement already satisfied: requests<3.0,>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from moviepy)    \n  (2.27.1)                                                                                                         \n  Requirement already satisfied: proglog<=1.0.0 in /usr/local/lib/python3.10/dist-packages (from moviepy)          \n  (0.1.10)                                                                                                         \n  Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.10/dist-packages (from moviepy) (1.22.4)  \n  Requirement already satisfied: imageio<3.0,>=2.5 in /usr/local/lib/python3.10/dist-packages (from moviepy)       \n  (2.25.1)                                                                                                         \n  Requirement already satisfied: imageio-ffmpeg>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from moviepy)   \n  (0.4.8)                                                                                                          \n  Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from replicate) (23.1)      \n  Requirement already satisfied: pydantic<2,>1 in /usr/local/lib/python3.10/dist-packages (from replicate)         \n  (1.10.11)                                                                                                        \n  Requirement already satisfied: pillow>=8.3.2 in /usr/local/lib/python3.10/dist-packages (from                    \n  imageio<3.0,>=2.5->moviepy) (8.4.0)                                                                              \n  Requirement already satisfied: typing-extensions>=4.2.0 in /usr/local/lib/python3.10/dist-packages (from         \n  pydantic<2,>1->replicate) (4.7.1)                                                                                \n  Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from            \n  requests<3.0,>=2.8.1->moviepy) (1.26.16)                                                                         \n  Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from        \n  requests<3.0,>=2.8.1->moviepy) (2.0.12)                                                                          \n  Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from                     \n  requests<3.0,>=2.8.1->moviepy) (3.4)                                                                             \n  Installing collected packages: brotli, websockets, pycryptodomex, mutagen, yt-dlp                                \n  Successfully installed brotli-1.0.9 mutagen-1.46.0 pycryptodomex-3.18.0 websockets-11.0.3 yt-dlp-2023.7.6        \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mOutput truncated. Showing the last 2000 characters. Adjust via `interpreter.max_output_chars`.\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m0:00:01 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.7/2.7 MB 61.2 MB/s eta 0:00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: decorator<5.0,>=4.0.2 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(4.4.2)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: tqdm<5.0,>=4.11.2 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(4.65.0)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: requests<3.0,>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(2.27.1)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: proglog<=1.0.0 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(0.1.10)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.10/dist-packages (from moviepy) (1.22.4)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: imageio<3.0,>=2.5 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(2.25.1)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: imageio-ffmpeg>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(0.4.8)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from replicate) (23.1)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: pydantic<2,>1 in /usr/local/lib/python3.10/dist-packages (from replicate) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(1.10.11)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: pillow>=8.3.2 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mimageio<3.0,>=2.5->moviepy) (8.4.0)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: typing-extensions>=4.2.0 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mpydantic<2,>1->replicate) (4.7.1)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mrequests<3.0,>=2.8.1->moviepy) (1.26.16)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mrequests<3.0,>=2.8.1->moviepy) (2.0.12)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mrequests<3.0,>=2.8.1->moviepy) (3.4)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mInstalling collected packages: brotli, websockets, pycryptodomex, mutagen, yt-dlp\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mSuccessfully installed brotli-1.0.9 mutagen-1.46.0 pycryptodomex-3.18.0 websockets-11.0.3 yt-dlp-2023.7.6\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "a2766ca73ab9400d87bbaa96008ebb3b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "a46c38d5d2864821ba81ad63259670db": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "a59185faa5bb4ef3ba9810b94096d85e": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_2e658de9a31945bb8221cee533efdc15", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  from pedalboard import Pedalboard, Reverb, PitchShift                                                            \n                                                                                                                   \n  # Create a Pedalboard instance                                                                                   \n  board = Pedalboard([                                                                                             \n      PitchShift(semitones=-5),  # Lower the pitch                                                                 \n      Reverb(room_size=0.5, dry_level=0.5, wet_level=0.5)  # Add reverb                                            \n  ])                                                                                                               \n                                                                                                                   \n  # Process the audio                                                                                              \n  processed_audio = board.process(audio, sample_rate=sample_rate)                                                  \n                                                                                                                   \n  # Save the processed audio to a new file                                                                         \n  sf.write('processed_song.wav', processed_audio, sample_rate)                                                     \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpedalboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPedalboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mReverb\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPitchShift\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Create a Pedalboard instance\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPedalboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPitchShift\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msemitones\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Lower the pitch\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mReverb\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mroom_size\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0.5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdry_level\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0.5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwet_level\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0.5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Add reverb\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Process the audio\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprocessed_audio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mboard\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprocess\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34maudio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msample_rate\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msample_rate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Save the processed audio to a new file\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msf\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwrite\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mprocessed_song.wav\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprocessed_audio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msample_rate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "a6ddbeb9b5ef4ea58858eabac8fde3c6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "a7c6c1912ff3442e878fe2f19a7bab01": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_2044f647ec5b4bb6a3a363f40bfc45b1", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Output truncated. Showing the last 2000 characters. Adjust via `interpreter.max_output_chars`.                   \n                                                                                                                   \n        | 29/84 [00:01<00:02, 22.13it/s, now=None]t:  38%|###8      | 32/84 [00:01<00:02, 23.60it/s, now=None]t:   \n  42%|####1     | 35/84 [00:01<00:02, 23.60it/s, now=None]t:  45%|####5     | 38/84 [00:01<00:02, 22.13it/s,       \n  now=None]t:  49%|####8     | 41/84 [00:01<00:02, 21.33it/s, now=None]t:  52%|#####2    | 44/84 [00:01<00:01,     \n  20.25it/s, now=None]t:  56%|#####5    | 47/84 [00:02<00:02, 16.81it/s, now=None]t:  58%|#####8    | 49/84        \n  [00:02<00:02, 15.82it/s, now=None]t:  61%|######    | 51/84 [00:02<00:02, 14.81it/s, now=None]t:  63%|######3    \n  | 53/84 [00:02<00:02, 13.42it/s, now=None]t:  65%|######5   | 55/84 [00:02<00:02, 13.78it/s, now=None]t:         \n  68%|######7   | 57/84 [00:03<00:01, 13.98it/s, now=None]t:  70%|#######   | 59/84 [00:03<00:01, 14.07it/s,       \n  now=None]t:  73%|#######2  | 61/84 [00:03<00:01, 12.65it/s, now=None]t:  75%|#######5  | 63/84 [00:03<00:02,     \n  9.41it/s, now=None]t:  77%|#######7  | 65/84 [00:03<00:02,  8.45it/s, now=None]t:  79%|#######8  | 66/84         \n  [00:04<00:02,  8.19it/s, now=None]t:  80%|#######9  | 67/84 [00:04<00:02,  8.23it/s, now=None]t:  81%|########   \n  | 68/84 [00:04<00:02,  7.99it/s, now=None]t:  83%|########3 | 70/84 [00:04<00:01,  9.22it/s, now=None]t:         \n  85%|########4 | 71/84 [00:04<00:01,  8.74it/s, now=None]t:  87%|########6 | 73/84 [00:04<00:01,  9.11it/s,       \n  now=None]t:  89%|########9 | 75/84 [00:05<00:01,  8.92it/s, now=None]t:  90%|######### | 76/84 [00:05<00:00,     \n  8.64it/s, now=None]t:  92%|#########1| 77/84 [00:05<00:00,  8.09it/s, now=None]t:  93%|#########2| 78/84         \n  [00:05<00:00,  7.87it/s, now=None]t:  94%|#########4| 79/84 [00:05<00:00,  8.23it/s, now=None]t:                 \n  95%|#########5| 80/84 [00:05<00:00,  8.24it/s, now=None]t:  96%|#########6| 81/84 [00:05<00:00,  8.61it/s,       \n  now=None]t:  98%|#########7| 82/84 [00:05<00:00,  8.65it/s, now=None]t: 100%|##########| 84/84 [00:06<00:00,     \n  8.56it/s, now=None]                                                            Moviepy - Done !                  \n  Moviepy - video ready final_video.mp4                                                                            \n  None                                                                                                             \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mOutput truncated. Showing the last 2000 characters. Adjust via `interpreter.max_output_chars`.\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m | 29/84 [00:01<00:02, 22.13it/s, now=None]t: 38%|###8 | 32/84 [00:01<00:02, 23.60it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m42%|####1 | 35/84 [00:01<00:02, 23.60it/s, now=None]t: 45%|####5 | 38/84 [00:01<00:02, 22.13it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 49%|####8 | 41/84 [00:01<00:02, 21.33it/s, now=None]t: 52%|#####2 | 44/84 [00:01<00:01, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m20.25it/s, now=None]t: 56%|#####5 | 47/84 [00:02<00:02, 16.81it/s, now=None]t: 58%|#####8 | 49/84 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:02<00:02, 15.82it/s, now=None]t: 61%|###### | 51/84 [00:02<00:02, 14.81it/s, now=None]t: 63%|######3 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m| 53/84 [00:02<00:02, 13.42it/s, now=None]t: 65%|######5 | 55/84 [00:02<00:02, 13.78it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m68%|######7 | 57/84 [00:03<00:01, 13.98it/s, now=None]t: 70%|####### | 59/84 [00:03<00:01, 14.07it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 73%|#######2 | 61/84 [00:03<00:01, 12.65it/s, now=None]t: 75%|#######5 | 63/84 [00:03<00:02, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m9.41it/s, now=None]t: 77%|#######7 | 65/84 [00:03<00:02, 8.45it/s, now=None]t: 79%|#######8 | 66/84 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:04<00:02, 8.19it/s, now=None]t: 80%|#######9 | 67/84 [00:04<00:02, 8.23it/s, now=None]t: 81%|######## \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m| 68/84 [00:04<00:02, 7.99it/s, now=None]t: 83%|########3 | 70/84 [00:04<00:01, 9.22it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m85%|########4 | 71/84 [00:04<00:01, 8.74it/s, now=None]t: 87%|########6 | 73/84 [00:04<00:01, 9.11it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 89%|########9 | 75/84 [00:05<00:01, 8.92it/s, now=None]t: 90%|######### | 76/84 [00:05<00:00, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m8.64it/s, now=None]t: 92%|#########1| 77/84 [00:05<00:00, 8.09it/s, now=None]t: 93%|#########2| 78/84 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:05<00:00, 7.87it/s, now=None]t: 94%|#########4| 79/84 [00:05<00:00, 8.23it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m95%|#########5| 80/84 [00:05<00:00, 8.24it/s, now=None]t: 96%|#########6| 81/84 [00:05<00:00, 8.61it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 98%|#########7| 82/84 [00:05<00:00, 8.65it/s, now=None]t: 100%|##########| 84/84 [00:06<00:00, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m8.56it/s, now=None] Moviepy - Done !\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mMoviepy - video ready final_video.mp4\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mNone\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "a8733b66c6594a9b82309adeda08104f": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_d6a7ae990c474869934f5862a89dd274", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  output = replicate.run(                                                                                          \n      'jagilley/controlnet-canny:aff48af9c68d162388d230a2ab003f68d2638d88307bdaf1c2f1ac95079c9613',                \n      input={'image': open('victoria.png', 'rb'), 'prompt': 'metal'}                                               \n  )                                                                                                                \n  output_second = output[1]                                                                                        \n  output_second                                                                                                    \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34moutput\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mreplicate\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrun\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mjagilley/controlnet-canny:aff48af9c68d162388d230a2ab003f68d2638d88307bdaf1c2f1ac95079c9613\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34minput\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m{\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mimage\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mopen\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mvictoria.png\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mrb\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mprompt\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mmetal\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m}\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34moutput_second\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34moutput\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m1\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34moutput_second\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "aa6c553f705d413fb4908e0d97aa017d": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_8df28d357a604e64b6d7353891fbdaa3", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  It appears that the Stretch class is not available in the pedalboard module. However, there is a PitchShift      \n  class which might be used to achieve a similar effect. Let's try using that instead.                             \n                                                                                                                   \n
\n", + "text/plain": " \n It appears that the \u001b[1;36;40mStretch\u001b[0m class is not available in the \u001b[1;36;40mpedalboard\u001b[0m module. However, there is a \u001b[1;36;40mPitchShift\u001b[0m \n class which might be used to achieve a similar effect. Let's try using that instead. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "aae61f21148843148e082f1349b130ae": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "ad1cdb2076be4851b5d3a9af551e2e1e": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_0cbcc3ce78ac4df28d0326e591a2418e", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Moviepy - Building video video.mp4.                                                                              \n  Moviepy - Writing video video.mp4                                                                                \n                                                                                                                   \n                                                                                                                   \n  t:   0%|          | 0/12 [00:00<?, ?it/s, now=None]                                                              \n                                                     Moviepy - Done !                                              \n  Moviepy - video ready video.mp4                                                                                  \n  None                                                                                                             \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mMoviepy - Building video video.mp4.\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mMoviepy - Writing video video.mp4\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mt: 0%| | 0/12 [00:00 \n It appears that the folder named 'documents' was created successfully. Now, let's create the document files \n with sentences about machine learning. For this, I'm going to use the python-docx package. I'll install it now. \n Let's do this step-by-step for clarity. \n \n First, I'll install the package. \n \n\n", + "text/plain": " \n It appears that the folder named 'documents' was created successfully. Now, let's create the document files \n with sentences about machine learning. For this, I'm going to use the python-docx package. I'll install it now. \n Let's do this step-by-step for clarity. \n \n First, I'll install the package. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "b1ed6a8960964d01937082e84b55cf3a": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_2d23c9f050f745cdaadd6806811fe0ff", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  from PIL import Image, ImageDraw                                                                                 \n  import random                                                                                                    \n                                                                                                                   \n  # Define the image dimensions and colors                                                                         \n  width, height = 160, 14                                                                                          \n  black = (0, 0, 0)                                                                                                \n  white = (255, 255, 255)                                                                                          \n  purple = (138, 43, 226)                                                                                          \n                                                                                                                   \n  # Function to create a single banner                                                                             \n  def create_banner(filename):                                                                                     \n      # Create a new image with a black background                                                                 \n      img = Image.new('RGB', (width, height), black)                                                               \n      draw = ImageDraw.Draw(img)                                                                                   \n                                                                                                                   \n      # Loop over every other row                                                                                  \n      for y in range(0, height, 2):                                                                                \n          x = 0                                                                                                    \n          # Randomly decide whether to start with a rectangle or a space                                           \n          start_with_rectangle = random.choice([True, False])                                                      \n          while x < width:                                                                                         \n              if start_with_rectangle:                                                                             \n                  # Draw a rectangle                                                                               \n                  rectangle_width = random.randint(6, 36)                                                          \n                  color = random.choice([white, purple])                                                           \n                  draw.rectangle([(x, y), (x + rectangle_width, y)], fill=color)                                   \n                  x += rectangle_width                                                                             \n              else:                                                                                                \n                  # Leave a space                                                                                  \n                  space_width = random.randint(16, 64)                                                             \n                  x += space_width                                                                                 \n              # Flip the flag for the next iteration                                                               \n              start_with_rectangle = not start_with_rectangle                                                      \n                                                                                                                   \n      # Scale up the image                                                                                         \n      img = img.resize((width * 10, height * 10), Image.NEAREST)                                                   \n                                                                                                                   \n      # Save the image                                                                                             \n      img.save(filename)                                                                                           \n                                                                                                                   \n  # Create 10 banners                                                                                              \n  for i in range(1, 11):                                                                                           \n      create_banner(f'banner_{i}.png')                                                                             \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPIL\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mImage\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mImageDraw\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrandom\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Define the image dimensions and colors\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwidth\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mheight\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m160\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m14\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mblack\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwhite\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m255\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m255\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m255\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpurple\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m138\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m43\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m226\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Function to create a single banner\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mdef\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;166;226;46;48;2;39;40;34mcreate_banner\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfilename\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Create a new image with a black background\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mimg\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mImage\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mRGB\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwidth\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mheight\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mblack\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdraw\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mImageDraw\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mDraw\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mimg\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Loop over every other row\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34my\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrange\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mheight\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m2\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Randomly decide whether to start with a rectangle or a space\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mstart_with_rectangle\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrandom\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mchoice\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mTrue\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mFalse\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mwhile\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m<\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwidth\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mif\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mstart_with_rectangle\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Draw a rectangle\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrectangle_width\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrandom\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrandint\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m6\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m36\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcolor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrandom\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mchoice\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwhite\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpurple\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdraw\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrectangle\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34my\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m+\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrectangle_width\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34my\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfill\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcolor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m+\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrectangle_width\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34melse\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Leave a space\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mspace_width\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrandom\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrandint\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m16\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m64\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m+\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mspace_width\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Flip the flag for the next iteration\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mstart_with_rectangle\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mnot\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mstart_with_rectangle\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Scale up the image\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mimg\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mimg\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mresize\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwidth\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m*\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m10\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mheight\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m*\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m10\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mImage\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mNEAREST\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Save the image\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mimg\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msave\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfilename\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Create 10 banners\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrange\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m1\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m11\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcreate_banner\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mf\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mbanner_\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m.png\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "b21732a379674ae7860fca91e4741739": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "b37d96a06ec148fab77a1a5121bfc74b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "b3a3183812fa46d7af4dcade094153d1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "b3e874cde5924727b3c2cdb93de1e68a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "b460785b83194ce8a69121c358c2a5a8": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_c7e4f15aa81a48d9a390beb2ebb24cd3", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Requirement already satisfied: pedalboard in /usr/local/lib/python3.10/dist-packages (0.7.5)                     \n  Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from pedalboard) (1.22.4)       \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: pedalboard in /usr/local/lib/python3.10/dist-packages (0.7.5)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from pedalboard) (1.22.4)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "b5508ace4d4844b68a2fc0f23e320db9": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_2acee6da53c748b194bd4445bdba02a4", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  I have deleted the old files and renamed the new ones with the same names as the original files. You should now  \n  see only the updated files in your 'documents' folder. All references to 'Machine Learning' have been replaced   \n  with 'AI' in these files. Feel free to check them and let me know if you have any other requests!                \n                                                                                                                   \n
\n", + "text/plain": " \n I have deleted the old files and renamed the new ones with the same names as the original files. You should now \n see only the updated files in your 'documents' folder. All references to 'Machine Learning' have been replaced \n with 'AI' in these files. Feel free to check them and let me know if you have any other requests! \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "b821ba1c3698465092f5d390725fd535": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_93d564a6d8c842f29e3fcb5e8b8d2a18", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  ['.config', 'original_video.mp4.webm', 'sample_data']                                                            \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m['.config', 'original_video.mp4.webm', 'sample_data']\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "b94baeecf44949ee9e76b2c080f0b3db": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_3164bb1a7475448e9f5bcaaadd74c63d", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  !pip install yt-dlp                                                                                              \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;150;0;80;48;2;30;0;16m!\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34minstall\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34myt\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdlp\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "bbf6af49c88c4c5d909b61ad8b67b5fa": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "bc0abb5adb504f1395bbff2e8a5404ef": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_18a380ea6a594f64b8381b1cd1bb2594", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Processing doc2.docx                                                                                             \n  Finished processing doc2.docx                                                                                    \n  Processing doc4.docx                                                                                             \n  Finished processing doc4.docx                                                                                    \n  Processing doc5.docx                                                                                             \n  Finished processing doc5.docx                                                                                    \n  Processing doc1.docx                                                                                             \n  Finished processing doc1.docx                                                                                    \n  Processing doc3.docx                                                                                             \n  Finished processing doc3.docx                                                                                    \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mProcessing doc2.docx\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mFinished processing doc2.docx\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mProcessing doc4.docx\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mFinished processing doc4.docx\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mProcessing doc5.docx\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mFinished processing doc5.docx\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mProcessing doc1.docx\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mFinished processing doc1.docx\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mProcessing doc3.docx\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mFinished processing doc3.docx\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "bd5ea7bd835a483095abe490c447dd32": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "bfffa91fc96f4f5b9ca25b29025938c6": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_d007873a1ec540b9b73cba17251362b0", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  from pydub import AudioSegment                                                                                   \n                                                                                                                   \n  # Convert webm file to wav                                                                                       \n  song = AudioSegment.from_file('original_song.webm')                                                              \n  song.export('original_song.wav', format='wav')                                                                   \n                                                                                                                   \n  # Load the audio file                                                                                            \n  audio, sample_rate = sf.read('original_song.wav')                                                                \n                                                                                                                   \n  # Create a Pedalboard instance                                                                                   \n  board = Pedalboard([                                                                                             \n      PitchShift(semitones=-5),  # Lower the pitch                                                                 \n      Reverb(room_size=0.5, dry_level=0.5, wet_level=0.5)  # Add reverb                                            \n  ])                                                                                                               \n                                                                                                                   \n  # Process the audio                                                                                              \n  processed_audio = board.process(audio, sample_rate=sample_rate)                                                  \n                                                                                                                   \n  # Save the processed audio to a new file                                                                         \n  sf.write('processed_song.wav', processed_audio, sample_rate)                                                     \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpydub\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mAudioSegment\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Convert webm file to wav\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msong\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mAudioSegment\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfrom_file\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34moriginal_song.webm\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msong\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mexport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34moriginal_song.wav\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mformat\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mwav\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Load the audio file\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34maudio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msample_rate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msf\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mread\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34moriginal_song.wav\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Create a Pedalboard instance\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPedalboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPitchShift\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msemitones\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Lower the pitch\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mReverb\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mroom_size\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0.5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdry_level\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0.5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwet_level\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0.5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Add reverb\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Process the audio\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprocessed_audio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mboard\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprocess\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34maudio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msample_rate\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msample_rate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Save the processed audio to a new file\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msf\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwrite\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mprocessed_song.wav\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprocessed_audio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msample_rate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "c0a1d45a04b7406683954288d08915b1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "c18416a315554529bbf7f4f4543ecaa3": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "c22ab4bfa43a460088c58b6679d60360": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_2e9f43e734694e76829a9ed2a61439be", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  The video has been successfully downloaded and modified to have a frame rate of 12 fps for the segment from      \n  0:10 to 0:17. The next step is to redraw each frame using ControlNet with random prompts that evoke a stop       \n  motion / hand-drawn animation feeling.                                                                           \n                                                                                                                   \n  Let's start by extracting all frames from the modified video. Then we will process each frame with ControlNet.   \n                                                                                                                   \n
\n", + "text/plain": " \n The video has been successfully downloaded and modified to have a frame rate of 12 fps for the segment from \n 0:10 to 0:17. The next step is to redraw each frame using ControlNet with random prompts that evoke a stop \n motion / hand-drawn animation feeling. \n \n Let's start by extracting all frames from the modified video. Then we will process each frame with ControlNet. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "c31a702d90604293b9494824157c5493": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_77e0222fd2c54dbca7932d57e517601a", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Traceback (most recent call last):                                                                               \n    Cell In[9], line 2                                                                                             \n      from pedalboard import Pedalboard, Reverb, Stretch                                                           \n  ImportError: cannot import name 'Stretch' from 'pedalboard'                                                      \n  (/usr/local/lib/python3.10/dist-packages/pedalboard/__init__.py)                                                 \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mTraceback (most recent call last):\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Cell In[9], line 2\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m from pedalboard import Pedalboard, Reverb, Stretch\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mImportError: cannot import name 'Stretch' from 'pedalboard' \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(/usr/local/lib/python3.10/dist-packages/pedalboard/__init__.py)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "c39c77408c5e4ab99f127a1306f27554": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_ece854c5547443d78f1e8c0d8960ad47", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Great, the necessary packages have been installed. Now, let's proceed with the following steps:                  \n                                                                                                                   \n   1 Download the video from the provided YouTube link.                                                            \n   2 Extract the audio from the video for later use.                                                               \n   3 Cut the video to the desired time range (0:10 to 0:17).                                                       \n   4 Reduce the frame rate of the video to 12 fps.                                                                 \n   5 Save each frame of the video as an image.                                                                     \n   6 Use ControlNet to redraw each image with a random prompt.                                                     \n   7 Combine the redrawn images into a new video.                                                                  \n   8 Add the original audio back to the new video.                                                                 \n                                                                                                                   \n  Let's start with step 1: Downloading the video.                                                                  \n                                                                                                                   \n
\n", + "text/plain": " \n Great, the necessary packages have been installed. Now, let's proceed with the following steps: \n \n \u001b[1;33m 1 \u001b[0mDownload the video from the provided YouTube link. \n \u001b[1;33m 2 \u001b[0mExtract the audio from the video for later use. \n \u001b[1;33m 3 \u001b[0mCut the video to the desired time range (0:10 to 0:17). \n \u001b[1;33m 4 \u001b[0mReduce the frame rate of the video to 12 fps. \n \u001b[1;33m 5 \u001b[0mSave each frame of the video as an image. \n \u001b[1;33m 6 \u001b[0mUse ControlNet to redraw each image with a random prompt. \n \u001b[1;33m 7 \u001b[0mCombine the redrawn images into a new video. \n \u001b[1;33m 8 \u001b[0mAdd the original audio back to the new video. \n \n Let's start with step 1: Downloading the video. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "c72c1bac807b40d297fdba74958df4de": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_fe21edae84cc4778a3ddc2fcaedfbc3d", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Requirement already satisfied: replicate in /usr/local/lib/python3.10/dist-packages (0.8.4)                      \n  Requirement already satisfied: moviepy in /usr/local/lib/python3.10/dist-packages (1.0.3)                        \n  Requirement already satisfied: pysrt in /usr/local/lib/python3.10/dist-packages (1.1.2)                          \n  Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from replicate) (23.1)      \n  Requirement already satisfied: pydantic<2,>1 in /usr/local/lib/python3.10/dist-packages (from replicate)         \n  (1.10.11)                                                                                                        \n  Requirement already satisfied: requests>2 in /usr/local/lib/python3.10/dist-packages (from replicate) (2.27.1)   \n  Requirement already satisfied: decorator<5.0,>=4.0.2 in /usr/local/lib/python3.10/dist-packages (from moviepy)   \n  (4.4.2)                                                                                                          \n  Requirement already satisfied: tqdm<5.0,>=4.11.2 in /usr/local/lib/python3.10/dist-packages (from moviepy)       \n  (4.65.0)                                                                                                         \n  Requirement already satisfied: proglog<=1.0.0 in /usr/local/lib/python3.10/dist-packages (from moviepy)          \n  (0.1.10)                                                                                                         \n  Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.10/dist-packages (from moviepy) (1.22.4)  \n  Requirement already satisfied: imageio<3.0,>=2.5 in /usr/local/lib/python3.10/dist-packages (from moviepy)       \n  (2.25.1)                                                                                                         \n  Requirement already satisfied: imageio-ffmpeg>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from moviepy)   \n  (0.4.8)                                                                                                          \n  Requirement already satisfied: chardet in /usr/local/lib/python3.10/dist-packages (from pysrt) (4.0.0)           \n  Requirement already satisfied: pillow>=8.3.2 in /usr/local/lib/python3.10/dist-packages (from                    \n  imageio<3.0,>=2.5->moviepy) (8.4.0)                                                                              \n  Requirement already satisfied: typing-extensions>=4.2.0 in /usr/local/lib/python3.10/dist-packages (from         \n  pydantic<2,>1->replicate) (4.7.1)                                                                                \n  Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from            \n  requests>2->replicate) (1.26.16)                                                                                 \n  Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from               \n  requests>2->replicate) (2023.5.7)                                                                                \n  Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from        \n  requests>2->replicate) (2.0.12)                                                                                  \n  Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from                     \n  requests>2->replicate) (3.4)                                                                                     \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: replicate in /usr/local/lib/python3.10/dist-packages (0.8.4)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: moviepy in /usr/local/lib/python3.10/dist-packages (1.0.3)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: pysrt in /usr/local/lib/python3.10/dist-packages (1.1.2)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from replicate) (23.1)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: pydantic<2,>1 in /usr/local/lib/python3.10/dist-packages (from replicate) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(1.10.11)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: requests>2 in /usr/local/lib/python3.10/dist-packages (from replicate) (2.27.1)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: decorator<5.0,>=4.0.2 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(4.4.2)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: tqdm<5.0,>=4.11.2 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(4.65.0)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: proglog<=1.0.0 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(0.1.10)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.10/dist-packages (from moviepy) (1.22.4)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: imageio<3.0,>=2.5 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(2.25.1)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: imageio-ffmpeg>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(0.4.8)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: chardet in /usr/local/lib/python3.10/dist-packages (from pysrt) (4.0.0)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: pillow>=8.3.2 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mimageio<3.0,>=2.5->moviepy) (8.4.0)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: typing-extensions>=4.2.0 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mpydantic<2,>1->replicate) (4.7.1)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mrequests>2->replicate) (1.26.16)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mrequests>2->replicate) (2023.5.7)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mrequests>2->replicate) (2.0.12)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mrequests>2->replicate) (3.4)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "c7e4f15aa81a48d9a390beb2ebb24cd3": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "c89ae989cd4549e58606b7d2cd95ece4": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_aae61f21148843148e082f1349b130ae", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  I have successfully hardcoded the subtitles into the video and created a new file named billy_subbed.mp4. Now,   \n  you should be able to play the video with the subtitles displayed at the bottom. Let me know if there is         \n  anything else I can help you with.                                                                               \n                                                                                                                   \n
\n", + "text/plain": " \n I have successfully hardcoded the subtitles into the video and created a new file named \u001b[1;36;40mbilly_subbed.mp4\u001b[0m. Now, \n you should be able to play the video with the subtitles displayed at the bottom. Let me know if there is \n anything else I can help you with. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "c97723ce541246e28c2ec4459cc3151f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "caec7c9c20f848d0b94b4dd0db73892c": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_0d24fe34dd454245ab16fd84734a063d", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Traceback (most recent call last):                                                                               \n    Cell In[9], line 4                                                                                             \n      processed_audio = board.process(audio, sample_rate=sample_rate)                                              \n  NameError: name 'audio' is not defined                                                                           \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mTraceback (most recent call last):\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Cell In[9], line 4\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m processed_audio = board.process(audio, sample_rate=sample_rate)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mNameError: name 'audio' is not defined\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "cc1a30ae29f5499d8156470700faae6c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "cc23e29c55ac41fa9bfbb35230fb67e7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "cf53e6745eb14d44a6ce84d8f1efb3e9": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_9d35e8077b634453a9da6c9bdf55c104", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  import soundfile as sf                                                                                           \n  from pedalboard import Pedalboard, Reverb, Stretch                                                               \n                                                                                                                   \n  # Load the audio file                                                                                            \n  audio, sample_rate = sf.read('original_song.webm')                                                               \n                                                                                                                   \n  # Create a Pedalboard instance                                                                                   \n  board = Pedalboard([                                                                                             \n      Stretch(factor=0.8),  # Slow down by 20%                                                                     \n      Reverb(room_size=0.5, dry_level=0.5, wet_level=0.5)  # Add reverb                                            \n  ], sample_rate=sample_rate)                                                                                      \n                                                                                                                   \n  # Process the audio                                                                                              \n  processed_audio = board(audio)                                                                                   \n                                                                                                                   \n  # Save the processed audio to a new file                                                                         \n  sf.write('processed_song.wav', processed_audio, sample_rate)                                                     \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msoundfile\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mas\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msf\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpedalboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPedalboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mReverb\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mStretch\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Load the audio file\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34maudio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msample_rate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msf\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mread\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34moriginal_song.webm\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Create a Pedalboard instance\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPedalboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mStretch\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfactor\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0.8\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Slow down by 20%\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mReverb\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mroom_size\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0.5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdry_level\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0.5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwet_level\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0.5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Add reverb\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msample_rate\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msample_rate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Process the audio\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprocessed_audio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34maudio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Save the processed audio to a new file\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msf\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwrite\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mprocessed_song.wav\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprocessed_audio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msample_rate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "d007873a1ec540b9b73cba17251362b0": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "d045b96ac66249c6af3b39562216c469": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_e32b943cf46c49b49a53275b33b06072", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Collecting python-docx                                                                                           \n    Downloading python-docx-0.8.11.tar.gz (5.6 MB)                                                                 \n       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/5.6 MB ? eta -:--:--                                           \n  ━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/5.6 MB 50.5 MB/s eta 0:00:01                                        \n  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━ 4.2/5.6 MB 69.5 MB/s eta 0:00:01                                        \n  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 5.6/5.6 MB 67.5 MB/s eta 0:00:01                                        \n  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.6/5.6 MB 46.8 MB/s eta 0:00:00                                        \n    Preparing metadata (setup.py) ... done                                                                         \n  Requirement already satisfied: lxml>=2.3.2 in /usr/local/lib/python3.10/dist-packages (from python-docx)         \n  (4.9.3)                                                                                                          \n  Building wheels for collected packages: python-docx                                                              \n    Building wheel for python-docx (setup.py) ... done                                                             \n    Created wheel for python-docx: filename=python_docx-0.8.11-py3-none-any.whl size=184491                        \n  sha256=6df55c1b8dfc526237f9d47c2bee330c560a1087b2525c78bb00a4a383104b5d                                          \n    Stored in directory: /root/.cache/pip/wheels/80/27/06/837436d4c3bd989b957a91679966f207bfd71d358d63a8194d       \n  Successfully built python-docx                                                                                   \n  Installing collected packages: python-docx                                                                       \n  Successfully installed python-docx-0.8.11                                                                        \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mCollecting python-docx\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Downloading python-docx-0.8.11.tar.gz (5.6 MB)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/5.6 MB ? eta -:--:-- \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/5.6 MB 50.5 MB/s eta 0:00:01 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━ 4.2/5.6 MB 69.5 MB/s eta 0:00:01 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 5.6/5.6 MB 67.5 MB/s eta 0:00:01 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.6/5.6 MB 46.8 MB/s eta 0:00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Preparing metadata (setup.py) ... done\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: lxml>=2.3.2 in /usr/local/lib/python3.10/dist-packages (from python-docx) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(4.9.3)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mBuilding wheels for collected packages: python-docx\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Building wheel for python-docx (setup.py) ... done\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Created wheel for python-docx: filename=python_docx-0.8.11-py3-none-any.whl size=184491 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55msha256=6df55c1b8dfc526237f9d47c2bee330c560a1087b2525c78bb00a4a383104b5d\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Stored in directory: /root/.cache/pip/wheels/80/27/06/837436d4c3bd989b957a91679966f207bfd71d358d63a8194d\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mSuccessfully built python-docx\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mInstalling collected packages: python-docx\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mSuccessfully installed python-docx-0.8.11\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "d0aafd6be71f4f548e2ef6df1fb0dde1": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_b21732a379674ae7860fca91e4741739", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  !pip install pedalboard                                                                                          \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;150;0;80;48;2;30;0;16m!\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34minstall\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpedalboard\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "d6a7ae990c474869934f5862a89dd274": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "d70ab8f629f446c19c41c3293b905d83": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "d77d9d8269874d54b6762f634e916206": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_9d1e55aa8c544a3aa780fa2230b82c21", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Output truncated. Showing the last 7000 characters:                                                              \n                                                                                                                   \n  8 | 1288/1463 [02:39<00:16, 10.66it/s, now=None]t:  88%|########8 | 1290/1463 [02:39<00:18,  9.20it/s,           \n  now=None]t:  88%|########8 | 1292/1463 [02:40<00:16, 10.52it/s, now=None]t:  88%|########8 | 1294/1463           \n  [02:40<00:18,  9.10it/s, now=None]t:  89%|########8 | 1296/1463 [02:40<00:16, 10.19it/s, now=None]t:             \n  89%|########8 | 1298/1463 [02:40<00:15, 10.70it/s, now=None]t:  89%|########8 | 1300/1463 [02:40<00:17,          \n  9.37it/s, now=None]t:  89%|########8 | 1302/1463 [02:41<00:15, 10.43it/s, now=None]t:  89%|########9 |           \n  1304/1463 [02:41<00:16,  9.66it/s, now=None]t:  89%|########9 | 1306/1463 [02:41<00:15, 10.43it/s, now=None]t:   \n  89%|########9 | 1308/1463 [02:41<00:16,  9.48it/s, now=None]t:  90%|########9 | 1310/1463 [02:41<00:15,          \n  9.96it/s, now=None]t:  90%|########9 | 1312/1463 [02:42<00:15,  9.68it/s, now=None]t:  90%|########9 |           \n  1315/1463 [02:42<00:13, 10.98it/s, now=None]t:  90%|######### | 1317/1463 [02:42<00:12, 11.56it/s, now=None]t:   \n  90%|######### | 1319/1463 [02:42<00:15,  9.50it/s, now=None]t:  90%|######### | 1321/1463 [02:43<00:15,          \n  9.40it/s, now=None]t:  90%|######### | 1322/1463 [02:43<00:14,  9.42it/s, now=None]t:  90%|######### |           \n  1324/1463 [02:43<00:15,  9.11it/s, now=None]t:  91%|######### | 1325/1463 [02:43<00:14,  9.25it/s, now=None]t:   \n  91%|######### | 1327/1463 [02:43<00:12, 11.31it/s, now=None]t:  91%|######### | 1329/1463 [02:43<00:14,          \n  9.57it/s, now=None]t:  91%|######### | 1331/1463 [02:44<00:15,  8.62it/s, now=None]t:  91%|#########1|           \n  1333/1463 [02:44<00:12, 10.34it/s, now=None]t:  91%|#########1| 1335/1463 [02:44<00:13,  9.21it/s, now=None]t:   \n  91%|#########1| 1337/1463 [02:44<00:12, 10.30it/s, now=None]t:  92%|#########1| 1339/1463 [02:44<00:13,          \n  9.06it/s, now=None]t:  92%|#########1| 1341/1463 [02:45<00:12, 10.11it/s, now=None]t:  92%|#########1|           \n  1343/1463 [02:45<00:13,  9.08it/s, now=None]t:  92%|#########1| 1345/1463 [02:45<00:12,  9.61it/s, now=None]t:   \n  92%|#########2| 1347/1463 [02:45<00:10, 11.20it/s, now=None]t:  92%|#########2| 1349/1463 [02:45<00:11,          \n  9.58it/s, now=None]t:  92%|#########2| 1351/1463 [02:46<00:11,  9.57it/s, now=None]t:  92%|#########2|           \n  1353/1463 [02:46<00:10, 10.70it/s, now=None]t:  93%|#########2| 1355/1463 [02:46<00:10, 10.17it/s, now=None]t:   \n  93%|#########2| 1357/1463 [02:46<00:10, 10.28it/s, now=None]t:  93%|#########2| 1359/1463 [02:46<00:09,          \n  10.94it/s, now=None]t:  93%|#########3| 1361/1463 [02:47<00:12,  8.09it/s, now=None]t:  93%|#########3|          \n  1363/1463 [02:47<00:11,  8.84it/s, now=None]t:  93%|#########3| 1365/1463 [02:47<00:12,  7.58it/s, now=None]t:   \n  93%|#########3| 1367/1463 [02:48<00:14,  6.47it/s, now=None]t:  94%|#########3| 1369/1463 [02:48<00:12,          \n  7.48it/s, now=None]t:  94%|#########3| 1370/1463 [02:48<00:12,  7.29it/s, now=None]t:  94%|#########3|           \n  1371/1463 [02:48<00:15,  5.85it/s, now=None]t:  94%|#########3| 1372/1463 [02:48<00:14,  6.33it/s, now=None]t:   \n  94%|#########3| 1373/1463 [02:49<00:14,  6.11it/s, now=None]t:  94%|#########3| 1374/1463 [02:49<00:14,          \n  6.17it/s, now=None]t:  94%|#########3| 1375/1463 [02:49<00:15,  5.59it/s, now=None]t:  94%|#########4|           \n  1376/1463 [02:49<00:13,  6.28it/s, now=None]t:  94%|#########4| 1377/1463 [02:49<00:12,  6.97it/s, now=None]t:   \n  94%|#########4| 1378/1463 [02:49<00:14,  6.04it/s, now=None]t:  94%|#########4| 1379/1463 [02:50<00:16,          \n  5.17it/s, now=None]t:  94%|#########4| 1380/1463 [02:50<00:15,  5.41it/s, now=None]t:  94%|#########4|           \n  1382/1463 [02:50<00:11,  7.30it/s, now=None]t:  95%|#########4| 1383/1463 [02:50<00:13,  5.78it/s, now=None]t:   \n  95%|#########4| 1384/1463 [02:50<00:13,  5.78it/s, now=None]t:  95%|#########4| 1386/1463 [02:51<00:12,          \n  6.03it/s, now=None]t:  95%|#########4| 1387/1463 [02:51<00:11,  6.52it/s, now=None]t:  95%|#########4|           \n  1388/1463 [02:51<00:10,  7.11it/s, now=None]t:  95%|#########4| 1389/1463 [02:51<00:10,  7.06it/s, now=None]t:   \n  95%|#########5| 1390/1463 [02:51<00:13,  5.49it/s, now=None]t:  95%|#########5| 1391/1463 [02:52<00:12,          \n  5.90it/s, now=None]t:  95%|#########5| 1393/1463 [02:52<00:08,  8.30it/s, now=None]t:  95%|#########5|           \n  1394/1463 [02:52<00:15,  4.56it/s, now=None]t:  95%|#########5| 1396/1463 [02:52<00:11,  5.99it/s, now=None]t:   \n  95%|#########5| 1397/1463 [02:53<00:11,  5.53it/s, now=None]t:  96%|#########5| 1398/1463 [02:53<00:11,          \n  5.87it/s, now=None]t:  96%|#########5| 1400/1463 [02:53<00:11,  5.35it/s, now=None]t:  96%|#########5|           \n  1401/1463 [02:53<00:10,  5.92it/s, now=None]t:  96%|#########5| 1403/1463 [02:54<00:10,  5.85it/s, now=None]t:   \n  96%|#########6| 1405/1463 [02:54<00:07,  7.74it/s, now=None]t:  96%|#########6| 1407/1463 [02:54<00:09,          \n  6.09it/s, now=None]t:  96%|#########6| 1409/1463 [02:54<00:07,  6.86it/s, now=None]t:  96%|#########6|           \n  1410/1463 [02:55<00:09,  5.53it/s, now=None]t:  97%|#########6| 1412/1463 [02:55<00:07,  6.96it/s, now=None]t:   \n  97%|#########6| 1413/1463 [02:55<00:07,  6.90it/s, now=None]t:  97%|#########6| 1414/1463 [02:55<00:09,          \n  5.34it/s, now=None]t:  97%|#########6| 1416/1463 [02:56<00:08,  5.72it/s, now=None]t:  97%|#########6|           \n  1417/1463 [02:56<00:07,  6.29it/s, now=None]t:  97%|#########6| 1419/1463 [02:56<00:05,  7.89it/s, now=None]t:   \n  97%|#########7| 1420/1463 [02:56<00:07,  6.11it/s, now=None]t:  97%|#########7| 1422/1463 [02:57<00:06,          \n  6.33it/s, now=None]t:  97%|#########7| 1423/1463 [02:57<00:05,  6.70it/s, now=None]t:  97%|#########7|           \n  1424/1463 [02:57<00:05,  7.00it/s, now=None]t:  97%|#########7| 1425/1463 [02:57<00:05,  7.39it/s, now=None]t:   \n  97%|#########7| 1426/1463 [02:57<00:06,  6.13it/s, now=None]t:  98%|#########7| 1428/1463 [02:57<00:04,          \n  7.72it/s, now=None]t:  98%|#########7| 1429/1463 [02:57<00:04,  7.34it/s, now=None]t:  98%|#########7|           \n  1430/1463 [02:58<00:05,  5.94it/s, now=None]t:  98%|#########7| 1432/1463 [02:58<00:04,  7.63it/s, now=None]t:   \n  98%|#########7| 1433/1463 [02:58<00:03,  7.50it/s, now=None]t:  98%|#########8| 1434/1463 [02:58<00:04,          \n  6.56it/s, now=None]t:  98%|#########8| 1436/1463 [02:58<00:03,  7.82it/s, now=None]t:  98%|#########8|           \n  1438/1463 [02:59<00:02,  9.68it/s, now=None]t:  98%|#########8| 1440/1463 [02:59<00:02,  8.59it/s, now=None]t:   \n  99%|#########8| 1442/1463 [02:59<00:02, 10.36it/s, now=None]t:  99%|#########8| 1444/1463 [02:59<00:02,          \n  9.01it/s, now=None]t:  99%|#########8| 1446/1463 [02:59<00:01,  9.91it/s, now=None]t:  99%|#########8|           \n  1448/1463 [03:00<00:01,  9.94it/s, now=None]t:  99%|#########9| 1450/1463 [03:00<00:01, 10.22it/s, now=None]t:   \n  99%|#########9| 1452/1463 [03:00<00:01, 10.75it/s, now=None]t:  99%|#########9| 1454/1463 [03:00<00:00,          \n  10.87it/s, now=None]t: 100%|#########9| 1456/1463 [03:00<00:00, 10.56it/s, now=None]t: 100%|#########9|          \n  1458/1463 [03:00<00:00, 11.16it/s, now=None]t: 100%|#########9| 1460/1463 [03:01<00:00, 10.43it/s, now=None]t:   \n  100%|#########9| 1462/1463 [03:01<00:00, 11.59it/s, now=None]                                                    \n  Moviepy - Done !                                                                                                 \n  Moviepy - video ready billy_subbed.mp4                                                                           \n  None                                                                                                             \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mOutput truncated. Showing the last 7000 characters:\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m8 | 1288/1463 [02:39<00:16, 10.66it/s, now=None]t: 88%|########8 | 1290/1463 [02:39<00:18, 9.20it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 88%|########8 | 1292/1463 [02:40<00:16, 10.52it/s, now=None]t: 88%|########8 | 1294/1463 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[02:40<00:18, 9.10it/s, now=None]t: 89%|########8 | 1296/1463 [02:40<00:16, 10.19it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m89%|########8 | 1298/1463 [02:40<00:15, 10.70it/s, now=None]t: 89%|########8 | 1300/1463 [02:40<00:17, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m9.37it/s, now=None]t: 89%|########8 | 1302/1463 [02:41<00:15, 10.43it/s, now=None]t: 89%|########9 | \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1304/1463 [02:41<00:16, 9.66it/s, now=None]t: 89%|########9 | 1306/1463 [02:41<00:15, 10.43it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m89%|########9 | 1308/1463 [02:41<00:16, 9.48it/s, now=None]t: 90%|########9 | 1310/1463 [02:41<00:15, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m9.96it/s, now=None]t: 90%|########9 | 1312/1463 [02:42<00:15, 9.68it/s, now=None]t: 90%|########9 | \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1315/1463 [02:42<00:13, 10.98it/s, now=None]t: 90%|######### | 1317/1463 [02:42<00:12, 11.56it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m90%|######### | 1319/1463 [02:42<00:15, 9.50it/s, now=None]t: 90%|######### | 1321/1463 [02:43<00:15, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m9.40it/s, now=None]t: 90%|######### | 1322/1463 [02:43<00:14, 9.42it/s, now=None]t: 90%|######### | \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1324/1463 [02:43<00:15, 9.11it/s, now=None]t: 91%|######### | 1325/1463 [02:43<00:14, 9.25it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m91%|######### | 1327/1463 [02:43<00:12, 11.31it/s, now=None]t: 91%|######### | 1329/1463 [02:43<00:14, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m9.57it/s, now=None]t: 91%|######### | 1331/1463 [02:44<00:15, 8.62it/s, now=None]t: 91%|#########1| \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1333/1463 [02:44<00:12, 10.34it/s, now=None]t: 91%|#########1| 1335/1463 [02:44<00:13, 9.21it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m91%|#########1| 1337/1463 [02:44<00:12, 10.30it/s, now=None]t: 92%|#########1| 1339/1463 [02:44<00:13, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m9.06it/s, now=None]t: 92%|#########1| 1341/1463 [02:45<00:12, 10.11it/s, now=None]t: 92%|#########1| \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1343/1463 [02:45<00:13, 9.08it/s, now=None]t: 92%|#########1| 1345/1463 [02:45<00:12, 9.61it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m92%|#########2| 1347/1463 [02:45<00:10, 11.20it/s, now=None]t: 92%|#########2| 1349/1463 [02:45<00:11, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m9.58it/s, now=None]t: 92%|#########2| 1351/1463 [02:46<00:11, 9.57it/s, now=None]t: 92%|#########2| \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1353/1463 [02:46<00:10, 10.70it/s, now=None]t: 93%|#########2| 1355/1463 [02:46<00:10, 10.17it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m93%|#########2| 1357/1463 [02:46<00:10, 10.28it/s, now=None]t: 93%|#########2| 1359/1463 [02:46<00:09, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m10.94it/s, now=None]t: 93%|#########3| 1361/1463 [02:47<00:12, 8.09it/s, now=None]t: 93%|#########3| \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1363/1463 [02:47<00:11, 8.84it/s, now=None]t: 93%|#########3| 1365/1463 [02:47<00:12, 7.58it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m93%|#########3| 1367/1463 [02:48<00:14, 6.47it/s, now=None]t: 94%|#########3| 1369/1463 [02:48<00:12, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m7.48it/s, now=None]t: 94%|#########3| 1370/1463 [02:48<00:12, 7.29it/s, now=None]t: 94%|#########3| \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1371/1463 [02:48<00:15, 5.85it/s, now=None]t: 94%|#########3| 1372/1463 [02:48<00:14, 6.33it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m94%|#########3| 1373/1463 [02:49<00:14, 6.11it/s, now=None]t: 94%|#########3| 1374/1463 [02:49<00:14, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m6.17it/s, now=None]t: 94%|#########3| 1375/1463 [02:49<00:15, 5.59it/s, now=None]t: 94%|#########4| \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1376/1463 [02:49<00:13, 6.28it/s, now=None]t: 94%|#########4| 1377/1463 [02:49<00:12, 6.97it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m94%|#########4| 1378/1463 [02:49<00:14, 6.04it/s, now=None]t: 94%|#########4| 1379/1463 [02:50<00:16, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m5.17it/s, now=None]t: 94%|#########4| 1380/1463 [02:50<00:15, 5.41it/s, now=None]t: 94%|#########4| \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1382/1463 [02:50<00:11, 7.30it/s, now=None]t: 95%|#########4| 1383/1463 [02:50<00:13, 5.78it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m95%|#########4| 1384/1463 [02:50<00:13, 5.78it/s, now=None]t: 95%|#########4| 1386/1463 [02:51<00:12, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m6.03it/s, now=None]t: 95%|#########4| 1387/1463 [02:51<00:11, 6.52it/s, now=None]t: 95%|#########4| \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1388/1463 [02:51<00:10, 7.11it/s, now=None]t: 95%|#########4| 1389/1463 [02:51<00:10, 7.06it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m95%|#########5| 1390/1463 [02:51<00:13, 5.49it/s, now=None]t: 95%|#########5| 1391/1463 [02:52<00:12, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m5.90it/s, now=None]t: 95%|#########5| 1393/1463 [02:52<00:08, 8.30it/s, now=None]t: 95%|#########5| \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1394/1463 [02:52<00:15, 4.56it/s, now=None]t: 95%|#########5| 1396/1463 [02:52<00:11, 5.99it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m95%|#########5| 1397/1463 [02:53<00:11, 5.53it/s, now=None]t: 96%|#########5| 1398/1463 [02:53<00:11, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m5.87it/s, now=None]t: 96%|#########5| 1400/1463 [02:53<00:11, 5.35it/s, now=None]t: 96%|#########5| \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1401/1463 [02:53<00:10, 5.92it/s, now=None]t: 96%|#########5| 1403/1463 [02:54<00:10, 5.85it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m96%|#########6| 1405/1463 [02:54<00:07, 7.74it/s, now=None]t: 96%|#########6| 1407/1463 [02:54<00:09, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m6.09it/s, now=None]t: 96%|#########6| 1409/1463 [02:54<00:07, 6.86it/s, now=None]t: 96%|#########6| \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1410/1463 [02:55<00:09, 5.53it/s, now=None]t: 97%|#########6| 1412/1463 [02:55<00:07, 6.96it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m97%|#########6| 1413/1463 [02:55<00:07, 6.90it/s, now=None]t: 97%|#########6| 1414/1463 [02:55<00:09, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m5.34it/s, now=None]t: 97%|#########6| 1416/1463 [02:56<00:08, 5.72it/s, now=None]t: 97%|#########6| \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1417/1463 [02:56<00:07, 6.29it/s, now=None]t: 97%|#########6| 1419/1463 [02:56<00:05, 7.89it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m97%|#########7| 1420/1463 [02:56<00:07, 6.11it/s, now=None]t: 97%|#########7| 1422/1463 [02:57<00:06, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m6.33it/s, now=None]t: 97%|#########7| 1423/1463 [02:57<00:05, 6.70it/s, now=None]t: 97%|#########7| \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1424/1463 [02:57<00:05, 7.00it/s, now=None]t: 97%|#########7| 1425/1463 [02:57<00:05, 7.39it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m97%|#########7| 1426/1463 [02:57<00:06, 6.13it/s, now=None]t: 98%|#########7| 1428/1463 [02:57<00:04, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m7.72it/s, now=None]t: 98%|#########7| 1429/1463 [02:57<00:04, 7.34it/s, now=None]t: 98%|#########7| \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1430/1463 [02:58<00:05, 5.94it/s, now=None]t: 98%|#########7| 1432/1463 [02:58<00:04, 7.63it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m98%|#########7| 1433/1463 [02:58<00:03, 7.50it/s, now=None]t: 98%|#########8| 1434/1463 [02:58<00:04, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m6.56it/s, now=None]t: 98%|#########8| 1436/1463 [02:58<00:03, 7.82it/s, now=None]t: 98%|#########8| \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1438/1463 [02:59<00:02, 9.68it/s, now=None]t: 98%|#########8| 1440/1463 [02:59<00:02, 8.59it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m99%|#########8| 1442/1463 [02:59<00:02, 10.36it/s, now=None]t: 99%|#########8| 1444/1463 [02:59<00:02, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m9.01it/s, now=None]t: 99%|#########8| 1446/1463 [02:59<00:01, 9.91it/s, now=None]t: 99%|#########8| \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1448/1463 [03:00<00:01, 9.94it/s, now=None]t: 99%|#########9| 1450/1463 [03:00<00:01, 10.22it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m99%|#########9| 1452/1463 [03:00<00:01, 10.75it/s, now=None]t: 99%|#########9| 1454/1463 [03:00<00:00, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m10.87it/s, now=None]t: 100%|#########9| 1456/1463 [03:00<00:00, 10.56it/s, now=None]t: 100%|#########9| \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1458/1463 [03:00<00:00, 11.16it/s, now=None]t: 100%|#########9| 1460/1463 [03:01<00:00, 10.43it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m100%|#########9| 1462/1463 [03:01<00:00, 11.59it/s, now=None] \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mMoviepy - Done !\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mMoviepy - video ready billy_subbed.mp4\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mNone\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "d7e431b748474de0a69eee41e44d6eb7": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_e343d276aac5477bb4f9917eb5d8d8db", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  import os                                                                                                        \n                                                                                                                   \n  # List all files in the current directory                                                                        \n  os.listdir()                                                                                                     \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mos\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# List all files in the current directory\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mos\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mlistdir\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "d849c6a21c8b41a8bbb0abc8a95997c5": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "d911c9e7aedd42519ee06ef45a0224d2": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_e660cf408ab34428a4f579f4b3770f5e", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  video = VideoFileClip('original_video.mp4.webm')                                                                 \n                                                                                                                   \n  # Extract the segment from 0:10 to 0:17                                                                          \n  video = video.subclip(10, 17)                                                                                    \n                                                                                                                   \n  # Reduce the frame rate to 12 fps                                                                                \n  video = video.set_duration(7).set_fps(12)                                                                        \n                                                                                                                   \n  # Save the modified video                                                                                        \n  video.write_videofile('modified_video.mp4', codec='libx264')                                                     \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mVideoFileClip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34moriginal_video.mp4.webm\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Extract the segment from 0:10 to 0:17\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msubclip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m10\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m17\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Reduce the frame rate to 12 fps\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mset_duration\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m7\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mset_fps\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m12\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Save the modified video\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwrite_videofile\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mmodified_video.mp4\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcodec\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mlibx264\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "daba6cb342374830be9830b57d96a599": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_41707e7b17314b17a249388903e0ce71", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  !pip install yt-dlp moviepy replicate                                                                            \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;150;0;80;48;2;30;0;16m!\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34minstall\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34myt\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdlp\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmoviepy\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mreplicate\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "dbb96798015249abbad237f9086ac8ff": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_0b001f96904d4c91bf26ad72420e9cca", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  import replicate                                                                                                 \n  import random                                                                                                    \n                                                                                                                   \n  # Define the prompts                                                                                             \n  prompts = ['embroidery', 'pencil art', 'claymation', 'yarn on a table']                                          \n                                                                                                                   \n  # Create a directory to store the redrawn frames                                                                 \n  os.makedirs('redrawn_frames', exist_ok=True)                                                                     \n                                                                                                                   \n  # Redraw each frame with ControlNet                                                                              \n  for i in range(len(os.listdir('frames'))):                                                                       \n      # Open the frame                                                                                             \n      with open(f'frames/frame_{i}.png', 'rb') as f:                                                               \n          # Run ControlNet on the frame                                                                            \n          output = replicate.run(                                                                                  \n              'jagilley/controlnet-canny:aff48af9c68d162388d230a2ab003f68d2638d88307bdaf1c2f1ac95079c9613',        \n              input={'image': f, 'prompt': random.choice(prompts)}                                                 \n          )                                                                                                        \n                                                                                                                   \n          # Download the redrawn frame                                                                             \n          os.system(f'wget {output[1]} -O redrawn_frames/frame_{i}.png')                                           \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mreplicate\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrandom\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Define the prompts\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprompts\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34membroidery\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mpencil art\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mclaymation\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34myarn on a table\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Create a directory to store the redrawn frames\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mos\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmakedirs\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mredrawn_frames\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mexist_ok\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mTrue\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Redraw each frame with ControlNet\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrange\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mlen\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mos\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mlistdir\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mframes\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Open the frame\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mwith\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mopen\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mf\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mframes/frame_\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m.png\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mrb\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mas\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mf\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Run ControlNet on the frame\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34moutput\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mreplicate\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrun\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mjagilley/controlnet-canny:aff48af9c68d162388d230a2ab003f68d2638d88307bdaf1c2f1ac95079c9613\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34minput\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m{\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mimage\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mf\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mprompt\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrandom\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mchoice\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprompts\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m}\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Download the redrawn frame\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mos\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msystem\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mf\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mwget \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34moutput\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m1\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m -O redrawn_frames/frame_\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m.png\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "dbee4b5e838b4cd6bf8da3949c563daa": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "dcfeecca01c345f58eebb9b6209cb5ad": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "dde784ca98904ba49ba23dda2100076a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "dfae26728db147cb98311156e758816b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "dff5f7eed46245c6ba0606360289f704": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_151cf723f20d41c392149082e4b987c6", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  It seems like the video file original_video.mp4 could not be found. This could be because the video was          \n  downloaded with a different filename. Let's check the current directory to see if the video file is present and  \n  what its exact filename is.                                                                                      \n                                                                                                                   \n
\n", + "text/plain": " \n It seems like the video file \u001b[1;36;40moriginal_video.mp4\u001b[0m could not be found. This could be because the video was \n downloaded with a different filename. Let's check the current directory to see if the video file is present and \n what its exact filename is. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "e0ca1b4596b44f4285dcd52000aa62c0": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_1356d617a0c74b9fb9dc4f94d78f62aa", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  from pedalboard import Pedalboard, Reverb, PitchShift                                                            \n                                                                                                                   \n  # Create a Pedalboard instance                                                                                   \n  board = Pedalboard([                                                                                             \n      PitchShift(semitones=-5),  # Lower the pitch                                                                 \n      Reverb(room_size=0.5, dry_level=0.5, wet_level=0.5)  # Add reverb                                            \n  ], sample_rate=sample_rate)                                                                                      \n                                                                                                                   \n  # Process the audio                                                                                              \n  processed_audio = board(audio)                                                                                   \n                                                                                                                   \n  # Save the processed audio to a new file                                                                         \n  sf.write('processed_song.wav', processed_audio, sample_rate)                                                     \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpedalboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPedalboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mReverb\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPitchShift\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Create a Pedalboard instance\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPedalboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPitchShift\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msemitones\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Lower the pitch\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mReverb\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mroom_size\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0.5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdry_level\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0.5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwet_level\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0.5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Add reverb\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msample_rate\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msample_rate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Process the audio\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprocessed_audio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34maudio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Save the processed audio to a new file\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msf\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwrite\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mprocessed_song.wav\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprocessed_audio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msample_rate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "e280512ec6404a2e9849072c1ac4a74a": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_626af5cf397440b2baec64ed98ea5c3f", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Output truncated. Showing the last 2000 characters. Adjust via `interpreter.max_output_chars`.                   \n                                                                                                                   \n    2.75MiB/s ETA 00:00 (frag 42/43) 101.3% of ~  44.85MiB at    2.99MiB/s ETA 00:00 (frag 42/43) 100.0% of ~      \n  45.44MiB at    2.75MiB/s ETA 00:00 (frag 43/43) 102.3% of ~  44.41MiB at   30.40KiB/s ETA -1:59:26 (frag 43/43)  \n  102.3% of ~  44.41MiB at   59.29KiB/s ETA -1:59:43 (frag 43/43) 102.3% of ~  44.41MiB at  105.76KiB/s ETA        \n  -1:59:50 (frag 43/43) 102.4% of ~  44.41MiB at  170.58KiB/s ETA -1:59:54 (frag 43/43) 102.4% of ~  44.41MiB at   \n  297.14KiB/s ETA -1:59:57 (frag 43/43) 102.5% of ~  44.41MiB at  521.75KiB/s ETA -1:59:58 (frag 43/43) 102.6% of  \n  ~  44.41MiB at  912.53KiB/s ETA -1:59:59 (frag 43/43) 102.9% of ~  44.41MiB at    1.60MiB/s ETA 00:00 (frag      \n  43/43)    103.3% of ~  44.41MiB at    2.49MiB/s ETA 00:00 (frag 43/43) 102.3% of ~  44.82MiB at    2.28MiB/s     \n  ETA 00:00 (frag 44/43) 100% of   45.87MiB in 00:00:09 at 4.83MiB/s                                               \n   Destination: original_video.mp4.f251.webm                                                                       \n     0.0% of    3.80MiB at   72.52KiB/s ETA 00:53   0.1% of    3.80MiB at  109.40KiB/s ETA 00:35   0.2% of         \n  3.80MiB at  169.45KiB/s ETA 00:22   0.4% of    3.80MiB at  272.40KiB/s ETA 00:14   0.8% of    3.80MiB at         \n  450.28KiB/s ETA 00:08   1.6% of    3.80MiB at  750.69KiB/s ETA 00:05   3.3% of    3.80MiB at    1.22MiB/s ETA    \n  00:03   6.6% of    3.80MiB at    2.08MiB/s ETA 00:01  13.1% of    3.80MiB at    3.59MiB/s ETA 00:00  26.3% of    \n  3.80MiB at    6.15MiB/s ETA 00:00  52.7% of    3.80MiB at   10.69MiB/s ETA 00:00 100.0% of    3.80MiB at         \n  16.74MiB/s ETA 00:00 100% of    3.80MiB in 00:00:00 at 14.53MiB/s                                                \n  [Merger] Merging formats into \"original_video.mp4.webm\"                                                          \n  Deleting original file original_video.mp4.f251.webm (pass -k to keep)                                            \n  Deleting original file original_video.mp4.f616.mp4 (pass -k to keep)                                             \n  0                                                                                                                \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mOutput truncated. Showing the last 2000 characters. Adjust via `interpreter.max_output_chars`.\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 2.75MiB/s ETA 00:00 (frag 42/43)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 101.3% of ~ 44.85MiB at 2.99MiB/s ETA 00:00 (frag 42/43)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 100.0% of ~ \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m45.44MiB at 2.75MiB/s ETA 00:00 (frag 43/43)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 102.3% of ~ 44.41MiB at 30.40KiB/s ETA -1:59:26 (frag 43/43)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m102.3% of ~ 44.41MiB at 59.29KiB/s ETA -1:59:43 (frag 43/43)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 102.3% of ~ 44.41MiB at 105.76KiB/s ETA \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m-1:59:50 (frag 43/43)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 102.4% of ~ 44.41MiB at 170.58KiB/s ETA -1:59:54 (frag 43/43)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 102.4% of ~ 44.41MiB at \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m297.14KiB/s ETA -1:59:57 (frag 43/43)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 102.5% of ~ 44.41MiB at 521.75KiB/s ETA -1:59:58 (frag 43/43)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 102.6% of\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m~ 44.41MiB at 912.53KiB/s ETA -1:59:59 (frag 43/43)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 102.9% of ~ 44.41MiB at 1.60MiB/s ETA 00:00 (frag \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m43/43) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 103.3% of ~ 44.41MiB at 2.49MiB/s ETA 00:00 (frag 43/43)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 102.3% of ~ 44.82MiB at 2.28MiB/s \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mETA 00:00 (frag 44/43)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 100% of 45.87MiB in 00:00:09 at 4.83MiB/s \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Destination: original_video.mp4.f251.webm\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 0.0% of 3.80MiB at 72.52KiB/s ETA 00:53\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 0.1% of 3.80MiB at 109.40KiB/s ETA 00:35\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 0.2% of \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m3.80MiB at 169.45KiB/s ETA 00:22\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 0.4% of 3.80MiB at 272.40KiB/s ETA 00:14\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 0.8% of 3.80MiB at \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m450.28KiB/s ETA 00:08\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 1.6% of 3.80MiB at 750.69KiB/s ETA 00:05\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 3.3% of 3.80MiB at 1.22MiB/s ETA \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m00:03\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 6.6% of 3.80MiB at 2.08MiB/s ETA 00:01\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 13.1% of 3.80MiB at 3.59MiB/s ETA 00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 26.3% of \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m3.80MiB at 6.15MiB/s ETA 00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 52.7% of 3.80MiB at 10.69MiB/s ETA 00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 100.0% of 3.80MiB at \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m16.74MiB/s ETA 00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 100% of 3.80MiB in 00:00:00 at 14.53MiB/s \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[Merger] Merging formats into \"original_video.mp4.webm\"\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mDeleting original file original_video.mp4.f251.webm (pass -k to keep)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mDeleting original file original_video.mp4.f616.mp4 (pass -k to keep)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m0\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "e32b943cf46c49b49a53275b33b06072": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "e343d276aac5477bb4f9917eb5d8d8db": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "e38fcb7d81394b1c8c1356f9d272511e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "e6247bda53784a498401796d47b5cd3c": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_40af2b00dea44c7a93604188fa913f49", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Sure, to achieve this, we will need the following steps:                                                         \n                                                                                                                   \n   1 List all the .docx files in the 'documents' folder.                                                           \n   2 Open each .docx file and search for the term 'Machine Learning' (regardless of the case).                     \n   3 Replace 'Machine Learning' with 'AI'.                                                                         \n   4 Save the changes in each respective file.                                                                     \n                                                                                                                   \n  We would need to use the os and python-docx modules for this task. However, you might need to install the        \n  python-docx module, should it not be already installed. Let's proceed with the operation.                        \n                                                                                                                   \n  First, I will write a small piece of code to list all .docx files in the directory. Let's make sure we have the  \n  right files.                                                                                                     \n                                                                                                                   \n
\n", + "text/plain": " \n Sure, to achieve this, we will need the following steps: \n \n \u001b[1;33m 1 \u001b[0mList all the .docx files in the 'documents' folder. \n \u001b[1;33m 2 \u001b[0mOpen each .docx file and search for the term 'Machine Learning' (regardless of the case). \n \u001b[1;33m 3 \u001b[0mReplace 'Machine Learning' with 'AI'. \n \u001b[1;33m 4 \u001b[0mSave the changes in each respective file. \n \n We would need to use the \u001b[1;36;40mos\u001b[0m and \u001b[1;36;40mpython-docx\u001b[0m modules for this task. However, you might need to install the \n \u001b[1;36;40mpython-docx\u001b[0m module, should it not be already installed. Let's proceed with the operation. \n \n First, I will write a small piece of code to list all .docx files in the directory. Let's make sure we have the \n right files. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "e632cf8148b5443eb888ad154820dac2": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_942032ef5a7b46a0866adf65a07ca9b6", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  !pip install opencv-python-headless requests                                                                     \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;150;0;80;48;2;30;0;16m!\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34minstall\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mopencv\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpython\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mheadless\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrequests\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "e64b5e68e0e84553a9e303ba55d389d0": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "e660cf408ab34428a4f579f4b3770f5e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "e6e713a9e71d495baa5a435abcb27ee1": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_d849c6a21c8b41a8bbb0abc8a95997c5", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  !pip install python-docx                                                                                         \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;150;0;80;48;2;30;0;16m!\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34minstall\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpython\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdocx\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "e6feb1cf757b44bba8fbdecd9b185178": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "e738acc7f303409f9af430957bb73425": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_7735b6aa07bb48e198f2e79bb8483006", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Output truncated. Showing the last 2000 characters. Adjust via `interpreter.max_output_chars`.                   \n                                                                                                                   \n     | 37/84 [00:02<00:02, 15.80it/s, now=None]t:  46%|####6     | 39/84 [00:02<00:02, 15.75it/s, now=None]t:      \n  50%|#####     | 42/84 [00:02<00:02, 16.47it/s, now=None]t:  52%|#####2    | 44/84 [00:02<00:02, 16.45it/s,       \n  now=None]t:  55%|#####4    | 46/84 [00:03<00:02, 15.61it/s, now=None]t:  57%|#####7    | 48/84 [00:03<00:02,     \n  15.13it/s, now=None]t:  60%|#####9    | 50/84 [00:03<00:02, 15.55it/s, now=None]t:  62%|######1   | 52/84        \n  [00:03<00:02, 15.81it/s, now=None]t:  64%|######4   | 54/84 [00:03<00:01, 15.73it/s, now=None]t:  67%|######6    \n  | 56/84 [00:03<00:01, 14.09it/s, now=None]t:  69%|######9   | 58/84 [00:04<00:04,  5.70it/s, now=None]t:         \n  71%|#######1  | 60/84 [00:05<00:04,  4.91it/s, now=None]t:  73%|#######2  | 61/84 [00:05<00:04,  4.96it/s,       \n  now=None]t:  74%|#######3  | 62/84 [00:05<00:04,  5.03it/s, now=None]t:  76%|#######6  | 64/84 [00:05<00:03,     \n  5.54it/s, now=None]t:  77%|#######7  | 65/84 [00:06<00:03,  5.61it/s, now=None]t:  80%|#######9  | 67/84         \n  [00:06<00:02,  7.00it/s, now=None]t:  81%|########  | 68/84 [00:06<00:02,  6.28it/s, now=None]t:  82%|########2  \n  | 69/84 [00:06<00:02,  6.55it/s, now=None]t:  83%|########3 | 70/84 [00:06<00:02,  6.02it/s, now=None]t:         \n  85%|########4 | 71/84 [00:06<00:02,  6.49it/s, now=None]t:  86%|########5 | 72/84 [00:07<00:01,  6.27it/s,       \n  now=None]t:  87%|########6 | 73/84 [00:07<00:01,  6.05it/s, now=None]t:  88%|########8 | 74/84 [00:07<00:01,     \n  5.74it/s, now=None]t:  90%|######### | 76/84 [00:07<00:01,  6.50it/s, now=None]t:  92%|#########1| 77/84         \n  [00:07<00:01,  6.40it/s, now=None]t:  93%|#########2| 78/84 [00:08<00:00,  6.01it/s, now=None]t:                 \n  95%|#########5| 80/84 [00:08<00:00,  6.47it/s, now=None]t:  96%|#########6| 81/84 [00:08<00:00,  6.52it/s,       \n  now=None]t:  98%|#########7| 82/84 [00:08<00:00,  5.72it/s, now=None]t: 100%|##########| 84/84 [00:08<00:00,     \n  6.50it/s, now=None]                                                            Moviepy - Done !                  \n  Moviepy - video ready modified_video.mp4                                                                         \n  None                                                                                                             \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mOutput truncated. Showing the last 2000 characters. Adjust via `interpreter.max_output_chars`.\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m | 37/84 [00:02<00:02, 15.80it/s, now=None]t: 46%|####6 | 39/84 [00:02<00:02, 15.75it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m50%|##### | 42/84 [00:02<00:02, 16.47it/s, now=None]t: 52%|#####2 | 44/84 [00:02<00:02, 16.45it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 55%|#####4 | 46/84 [00:03<00:02, 15.61it/s, now=None]t: 57%|#####7 | 48/84 [00:03<00:02, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m15.13it/s, now=None]t: 60%|#####9 | 50/84 [00:03<00:02, 15.55it/s, now=None]t: 62%|######1 | 52/84 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:03<00:02, 15.81it/s, now=None]t: 64%|######4 | 54/84 [00:03<00:01, 15.73it/s, now=None]t: 67%|######6 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m| 56/84 [00:03<00:01, 14.09it/s, now=None]t: 69%|######9 | 58/84 [00:04<00:04, 5.70it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m71%|#######1 | 60/84 [00:05<00:04, 4.91it/s, now=None]t: 73%|#######2 | 61/84 [00:05<00:04, 4.96it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 74%|#######3 | 62/84 [00:05<00:04, 5.03it/s, now=None]t: 76%|#######6 | 64/84 [00:05<00:03, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m5.54it/s, now=None]t: 77%|#######7 | 65/84 [00:06<00:03, 5.61it/s, now=None]t: 80%|#######9 | 67/84 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:06<00:02, 7.00it/s, now=None]t: 81%|######## | 68/84 [00:06<00:02, 6.28it/s, now=None]t: 82%|########2\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m| 69/84 [00:06<00:02, 6.55it/s, now=None]t: 83%|########3 | 70/84 [00:06<00:02, 6.02it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m85%|########4 | 71/84 [00:06<00:02, 6.49it/s, now=None]t: 86%|########5 | 72/84 [00:07<00:01, 6.27it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 87%|########6 | 73/84 [00:07<00:01, 6.05it/s, now=None]t: 88%|########8 | 74/84 [00:07<00:01, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m5.74it/s, now=None]t: 90%|######### | 76/84 [00:07<00:01, 6.50it/s, now=None]t: 92%|#########1| 77/84 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:07<00:01, 6.40it/s, now=None]t: 93%|#########2| 78/84 [00:08<00:00, 6.01it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m95%|#########5| 80/84 [00:08<00:00, 6.47it/s, now=None]t: 96%|#########6| 81/84 [00:08<00:00, 6.52it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 98%|#########7| 82/84 [00:08<00:00, 5.72it/s, now=None]t: 100%|##########| 84/84 [00:08<00:00, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m6.50it/s, now=None] Moviepy - Done !\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mMoviepy - video ready modified_video.mp4\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mNone\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "e96fdcfcde144e78b7977830628e77f9": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_afddf4997e1a4d009f278b34486a71aa", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  I've created 10 pixel art banners as per your specifications. They are saved as 'banner_1.png', 'banner_2.png',  \n  and so on up to 'banner_10.png'. Please review them and let me know if you need any changes.                     \n                                                                                                                   \n
\n", + "text/plain": " \n I've created 10 pixel art banners as per your specifications. They are saved as 'banner_1.png', 'banner_2.png', \n and so on up to 'banner_10.png'. Please review them and let me know if you need any changes. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "eb83234ed4724410aec6bde226f104a1": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_b37d96a06ec148fab77a1a5121bfc74b", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  !pip install moviepy                                                                                             \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;150;0;80;48;2;30;0;16m!\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34minstall\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmoviepy\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "ece854c5547443d78f1e8c0d8960ad47": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "ed07889e87744f3aa90e1a211b5b81ff": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_673dce80b4b54a7384a460b0075759fb", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  ['doc2.docx', 'doc4.docx', 'doc5.docx', 'doc1.docx', 'doc3.docx']                                                \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m['doc2.docx', 'doc4.docx', 'doc5.docx', 'doc1.docx', 'doc3.docx']\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "ed507d688c4747158749a94ce44b26b9": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_8e94b43d08f848159b7c621693e26878", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  # Delete the old files and rename the new ones                                                                   \n  for filename in files:                                                                                           \n      new_filename = os.path.join('documents', f'new_{filename}')                                                  \n      old_filename = os.path.join('documents', filename)                                                           \n                                                                                                                   \n      # Remove the old file                                                                                        \n      os.remove(old_filename)                                                                                      \n                                                                                                                   \n      # Rename the new file to the original filename                                                               \n      os.rename(new_filename, old_filename)                                                                        \n                                                                                                                   \n  print('All files have been updated.')                                                                            \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Delete the old files and rename the new ones\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfilename\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfiles\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_filename\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mos\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpath\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mjoin\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mdocuments\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mf\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mnew_\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfilename\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mold_filename\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mos\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpath\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mjoin\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mdocuments\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfilename\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Remove the old file\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mos\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mremove\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mold_filename\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Rename the new file to the original filename\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mos\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrename\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_filename\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mold_filename\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprint\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mAll files have been updated.\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "ee9b39134cf84f089d4868aae1851900": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "ef334d3eb6a043608312c67aa3c7e3b8": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "ef7637cf473b48a59806e2a66042cba1": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_d70ab8f629f446c19c41c3293b905d83", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  import cv2                                                                                                       \n  import requests                                                                                                  \n  import numpy as np                                                                                               \n                                                                                                                   \n  # Here we are downloading all the frames generated by the model and                                              \n  # saving it as an image locally                                                                                  \n  images = []                                                                                                      \n  for url in output_urls:                                                                                          \n      response = requests.get(url)                                                                                 \n      array = np.frombuffer(response.content, dtype=np.uint8)                                                      \n      image = cv2.imdecode(array, flags=cv2.IMREAD_COLOR)                                                          \n      images.append(image)                                                                                         \n                                                                                                                   \n  # Verify if we have the correct number of frames                                                                 \n  len(images)                                                                                                      \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcv2\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrequests\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnumpy\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mas\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnp\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Here we are downloading all the frames generated by the model and\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# saving it as an image locally\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mimages\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34murl\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34moutput_urls\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mresponse\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mrequests\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mget\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34murl\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34marray\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnp\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfrombuffer\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mresponse\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcontent\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdtype\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnp\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34muint8\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mimage\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcv2\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mimdecode\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34marray\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mflags\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcv2\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mIMREAD_COLOR\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mimages\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mappend\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mimage\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Verify if we have the correct number of frames\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mlen\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mimages\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "f036842ca1f14c80943388ea7eba105c": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_e38fcb7d81394b1c8c1356f9d272511e", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  A container for a series of :class:`Plugin` objects, to use for processing audio, like a                         \n      `guitar pedalboard <https://en.wikipedia.org/wiki/Guitar_pedalboard>`_.                                      \n                                                                                                                   \n      :class:`Pedalboard` objects act like regular Python ``List`` objects,                                        \n      but come with an additional :py:meth:`process` method (also aliased to :py:meth:`__call__`),                 \n      allowing audio to be passed through the entire :class:`Pedalboard` object for processing::                   \n                                                                                                                   \n          my_pedalboard = Pedalboard()                                                                             \n          my_pedalboard.append(Reverb())                                                                           \n          output_audio = my_pedalboard(input_audio)                                                                \n                                                                                                                   \n      .. warning::                                                                                                 \n          :class:`Pedalboard` objects may only contain effects plugins (i.e.: those for which                      \n          :attr:`is_effect` is ``True``), and cannot contain instrument plugins (i.e.: those                       \n          for which :attr:`is_instrument` is ``True``).                                                            \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mA container for a series of :class:`Plugin` objects, to use for processing audio, like a\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m `guitar pedalboard `_.\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m :class:`Pedalboard` objects act like regular Python ``List`` objects,\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m but come with an additional :py:meth:`process` method (also aliased to :py:meth:`__call__`),\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m allowing audio to be passed through the entire :class:`Pedalboard` object for processing::\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m my_pedalboard = Pedalboard()\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m my_pedalboard.append(Reverb())\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m output_audio = my_pedalboard(input_audio)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m .. warning::\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m :class:`Pedalboard` objects may only contain effects plugins (i.e.: those for which\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m :attr:`is_effect` is ``True``), and cannot contain instrument plugins (i.e.: those\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m for which :attr:`is_instrument` is ``True``).\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "f25805a2402f4a7ba505fb75554bdbed": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "f45bcc741325488c834cb344c9b2b0fe": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_c97723ce541246e28c2ec4459cc3151f", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Collecting feedparser                                                                                            \n    Downloading feedparser-6.0.10-py3-none-any.whl (81 kB)                                                         \n       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/81.1 kB ? eta -:--:--                                          \n  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 81.1/81.1 kB 4.3 MB/s eta 0:00:00                                       \n  Collecting sgmllib3k (from feedparser)                                                                           \n    Downloading sgmllib3k-1.0.0.tar.gz (5.8 kB)                                                                    \n    Preparing metadata (setup.py) ... done                                                                         \n  Building wheels for collected packages: sgmllib3k                                                                \n    Building wheel for sgmllib3k (setup.py) ... done                                                               \n    Created wheel for sgmllib3k: filename=sgmllib3k-1.0.0-py3-none-any.whl size=6046                               \n  sha256=651ecac15cda67cfda9e6d19a71d7b727ffed85714612ec195412ea27ea7b66c                                          \n    Stored in directory: /root/.cache/pip/wheels/f0/69/93/a47e9d621be168e9e33c7ce60524393c0b92ae83cf6c6e89c5       \n  Successfully built sgmllib3k                                                                                     \n  Installing collected packages: sgmllib3k, feedparser                                                             \n  Successfully installed feedparser-6.0.10 sgmllib3k-1.0.0                                                         \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mCollecting feedparser\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Downloading feedparser-6.0.10-py3-none-any.whl (81 kB)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/81.1 kB ? eta -:--:-- \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 81.1/81.1 kB 4.3 MB/s eta 0:00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mCollecting sgmllib3k (from feedparser)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Downloading sgmllib3k-1.0.0.tar.gz (5.8 kB)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Preparing metadata (setup.py) ... done\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mBuilding wheels for collected packages: sgmllib3k\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Building wheel for sgmllib3k (setup.py) ... done\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Created wheel for sgmllib3k: filename=sgmllib3k-1.0.0-py3-none-any.whl size=6046 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55msha256=651ecac15cda67cfda9e6d19a71d7b727ffed85714612ec195412ea27ea7b66c\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Stored in directory: /root/.cache/pip/wheels/f0/69/93/a47e9d621be168e9e33c7ce60524393c0b92ae83cf6c6e89c5\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mSuccessfully built sgmllib3k\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mInstalling collected packages: sgmllib3k, feedparser\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mSuccessfully installed feedparser-6.0.10 sgmllib3k-1.0.0\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "f491c55d72df4b589454a8861197376b": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_3bba172d1af2465181679c8b336704a7", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  import soundfile as sf                                                                                           \n  from pedalboard import Pedalboard, Reverb, PitchShift                                                            \n                                                                                                                   \n  # Load the audio file                                                                                            \n  audio, sample_rate = sf.read('original_song.webm')                                                               \n                                                                                                                   \n  # Create a Pedalboard instance                                                                                   \n  board = Pedalboard([                                                                                             \n      PitchShift(semitones=-5),  # Lower the pitch                                                                 \n      Reverb(room_size=0.5, dry_level=0.5, wet_level=0.5)  # Add reverb                                            \n  ])                                                                                                               \n                                                                                                                   \n  # Process the audio                                                                                              \n  processed_audio = board.process(audio, sample_rate=sample_rate)                                                  \n                                                                                                                   \n  # Save the processed audio to a new file                                                                         \n  sf.write('processed_song.wav', processed_audio, sample_rate)                                                     \n                                                                                                                   \n
\n", + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msoundfile\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mas\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msf\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpedalboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPedalboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mReverb\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPitchShift\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Load the audio file\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34maudio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msample_rate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msf\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mread\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34moriginal_song.webm\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Create a Pedalboard instance\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPedalboard\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mPitchShift\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msemitones\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Lower the pitch\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mReverb\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mroom_size\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0.5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdry_level\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0.5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwet_level\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0.5\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Add reverb\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Process the audio\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprocessed_audio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mboard\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprocess\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34maudio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msample_rate\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msample_rate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Save the processed audio to a new file\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msf\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwrite\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mprocessed_song.wav\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprocessed_audio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msample_rate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "f86e25f5432b4589b9045ba52ebed7ae": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_99b83169a2c5408dbfa7b835db2d7171", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Requirement already satisfied: yt-dlp in /usr/local/lib/python3.10/dist-packages (2023.7.6)                      \n  Requirement already satisfied: mutagen in /usr/local/lib/python3.10/dist-packages (from yt-dlp) (1.46.0)         \n  Requirement already satisfied: pycryptodomex in /usr/local/lib/python3.10/dist-packages (from yt-dlp) (3.18.0)   \n  Requirement already satisfied: websockets in /usr/local/lib/python3.10/dist-packages (from yt-dlp) (11.0.3)      \n  Requirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from yt-dlp) (2023.5.7)       \n  Requirement already satisfied: brotli in /usr/local/lib/python3.10/dist-packages (from yt-dlp) (1.0.9)           \n                                                                                                                   \n
\n", + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: yt-dlp in /usr/local/lib/python3.10/dist-packages (2023.7.6)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: mutagen in /usr/local/lib/python3.10/dist-packages (from yt-dlp) (1.46.0)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: pycryptodomex in /usr/local/lib/python3.10/dist-packages (from yt-dlp) (3.18.0)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: websockets in /usr/local/lib/python3.10/dist-packages (from yt-dlp) (11.0.3)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from yt-dlp) (2023.5.7)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: brotli in /usr/local/lib/python3.10/dist-packages (from yt-dlp) (1.0.9)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "f944a4b42ef14ae889efef3f5369e173": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "faa25b85f22545f09f98b5d43cbd21b1": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_74a068f07b49454bba51058b0c1772ae", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  I have created a folder named 'documents' and added 5 docx files in it, each containing a unique sentence about  \n  Machine Learning. The files are named as 'doc1.docx', 'doc2.docx', 'doc3.docx', 'doc4.docx', and 'doc5.docx'.    \n                                                                                                                   \n
\n", + "text/plain": " \n I have created a folder named 'documents' and added 5 docx files in it, each containing a unique sentence about \n Machine Learning. The files are named as 'doc1.docx', 'doc2.docx', 'doc3.docx', 'doc4.docx', and 'doc5.docx'. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "fb34c40c88f7423a891c85730730d011": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "fc51add87d6744bc8fb46911b671eac5": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "fe21edae84cc4778a3ddc2fcaedfbc3d": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "feb8283edfbb49b989a8d29c98701bf0": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_0e33aaf3c5dd44dda84ebc379dd78417", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  I have successfully applied the slow and reverb effects to the song. The processed song has been saved as        \n  'processed_song.wav'. You can listen to it to hear the effects.                                                  \n                                                                                                                   \n
\n", + "text/plain": " \n I have successfully applied the slow and reverb effects to the song. The processed song has been saved as \n 'processed_song.wav'. You can listen to it to hear the effects. \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "ff2383ba5a3943cf8ab4f0cedcb40c3f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "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 + } + }, + "8e4d22ad1dcc44ec882bb9c6663de431": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_915e05fbbcd44fb1b0402d5a51b9dcf6", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprint\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mHello, world!\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  print('Hello, world!')                                                                                           \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "915e05fbbcd44fb1b0402d5a51b9dcf6": { + "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 + } + }, + "ed7c54937ec94948915fbe589e04d312": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_ef25bc033b0b419bb7b33e05aed61b43", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mHello, world!\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  Hello, world!                                                                                                    \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "ef25bc033b0b419bb7b33e05aed61b43": { + "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 + } + }, + "1672ae981ae041ae8b26126e30f29882": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_84e676b87e204fa9b36f1ec2ccefc396", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": " \n The code was executed successfully and it printed \"Hello, world!\". \n \n", + "text/html": "
                                                                                                                   \n  The code was executed successfully and it printed \"Hello, world!\".                                               \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "84e676b87e204fa9b36f1ec2ccefc396": { + "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 + } + }, + "dfd7d092f15c4b33b4d9b4c299a56577": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_46f16ac02db04d13bdf9461b2e268ad3", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": " \n Alright, here's the plan: \n \n \u001b[1;33m 1 \u001b[0mDownload the YouTube video using \u001b[1;36;40myt-dlp\u001b[0m. \n \u001b[1;33m 2 \u001b[0mExtract the audio from the video using \u001b[1;36;40mmoviepy\u001b[0m. \n \u001b[1;33m 3 \u001b[0mCut the video to the specified time range (0:15 to 0:38) using \u001b[1;36;40mmoviepy\u001b[0m. \n \u001b[1;33m 4 \u001b[0mUse a face detection library like \u001b[1;36;40mdlib\u001b[0m or \u001b[1;36;40mopencv\u001b[0m to detect the face in each frame. \n \u001b[1;33m 5 \u001b[0mCrop each frame to a 9:16 aspect ratio around the detected face, making sure to smoothly average out the \n \u001b[1;33m \u001b[0mmotion between confident face detections. \n \u001b[1;33m 6 \u001b[0mCombine the cropped frames back into a video using \u001b[1;36;40mmoviepy\u001b[0m. \n \u001b[1;33m 7 \u001b[0mAdd the audio back into the video using \u001b[1;36;40mmoviepy\u001b[0m. \n \u001b[1;33m 8 \u001b[0mSave the final video. \n \n Let's start by installing the necessary packages. We'll need \u001b[1;36;40myt-dlp\u001b[0m for downloading the video, \u001b[1;36;40mmoviepy\u001b[0m for \n video editing, and \u001b[1;36;40mdlib\u001b[0m for face detection. We'll also need \u001b[1;36;40mnumpy\u001b[0m for numerical operations and \u001b[1;36;40mopencv-python\u001b[0m \n for image processing. \n \n", + "text/html": "
                                                                                                                   \n  Alright, here's the plan:                                                                                        \n                                                                                                                   \n   1 Download the YouTube video using yt-dlp.                                                                      \n   2 Extract the audio from the video using moviepy.                                                               \n   3 Cut the video to the specified time range (0:15 to 0:38) using moviepy.                                       \n   4 Use a face detection library like dlib or opencv to detect the face in each frame.                            \n   5 Crop each frame to a 9:16 aspect ratio around the detected face, making sure to smoothly average out the      \n     motion between confident face detections.                                                                     \n   6 Combine the cropped frames back into a video using moviepy.                                                   \n   7 Add the audio back into the video using moviepy.                                                              \n   8 Save the final video.                                                                                         \n                                                                                                                   \n  Let's start by installing the necessary packages. We'll need yt-dlp for downloading the video, moviepy for       \n  video editing, and dlib for face detection. We'll also need numpy for numerical operations and opencv-python     \n  for image processing.                                                                                            \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "46f16ac02db04d13bdf9461b2e268ad3": { + "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 + } + }, + "894485c6aa7a4560b1625b0667c4b0ad": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_c2678de51ec648b78d4965a3b898ffef", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;150;0;80;48;2;30;0;16m!\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34minstall\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34myt\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdlp\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmoviepy\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdlib\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnumpy\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mopencv\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mpython\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  !pip install yt-dlp moviepy dlib numpy opencv-python                                                             \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "c2678de51ec648b78d4965a3b898ffef": { + "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 + } + }, + "1ba7ab9f477040ccb236598ef1085084": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_58c456a67739434b87b368aefc561eff", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mOutput truncated. Showing the last 2000 characters. Adjust via `interpreter.max_output_chars`.\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55msatisfied: certifi in /usr/local/lib/python3.10/dist-packages (from yt-dlp) (2023.5.7)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mCollecting brotli (from yt-dlp)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Downloading \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mBrotli-1.0.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(2.7 MB)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/2.7 MB ? eta -:--:-- \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━ 1.6/2.7 MB 48.1 MB/s eta 0:00:01 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 2.7/2.7 MB 49.9 MB/s eta 0:00:01 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.7/2.7 MB 37.8 MB/s eta 0:00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: decorator<5.0,>=4.0.2 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(4.4.2)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: tqdm<5.0,>=4.11.2 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(4.65.0)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: requests<3.0,>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(2.27.1)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: proglog<=1.0.0 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(0.1.10)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: imageio<3.0,>=2.5 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(2.25.1)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: imageio-ffmpeg>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from moviepy) \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(0.4.8)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: pillow>=8.3.2 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mimageio<3.0,>=2.5->moviepy) (8.4.0)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mrequests<3.0,>=2.8.1->moviepy) (1.26.16)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mrequests<3.0,>=2.8.1->moviepy) (2.0.12)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mRequirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mrequests<3.0,>=2.8.1->moviepy) (3.4)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mInstalling collected packages: brotli, websockets, pycryptodomex, mutagen, yt-dlp\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mSuccessfully installed brotli-1.0.9 mutagen-1.46.0 pycryptodomex-3.18.0 websockets-11.0.3 yt-dlp-2023.7.6\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  Output truncated. Showing the last 2000 characters. Adjust via `interpreter.max_output_chars`.                   \n                                                                                                                   \n  satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from yt-dlp) (2023.5.7)                           \n  Collecting brotli (from yt-dlp)                                                                                  \n    Downloading                                                                                                    \n  Brotli-1.0.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl   \n  (2.7 MB)                                                                                                         \n       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/2.7 MB ? eta -:--:--                                           \n  ━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━ 1.6/2.7 MB 48.1 MB/s eta 0:00:01                                        \n  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 2.7/2.7 MB 49.9 MB/s eta 0:00:01                                        \n  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.7/2.7 MB 37.8 MB/s eta 0:00:00                                        \n  Requirement already satisfied: decorator<5.0,>=4.0.2 in /usr/local/lib/python3.10/dist-packages (from moviepy)   \n  (4.4.2)                                                                                                          \n  Requirement already satisfied: tqdm<5.0,>=4.11.2 in /usr/local/lib/python3.10/dist-packages (from moviepy)       \n  (4.65.0)                                                                                                         \n  Requirement already satisfied: requests<3.0,>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from moviepy)    \n  (2.27.1)                                                                                                         \n  Requirement already satisfied: proglog<=1.0.0 in /usr/local/lib/python3.10/dist-packages (from moviepy)          \n  (0.1.10)                                                                                                         \n  Requirement already satisfied: imageio<3.0,>=2.5 in /usr/local/lib/python3.10/dist-packages (from moviepy)       \n  (2.25.1)                                                                                                         \n  Requirement already satisfied: imageio-ffmpeg>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from moviepy)   \n  (0.4.8)                                                                                                          \n  Requirement already satisfied: pillow>=8.3.2 in /usr/local/lib/python3.10/dist-packages (from                    \n  imageio<3.0,>=2.5->moviepy) (8.4.0)                                                                              \n  Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from            \n  requests<3.0,>=2.8.1->moviepy) (1.26.16)                                                                         \n  Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from        \n  requests<3.0,>=2.8.1->moviepy) (2.0.12)                                                                          \n  Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from                     \n  requests<3.0,>=2.8.1->moviepy) (3.4)                                                                             \n  Installing collected packages: brotli, websockets, pycryptodomex, mutagen, yt-dlp                                \n  Successfully installed brotli-1.0.9 mutagen-1.46.0 pycryptodomex-3.18.0 websockets-11.0.3 yt-dlp-2023.7.6        \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "58c456a67739434b87b368aefc561eff": { + "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 + } + }, + "ba8772dae7fd44e4937b74a810235984": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_4ea12542e3134a719e8ca95bf443d710", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": " \n The necessary packages have been installed. The next steps are as follows: \n \n \u001b[1;33m 1 \u001b[0mDownload the YouTube video using \u001b[1;36;40myt-dlp\u001b[0m. \n \u001b[1;33m 2 \u001b[0mExtract the required segment from the video using \u001b[1;36;40mmoviepy\u001b[0m. \n \u001b[1;33m 3 \u001b[0mDetect and track the face in the video frames using \u001b[1;36;40mdlib\u001b[0m and \u001b[1;36;40mopencv\u001b[0m. \n \u001b[1;33m 4 \u001b[0mCrop the video around the face and resize it to a 9:16 aspect ratio. \n \u001b[1;33m 5 \u001b[0mSave the final video. \n \n Let's start by downloading the YouTube video. \n \n", + "text/html": "
                                                                                                                   \n  The necessary packages have been installed. The next steps are as follows:                                       \n                                                                                                                   \n   1 Download the YouTube video using yt-dlp.                                                                      \n   2 Extract the required segment from the video using moviepy.                                                    \n   3 Detect and track the face in the video frames using dlib and opencv.                                          \n   4 Crop the video around the face and resize it to a 9:16 aspect ratio.                                          \n   5 Save the final video.                                                                                         \n                                                                                                                   \n  Let's start by downloading the YouTube video.                                                                    \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "4ea12542e3134a719e8ca95bf443d710": { + "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 + } + }, + "7e39eac50d9b4e6e83818eccc7003bab": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_c1d7c09472ef40fa94bc348a0ce07711", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34myt_dlp\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34murl\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mhttps://www.youtube.com/watch?v=KgHkAwaW_lk\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mydl_opts\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m{\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mformat\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mbestvideo+bestaudio\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mouttmpl\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34moriginal_video.\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m%(ext)s\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m}\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mwith\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34myt_dlp\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mYoutubeDL\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mydl_opts\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mas\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mydl\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mydl\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdownload\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34murl\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  import yt_dlp                                                                                                    \n                                                                                                                   \n  url = 'https://www.youtube.com/watch?v=KgHkAwaW_lk'                                                              \n                                                                                                                   \n  ydl_opts = {                                                                                                     \n      'format': 'bestvideo+bestaudio',                                                                             \n      'outtmpl': 'original_video.%(ext)s'                                                                          \n  }                                                                                                                \n                                                                                                                   \n  with yt_dlp.YoutubeDL(ydl_opts) as ydl:                                                                          \n      ydl.download([url])                                                                                          \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "c1d7c09472ef40fa94bc348a0ce07711": { + "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 + } + }, + "70e01c3e03814cf2891e77d0f27f5e0a": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_5401202e0cbc4b7d93601ffceee34823", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mOutput truncated. Showing the last 2000 characters. Adjust via `interpreter.max_output_chars`.\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mad] 95.7% of ~ 8.25MiB at 144.14KiB/s ETA 00:02 (frag 18/20)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 96.5% of ~ 8.25MiB at 275.72KiB/s ETA \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m00:01 (frag 18/20)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 98.0% of ~ 8.25MiB at 527.81KiB/s ETA 00:00 (frag 18/20)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 100.2% of ~ 8.25MiB at \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m868.98KiB/s ETA 00:00 (frag 18/20)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 95.0% of ~ 8.70MiB at 867.54KiB/s ETA 00:00 (frag 19/20)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 100.0% of ~ \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m8.27MiB at 1.66KiB/s ETA 00:00 (frag 19/20)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 100.0% of ~ 8.27MiB at 4.98KiB/s ETA 00:00 (frag 19/20)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m100.1% of ~ 8.27MiB at 11.60KiB/s ETA 00:00 (frag 19/20)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 100.2% of ~ 8.27MiB at 24.81KiB/s ETA 00:00 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(frag 19/20)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 100.4% of ~ 8.27MiB at 51.20KiB/s ETA 00:00 (frag 19/20)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 100.7% of ~ 8.27MiB at 100.31KiB/s\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mETA 00:00 (frag 19/20)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 101.5% of ~ 8.27MiB at 192.41KiB/s ETA 00:00 (frag 19/20)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 102.6% of ~ 8.27MiB at \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m329.49KiB/s ETA 00:00 (frag 19/20)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 100.0% of ~ 8.48MiB at 329.08KiB/s ETA 00:00 (frag 20/20)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 100% of \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m8.48MiB in 00:00:10 at 860.64KiB/s \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Destination: original_video.f140.m4a\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 0.1% of 1.50MiB at 607.17KiB/s ETA 00:02\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 0.2% of 1.50MiB at 1.30MiB/s ETA 00:01\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 0.5% of \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1.50MiB at 2.48MiB/s ETA 00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 1.0% of 1.50MiB at 4.58MiB/s ETA 00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 2.0% of 1.50MiB at \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1.05MiB/s ETA 00:01\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 4.1% of 1.50MiB at 1.24MiB/s ETA 00:01\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 8.3% of 1.50MiB at 1.59MiB/s ETA \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 16.6% of 1.50MiB at 2.41MiB/s ETA 00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 33.3% of 1.50MiB at 3.87MiB/s ETA 00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 66.6% of \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m1.50MiB at 6.42MiB/s ETA 00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 100.0% of 1.50MiB at 8.82MiB/s ETA 00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m 100% of 1.50MiB in 00:00:00\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mat 4.24MiB/s \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[Merger] Merging formats into \"original_video.mkv\"\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mDeleting original file original_video.f247.webm (pass -k to keep)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mDeleting original file original_video.f140.m4a (pass -k to keep)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  Output truncated. Showing the last 2000 characters. Adjust via `interpreter.max_output_chars`.                   \n                                                                                                                   \n  ad]  95.7% of ~   8.25MiB at  144.14KiB/s ETA 00:02 (frag 18/20)  96.5% of ~   8.25MiB at  275.72KiB/s ETA       \n  00:01 (frag 18/20)  98.0% of ~   8.25MiB at  527.81KiB/s ETA 00:00 (frag 18/20) 100.2% of ~   8.25MiB at         \n  868.98KiB/s ETA 00:00 (frag 18/20)  95.0% of ~   8.70MiB at  867.54KiB/s ETA 00:00 (frag 19/20) 100.0% of ~      \n  8.27MiB at    1.66KiB/s ETA 00:00 (frag 19/20) 100.0% of ~   8.27MiB at    4.98KiB/s ETA 00:00 (frag 19/20)      \n  100.1% of ~   8.27MiB at   11.60KiB/s ETA 00:00 (frag 19/20) 100.2% of ~   8.27MiB at   24.81KiB/s ETA 00:00     \n  (frag 19/20) 100.4% of ~   8.27MiB at   51.20KiB/s ETA 00:00 (frag 19/20) 100.7% of ~   8.27MiB at  100.31KiB/s  \n  ETA 00:00 (frag 19/20) 101.5% of ~   8.27MiB at  192.41KiB/s ETA 00:00 (frag 19/20) 102.6% of ~   8.27MiB at     \n  329.49KiB/s ETA 00:00 (frag 19/20) 100.0% of ~   8.48MiB at  329.08KiB/s ETA 00:00 (frag 20/20) 100% of          \n  8.48MiB in 00:00:10 at 860.64KiB/s                                                                               \n   Destination: original_video.f140.m4a                                                                            \n     0.1% of    1.50MiB at  607.17KiB/s ETA 00:02   0.2% of    1.50MiB at    1.30MiB/s ETA 00:01   0.5% of         \n  1.50MiB at    2.48MiB/s ETA 00:00   1.0% of    1.50MiB at    4.58MiB/s ETA 00:00   2.0% of    1.50MiB at         \n  1.05MiB/s ETA 00:01   4.1% of    1.50MiB at    1.24MiB/s ETA 00:01   8.3% of    1.50MiB at    1.59MiB/s ETA      \n  00:00  16.6% of    1.50MiB at    2.41MiB/s ETA 00:00  33.3% of    1.50MiB at    3.87MiB/s ETA 00:00  66.6% of    \n  1.50MiB at    6.42MiB/s ETA 00:00 100.0% of    1.50MiB at    8.82MiB/s ETA 00:00 100% of    1.50MiB in 00:00:00  \n  at 4.24MiB/s                                                                                                     \n  [Merger] Merging formats into \"original_video.mkv\"                                                               \n  Deleting original file original_video.f247.webm (pass -k to keep)                                                \n  Deleting original file original_video.f140.m4a (pass -k to keep)                                                 \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "5401202e0cbc4b7d93601ffceee34823": { + "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 + } + }, + "acfb473b29e44673a1fff74002d1a9fb": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_c04640e4839d455b9faf31eb0f6cc24a", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": " \n The video has been successfully downloaded and saved as \"original_video.mkv\". \n \n Next, I will extract the required clip from the video (from 0:15 to 0:38). I will use the MoviePy library to \n accomplish this. \n \n After that, I will use the dlib and OpenCV libraries to detect and track the face in the video. I will crop the \n video around the face, maintaining the aspect ratio as 9:16. I will also ensure that the motion is smoothly \n averaged out between confident face detections. \n \n Finally, I will add the audio back into the cropped video. \n \n Let's start by extracting the required clip from the video. \n \n", + "text/html": "
                                                                                                                   \n  The video has been successfully downloaded and saved as \"original_video.mkv\".                                    \n                                                                                                                   \n  Next, I will extract the required clip from the video (from 0:15 to 0:38). I will use the MoviePy library to     \n  accomplish this.                                                                                                 \n                                                                                                                   \n  After that, I will use the dlib and OpenCV libraries to detect and track the face in the video. I will crop the  \n  video around the face, maintaining the aspect ratio as 9:16. I will also ensure that the motion is smoothly      \n  averaged out between confident face detections.                                                                  \n                                                                                                                   \n  Finally, I will add the audio back into the cropped video.                                                       \n                                                                                                                   \n  Let's start by extracting the required clip from the video.                                                      \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "c04640e4839d455b9faf31eb0f6cc24a": { + "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 + } + }, + "e34e60e6f4a748fb856638e13dcea9ee": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_ea5366ee0804463b8ef07de383494750", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmoviepy\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mffmpeg_tools\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mffmpeg_extract_subclip\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mstart_time\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m15\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mend_time\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m38\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Extract the subclip\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mffmpeg_extract_subclip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34moriginal_video.mkv\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mstart_time\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mend_time\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtargetname\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mclip.mkv\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip                                                 \n                                                                                                                   \n  start_time = 15                                                                                                  \n  end_time = 38                                                                                                    \n                                                                                                                   \n  # Extract the subclip                                                                                            \n  ffmpeg_extract_subclip('original_video.mkv', start_time, end_time, targetname='clip.mkv')                        \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "ea5366ee0804463b8ef07de383494750": { + "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 + } + }, + "e6b9ad18bbf94231be36619c23829365": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_1379bc8127c34125a9edcaa6ff80cb29", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mMoviepy - Running:\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m>>> \"+ \" \".join(cmd)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mMoviepy - Command successful\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mNone\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  Moviepy - Running:                                                                                               \n  >>> \"+ \" \".join(cmd)                                                                                             \n  Moviepy - Command successful                                                                                     \n  None                                                                                                             \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "1379bc8127c34125a9edcaa6ff80cb29": { + "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 + } + }, + "633eb737a8a540618283944da6587395": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_0422283e06104822a0b17e36537887ba", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": " \n The video has been successfully downloaded and the desired clip has been extracted. The next step is to detect \n and track the face in the video. We will use dlib's HOG-based model for this. \n \n After detecting the face in each frame, we will calculate the center of the face. We will then use these \n centers to crop the video around the face. We will also apply a smoothing function to these centers to ensure \n the motion is smooth. \n \n Let's start by loading the video and initializing the face detector. \n \n", + "text/html": "
                                                                                                                   \n  The video has been successfully downloaded and the desired clip has been extracted. The next step is to detect   \n  and track the face in the video. We will use dlib's HOG-based model for this.                                    \n                                                                                                                   \n  After detecting the face in each frame, we will calculate the center of the face. We will then use these         \n  centers to crop the video around the face. We will also apply a smoothing function to these centers to ensure    \n  the motion is smooth.                                                                                            \n                                                                                                                   \n  Let's start by loading the video and initializing the face detector.                                             \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "0422283e06104822a0b17e36537887ba": { + "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 + } + }, + "9c4a0269b2f545fd91690a0e05916486": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_54ba24de07fd495da0709275580522c4", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcv2\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdlib\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnumpy\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mas\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnp\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmoviepy\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34meditor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mVideoFileClip\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Load the video\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mVideoFileClip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mclip.mkv\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Initialize the face detector\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdetector\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdlib\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mget_frontal_face_detector\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  import cv2                                                                                                       \n  import dlib                                                                                                      \n  import numpy as np                                                                                               \n  from moviepy.editor import VideoFileClip                                                                         \n                                                                                                                   \n  # Load the video                                                                                                 \n  clip = VideoFileClip('clip.mkv')                                                                                 \n                                                                                                                   \n  # Initialize the face detector                                                                                   \n  detector = dlib.get_frontal_face_detector()                                                                      \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "54ba24de07fd495da0709275580522c4": { + "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 + } + }, + "5c29036bf1394564ac06e60a277c2f4b": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_13288eb48c78450bb9c29905f1cfe5cc", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\n", + "text/html": "
\n
\n" + }, + "metadata": {} + } + ] + } + }, + "13288eb48c78450bb9c29905f1cfe5cc": { + "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 + } + }, + "0a2bad1e724c412d9400b8ec3757d5fe": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_71be2ada61ca4eeca6c9c3169bf5a981", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": " \n Now that we have loaded the video and initialized the face detector, the next step is to process each frame of \n the video. For each frame, we will detect the face, calculate its center, and keep track of these centers. We \n will then calculate the average center of the face in the last few frames to smooth out the motion. After that, \n we will crop the frame around this average center to create a portrait video. \n \n Let's start by processing the frames and detecting the face in each frame. \n \n", + "text/html": "
                                                                                                                   \n  Now that we have loaded the video and initialized the face detector, the next step is to process each frame of   \n  the video. For each frame, we will detect the face, calculate its center, and keep track of these centers. We    \n  will then calculate the average center of the face in the last few frames to smooth out the motion. After that,  \n  we will crop the frame around this average center to create a portrait video.                                    \n                                                                                                                   \n  Let's start by processing the frames and detecting the face in each frame.                                       \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "71be2ada61ca4eeca6c9c3169bf5a981": { + "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 + } + }, + "05159ee8a8ce4d1f842636561b767c1e": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_d41a011efd5148b998b27e7ecb43d6d6", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Process each frame\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mframe\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34menumerate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34miter_frames\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Convert the frame to grayscale\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mgray\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcv2\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcvtColor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mframe\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcv2\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mCOLOR_RGB2GRAY\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Detect faces in the frame\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfaces\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdetector\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mgray\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# If a face is detected\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mif\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mlen\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfaces\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m>\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Calculate the center of the face\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfaces\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mleft\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m+\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfaces\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwidth\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m2\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34my\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfaces\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtop\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m+\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfaces\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mheight\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m2\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mappend\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34my\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Print progress\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mif\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m%\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m100\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m==\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprint\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mf\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mProcessed \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m/\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mlen\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m frames\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  face_centers = []                                                                                                \n                                                                                                                   \n  # Process each frame                                                                                             \n  for i, frame in enumerate(clip.iter_frames()):                                                                   \n      # Convert the frame to grayscale                                                                             \n      gray = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)                                                               \n                                                                                                                   \n      # Detect faces in the frame                                                                                  \n      faces = detector(gray)                                                                                       \n                                                                                                                   \n      # If a face is detected                                                                                      \n      if len(faces) > 0:                                                                                           \n          # Calculate the center of the face                                                                       \n          x = faces[0].left() + faces[0].width() // 2                                                              \n          y = faces[0].top() + faces[0].height() // 2                                                              \n          face_centers.append((x, y))                                                                              \n                                                                                                                   \n      # Print progress                                                                                             \n      if i % 100 == 0:                                                                                             \n          print(f'Processed {i}/{len(clip)} frames')                                                               \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "d41a011efd5148b998b27e7ecb43d6d6": { + "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 + } + }, + "f89766aa83954606822ac810550089a4": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_c092298defd44aea990d9b4e7368fb39", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mTraceback (most recent call last):\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Cell In[3], line 10\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m print(f'Processed {i}/{len(clip)} frames')\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mTypeError: object of type 'VideoFileClip' has no len()\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  Traceback (most recent call last):                                                                               \n    Cell In[3], line 10                                                                                            \n      print(f'Processed {i}/{len(clip)} frames')                                                                   \n  TypeError: object of type 'VideoFileClip' has no len()                                                           \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "c092298defd44aea990d9b4e7368fb39": { + "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 + } + }, + "f9f0fbe9b4e8458daff8f0b208afe06d": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_4a0fea39019242139a82c33d7513ccb7", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": " \n It seems like I made a mistake by trying to get the length of the video clip using \u001b[1;36;40mlen(clip)\u001b[0m. The \u001b[1;36;40mVideoFileClip\u001b[0m \n object doesn't support the \u001b[1;36;40mlen()\u001b[0m function. Instead, I should use \u001b[1;36;40mclip.duration\u001b[0m to get the duration of the clip \n in seconds and multiply it by the frame rate to get the total number of frames. Let's correct this and try \n again. \n \n", + "text/html": "
                                                                                                                   \n  It seems like I made a mistake by trying to get the length of the video clip using len(clip). The VideoFileClip  \n  object doesn't support the len() function. Instead, I should use clip.duration to get the duration of the clip   \n  in seconds and multiply it by the frame rate to get the total number of frames. Let's correct this and try       \n  again.                                                                                                           \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "4a0fea39019242139a82c33d7513ccb7": { + "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 + } + }, + "e94d50d8f12d4e97a9e4a147e1717a44": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_903ff249dcad4e2bbb19f036ee19d2cb", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Get the total number of frames\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtotal_frames\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mint\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mduration\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m*\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfps\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Process each frame\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mframe\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34menumerate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34miter_frames\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Convert the frame to grayscale\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mgray\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcv2\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcvtColor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mframe\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcv2\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mCOLOR_RGB2GRAY\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Detect faces in the frame\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfaces\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mdetector\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mgray\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# If a face is detected\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mif\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mlen\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfaces\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m>\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Calculate the center of the face\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfaces\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mleft\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m+\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfaces\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwidth\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m2\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34my\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfaces\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtop\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m+\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfaces\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mheight\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m2\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mappend\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34my\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Print progress\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mif\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m%\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m100\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m==\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprint\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mf\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mProcessed \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m/\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtotal_frames\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m frames\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  face_centers = []                                                                                                \n                                                                                                                   \n  # Get the total number of frames                                                                                 \n  total_frames = int(clip.duration * clip.fps)                                                                     \n                                                                                                                   \n  # Process each frame                                                                                             \n  for i, frame in enumerate(clip.iter_frames()):                                                                   \n      # Convert the frame to grayscale                                                                             \n      gray = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)                                                               \n                                                                                                                   \n      # Detect faces in the frame                                                                                  \n      faces = detector(gray)                                                                                       \n                                                                                                                   \n      # If a face is detected                                                                                      \n      if len(faces) > 0:                                                                                           \n          # Calculate the center of the face                                                                       \n          x = faces[0].left() + faces[0].width() // 2                                                              \n          y = faces[0].top() + faces[0].height() // 2                                                              \n          face_centers.append((x, y))                                                                              \n                                                                                                                   \n      # Print progress                                                                                             \n      if i % 100 == 0:                                                                                             \n          print(f'Processed {i}/{total_frames} frames')                                                            \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "903ff249dcad4e2bbb19f036ee19d2cb": { + "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 + } + }, + "f4a860ee64cd4d1dbddcf49bccafb1d2": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_2484cf82892e4459972b079943d9fe4d", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mProcessed 0/819 frames\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mProcessed 100/819 frames\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mProcessed 200/819 frames\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mProcessed 300/819 frames\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mProcessed 400/819 frames\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mProcessed 500/819 frames\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mProcessed 600/819 frames\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mProcessed 700/819 frames\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mProcessed 800/819 frames\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  Processed 0/819 frames                                                                                           \n  Processed 100/819 frames                                                                                         \n  Processed 200/819 frames                                                                                         \n  Processed 300/819 frames                                                                                         \n  Processed 400/819 frames                                                                                         \n  Processed 500/819 frames                                                                                         \n  Processed 600/819 frames                                                                                         \n  Processed 700/819 frames                                                                                         \n  Processed 800/819 frames                                                                                         \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "2484cf82892e4459972b079943d9fe4d": { + "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 + } + }, + "7f88ac26e8cb4dce8d372d38501bdec2": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_646e8aa419f3420cbc453d285634a114", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": " \n The face detection process has been completed for all frames in the video. The next step is to calculate the \n average position of the face in each frame to create a smooth motion. After that, we will crop the video around \n the face and maintain the original height of the video. Let's proceed with these steps. \n \n", + "text/html": "
                                                                                                                   \n  The face detection process has been completed for all frames in the video. The next step is to calculate the     \n  average position of the face in each frame to create a smooth motion. After that, we will crop the video around  \n  the face and maintain the original height of the video. Let's proceed with these steps.                          \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "646e8aa419f3420cbc453d285634a114": { + "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 + } + }, + "2d1cd08ae5be4df8bef9f9ebc9347349": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_a954618bf6d344c285f74578e496dc0c", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Calculate the moving average of the face centers\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwindow_size\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m10\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_avg\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnp\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mconvolve\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnp\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mones\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwindow_size\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mvalid\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwindow_size\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Add the first and last few values to the start and end of the list\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_avg\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnp\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mconcatenate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwindow_size\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m1\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_avg\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwindow_size\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m+\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m1\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  # Calculate the moving average of the face centers                                                               \n  window_size = 10                                                                                                 \n  face_centers_avg = np.convolve(face_centers, np.ones(window_size), 'valid') / window_size                        \n                                                                                                                   \n  # Add the first and last few values to the start and end of the list                                             \n  face_centers_avg = np.concatenate((face_centers[:window_size-1], face_centers_avg, face_centers[-window_size+1:  \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "a954618bf6d344c285f74578e496dc0c": { + "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 + } + }, + "a5da8f42711545d09911118485e8e83e": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_303c046d8d1e44c8b20e21678d26ee71", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mTraceback (most recent call last):\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Cell In[3], line 2\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m face_centers_avg = np.convolve(face_centers, np.ones(window_size), 'valid'\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m File <__array_function__ internals>:180 in convolve\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m File /usr/local/lib/python3.10/dist-packages/numpy/core/numeric.py:844 in convolve\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m return multiarray.correlate(a, v[::-1], mode)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mValueError: object too deep for desired array\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  Traceback (most recent call last):                                                                               \n    Cell In[3], line 2                                                                                             \n      face_centers_avg = np.convolve(face_centers, np.ones(window_size), 'valid'                                   \n    File <__array_function__ internals>:180 in convolve                                                            \n    File /usr/local/lib/python3.10/dist-packages/numpy/core/numeric.py:844 in convolve                             \n      return multiarray.correlate(a, v[::-1], mode)                                                                \n  ValueError: object too deep for desired array                                                                    \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "303c046d8d1e44c8b20e21678d26ee71": { + "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 + } + }, + "71346df88e4c4123b952c6606eb2acf0": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_cf0ee63e4bab46acacb822a12586db47", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": " \n It seems like the \u001b[1;36;40mnp.convolve\u001b[0m function is not able to handle the list of tuples \u001b[1;36;40mface_centers\u001b[0m. This is because \n \u001b[1;36;40mnp.convolve\u001b[0m is designed to work with 1D arrays, and \u001b[1;36;40mface_centers\u001b[0m is a list of 2D points (tuples). \n \n To solve this, I will separate the x and y coordinates into two separate lists and calculate the moving \n averages for each list separately. Let's try this. \n \n", + "text/html": "
                                                                                                                   \n  It seems like the np.convolve function is not able to handle the list of tuples face_centers. This is because    \n  np.convolve is designed to work with 1D arrays, and face_centers is a list of 2D points (tuples).                \n                                                                                                                   \n  To solve this, I will separate the x and y coordinates into two separate lists and calculate the moving          \n  averages for each list separately. Let's try this.                                                               \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "cf0ee63e4bab46acacb822a12586db47": { + "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 + } + }, + "5a1dc9c1a1d642a1a9ea4e60c18ce53d": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_fd6e706a8ee04707a3423071a6415341", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Separate the x and y coordinates\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_x\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_y\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mzip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m*\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Calculate the moving average of the x and y coordinates separately\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_avg_x\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnp\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mconvolve\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_x\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnp\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mones\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwindow_size\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mvalid\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwindow_size\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_avg_y\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnp\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mconvolve\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_y\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnp\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mones\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwindow_size\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mvalid\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwindow_size\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Add the first and last few values to the start and end of the lists\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_avg_x\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnp\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mconcatenate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_x\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwindow_size\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m1\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_avg_x\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_x\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwindow\u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_avg_y\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnp\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mconcatenate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_y\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwindow_size\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m1\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_avg_y\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_y\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwindow\u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Combine the x and y coordinates back into a list of tuples\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_avg\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mlist\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mzip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_avg_x\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_avg_y\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  # Separate the x and y coordinates                                                                               \n  face_centers_x, face_centers_y = zip(*face_centers)                                                              \n                                                                                                                   \n  # Calculate the moving average of the x and y coordinates separately                                             \n  face_centers_avg_x = np.convolve(face_centers_x, np.ones(window_size), 'valid') / window_size                    \n  face_centers_avg_y = np.convolve(face_centers_y, np.ones(window_size), 'valid') / window_size                    \n                                                                                                                   \n  # Add the first and last few values to the start and end of the lists                                            \n  face_centers_avg_x = np.concatenate((face_centers_x[:window_size-1], face_centers_avg_x, face_centers_x[-window  \n  face_centers_avg_y = np.concatenate((face_centers_y[:window_size-1], face_centers_avg_y, face_centers_y[-window  \n                                                                                                                   \n  # Combine the x and y coordinates back into a list of tuples                                                     \n  face_centers_avg = list(zip(face_centers_avg_x, face_centers_avg_y))                                             \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "fd6e706a8ee04707a3423071a6415341": { + "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 + } + }, + "eae96616b13a46bfae7a02eb59259c74": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_37efe298ef1d499993852f8dfba85757", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\n", + "text/html": "
\n
\n" + }, + "metadata": {} + } + ] + } + }, + "37efe298ef1d499993852f8dfba85757": { + "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 + } + }, + "613b2d7898184c9f91302f0137a1bf0a": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_a96323047b04490aa28cb68056a3242d", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmoviepy\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfx\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcrop\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcrop\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Get the dimensions of the video\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwidth\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mheight\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msize\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Calculate the dimensions of the cropped video\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_width\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mint\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mheight\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m*\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m9\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m16\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_height\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mheight\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Initialize a list to store the cropped frames\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcropped_frames\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Process each frame\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mframe\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcenter\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34menumerate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mzip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34miter_frames\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_avg\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Calculate the left and right boundaries of the crop\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mleft\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmax\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmin\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwidth\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_width\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcenter\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_width\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m2\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mright\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mleft\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m+\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_width\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Crop the frame\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcropped_frame\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcrop\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mframe\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx1\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mleft\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34my1\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mx2\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mright\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34my2\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_height\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcropped_frames\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mappend\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcropped_frame\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Print progress\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mif\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m%\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m100\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m==\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprint\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mf\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mCropped \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m/\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtotal_frames\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m frames\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  from moviepy.video.fx.crop import crop                                                                           \n                                                                                                                   \n  # Get the dimensions of the video                                                                                \n  width, height = clip.size                                                                                        \n                                                                                                                   \n  # Calculate the dimensions of the cropped video                                                                  \n  new_width = int(height * 9 / 16)                                                                                 \n  new_height = height                                                                                              \n                                                                                                                   \n  # Initialize a list to store the cropped frames                                                                  \n  cropped_frames = []                                                                                              \n                                                                                                                   \n  # Process each frame                                                                                             \n  for i, (frame, center) in enumerate(zip(clip.iter_frames(), face_centers_avg)):                                  \n      # Calculate the left and right boundaries of the crop                                                        \n      left = max(0, min(width - new_width, center[0] - new_width // 2))                                            \n      right = left + new_width                                                                                     \n                                                                                                                   \n      # Crop the frame                                                                                             \n      cropped_frame = crop(frame, x1=left, y1=0, x2=right, y2=new_height)                                          \n      cropped_frames.append(cropped_frame)                                                                         \n                                                                                                                   \n      # Print progress                                                                                             \n      if i % 100 == 0:                                                                                             \n          print(f'Cropped {i}/{total_frames} frames')                                                              \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "a96323047b04490aa28cb68056a3242d": { + "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 + } + }, + "ca48e8fcc96b4e0d985c7a3096aa04bb": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_8775c6e74caa4e2e85935960e6d9bf1a", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mTraceback (most recent call last):\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Cell In[3], line 9\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m cropped_frame = crop(frame, x1=left, y1=0, x2=right, y2=new_height)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m File /usr/local/lib/python3.10/dist-packages/moviepy/video/fx/crop.py:53 in crop\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m return clip.fl_image(lambda pic: pic\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m, apply_to=[\"mask\"])\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mAttributeError: 'numpy.ndarray' object has no attribute 'fl_image'\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  Traceback (most recent call last):                                                                               \n    Cell In[3], line 9                                                                                             \n      cropped_frame = crop(frame, x1=left, y1=0, x2=right, y2=new_height)                                          \n    File /usr/local/lib/python3.10/dist-packages/moviepy/video/fx/crop.py:53 in crop                               \n      return clip.fl_image(lambda pic: pic, apply_to=[\"mask\"])                                                     \n  AttributeError: 'numpy.ndarray' object has no attribute 'fl_image'                                               \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "8775c6e74caa4e2e85935960e6d9bf1a": { + "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 + } + }, + "8b359f3ad34840ebbf9e40348d7fcc44": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_1d5dd9f4d7cd41ab98e463f7fe8dc5d3", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": " \n It seems like the \u001b[1;36;40mcrop\u001b[0m function from \u001b[1;36;40mmoviepy\u001b[0m is intended to be used on a \u001b[1;36;40mVideoClip\u001b[0m object, not a numpy array. \n However, we are trying to apply it to individual frames, which are numpy arrays. \n \n To fix this, we can use OpenCV's array slicing capabilities to crop the frames. Let's try that. \n \n", + "text/html": "
                                                                                                                   \n  It seems like the crop function from moviepy is intended to be used on a VideoClip object, not a numpy array.    \n  However, we are trying to apply it to individual frames, which are numpy arrays.                                 \n                                                                                                                   \n  To fix this, we can use OpenCV's array slicing capabilities to crop the frames. Let's try that.                  \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "1d5dd9f4d7cd41ab98e463f7fe8dc5d3": { + "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 + } + }, + "e8c4baed02d34a21a3e7de3a69b3a158": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_9ec4005929104fd9aa041b7460b5298f", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcropped_frames\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Process each frame\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mframe\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcenter\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34menumerate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mzip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34miter_frames\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_avg\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Calculate the left and right boundaries of the crop\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mleft\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmax\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmin\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwidth\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_width\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcenter\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_width\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m2\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mright\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mleft\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m+\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_width\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Crop the frame\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcropped_frame\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mframe\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mleft\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mright\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcropped_frames\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mappend\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcropped_frame\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Print progress\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mif\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m%\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m100\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m==\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprint\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mf\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mCropped \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m/\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtotal_frames\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m frames\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  cropped_frames = []                                                                                              \n                                                                                                                   \n  # Process each frame                                                                                             \n  for i, (frame, center) in enumerate(zip(clip.iter_frames(), face_centers_avg)):                                  \n      # Calculate the left and right boundaries of the crop                                                        \n      left = max(0, min(width - new_width, center[0] - new_width // 2))                                            \n      right = left + new_width                                                                                     \n                                                                                                                   \n      # Crop the frame                                                                                             \n      cropped_frame = frame[:, left:right]                                                                         \n      cropped_frames.append(cropped_frame)                                                                         \n                                                                                                                   \n      # Print progress                                                                                             \n      if i % 100 == 0:                                                                                             \n          print(f'Cropped {i}/{total_frames} frames')                                                              \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "9ec4005929104fd9aa041b7460b5298f": { + "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 + } + }, + "f0115b2d6740493484333cccfcbcf41c": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_a60d203e2b3b466da2f420c1396b90b2", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mTraceback (most recent call last):\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Cell In[3], line 5\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m cropped_frame = frame[:, left:right]\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mTypeError: slice indices must be integers or None or have an __index__ method\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  Traceback (most recent call last):                                                                               \n    Cell In[3], line 5                                                                                             \n      cropped_frame = frame[:, left:right]                                                                         \n  TypeError: slice indices must be integers or None or have an __index__ method                                    \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "a60d203e2b3b466da2f420c1396b90b2": { + "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 + } + }, + "26fea9a4ea31438c8bbe14445910c8e5": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_6887887f49b14c249cb892a9c936070b", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcropped_frames\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Process each frame\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mfor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mframe\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcenter\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34min\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34menumerate\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mzip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34miter_frames\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mface_centers_avg\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Calculate the left and right boundaries of the crop\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mleft\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmax\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmin\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwidth\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_width\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mint\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcenter\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m-\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_width\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m/\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m2\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mright\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mleft\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m+\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_width\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Crop the frame\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcropped_frame\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mframe\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m[\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mleft\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mright\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m]\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcropped_frames\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mappend\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcropped_frame\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Print progress\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;102;217;239;48;2;39;40;34mif\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m%\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m100\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m==\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;174;129;255;48;2;39;40;34m0\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m:\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mprint\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mf\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mCropped \u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mi\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m/\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m{\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtotal_frames\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m}\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m frames\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  cropped_frames = []                                                                                              \n                                                                                                                   \n  # Process each frame                                                                                             \n  for i, (frame, center) in enumerate(zip(clip.iter_frames(), face_centers_avg)):                                  \n      # Calculate the left and right boundaries of the crop                                                        \n      left = max(0, min(width - new_width, int(center[0] - new_width // 2)))                                       \n      right = left + new_width                                                                                     \n                                                                                                                   \n      # Crop the frame                                                                                             \n      cropped_frame = frame[:, left:right]                                                                         \n      cropped_frames.append(cropped_frame)                                                                         \n                                                                                                                   \n      # Print progress                                                                                             \n      if i % 100 == 0:                                                                                             \n          print(f'Cropped {i}/{total_frames} frames')                                                              \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "6887887f49b14c249cb892a9c936070b": { + "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 + } + }, + "806ab28204a440b58ba5fde861e13d48": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_a68ae6eec13d47d182388c12e8874457", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mCropped 0/819 frames\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mCropped 100/819 frames\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mCropped 200/819 frames\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mCropped 300/819 frames\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mCropped 400/819 frames\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mCropped 500/819 frames\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mCropped 600/819 frames\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mCropped 700/819 frames\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mCropped 800/819 frames\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  Cropped 0/819 frames                                                                                             \n  Cropped 100/819 frames                                                                                           \n  Cropped 200/819 frames                                                                                           \n  Cropped 300/819 frames                                                                                           \n  Cropped 400/819 frames                                                                                           \n  Cropped 500/819 frames                                                                                           \n  Cropped 600/819 frames                                                                                           \n  Cropped 700/819 frames                                                                                           \n  Cropped 800/819 frames                                                                                           \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "a68ae6eec13d47d182388c12e8874457": { + "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 + } + }, + "77f449758de3412abd0d78d059d43ef1": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_edf044df54ef451781627f91bac2a9c3", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmoviepy\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mVideoClip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mImageSequenceClip\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Create a new video clip from the cropped frames\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_clip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mImageSequenceClip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcropped_frames\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfps\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfps\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Write the new video clip to a file\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_clip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwrite_videofile\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mcropped_clip.mkv\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcodec\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mlibx264\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  from moviepy.video.VideoClip import ImageSequenceClip                                                            \n                                                                                                                   \n  # Create a new video clip from the cropped frames                                                                \n  new_clip = ImageSequenceClip(cropped_frames, fps=clip.fps)                                                       \n                                                                                                                   \n  # Write the new video clip to a file                                                                             \n  new_clip.write_videofile('cropped_clip.mkv', codec='libx264')                                                    \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "edf044df54ef451781627f91bac2a9c3": { + "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 + } + }, + "e468488a3ec14569adfd1bcdaefd9a35": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_cf2aaac773e442b0bc8fbbc152dd0b23", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mTraceback (most recent call last):\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m Cell In[3], line 1\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m from moviepy.video.VideoClip import ImageSequenceClip\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mImportError: cannot import name 'ImageSequenceClip' from 'moviepy.video.VideoClip' \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m(/usr/local/lib/python3.10/dist-packages/moviepy/video/VideoClip.py)\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  Traceback (most recent call last):                                                                               \n    Cell In[3], line 1                                                                                             \n      from moviepy.video.VideoClip import ImageSequenceClip                                                        \n  ImportError: cannot import name 'ImageSequenceClip' from 'moviepy.video.VideoClip'                               \n  (/usr/local/lib/python3.10/dist-packages/moviepy/video/VideoClip.py)                                             \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "cf2aaac773e442b0bc8fbbc152dd0b23": { + "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 + } + }, + "b4827858c2fe4cc28f9fc38fef5040c3": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_86328979d39d4e689f787d27e0989adc", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmoviepy\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mvideo\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mImageSequenceClip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mImageSequenceClip\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Create a new video clip from the cropped frames\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_clip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mImageSequenceClip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcropped_frames\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfps\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mclip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mfps\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Write the new video clip to a file\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_clip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwrite_videofile\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mcropped_clip.mkv\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcodec\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mlibx264\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  from moviepy.video.io.ImageSequenceClip import ImageSequenceClip                                                 \n                                                                                                                   \n  # Create a new video clip from the cropped frames                                                                \n  new_clip = ImageSequenceClip(cropped_frames, fps=clip.fps)                                                       \n                                                                                                                   \n  # Write the new video clip to a file                                                                             \n  new_clip.write_videofile('cropped_clip.mkv', codec='libx264')                                                    \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "86328979d39d4e689f787d27e0989adc": { + "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 + } + }, + "b6a181f821044dcc875efcbc2fed3747": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_c9e6274288f640af92d3224b0393390a", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mOutput truncated. Showing the last 2000 characters. Adjust via `interpreter.max_output_chars`.\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m#2 | 597/820 [00:07<00:03, 69.95it/s, now=None]t: 74%|#######3 | 605/820 [00:07<00:03, 64.47it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 75%|#######4 | 612/820 [00:07<00:03, 62.44it/s, now=None]t: 75%|#######5 | 619/820 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:07<00:03, 64.15it/s, now=None]t: 76%|#######6 | 626/820 [00:08<00:03, 58.65it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m77%|#######7 | 633/820 [00:08<00:03, 59.87it/s, now=None]t: 78%|#######8 | 640/820 [00:08<00:03, 58.11it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 79%|#######8 | 647/820 [00:08<00:02, 58.78it/s, now=None]t: 80%|#######9 | 655/820 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:08<00:02, 60.11it/s, now=None]t: 81%|######## | 663/820 [00:08<00:02, 59.37it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m82%|########1 | 671/820 [00:08<00:02, 63.42it/s, now=None]t: 83%|########2 | 678/820 [00:08<00:02, 61.95it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 84%|########3 | 685/820 [00:08<00:02, 62.49it/s, now=None]t: 84%|########4 | 692/820 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:09<00:02, 62.57it/s, now=None]t: 85%|########5 | 699/820 [00:09<00:01, 63.71it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m86%|########6 | 706/820 [00:09<00:01, 64.65it/s, now=None]t: 87%|########7 | 714/820 [00:09<00:01, 65.82it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 88%|########7 | 721/820 [00:09<00:01, 65.85it/s, now=None]t: 89%|########8 | 729/820 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:09<00:01, 64.37it/s, now=None]t: 90%|########9 | 736/820 [00:09<00:01, 65.42it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m91%|######### | 745/820 [00:09<00:01, 70.02it/s, now=None]t: 92%|#########1| 753/820 [00:09<00:00, 69.63it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 93%|#########2| 761/820 [00:10<00:00, 70.53it/s, now=None]t: 94%|#########3| 769/820 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:10<00:00, 72.95it/s, now=None]t: 95%|#########4| 777/820 [00:10<00:00, 72.42it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m96%|#########5| 785/820 [00:10<00:00, 72.45it/s, now=None]t: 97%|#########6| 793/820 [00:10<00:00, 71.54it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 98%|#########7| 801/820 [00:10<00:00, 70.71it/s, now=None]t: 99%|#########8| 809/820 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:10<00:00, 72.52it/s, now=None]t: 100%|#########9| 818/820 [00:10<00:00, 75.42it/s, now=None] \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mMoviepy - Done !\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mMoviepy - video ready cropped_clip.mkv\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mNone\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  Output truncated. Showing the last 2000 characters. Adjust via `interpreter.max_output_chars`.                   \n                                                                                                                   \n  #2  | 597/820 [00:07<00:03, 69.95it/s, now=None]t:  74%|#######3  | 605/820 [00:07<00:03, 64.47it/s,             \n  now=None]t:  75%|#######4  | 612/820 [00:07<00:03, 62.44it/s, now=None]t:  75%|#######5  | 619/820               \n  [00:07<00:03, 64.15it/s, now=None]t:  76%|#######6  | 626/820 [00:08<00:03, 58.65it/s, now=None]t:               \n  77%|#######7  | 633/820 [00:08<00:03, 59.87it/s, now=None]t:  78%|#######8  | 640/820 [00:08<00:03, 58.11it/s,   \n  now=None]t:  79%|#######8  | 647/820 [00:08<00:02, 58.78it/s, now=None]t:  80%|#######9  | 655/820               \n  [00:08<00:02, 60.11it/s, now=None]t:  81%|########  | 663/820 [00:08<00:02, 59.37it/s, now=None]t:               \n  82%|########1 | 671/820 [00:08<00:02, 63.42it/s, now=None]t:  83%|########2 | 678/820 [00:08<00:02, 61.95it/s,   \n  now=None]t:  84%|########3 | 685/820 [00:08<00:02, 62.49it/s, now=None]t:  84%|########4 | 692/820               \n  [00:09<00:02, 62.57it/s, now=None]t:  85%|########5 | 699/820 [00:09<00:01, 63.71it/s, now=None]t:               \n  86%|########6 | 706/820 [00:09<00:01, 64.65it/s, now=None]t:  87%|########7 | 714/820 [00:09<00:01, 65.82it/s,   \n  now=None]t:  88%|########7 | 721/820 [00:09<00:01, 65.85it/s, now=None]t:  89%|########8 | 729/820               \n  [00:09<00:01, 64.37it/s, now=None]t:  90%|########9 | 736/820 [00:09<00:01, 65.42it/s, now=None]t:               \n  91%|######### | 745/820 [00:09<00:01, 70.02it/s, now=None]t:  92%|#########1| 753/820 [00:09<00:00, 69.63it/s,   \n  now=None]t:  93%|#########2| 761/820 [00:10<00:00, 70.53it/s, now=None]t:  94%|#########3| 769/820               \n  [00:10<00:00, 72.95it/s, now=None]t:  95%|#########4| 777/820 [00:10<00:00, 72.42it/s, now=None]t:               \n  96%|#########5| 785/820 [00:10<00:00, 72.45it/s, now=None]t:  97%|#########6| 793/820 [00:10<00:00, 71.54it/s,   \n  now=None]t:  98%|#########7| 801/820 [00:10<00:00, 70.71it/s, now=None]t:  99%|#########8| 809/820               \n  [00:10<00:00, 72.52it/s, now=None]t: 100%|#########9| 818/820 [00:10<00:00, 75.42it/s, now=None]                 \n  Moviepy - Done !                                                                                                 \n  Moviepy - video ready cropped_clip.mkv                                                                           \n  None                                                                                                             \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "c9e6274288f640af92d3224b0393390a": { + "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 + } + }, + "2cf83094efd74450a44684621cec09ba": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_9c56ce6494ae4d13a9c652e93d08d34f", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": " \n The video has been successfully cropped and saved as 'cropped_clip.mkv'. The next step is to extract the audio \n from the original clip and add it to the cropped video. Let's do that. \n \n", + "text/html": "
                                                                                                                   \n  The video has been successfully cropped and saved as 'cropped_clip.mkv'. The next step is to extract the audio   \n  from the original clip and add it to the cropped video. Let's do that.                                           \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "9c56ce6494ae4d13a9c652e93d08d34f": { + "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 + } + }, + "5b13f6f7553f4ef69b4deb45734b3906": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_62b5f3bf807f4e17a0fee6e73b19b50f", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mfrom\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mmoviepy\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34meditor\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34mimport\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mAudioFileClip\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Extract the audio from the original clip\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34maudio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mAudioFileClip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34moriginal_video.mkv\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34msubclip\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mstart_time\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mend_time\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Set the audio of the new clip\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcropped_clip_with_audio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mnew_clip\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mset_audio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34maudio\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;117;113;94;48;2;39;40;34m# Write the new video clip with audio to a file\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcropped_clip_with_audio\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwrite_videofile\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mcropped_clip_with_audio.mkv\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcodec\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mlibx264\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  from moviepy.editor import AudioFileClip                                                                         \n                                                                                                                   \n  # Extract the audio from the original clip                                                                       \n  audio = AudioFileClip('original_video.mkv').subclip(start_time, end_time)                                        \n                                                                                                                   \n  # Set the audio of the new clip                                                                                  \n  cropped_clip_with_audio = new_clip.set_audio(audio)                                                              \n                                                                                                                   \n  # Write the new video clip with audio to a file                                                                  \n  cropped_clip_with_audio.write_videofile('cropped_clip_with_audio.mkv', codec='libx264')                          \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "62b5f3bf807f4e17a0fee6e73b19b50f": { + "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 + } + }, + "4d37ead524de46239d479f3d5660af3f": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_fd62af45f4c74a9a93a93ed62415f62f", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mOutput truncated. Showing the last 2000 characters. Adjust via `interpreter.max_output_chars`.\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m20 [00:08<00:03, 63.24it/s, now=None]t: 74%|#######4 | 607/820 [00:08<00:03, 67.05it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m75%|#######4 | 614/820 [00:08<00:03, 61.46it/s, now=None]t: 76%|#######5 | 621/820 [00:08<00:03, 60.96it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 77%|#######6 | 628/820 [00:08<00:03, 58.23it/s, now=None]t: 77%|#######7 | 634/820 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:08<00:03, 56.61it/s, now=None]t: 78%|#######8 | 640/820 [00:09<00:03, 54.12it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m79%|#######8 | 646/820 [00:09<00:03, 55.23it/s, now=None]t: 80%|#######9 | 654/820 [00:09<00:02, 61.50it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 81%|######## | 661/820 [00:09<00:02, 60.69it/s, now=None]t: 81%|########1 | 668/820 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:09<00:02, 60.97it/s, now=None]t: 82%|########2 | 675/820 [00:09<00:02, 60.73it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m83%|########3 | 684/820 [00:09<00:02, 62.14it/s, now=None]t: 84%|########4 | 692/820 [00:09<00:02, 62.95it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 85%|########5 | 699/820 [00:10<00:01, 62.96it/s, now=None]t: 86%|########6 | 706/820 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:10<00:01, 63.58it/s, now=None]t: 87%|########7 | 714/820 [00:10<00:01, 67.93it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m88%|########7 | 721/820 [00:10<00:01, 68.32it/s, now=None]t: 89%|########8 | 728/820 [00:10<00:01, 66.30it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 90%|########9 | 737/820 [00:10<00:01, 70.97it/s, now=None]t: 91%|######### | 745/820 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:10<00:01, 66.52it/s, now=None]t: 92%|#########1| 753/820 [00:10<00:00, 69.11it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m93%|#########2| 762/820 [00:10<00:00, 72.09it/s, now=None]t: 94%|#########3| 770/820 [00:11<00:00, 73.50it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 95%|#########4| 778/820 [00:11<00:00, 75.04it/s, now=None]t: 96%|#########5| 787/820 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:11<00:00, 77.95it/s, now=None]t: 97%|#########6| 795/820 [00:11<00:00, 77.10it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m98%|#########8| 804/820 [00:11<00:00, 77.64it/s, now=None]t: 99%|#########9| 812/820 [00:11<00:00, 75.04it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 100%|##########| 820/820 [00:11<00:00, 74.23it/s, now=None] \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mMoviepy - Done !\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mMoviepy - video ready cropped_clip_with_audio.mkv\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mNone\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  Output truncated. Showing the last 2000 characters. Adjust via `interpreter.max_output_chars`.                   \n                                                                                                                   \n  20 [00:08<00:03, 63.24it/s, now=None]t:  74%|#######4  | 607/820 [00:08<00:03, 67.05it/s, now=None]t:            \n  75%|#######4  | 614/820 [00:08<00:03, 61.46it/s, now=None]t:  76%|#######5  | 621/820 [00:08<00:03, 60.96it/s,   \n  now=None]t:  77%|#######6  | 628/820 [00:08<00:03, 58.23it/s, now=None]t:  77%|#######7  | 634/820               \n  [00:08<00:03, 56.61it/s, now=None]t:  78%|#######8  | 640/820 [00:09<00:03, 54.12it/s, now=None]t:               \n  79%|#######8  | 646/820 [00:09<00:03, 55.23it/s, now=None]t:  80%|#######9  | 654/820 [00:09<00:02, 61.50it/s,   \n  now=None]t:  81%|########  | 661/820 [00:09<00:02, 60.69it/s, now=None]t:  81%|########1 | 668/820               \n  [00:09<00:02, 60.97it/s, now=None]t:  82%|########2 | 675/820 [00:09<00:02, 60.73it/s, now=None]t:               \n  83%|########3 | 684/820 [00:09<00:02, 62.14it/s, now=None]t:  84%|########4 | 692/820 [00:09<00:02, 62.95it/s,   \n  now=None]t:  85%|########5 | 699/820 [00:10<00:01, 62.96it/s, now=None]t:  86%|########6 | 706/820               \n  [00:10<00:01, 63.58it/s, now=None]t:  87%|########7 | 714/820 [00:10<00:01, 67.93it/s, now=None]t:               \n  88%|########7 | 721/820 [00:10<00:01, 68.32it/s, now=None]t:  89%|########8 | 728/820 [00:10<00:01, 66.30it/s,   \n  now=None]t:  90%|########9 | 737/820 [00:10<00:01, 70.97it/s, now=None]t:  91%|######### | 745/820               \n  [00:10<00:01, 66.52it/s, now=None]t:  92%|#########1| 753/820 [00:10<00:00, 69.11it/s, now=None]t:               \n  93%|#########2| 762/820 [00:10<00:00, 72.09it/s, now=None]t:  94%|#########3| 770/820 [00:11<00:00, 73.50it/s,   \n  now=None]t:  95%|#########4| 778/820 [00:11<00:00, 75.04it/s, now=None]t:  96%|#########5| 787/820               \n  [00:11<00:00, 77.95it/s, now=None]t:  97%|#########6| 795/820 [00:11<00:00, 77.10it/s, now=None]t:               \n  98%|#########8| 804/820 [00:11<00:00, 77.64it/s, now=None]t:  99%|#########9| 812/820 [00:11<00:00, 75.04it/s,   \n  now=None]t: 100%|##########| 820/820 [00:11<00:00, 74.23it/s, now=None]                                          \n  Moviepy - Done !                                                                                                 \n  Moviepy - video ready cropped_clip_with_audio.mkv                                                                \n  None                                                                                                             \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "fd62af45f4c74a9a93a93ed62415f62f": { + "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 + } + }, + "5ca82a2033fb4b0c93ba168d64f6ef9e": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_6c4cadeb9ad74ad5984cb26042f1b36a", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": " \n I have successfully created the TikTok clip. The video has been cropped to a 9:16 aspect ratio around the face \n in the frame, with the motion between confident face detections smoothly averaged out. The audio from the \n original video has been added back in. The final video file is named 'cropped_clip_with_audio.mkv'. \n \n", + "text/html": "
                                                                                                                   \n  I have successfully created the TikTok clip. The video has been cropped to a 9:16 aspect ratio around the face   \n  in the frame, with the motion between confident face detections smoothly averaged out. The audio from the        \n  original video has been added back in. The final video file is named 'cropped_clip_with_audio.mkv'.              \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "6c4cadeb9ad74ad5984cb26042f1b36a": { + "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 + } + }, + "647b95ec7a5b40979432289c033ccd79": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_85e5e774473d4d629a91899373d2602b", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcropped_clip_with_audio\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m.\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mwrite_videofile\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mcropped_clip_with_audio.mp4\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m,\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mcodec\u001b[0m\u001b[38;2;249;38;114;48;2;39;40;34m=\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mlibx264\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m'\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\u001b[48;2;39;39;34m \u001b[0m\n\u001b[48;2;39;39;34m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  cropped_clip_with_audio.write_videofile('cropped_clip_with_audio.mp4', codec='libx264')                          \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "85e5e774473d4d629a91899373d2602b": { + "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 + } + }, + "82db7edca0184c31a689eb8ad4785611": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_5988deb63066470bb3225344289929e9", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mOutput truncated. Showing the last 2000 characters. Adjust via `interpreter.max_output_chars`.\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m20 [00:06<00:03, 73.39it/s, now=None]t: 69%|######9 | 569/820 [00:07<00:03, 78.56it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m70%|####### | 578/820 [00:07<00:03, 76.98it/s, now=None]t: 72%|#######1 | 588/820 [00:07<00:02, 81.45it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 73%|#######2 | 597/820 [00:07<00:02, 82.24it/s, now=None]t: 74%|#######3 | 606/820 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:07<00:02, 75.18it/s, now=None]t: 75%|#######5 | 615/820 [00:07<00:02, 76.71it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m76%|#######5 | 623/820 [00:07<00:02, 74.47it/s, now=None]t: 77%|#######7 | 632/820 [00:07<00:02, 76.20it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 78%|#######8 | 640/820 [00:08<00:02, 75.49it/s, now=None]t: 79%|#######9 | 648/820 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:08<00:02, 76.29it/s, now=None]t: 80%|######## | 656/820 [00:08<00:02, 74.20it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m81%|######## | 664/820 [00:08<00:02, 75.04it/s, now=None]t: 82%|########1 | 672/820 [00:08<00:02, 72.15it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 83%|########2 | 680/820 [00:08<00:01, 74.17it/s, now=None]t: 84%|########4 | 689/820 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:08<00:01, 75.94it/s, now=None]t: 85%|########5 | 697/820 [00:08<00:01, 75.41it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m86%|########5 | 705/820 [00:08<00:01, 75.99it/s, now=None]t: 87%|########7 | 714/820 [00:08<00:01, 78.50it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 88%|########8 | 722/820 [00:09<00:01, 77.38it/s, now=None]t: 89%|########9 | 732/820 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:09<00:01, 82.65it/s, now=None]t: 90%|######### | 741/820 [00:09<00:01, 71.51it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m92%|#########1| 751/820 [00:09<00:00, 77.55it/s, now=None]t: 93%|#########2| 760/820 [00:09<00:00, 78.10it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 94%|#########3| 768/820 [00:09<00:00, 73.98it/s, now=None]t: 95%|#########4| 777/820 \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m[00:09<00:00, 76.13it/s, now=None]t: 96%|#########5| 786/820 [00:09<00:00, 78.54it/s, now=None]t: \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m97%|#########6| 794/820 [00:10<00:00, 74.12it/s, now=None]t: 98%|#########7| 802/820 [00:10<00:00, 74.97it/s, \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mnow=None]t: 99%|#########9| 812/820 [00:10<00:00, 79.79it/s, now=None] \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mMoviepy - Done !\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mMoviepy - video ready cropped_clip_with_audio.mp4\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55mNone\u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n\u001b[38;2;255;255;255;48;2;59;59;55m \u001b[0m\n", + "text/html": "
                                                                                                                   \n  Output truncated. Showing the last 2000 characters. Adjust via `interpreter.max_output_chars`.                   \n                                                                                                                   \n  20 [00:06<00:03, 73.39it/s, now=None]t:  69%|######9   | 569/820 [00:07<00:03, 78.56it/s, now=None]t:            \n  70%|#######   | 578/820 [00:07<00:03, 76.98it/s, now=None]t:  72%|#######1  | 588/820 [00:07<00:02, 81.45it/s,   \n  now=None]t:  73%|#######2  | 597/820 [00:07<00:02, 82.24it/s, now=None]t:  74%|#######3  | 606/820               \n  [00:07<00:02, 75.18it/s, now=None]t:  75%|#######5  | 615/820 [00:07<00:02, 76.71it/s, now=None]t:               \n  76%|#######5  | 623/820 [00:07<00:02, 74.47it/s, now=None]t:  77%|#######7  | 632/820 [00:07<00:02, 76.20it/s,   \n  now=None]t:  78%|#######8  | 640/820 [00:08<00:02, 75.49it/s, now=None]t:  79%|#######9  | 648/820               \n  [00:08<00:02, 76.29it/s, now=None]t:  80%|########  | 656/820 [00:08<00:02, 74.20it/s, now=None]t:               \n  81%|########  | 664/820 [00:08<00:02, 75.04it/s, now=None]t:  82%|########1 | 672/820 [00:08<00:02, 72.15it/s,   \n  now=None]t:  83%|########2 | 680/820 [00:08<00:01, 74.17it/s, now=None]t:  84%|########4 | 689/820               \n  [00:08<00:01, 75.94it/s, now=None]t:  85%|########5 | 697/820 [00:08<00:01, 75.41it/s, now=None]t:               \n  86%|########5 | 705/820 [00:08<00:01, 75.99it/s, now=None]t:  87%|########7 | 714/820 [00:08<00:01, 78.50it/s,   \n  now=None]t:  88%|########8 | 722/820 [00:09<00:01, 77.38it/s, now=None]t:  89%|########9 | 732/820               \n  [00:09<00:01, 82.65it/s, now=None]t:  90%|######### | 741/820 [00:09<00:01, 71.51it/s, now=None]t:               \n  92%|#########1| 751/820 [00:09<00:00, 77.55it/s, now=None]t:  93%|#########2| 760/820 [00:09<00:00, 78.10it/s,   \n  now=None]t:  94%|#########3| 768/820 [00:09<00:00, 73.98it/s, now=None]t:  95%|#########4| 777/820               \n  [00:09<00:00, 76.13it/s, now=None]t:  96%|#########5| 786/820 [00:09<00:00, 78.54it/s, now=None]t:               \n  97%|#########6| 794/820 [00:10<00:00, 74.12it/s, now=None]t:  98%|#########7| 802/820 [00:10<00:00, 74.97it/s,   \n  now=None]t:  99%|#########9| 812/820 [00:10<00:00, 79.79it/s, now=None]                                          \n  Moviepy - Done !                                                                                                 \n  Moviepy - video ready cropped_clip_with_audio.mp4                                                                \n  None                                                                                                             \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "5988deb63066470bb3225344289929e9": { + "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 + } + }, + "4bb6ea2b3ce6407cb1b85c32ad828415": { + "model_module": "@jupyter-widgets/output", + "model_name": "OutputModel", + "model_module_version": "1.0.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_09287fc3783049898cdb624d0cc4bf81", + "msg_id": "", + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": " \n I have successfully converted the video to an mp4 format. The final video file is named \n 'cropped_clip_with_audio.mp4'. \n \n", + "text/html": "
                                                                                                                   \n  I have successfully converted the video to an mp4 format. The final video file is named                          \n  'cropped_clip_with_audio.mp4'.                                                                                   \n                                                                                                                   \n
\n" + }, + "metadata": {} + } + ] + } + }, + "09287fc3783049898cdb624d0cc4bf81": { + "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 + } + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 000000000..de97eb14b --- /dev/null +++ b/examples/README.md @@ -0,0 +1,18 @@ +# Open Interpreter Examples + +This directory contains various examples demonstrating how to use Open Interpreter in different scenarios and configurations. Each example is designed to provide a practical guide to integrating and leveraging Open Interpreter's capabilities in your projects. + +## Overview + +- **Terminal Usage**: Examples of how to use Open Interpreter directly from your terminal. +- **Python Integration**: How to integrate Open Interpreter into your Python scripts for more complex workflows. +- **Custom Profiles**: Examples of using YAML files for setting default behaviors and configurations. + +## Colab Notebooks + +[Google Colab](https://colab.google/) provides a sandboxed development environment for you to run code in. Here are some Jupyter Notebooks on Colab that you can try: + +Local 3: [![Local 3](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1jWKKwVCQneCTB5VNQNWO0Wxqg1vG_E1T#scrollTo=13ISLtY9_v7g) +Interactive Demo: [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1WKmRXZgsErej2xUriKzxrEAXdxMSgWbb?usp=sharing) + +Voice Interface: [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1NojYGHDgxH6Y1G1oxThEBBb2AtyODBIK) diff --git a/examples/local3.ipynb b/examples/local3.ipynb new file mode 100644 index 000000000..9b4dc898b --- /dev/null +++ b/examples/local3.ipynb @@ -0,0 +1,126 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook replicates running Open Interpreter locally and uses Llama3 via llamafile" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "## Download LLama3\n", + "\n", + "# Download the Meta-Llama-3-8B-Instruct.llamafile\n", + "!curl -L -o Meta-Llama-3-8B-Instruct.Q5_K_M.llamafile 'https://huggingface.co/Mozilla/Meta-Llama-3-8B-Instruct-llamafile/resolve/main/Meta-Llama-3-8B-Instruct.Q5_K_M.llamafile?download=true'\n", + "\n", + "# Make the downloaded file executable\n", + "!chmod +x Meta-Llama-3-8B-Instruct.Q5_K_M.llamafile" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "## Install OI\n", + "\n", + "!pip install open-interpreter --quiet\n", + "!pip install opencv-python --quiet" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "## Configure OI\n", + "\n", + "import cv2\n", + "import subprocess\n", + "from interpreter import interpreter\n", + "\n", + "interpreter.offline = True\n", + "\n", + "interpreter.llm.model = \"openai/local\" # Tells OI to use an OpenAI-compatible server\n", + "interpreter.llm.api_key = \"dummy_key\"\n", + "interpreter.llm.api_base = \"http://localhost:8081/v1\"\n", + "interpreter.llm.context_window = 7000\n", + "interpreter.llm.max_tokens = 1000\n", + "interpreter.llm.supports_functions = False" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "## Start server, run OI\n", + "\n", + "import subprocess\n", + "import threading\n", + "import os\n", + "\n", + "def read_output(process):\n", + " while True:\n", + " output = process.stdout.readline()\n", + " if output == b'' and process.poll() is not None:\n", + " break\n", + " if output:\n", + " print(output.decode().strip())\n", + "\n", + "# Check if the file exists and has execute permissions\n", + "file_path = os.path.abspath('Meta-Llama-3-8B-Instruct.Q5_K_M.llamafile')\n", + "\n", + "# Why are the arguments not being used??\n", + "command = [file_path, \"--nobrowser\", \"-ngl\", \"9999\"]\n", + "print(command)\n", + "\n", + "# Setting up the Popen call with stderr redirected to stdout\n", + "process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)\n", + "\n", + "# Thread to handle the output asynchronously\n", + "thread = threading.Thread(target=read_output, args=(process,))\n", + "thread.start()\n", + "\n", + "# Here you can do other tasks concurrently\n", + "# For example:\n", + "interpreter.chat()\n", + "\n", + "# Wait for the thread to finish if the process completes\n", + "thread.join()\n", + "\n", + "# Ensure the process has completed\n", + "process.wait()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "oi", + "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.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}