diff --git "a/Demo.ipynb" "b/Demo.ipynb" new file mode 100644--- /dev/null +++ "b/Demo.ipynb" @@ -0,0 +1,1234 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: selenium in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (4.13.0)\n", + "Requirement already satisfied: urllib3<3,>=1.26 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from urllib3[socks]<3,>=1.26->selenium) (2.2.2)\n", + "Requirement already satisfied: trio~=0.17 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from selenium) (0.22.2)\n", + "Requirement already satisfied: trio-websocket~=0.9 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from selenium) (0.11.1)\n", + "Requirement already satisfied: certifi>=2021.10.8 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from selenium) (2023.5.7)\n", + "Requirement already satisfied: attrs>=20.1.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium) (23.1.0)\n", + "Requirement already satisfied: sortedcontainers in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium) (2.4.0)\n", + "Requirement already satisfied: idna in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium) (2.10)\n", + "Requirement already satisfied: outcome in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium) (1.2.0)\n", + "Requirement already satisfied: sniffio in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium) (1.3.0)\n", + "Requirement already satisfied: cffi>=1.14 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium) (1.15.1)\n", + "Requirement already satisfied: exceptiongroup>=1.0.0rc9 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium) (1.1.3)\n", + "Requirement already satisfied: wsproto>=0.14 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio-websocket~=0.9->selenium) (1.2.0)\n", + "Requirement already satisfied: pysocks!=1.5.7,<2.0,>=1.5.6 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from urllib3[socks]<3,>=1.26->selenium) (1.7.1)\n", + "Requirement already satisfied: pycparser in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from cffi>=1.14->trio~=0.17->selenium) (2.21)\n", + "Requirement already satisfied: h11<1,>=0.9.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from wsproto>=0.14->trio-websocket~=0.9->selenium) (0.12.0)\n", + "Note: you may need to restart the kernel to use updated packages.\n", + "Requirement already satisfied: selenium in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (4.13.0)\n", + "Requirement already satisfied: chromedriver-autoinstaller in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (0.6.2)\n", + "Requirement already satisfied: urllib3<3,>=1.26 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from urllib3[socks]<3,>=1.26->selenium) (2.2.2)\n", + "Requirement already satisfied: trio~=0.17 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from selenium) (0.22.2)\n", + "Requirement already satisfied: trio-websocket~=0.9 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from selenium) (0.11.1)\n", + "Requirement already satisfied: certifi>=2021.10.8 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from selenium) (2023.5.7)\n", + "Requirement already satisfied: attrs>=20.1.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium) (23.1.0)\n", + "Requirement already satisfied: sortedcontainers in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium) (2.4.0)\n", + "Requirement already satisfied: idna in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium) (2.10)\n", + "Requirement already satisfied: outcome in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium) (1.2.0)\n", + "Requirement already satisfied: sniffio in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium) (1.3.0)\n", + "Requirement already satisfied: cffi>=1.14 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium) (1.15.1)\n", + "Requirement already satisfied: exceptiongroup>=1.0.0rc9 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium) (1.1.3)\n", + "Requirement already satisfied: wsproto>=0.14 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio-websocket~=0.9->selenium) (1.2.0)\n", + "Requirement already satisfied: pysocks!=1.5.7,<2.0,>=1.5.6 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from urllib3[socks]<3,>=1.26->selenium) (1.7.1)\n", + "Requirement already satisfied: pycparser in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from cffi>=1.14->trio~=0.17->selenium) (2.21)\n", + "Requirement already satisfied: h11<1,>=0.9.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from wsproto>=0.14->trio-websocket~=0.9->selenium) (0.12.0)\n", + "Note: you may need to restart the kernel to use updated packages.\n", + "Requirement already satisfied: webdriver-manager in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (4.0.1)\n", + "Requirement already satisfied: requests in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from webdriver-manager) (2.32.3)\n", + "Requirement already satisfied: python-dotenv in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from webdriver-manager) (0.21.1)\n", + "Requirement already satisfied: packaging in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from webdriver-manager) (23.2)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from requests->webdriver-manager) (3.2.0)\n", + "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from requests->webdriver-manager) (2.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from requests->webdriver-manager) (2.2.2)\n", + "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from requests->webdriver-manager) (2023.5.7)\n", + "Note: you may need to restart the kernel to use updated packages.\n", + "Requirement already satisfied: undetected-chromedriver in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (3.5.5)\n", + "Requirement already satisfied: selenium>=4.9.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from undetected-chromedriver) (4.13.0)\n", + "Requirement already satisfied: requests in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from undetected-chromedriver) (2.32.3)\n", + "Requirement already satisfied: websockets in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from undetected-chromedriver) (11.0.3)\n", + "Requirement already satisfied: urllib3<3,>=1.26 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from urllib3[socks]<3,>=1.26->selenium>=4.9.0->undetected-chromedriver) (2.2.2)\n", + "Requirement already satisfied: trio~=0.17 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from selenium>=4.9.0->undetected-chromedriver) (0.22.2)\n", + "Requirement already satisfied: trio-websocket~=0.9 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from selenium>=4.9.0->undetected-chromedriver) (0.11.1)\n", + "Requirement already satisfied: certifi>=2021.10.8 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from selenium>=4.9.0->undetected-chromedriver) (2023.5.7)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from requests->undetected-chromedriver) (3.2.0)\n", + "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from requests->undetected-chromedriver) (2.10)\n", + "Requirement already satisfied: attrs>=20.1.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium>=4.9.0->undetected-chromedriver) (23.1.0)\n", + "Requirement already satisfied: sortedcontainers in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium>=4.9.0->undetected-chromedriver) (2.4.0)\n", + "Requirement already satisfied: outcome in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium>=4.9.0->undetected-chromedriver) (1.2.0)\n", + "Requirement already satisfied: sniffio in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium>=4.9.0->undetected-chromedriver) (1.3.0)\n", + "Requirement already satisfied: cffi>=1.14 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium>=4.9.0->undetected-chromedriver) (1.15.1)\n", + "Requirement already satisfied: exceptiongroup>=1.0.0rc9 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio~=0.17->selenium>=4.9.0->undetected-chromedriver) (1.1.3)\n", + "Requirement already satisfied: wsproto>=0.14 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from trio-websocket~=0.9->selenium>=4.9.0->undetected-chromedriver) (1.2.0)\n", + "Requirement already satisfied: pysocks!=1.5.7,<2.0,>=1.5.6 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from urllib3[socks]<3,>=1.26->selenium>=4.9.0->undetected-chromedriver) (1.7.1)\n", + "Requirement already satisfied: pycparser in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from cffi>=1.14->trio~=0.17->selenium>=4.9.0->undetected-chromedriver) (2.21)\n", + "Requirement already satisfied: h11<1,>=0.9.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from wsproto>=0.14->trio-websocket~=0.9->selenium>=4.9.0->undetected-chromedriver) (0.12.0)\n", + "Note: you may need to restart the kernel to use updated packages.\n", + "Requirement already satisfied: scikit-image in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (0.22.0)\n", + "Requirement already satisfied: numpy>=1.22 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from scikit-image) (1.24.3)\n", + "Requirement already satisfied: scipy>=1.8 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from scikit-image) (1.11.2)\n", + "Requirement already satisfied: networkx>=2.8 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from scikit-image) (3.1)\n", + "Requirement already satisfied: pillow>=9.0.1 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from scikit-image) (10.3.0)\n", + "Requirement already satisfied: imageio>=2.27 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from scikit-image) (2.31.5)\n", + "Requirement already satisfied: tifffile>=2022.8.12 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from scikit-image) (2023.9.26)\n", + "Requirement already satisfied: packaging>=21 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from scikit-image) (23.2)\n", + "Requirement already satisfied: lazy_loader>=0.3 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from scikit-image) (0.3)\n", + "Note: you may need to restart the kernel to use updated packages.\n", + "Requirement already satisfied: user_agent in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (0.1.10)\n", + "Requirement already satisfied: six in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from user_agent) (1.16.0)\n", + "Note: you may need to restart the kernel to use updated packages.\n", + "Requirement already satisfied: pyautogui in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (0.9.54)\n", + "Requirement already satisfied: pymsgbox in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from pyautogui) (1.0.9)\n", + "Requirement already satisfied: pytweening>=1.0.4 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from pyautogui) (1.2.0)\n", + "Requirement already satisfied: pyscreeze>=0.1.21 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from pyautogui) (0.1.30)\n", + "Requirement already satisfied: pygetwindow>=0.0.5 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from pyautogui) (0.0.9)\n", + "Requirement already satisfied: mouseinfo in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from pyautogui) (0.1.3)\n", + "Requirement already satisfied: pyrect in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from pygetwindow>=0.0.5->pyautogui) (0.2.0)\n", + "Requirement already satisfied: Pillow>=9.2.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from pyscreeze>=0.1.21->pyautogui) (10.3.0)\n", + "Requirement already satisfied: pyperclip in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from mouseinfo->pyautogui) (1.8.2)\n", + "Note: you may need to restart the kernel to use updated packages.\n", + "Requirement already satisfied: pillow in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (10.3.0)\n", + "Note: you may need to restart the kernel to use updated packages.\n", + "Requirement already satisfied: gradio in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (4.37.2)\n", + "Requirement already satisfied: aiofiles<24.0,>=22.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (23.2.1)\n", + "Requirement already satisfied: altair<6.0,>=4.2.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (5.0.1)\n", + "Requirement already satisfied: fastapi in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (0.111.0)\n", + "Requirement already satisfied: ffmpy in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (0.3.2)\n", + "Requirement already satisfied: gradio-client==1.0.2 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (1.0.2)\n", + "Requirement already satisfied: httpx>=0.24.1 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (0.25.1)\n", + "Requirement already satisfied: huggingface-hub>=0.19.3 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (0.23.4)\n", + "Requirement already satisfied: importlib-resources<7.0,>=1.3 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (6.1.0)\n", + "Requirement already satisfied: jinja2<4.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (3.1.2)\n", + "Requirement already satisfied: markupsafe~=2.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (2.1.3)\n", + "Requirement already satisfied: matplotlib~=3.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (3.7.2)\n", + "Requirement already satisfied: numpy<3.0,>=1.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (1.24.3)\n", + "Requirement already satisfied: orjson~=3.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (3.10.3)\n", + "Requirement already satisfied: packaging in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (23.2)\n", + "Requirement already satisfied: pandas<3.0,>=1.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (2.0.2)\n", + "Requirement already satisfied: pillow<11.0,>=8.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (10.3.0)\n", + "Requirement already satisfied: pydantic>=2.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (2.7.4)\n", + "Requirement already satisfied: pydub in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (0.25.1)\n", + "Requirement already satisfied: python-multipart>=0.0.9 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (0.0.9)\n", + "Requirement already satisfied: pyyaml<7.0,>=5.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (6.0.1)\n", + "Requirement already satisfied: ruff>=0.2.2 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (0.4.10)\n", + "Requirement already satisfied: semantic-version~=2.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (2.10.0)\n", + "Requirement already satisfied: tomlkit==0.12.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (0.12.0)\n", + "Requirement already satisfied: typer<1.0,>=0.12 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (0.12.3)\n", + "Requirement already satisfied: typing-extensions~=4.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (4.12.1)\n", + "Requirement already satisfied: urllib3~=2.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (2.2.2)\n", + "Requirement already satisfied: uvicorn>=0.14.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio) (0.30.1)\n", + "Requirement already satisfied: fsspec in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio-client==1.0.2->gradio) (2023.9.2)\n", + "Requirement already satisfied: websockets<12.0,>=10.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gradio-client==1.0.2->gradio) (11.0.3)\n", + "Requirement already satisfied: jsonschema>=3.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from altair<6.0,>=4.2.0->gradio) (3.2.0)\n", + "Requirement already satisfied: toolz in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from altair<6.0,>=4.2.0->gradio) (0.12.0)\n", + "Requirement already satisfied: anyio in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from httpx>=0.24.1->gradio) (3.7.1)\n", + "Requirement already satisfied: certifi in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from httpx>=0.24.1->gradio) (2023.5.7)\n", + "Requirement already satisfied: httpcore in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from httpx>=0.24.1->gradio) (0.13.7)\n", + "Requirement already satisfied: idna in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from httpx>=0.24.1->gradio) (2.10)\n", + "Requirement already satisfied: sniffio in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from httpx>=0.24.1->gradio) (1.3.0)\n", + "Requirement already satisfied: filelock in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from huggingface-hub>=0.19.3->gradio) (3.12.0)\n", + "Requirement already satisfied: requests in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from huggingface-hub>=0.19.3->gradio) (2.32.3)\n", + "Requirement already satisfied: tqdm>=4.42.1 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from huggingface-hub>=0.19.3->gradio) (4.66.4)\n", + "Requirement already satisfied: contourpy>=1.0.1 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from matplotlib~=3.0->gradio) (1.0.7)\n", + "Requirement already satisfied: cycler>=0.10 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from matplotlib~=3.0->gradio) (0.11.0)\n", + "Requirement already satisfied: fonttools>=4.22.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from matplotlib~=3.0->gradio) (4.39.4)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from matplotlib~=3.0->gradio) (1.4.4)\n", + "Requirement already satisfied: pyparsing<3.1,>=2.3.1 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from matplotlib~=3.0->gradio) (3.0.9)\n", + "Requirement already satisfied: python-dateutil>=2.7 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from matplotlib~=3.0->gradio) (2.8.2)\n", + "Requirement already satisfied: pytz>=2020.1 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from pandas<3.0,>=1.0->gradio) (2022.7.1)\n", + "Requirement already satisfied: tzdata>=2022.1 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from pandas<3.0,>=1.0->gradio) (2023.3)\n", + "Requirement already satisfied: annotated-types>=0.4.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from pydantic>=2.0->gradio) (0.6.0)\n", + "Requirement already satisfied: pydantic-core==2.18.4 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from pydantic>=2.0->gradio) (2.18.4)\n", + "Requirement already satisfied: click>=8.0.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from typer<1.0,>=0.12->gradio) (8.1.3)\n", + "Requirement already satisfied: shellingham>=1.3.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from typer<1.0,>=0.12->gradio) (1.5.0.post1)\n", + "Requirement already satisfied: rich>=10.11.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from typer<1.0,>=0.12->gradio) (13.4.1)\n", + "Requirement already satisfied: h11>=0.8 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from uvicorn>=0.14.0->gradio) (0.12.0)\n", + "Requirement already satisfied: starlette<0.38.0,>=0.37.2 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from fastapi->gradio) (0.37.2)\n", + "Requirement already satisfied: fastapi-cli>=0.0.2 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from fastapi->gradio) (0.0.4)\n", + "Requirement already satisfied: ujson!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0,>=4.0.1 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from fastapi->gradio) (5.10.0)\n", + "Requirement already satisfied: email_validator>=2.0.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from fastapi->gradio) (2.2.0)\n", + "Requirement already satisfied: colorama in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from click>=8.0.0->typer<1.0,>=0.12->gradio) (0.4.6)\n", + "Requirement already satisfied: dnspython>=2.0.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from email_validator>=2.0.0->fastapi->gradio) (2.6.1)\n", + "Requirement already satisfied: attrs>=17.4.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio) (23.1.0)\n", + "Requirement already satisfied: pyrsistent>=0.14.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio) (0.19.3)\n", + "Requirement already satisfied: setuptools in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio) (70.0.0)\n", + "Requirement already satisfied: six>=1.11.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio) (1.16.0)\n", + "Requirement already satisfied: markdown-it-py<3.0.0,>=2.2.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from rich>=10.11.0->typer<1.0,>=0.12->gradio) (2.2.0)\n", + "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from rich>=10.11.0->typer<1.0,>=0.12->gradio) (2.15.1)\n", + "Requirement already satisfied: exceptiongroup in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from anyio->httpx>=0.24.1->gradio) (1.1.3)\n", + "Requirement already satisfied: httptools>=0.5.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from uvicorn[standard]>=0.12.0->fastapi->gradio) (0.6.1)\n", + "Requirement already satisfied: python-dotenv>=0.13 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from uvicorn[standard]>=0.12.0->fastapi->gradio) (0.21.1)\n", + "Requirement already satisfied: watchfiles>=0.13 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from uvicorn[standard]>=0.12.0->fastapi->gradio) (0.22.0)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from requests->huggingface-hub>=0.19.3->gradio) (3.2.0)\n", + "Requirement already satisfied: mdurl~=0.1 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from markdown-it-py<3.0.0,>=2.2.0->rich>=10.11.0->typer<1.0,>=0.12->gradio) (0.1.2)\n", + "Note: you may need to restart the kernel to use updated packages.\n", + "Requirement already satisfied: pyngrok in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (7.1.6)\n", + "Requirement already satisfied: PyYAML>=5.1 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from pyngrok) (6.0.1)\n", + "Note: you may need to restart the kernel to use updated packages.\n", + "Requirement already satisfied: transformers in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (4.41.2)\n", + "Requirement already satisfied: filelock in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from transformers) (3.12.0)\n", + "Requirement already satisfied: huggingface-hub<1.0,>=0.23.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from transformers) (0.23.4)\n", + "Requirement already satisfied: numpy>=1.17 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from transformers) (1.24.3)\n", + "Requirement already satisfied: packaging>=20.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from transformers) (23.2)\n", + "Requirement already satisfied: pyyaml>=5.1 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from transformers) (6.0.1)\n", + "Requirement already satisfied: regex!=2019.12.17 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from transformers) (2023.8.8)\n", + "Requirement already satisfied: requests in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from transformers) (2.32.3)\n", + "Requirement already satisfied: tokenizers<0.20,>=0.19 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from transformers) (0.19.1)\n", + "Requirement already satisfied: safetensors>=0.4.1 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from transformers) (0.4.3)\n", + "Requirement already satisfied: tqdm>=4.27 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from transformers) (4.66.4)\n", + "Requirement already satisfied: fsspec>=2023.5.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from huggingface-hub<1.0,>=0.23.0->transformers) (2023.9.2)\n", + "Requirement already satisfied: typing-extensions>=3.7.4.3 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from huggingface-hub<1.0,>=0.23.0->transformers) (4.12.1)\n", + "Requirement already satisfied: colorama in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from tqdm>=4.27->transformers) (0.4.6)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from requests->transformers) (3.2.0)\n", + "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from requests->transformers) (2.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from requests->transformers) (2.2.2)\n", + "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from requests->transformers) (2023.5.7)\n", + "Note: you may need to restart the kernel to use updated packages.\n", + "Requirement already satisfied: torch in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (2.0.1)\n", + "Requirement already satisfied: filelock in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from torch) (3.12.0)\n", + "Requirement already satisfied: typing-extensions in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from torch) (4.12.1)\n", + "Requirement already satisfied: sympy in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from torch) (1.12)\n", + "Requirement already satisfied: networkx in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from torch) (3.1)\n", + "Requirement already satisfied: jinja2 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from torch) (3.1.2)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from jinja2->torch) (2.1.3)\n", + "Requirement already satisfied: mpmath>=0.19 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from sympy->torch) (1.3.0)\n", + "Note: you may need to restart the kernel to use updated packages.\n", + "Requirement already satisfied: pillow in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (10.3.0)\n", + "Note: you may need to restart the kernel to use updated packages.\n", + "Requirement already satisfied: gevent==22.10.2 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (22.10.2)\n", + "Requirement already satisfied: zope.event in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gevent==22.10.2) (5.0)\n", + "Requirement already satisfied: zope.interface in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gevent==22.10.2) (6.4.post2)\n", + "Requirement already satisfied: setuptools in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gevent==22.10.2) (70.0.0)\n", + "Requirement already satisfied: greenlet>=2.0.0 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gevent==22.10.2) (2.0.2)\n", + "Requirement already satisfied: cffi>=1.12.2 in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from gevent==22.10.2) (1.15.1)\n", + "Requirement already satisfied: pycparser in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from cffi>=1.12.2->gevent==22.10.2) (2.21)\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "%pip install selenium\n", + "%pip install selenium chromedriver-autoinstaller\n", + "%pip install webdriver-manager\n", + "%pip install undetected-chromedriver\n", + "%pip install scikit-image\n", + "%pip install user_agent\n", + "%pip install pyautogui\n", + "%pip install pillow\n", + "%pip install --upgrade gradio\n", + "%pip install pyngrok\n", + "%pip install transformers\n", + "%pip install torch\n", + "%pip install pillow\n", + "%pip install gevent==22.10.2\n", + "%pip install --upgrade httpx" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: httpx in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (0.25.1)\n", + "Collecting httpx\n", + " Downloading httpx-0.27.0-py3-none-any.whl.metadata (7.2 kB)\n", + "Requirement already satisfied: anyio in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from httpx) (3.7.1)\n", + "Requirement already satisfied: certifi in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from httpx) (2023.5.7)\n", + "Collecting httpcore==1.* (from httpx)\n", + " Downloading httpcore-1.0.5-py3-none-any.whl.metadata (20 kB)\n", + "Requirement already satisfied: idna in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from httpx) (2.10)\n", + "Requirement already satisfied: sniffio in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from httpx) (1.3.0)\n", + "Collecting h11<0.15,>=0.13 (from httpcore==1.*->httpx)\n", + " Downloading h11-0.14.0-py3-none-any.whl.metadata (8.2 kB)\n", + "Requirement already satisfied: exceptiongroup in c:\\users\\shash\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from anyio->httpx) (1.1.3)\n", + "Downloading httpx-0.27.0-py3-none-any.whl (75 kB)\n", + " ---------------------------------------- 0.0/75.6 kB ? eta -:--:--\n", + " ---------------------------------------- 75.6/75.6 kB 2.1 MB/s eta 0:00:00\n", + "Downloading httpcore-1.0.5-py3-none-any.whl (77 kB)\n", + " ---------------------------------------- 0.0/77.9 kB ? eta -:--:--\n", + " ------------------------------- -------- 61.4/77.9 kB ? eta -:--:--\n", + " ---------------------------------------- 77.9/77.9 kB 1.1 MB/s eta 0:00:00\n", + "Downloading h11-0.14.0-py3-none-any.whl (58 kB)\n", + " ---------------------------------------- 0.0/58.3 kB ? eta -:--:--\n", + " ---------------------------------------- 58.3/58.3 kB 3.2 MB/s eta 0:00:00\n", + "Installing collected packages: h11, httpcore, httpx\n", + " Attempting uninstall: h11\n", + " Found existing installation: h11 0.12.0\n", + " Uninstalling h11-0.12.0:\n", + " Successfully uninstalled h11-0.12.0\n", + " Attempting uninstall: httpcore\n", + " Found existing installation: httpcore 0.13.7\n", + " Uninstalling httpcore-0.13.7:\n", + " Successfully uninstalled httpcore-0.13.7\n", + " Attempting uninstall: httpx\n", + " Found existing installation: httpx 0.25.1\n", + " Uninstalling httpx-0.25.1:\n", + " Successfully uninstalled httpx-0.25.1\n", + "Successfully installed h11-0.14.0 httpcore-1.0.5 httpx-0.27.0\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "%pip install --upgrade httpx" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "from PIL import Image\n", + "import os\n", + "import random\n", + "import shutil\n", + "import re\n", + "import requests\n", + "import time\n", + "from time import sleep\n", + "import pyautogui\n", + "import base64\n", + "import undetected_chromedriver as uc\n", + "from selenium import webdriver\n", + "from selenium.webdriver.common.by import By\n", + "from selenium.webdriver.support.ui import WebDriverWait\n", + "from selenium.webdriver.support import expected_conditions as EC\n", + "from selenium.webdriver.common.action_chains import ActionChains\n", + "from selenium.webdriver.common.keys import Keys\n", + "import gradio as gr\n", + "from pyngrok import ngrok\n", + "from transformers import CLIPProcessor, CLIPModel\n", + "import torch\n", + "from transformers import AutoProcessor\n", + "from transformers import AutoProcessor, Kosmos2ForConditionalGeneration" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "ename": "RuntimeError", + "evalue": "[enforce fail at ..\\c10\\core\\impl\\alloc_cpu.cpp:72] data. DefaultCPUAllocator: not enough memory: you tried to allocate 67108864 bytes.", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mRuntimeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[2], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# Initialize Kosmos model and processor\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m model \u001b[38;5;241m=\u001b[39m \u001b[43mKosmos2ForConditionalGeneration\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_pretrained\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmicrosoft/kosmos-2-patch14-224\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[0;32m 3\u001b[0m processor \u001b[38;5;241m=\u001b[39m AutoProcessor\u001b[38;5;241m.\u001b[39mfrom_pretrained(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmicrosoft/kosmos-2-patch14-224\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\transformers\\modeling_utils.py:3626\u001b[0m, in \u001b[0;36mPreTrainedModel.from_pretrained\u001b[1;34m(cls, pretrained_model_name_or_path, config, cache_dir, ignore_mismatched_sizes, force_download, local_files_only, token, revision, use_safetensors, *model_args, **kwargs)\u001b[0m\n\u001b[0;32m 3620\u001b[0m config \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mcls\u001b[39m\u001b[38;5;241m.\u001b[39m_autoset_attn_implementation(\n\u001b[0;32m 3621\u001b[0m config, use_flash_attention_2\u001b[38;5;241m=\u001b[39muse_flash_attention_2, torch_dtype\u001b[38;5;241m=\u001b[39mtorch_dtype, device_map\u001b[38;5;241m=\u001b[39mdevice_map\n\u001b[0;32m 3622\u001b[0m )\n\u001b[0;32m 3624\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m ContextManagers(init_contexts):\n\u001b[0;32m 3625\u001b[0m \u001b[38;5;66;03m# Let's make sure we don't run the init function of buffer modules\u001b[39;00m\n\u001b[1;32m-> 3626\u001b[0m model \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mcls\u001b[39m(config, \u001b[38;5;241m*\u001b[39mmodel_args, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mmodel_kwargs)\n\u001b[0;32m 3628\u001b[0m \u001b[38;5;66;03m# make sure we use the model's config since the __init__ call might have copied it\u001b[39;00m\n\u001b[0;32m 3629\u001b[0m config \u001b[38;5;241m=\u001b[39m model\u001b[38;5;241m.\u001b[39mconfig\n", + "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\transformers\\models\\kosmos2\\modeling_kosmos2.py:1876\u001b[0m, in \u001b[0;36mKosmos2ForConditionalGeneration.__init__\u001b[1;34m(self, config)\u001b[0m\n\u001b[0;32m 1873\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, config: Kosmos2Config):\n\u001b[0;32m 1874\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(config)\n\u001b[1;32m-> 1876\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtext_model \u001b[38;5;241m=\u001b[39m \u001b[43mKosmos2TextForCausalLM\u001b[49m\u001b[43m(\u001b[49m\u001b[43mconfig\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtext_config\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1877\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mvision_model \u001b[38;5;241m=\u001b[39m Kosmos2VisionModel(config\u001b[38;5;241m.\u001b[39mvision_config)\n\u001b[0;32m 1879\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mimage_to_text_projection \u001b[38;5;241m=\u001b[39m Kosmos2ImageToTextProjection(config)\n", + "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\transformers\\models\\kosmos2\\modeling_kosmos2.py:1532\u001b[0m, in \u001b[0;36mKosmos2TextForCausalLM.__init__\u001b[1;34m(self, config)\u001b[0m\n\u001b[0;32m 1529\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, config: Kosmos2TextConfig):\n\u001b[0;32m 1530\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(config)\n\u001b[1;32m-> 1532\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmodel \u001b[38;5;241m=\u001b[39m \u001b[43mKosmos2TextTransformer\u001b[49m\u001b[43m(\u001b[49m\u001b[43mconfig\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1533\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlm_head \u001b[38;5;241m=\u001b[39m nn\u001b[38;5;241m.\u001b[39mLinear(in_features\u001b[38;5;241m=\u001b[39mconfig\u001b[38;5;241m.\u001b[39membed_dim, out_features\u001b[38;5;241m=\u001b[39mconfig\u001b[38;5;241m.\u001b[39mvocab_size, bias\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[0;32m 1535\u001b[0m \u001b[38;5;66;03m# Initialize weights and apply final processing\u001b[39;00m\n", + "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\transformers\\models\\kosmos2\\modeling_kosmos2.py:1105\u001b[0m, in \u001b[0;36mKosmos2TextTransformer.__init__\u001b[1;34m(self, config)\u001b[0m\n\u001b[0;32m 1097\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39membed_tokens \u001b[38;5;241m=\u001b[39m nn\u001b[38;5;241m.\u001b[39mEmbedding(config\u001b[38;5;241m.\u001b[39mvocab_size, config\u001b[38;5;241m.\u001b[39membed_dim, padding_idx\u001b[38;5;241m=\u001b[39mconfig\u001b[38;5;241m.\u001b[39mpad_token_id)\n\u001b[0;32m 1099\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39membed_positions \u001b[38;5;241m=\u001b[39m Kosmos2TextSinusoidalPositionalEmbedding(\n\u001b[0;32m 1100\u001b[0m num_positions\u001b[38;5;241m=\u001b[39mconfig\u001b[38;5;241m.\u001b[39mmax_position_embeddings,\n\u001b[0;32m 1101\u001b[0m embedding_dim\u001b[38;5;241m=\u001b[39mconfig\u001b[38;5;241m.\u001b[39membed_dim,\n\u001b[0;32m 1102\u001b[0m padding_idx\u001b[38;5;241m=\u001b[39mconfig\u001b[38;5;241m.\u001b[39mpad_token_id,\n\u001b[0;32m 1103\u001b[0m )\n\u001b[1;32m-> 1105\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlayers \u001b[38;5;241m=\u001b[39m nn\u001b[38;5;241m.\u001b[39mModuleList([Kosmos2TextBlock(config) \u001b[38;5;28;01mfor\u001b[39;00m _ \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(config\u001b[38;5;241m.\u001b[39mlayers)])\n\u001b[0;32m 1106\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlayer_norm \u001b[38;5;241m=\u001b[39m nn\u001b[38;5;241m.\u001b[39mLayerNorm(config\u001b[38;5;241m.\u001b[39membed_dim, config\u001b[38;5;241m.\u001b[39mlayer_norm_eps)\n\u001b[0;32m 1108\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mgradient_checkpointing \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n", + "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\transformers\\models\\kosmos2\\modeling_kosmos2.py:1105\u001b[0m, in \u001b[0;36m\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m 1097\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39membed_tokens \u001b[38;5;241m=\u001b[39m nn\u001b[38;5;241m.\u001b[39mEmbedding(config\u001b[38;5;241m.\u001b[39mvocab_size, config\u001b[38;5;241m.\u001b[39membed_dim, padding_idx\u001b[38;5;241m=\u001b[39mconfig\u001b[38;5;241m.\u001b[39mpad_token_id)\n\u001b[0;32m 1099\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39membed_positions \u001b[38;5;241m=\u001b[39m Kosmos2TextSinusoidalPositionalEmbedding(\n\u001b[0;32m 1100\u001b[0m num_positions\u001b[38;5;241m=\u001b[39mconfig\u001b[38;5;241m.\u001b[39mmax_position_embeddings,\n\u001b[0;32m 1101\u001b[0m embedding_dim\u001b[38;5;241m=\u001b[39mconfig\u001b[38;5;241m.\u001b[39membed_dim,\n\u001b[0;32m 1102\u001b[0m padding_idx\u001b[38;5;241m=\u001b[39mconfig\u001b[38;5;241m.\u001b[39mpad_token_id,\n\u001b[0;32m 1103\u001b[0m )\n\u001b[1;32m-> 1105\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlayers \u001b[38;5;241m=\u001b[39m nn\u001b[38;5;241m.\u001b[39mModuleList([\u001b[43mKosmos2TextBlock\u001b[49m\u001b[43m(\u001b[49m\u001b[43mconfig\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m _ \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(config\u001b[38;5;241m.\u001b[39mlayers)])\n\u001b[0;32m 1106\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlayer_norm \u001b[38;5;241m=\u001b[39m nn\u001b[38;5;241m.\u001b[39mLayerNorm(config\u001b[38;5;241m.\u001b[39membed_dim, config\u001b[38;5;241m.\u001b[39mlayer_norm_eps)\n\u001b[0;32m 1108\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mgradient_checkpointing \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n", + "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\transformers\\models\\kosmos2\\modeling_kosmos2.py:998\u001b[0m, in \u001b[0;36mKosmos2TextBlock.__init__\u001b[1;34m(self, config)\u001b[0m\n\u001b[0;32m 988\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mencoder_attn \u001b[38;5;241m=\u001b[39m KosmosTextAttention(\n\u001b[0;32m 989\u001b[0m config,\n\u001b[0;32m 990\u001b[0m embed_dim\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39membed_dim,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 994\u001b[0m add_inner_attn_layernorm\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[0;32m 995\u001b[0m )\n\u001b[0;32m 996\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mencoder_attn_layer_norm \u001b[38;5;241m=\u001b[39m nn\u001b[38;5;241m.\u001b[39mLayerNorm(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39membed_dim, eps\u001b[38;5;241m=\u001b[39mconfig\u001b[38;5;241m.\u001b[39mlayer_norm_eps)\n\u001b[1;32m--> 998\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mffn \u001b[38;5;241m=\u001b[39m \u001b[43mKosmos2TextFFN\u001b[49m\u001b[43m(\u001b[49m\u001b[43mconfig\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 999\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinal_layer_norm \u001b[38;5;241m=\u001b[39m nn\u001b[38;5;241m.\u001b[39mLayerNorm(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39membed_dim, eps\u001b[38;5;241m=\u001b[39mconfig\u001b[38;5;241m.\u001b[39mlayer_norm_eps)\n", + "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\transformers\\models\\kosmos2\\modeling_kosmos2.py:956\u001b[0m, in \u001b[0;36mKosmos2TextFFN.__init__\u001b[1;34m(self, config)\u001b[0m\n\u001b[0;32m 953\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mactivation_fn \u001b[38;5;241m=\u001b[39m ACT2FN[config\u001b[38;5;241m.\u001b[39mactivation_function]\n\u001b[0;32m 954\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mactivation_dropout \u001b[38;5;241m=\u001b[39m config\u001b[38;5;241m.\u001b[39mactivation_dropout\n\u001b[1;32m--> 956\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfc1 \u001b[38;5;241m=\u001b[39m \u001b[43mnn\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mLinear\u001b[49m\u001b[43m(\u001b[49m\u001b[43mconfig\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43membed_dim\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mconfig\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mffn_dim\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 957\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfc2 \u001b[38;5;241m=\u001b[39m nn\u001b[38;5;241m.\u001b[39mLinear(config\u001b[38;5;241m.\u001b[39mffn_dim, config\u001b[38;5;241m.\u001b[39membed_dim)\n\u001b[0;32m 959\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mffn_layernorm \u001b[38;5;241m=\u001b[39m nn\u001b[38;5;241m.\u001b[39mLayerNorm(config\u001b[38;5;241m.\u001b[39mffn_dim, eps\u001b[38;5;241m=\u001b[39mconfig\u001b[38;5;241m.\u001b[39mlayer_norm_eps)\n", + "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\torch\\nn\\modules\\linear.py:96\u001b[0m, in \u001b[0;36mLinear.__init__\u001b[1;34m(self, in_features, out_features, bias, device, dtype)\u001b[0m\n\u001b[0;32m 94\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39min_features \u001b[38;5;241m=\u001b[39m in_features\n\u001b[0;32m 95\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mout_features \u001b[38;5;241m=\u001b[39m out_features\n\u001b[1;32m---> 96\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mweight \u001b[38;5;241m=\u001b[39m Parameter(torch\u001b[38;5;241m.\u001b[39mempty((out_features, in_features), \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mfactory_kwargs))\n\u001b[0;32m 97\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m bias:\n\u001b[0;32m 98\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbias \u001b[38;5;241m=\u001b[39m Parameter(torch\u001b[38;5;241m.\u001b[39mempty(out_features, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mfactory_kwargs))\n", + "\u001b[1;31mRuntimeError\u001b[0m: [enforce fail at ..\\c10\\core\\impl\\alloc_cpu.cpp:72] data. DefaultCPUAllocator: not enough memory: you tried to allocate 67108864 bytes." + ] + } + ], + "source": [ + "# Initialize Kosmos model and processor\n", + "model = Kosmos2ForConditionalGeneration.from_pretrained(\"microsoft/kosmos-2-patch14-224\")\n", + "processor = AutoProcessor.from_pretrained(\"microsoft/kosmos-2-patch14-224\")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Traceback (most recent call last):\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\queueing.py\", line 541, in process_events\n", + " response = await route_utils.call_process_api(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\route_utils.py\", line 276, in call_process_api\n", + " output = await app.get_blocks().process_api(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\blocks.py\", line 1928, in process_api\n", + " result = await self.call_function(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\blocks.py\", line 1514, in call_function\n", + " prediction = await anyio.to_thread.run_sync(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\anyio\\to_thread.py\", line 56, in run_sync\n", + " return await get_async_backend().run_sync_in_worker_thread(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\anyio\\_backends\\_asyncio.py\", line 2144, in run_sync_in_worker_thread\n", + " return await future\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\anyio\\_backends\\_asyncio.py\", line 851, in run\n", + " result = context.run(func, *args)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\utils.py\", line 833, in wrapper\n", + " response = f(*args, **kwargs)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Temp\\ipykernel_32144\\2398520208.py\", line 95, in display_image\n", + " generated_image_path = process_images(prompt, image1, image2)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Temp\\ipykernel_32144\\2398520208.py\", line 67, in process_images\n", + " prompt = generate_prompt(image_names[0])\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Temp\\ipykernel_32144\\2398520208.py\", line 21, in generate_prompt\n", + " outputs = clip_model(**inputs)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\torch\\nn\\modules\\module.py\", line 1501, in _call_impl\n", + " return forward_call(*args, **kwargs)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\transformers\\models\\clip\\modeling_clip.py\", line 1118, in forward\n", + " text_outputs = self.text_model(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\torch\\nn\\modules\\module.py\", line 1501, in _call_impl\n", + " return forward_call(*args, **kwargs)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\transformers\\models\\clip\\modeling_clip.py\", line 694, in forward\n", + " raise ValueError(\"You have to specify input_ids\")\n", + "ValueError: You have to specify input_ids\n", + "Traceback (most recent call last):\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\queueing.py\", line 541, in process_events\n", + " response = await route_utils.call_process_api(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\route_utils.py\", line 276, in call_process_api\n", + " output = await app.get_blocks().process_api(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\blocks.py\", line 1928, in process_api\n", + " result = await self.call_function(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\blocks.py\", line 1514, in call_function\n", + " prediction = await anyio.to_thread.run_sync(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\anyio\\to_thread.py\", line 56, in run_sync\n", + " return await get_async_backend().run_sync_in_worker_thread(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\anyio\\_backends\\_asyncio.py\", line 2144, in run_sync_in_worker_thread\n", + " return await future\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\anyio\\_backends\\_asyncio.py\", line 851, in run\n", + " result = context.run(func, *args)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\utils.py\", line 833, in wrapper\n", + " response = f(*args, **kwargs)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Temp\\ipykernel_32144\\2398520208.py\", line 95, in display_image\n", + " generated_image_path = process_images(prompt, image1, image2)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Temp\\ipykernel_32144\\2398520208.py\", line 67, in process_images\n", + " prompt = generate_prompt(image_names[0])\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Temp\\ipykernel_32144\\2398520208.py\", line 21, in generate_prompt\n", + " outputs = clip_model(**inputs)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\torch\\nn\\modules\\module.py\", line 1501, in _call_impl\n", + " return forward_call(*args, **kwargs)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\transformers\\models\\clip\\modeling_clip.py\", line 1118, in forward\n", + " text_outputs = self.text_model(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\torch\\nn\\modules\\module.py\", line 1501, in _call_impl\n", + " return forward_call(*args, **kwargs)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\transformers\\models\\clip\\modeling_clip.py\", line 694, in forward\n", + " raise ValueError(\"You have to specify input_ids\")\n", + "ValueError: You have to specify input_ids\n" + ] + } + ], + "source": [ + "# Initialize the CLIP model and processor\n", + "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n", + "clip_model = CLIPModel.from_pretrained(\"openai/clip-vit-base-patch32\").to(device)\n", + "clip_processor = CLIPProcessor.from_pretrained(\"openai/clip-vit-base-patch32\")" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "from selenium.common.exceptions import WebDriverException\n", + "from webdriver_manager.chrome import ChromeDriverManager\n", + "\n", + "# Get the current working directory\n", + "current_dir = os.getcwd()\n", + "# Define download directory within the Midjourney folder\n", + "download_dir = os.path.join(current_dir, 'Midjourney_Visual')\n", + "if not os.path.exists(download_dir):\n", + " os.makedirs(download_dir)\n", + " \n", + "# Define Chrome options and experimental preferences\n", + "options = uc.ChromeOptions()\n", + "\n", + "options = uc.ChromeOptions()\n", + "options.add_argument('--no-sandbox')\n", + "options.add_argument('--disable-dev-shm-usage')\n", + "options.add_argument('--disable-blink-features=AutomationControlled')\n", + "options.add_argument(\"--disable-popup-blocking\")\n", + "\n", + "prefs = {\n", + " \"profile.default_content_settings.popups\": 0,\n", + " \"profile.content_settings.pattern_pairs.*.multiple-automatic-downloads\": 1,\n", + " \"download.prompt_for_download\": False,\n", + " \"download.default_directory\": download_dir\n", + "}\n", + "options.add_experimental_option(\"prefs\", prefs)\n", + "\n", + "try:\n", + " # Use webdriver_manager to automatically download and manage ChromeDriver\n", + " driver_path = ChromeDriverManager().install()\n", + " driver = uc.Chrome(options=options, driver_executable_path=driver_path)\n", + " driver.get(\"https://discord.com/login\")\n", + "except WebDriverException as e:\n", + " print(f\"An error occurred while initializing the WebDriver: {e}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "driver.maximize_window();\n", + "driver.get(\"https://discord.com/channels/1155301271088152709/1238313627266711573\")\n", + "time.sleep(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Running on local URL: http://127.0.0.1:7861\n", + "\n", + "Could not create share link. Please check your internet connection or our status page: https://status.gradio.app.\n" + ] + }, + { + "data": { + "text/html": [ + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def save_base64_image(base64_str, file_name):\n", + " header, encoded = base64_str.split(',', 1)\n", + " data = base64.b64decode(encoded)\n", + " with open(file_name, \"wb\") as f:\n", + " f.write(data)\n", + " print(f\"Base64 image {file_name} saved successfully\")\n", + "\n", + "# Function to upload image and get the new URL\n", + "def reupload_image(image_path, driver, div_element):\n", + " t = f\"!upload_image {image_path}\"\n", + " ActionChains(driver).send_keys(t).perform()\n", + " ActionChains(driver).send_keys(Keys.RETURN).perform()\n", + " time.sleep(random.uniform(4, 5))\n", + " latest_div_element = driver.find_elements(By.CSS_SELECTOR, 'div.loadingOverlay__35a04')[-1]\n", + " return latest_div_element.find_element(By.TAG_NAME, 'img').get_attribute('src')\n", + "\n", + "# Function to generate prompt using CLIP model\n", + "def generate_prompt(image_path):\n", + " image = Image.open(image_path)\n", + " inputs = clip_processor(images=image, return_tensors=\"pt\").to(device)\n", + " outputs = clip_model(**inputs)\n", + " logits_per_image = outputs.logits_per_image\n", + " probs = logits_per_image.softmax(dim=-1)\n", + " # Get the text corresponding to the highest probability\n", + " text_idx = torch.argmax(probs).item()\n", + " prompt = clip_processor.tokenizer.decode([text_idx])\n", + " print(f\"Generated prompt: {prompt}\")\n", + " return prompt\n", + "\n", + "# Function to handle user input, upload images, send prompts, and download images\n", + "def process_images(prompt, image1, image2=None):\n", + " if not os.path.exists('Demo_Visual'):\n", + " os.makedirs('Demo_Visual')\n", + "\n", + " image_names = []\n", + " for idx, image in enumerate([image1, image2]):\n", + " if image is not None:\n", + " image_name = f\"Image_{idx + 1}.jpg\"\n", + " image.save(image_name)\n", + " image_names.append(image_name)\n", + "\n", + " filename = os.path.basename(image_name)\n", + "\n", + " t = f\"!upload_image {filename}\"\n", + " div_element = driver.find_element(By.CSS_SELECTOR, 'div[data-slate-node=\"element\"]')\n", + "\n", + " ActionChains(driver).send_keys(t).perform()\n", + " ActionChains(driver).send_keys(Keys.RETURN).perform()\n", + " time.sleep(random.uniform(5, 6))\n", + "\n", + " image_srcs = []\n", + " latest_div_elements = driver.find_elements(By.CSS_SELECTOR, 'div.loadingOverlay_d4597d')[-len(image_names):]\n", + " for latest_div_element in latest_div_elements:\n", + " image_src = latest_div_element.find_element(By.TAG_NAME, 'img').get_attribute('src')\n", + "\n", + " if \"data:image\" in image_src:\n", + " save_base64_image(image_src, image_name)\n", + " new_image_src = reupload_image(image_name, driver, div_element)\n", + " image_srcs.append(new_image_src)\n", + " else:\n", + " image_srcs.append(image_src)\n", + "\n", + " driver.switch_to.window(driver.window_handles[0])\n", + "\n", + " time.sleep(random.uniform(1, 2))\n", + " ActionChains(driver).send_keys(\"/imagine \").perform()\n", + " time.sleep(random.uniform(0.4, 0.6))\n", + "\n", + " if not prompt:\n", + " prompt = generate_prompt(image_names[0])\n", + "\n", + " combined_text = \" \".join(image_srcs) + f\" {prompt}\".strip()\n", + " ActionChains(driver).send_keys(combined_text).perform()\n", + " ActionChains(driver).send_keys(Keys.RETURN).perform()\n", + "\n", + " time.sleep(random.uniform(0.5, 1))\n", + "\n", + " # Wait for the image to be generated\n", + " time.sleep(random.uniform(60, 80))\n", + "\n", + " # Download the generated image\n", + " latest_div_element = driver.find_elements(By.CSS_SELECTOR, 'div.loadingOverlay_d4597d')[-1]\n", + " generated_image_src = latest_div_element.find_element(By.TAG_NAME, 'img').get_attribute('src')\n", + "\n", + " response = requests.get(generated_image_src)\n", + " if response.status_code == 200:\n", + " download_image_name = \"Demo_Visual/generated_image.png\"\n", + " with open(download_image_name, \"wb\") as f:\n", + " f.write(response.content)\n", + " print(f\"Image {download_image_name} saved successfully\")\n", + " return download_image_name\n", + " else:\n", + " print(f\"Failed to download the image for prompt {prompt}\")\n", + " return None\n", + "\n", + "# Function to display the image using Gradio\n", + "def display_image(prompt, image1, image2=None):\n", + " generated_image_path = process_images(prompt, image1, image2)\n", + " \n", + " if generated_image_path:\n", + " return Image.open(generated_image_path)\n", + " else:\n", + " return None\n", + "\n", + "# Create the Gradio interface\n", + "iface = gr.Interface(\n", + " fn=display_image,\n", + " inputs=[\"text\", gr.Image(type=\"pil\"), gr.Image(type=\"pil\", label=\"Optional Image\")],\n", + " outputs=\"image\",\n", + " title=\"Image Upload and Prompt Processing\",\n", + " description=\"Upload 1 or 2 images and enter a prompt. If no prompt is given, a prompt will be generated for you.\"\n", + ")\n", + "\n", + "# Launch the interface in a Jupyter Notebook\n", + "iface.launch(inline=True, share=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Running on local URL: http://127.0.0.1:7869\n", + "\n", + "Thanks for being a Gradio user! If you have questions or feedback, please join our Discord server and chat with us: https://discord.gg/feTf9x3ZSB\n", + "Running on public URL: https://d578d221e4ae40e93a.gradio.live\n", + "\n", + "This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)\n" + ] + }, + { + "data": { + "text/html": [ + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Image Demo_Visual/generated_image.png saved successfully\n" + ] + } + ], + "source": [ + "#Working Version\n", + "def save_base64_image(base64_str, file_name):\n", + " header, encoded = base64_str.split(',', 1)\n", + " data = base64.b64decode(encoded)\n", + " with open(file_name, \"wb\") as f:\n", + " f.write(data)\n", + " print(f\"Base64 image {file_name} saved successfully\")\n", + "\n", + "# Function to upload image and get the new URL\n", + "def reupload_image(image_path, driver, div_element):\n", + " t = f\"!upload_image {image_path}\"\n", + " ActionChains(driver).send_keys(t).perform()\n", + " ActionChains(driver).send_keys(Keys.RETURN).perform()\n", + " time.sleep(random.uniform(4, 5))\n", + " latest_div_element = driver.find_elements(By.CSS_SELECTOR, 'div.loadingOverlay__35a04')[-1]\n", + " return latest_div_element.find_element(By.TAG_NAME, 'img').get_attribute('src')\n", + "\n", + "# Function to handle user input, upload images, send prompts, and download images\n", + "def process_images(prompt, image1, image2=None):\n", + " if not os.path.exists('Demo_Visual'):\n", + " os.makedirs('Demo_Visual')\n", + "\n", + " image_names = []\n", + " for idx, image in enumerate([image1, image2]):\n", + " if image is not None:\n", + " image_name = f\"Demo_Visual/Image_{idx + 1}.jpg\"\n", + " image.save(image_name)\n", + " image_names.append(image_name)\n", + " filename = os.path.basename(image_name)\n", + "\n", + " t = f\"!upload_image {filename}\"\n", + " div_element = driver.find_element(By.CSS_SELECTOR, 'div[data-slate-node=\"element\"]')\n", + "\n", + " ActionChains(driver).send_keys(t).perform()\n", + " ActionChains(driver).send_keys(Keys.RETURN).perform()\n", + " time.sleep(random.uniform(5, 6))\n", + "\n", + " image_srcs = []\n", + " latest_div_elements = driver.find_elements(By.CSS_SELECTOR, 'div.loadingOverlay_d4597d')[-len(image_names):]\n", + " for latest_div_element in latest_div_elements:\n", + " image_src = latest_div_element.find_element(By.TAG_NAME, 'img').get_attribute('src')\n", + "\n", + " if \"data:image\" in image_src:\n", + " save_base64_image(image_src, image_name)\n", + " new_image_src = reupload_image(image_name, driver, div_element)\n", + " image_srcs.append(new_image_src)\n", + " else:\n", + " image_srcs.append(image_src)\n", + "\n", + " driver.switch_to.window(driver.window_handles[0])\n", + "\n", + " time.sleep(random.uniform(1, 2))\n", + " ActionChains(driver).send_keys(\"/imagine \").perform()\n", + " time.sleep(random.uniform(0.4, 0.6))\n", + " prompt = prompt.strip() if prompt.strip() else \"An image\"\n", + " combined_text = \" \".join(image_srcs) + \" \"+ f\" {prompt}\".strip()\n", + " ActionChains(driver).send_keys(combined_text).perform()\n", + " ActionChains(driver).send_keys(Keys.RETURN).perform()\n", + "\n", + " time.sleep(random.uniform(0.5, 1))\n", + "\n", + " # Wait for the image to be generated\n", + " time.sleep(random.uniform(60, 80))\n", + "\n", + " # Download the generated image\n", + " latest_div_element = driver.find_elements(By.CSS_SELECTOR, 'div.loadingOverlay_d4597d')[-1]\n", + " generated_image_src = latest_div_element.find_element(By.TAG_NAME, 'img').get_attribute('src')\n", + "\n", + " response = requests.get(generated_image_src)\n", + " if response.status_code == 200:\n", + " download_image_name = \"Demo_Visual/generated_image.png\"\n", + " with open(download_image_name, \"wb\") as f:\n", + " f.write(response.content)\n", + " print(f\"Image {download_image_name} saved successfully\")\n", + " return download_image_name\n", + " else:\n", + " print(f\"Failed to download the image for prompt {prompt}\")\n", + " return None\n", + "\n", + "# Function to display the image using Gradio\n", + "def display_image(prompt, image1, image2=None):\n", + " generated_image_path = process_images(prompt, image1, image2)\n", + " \n", + " if generated_image_path:\n", + " return Image.open(generated_image_path)\n", + " else:\n", + " return None\n", + "\n", + "# Create the Gradio interface\n", + "iface = gr.Interface(\n", + " fn=display_image,\n", + " inputs=[\"text\", gr.Image(type=\"pil\"), gr.Image(type=\"pil\", label=\"Optional Image\")],\n", + " outputs=gr.Image(type=\"pil\", label=\"Generated Image\", width=512, height=512),\n", + " title=\"Visual Paraphrase using Midjourney\",\n", + " description=\"Upload 1 or 2 images and enter a prompt. If no prompt is given, enter text will be placed instead.\"\n", + ")\n", + "\n", + "# Launch the interface in a Jupyter Notebook\n", + "iface.launch(inline=True,share=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'gradio' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[23], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[43mgradio\u001b[49m\u001b[38;5;241m.\u001b[39mdeploy()\n", + "\u001b[1;31mNameError\u001b[0m: name 'gradio' is not defined" + ] + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Running on local URL: http://127.0.0.1:7866\n", + "Running on public URL: https://a119ee40cb7fa800ec.gradio.live\n", + "\n", + "This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)\n" + ] + }, + { + "data": { + "text/html": [ + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Traceback (most recent call last):\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\queueing.py\", line 541, in process_events\n", + " response = await route_utils.call_process_api(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\route_utils.py\", line 276, in call_process_api\n", + " output = await app.get_blocks().process_api(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\blocks.py\", line 1928, in process_api\n", + " result = await self.call_function(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\blocks.py\", line 1514, in call_function\n", + " prediction = await anyio.to_thread.run_sync(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\anyio\\to_thread.py\", line 33, in run_sync\n", + " return await get_asynclib().run_sync_in_worker_thread(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\anyio\\_backends\\_asyncio.py\", line 877, in run_sync_in_worker_thread\n", + " return await future\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\anyio\\_backends\\_asyncio.py\", line 807, in run\n", + " result = context.run(func, *args)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\utils.py\", line 833, in wrapper\n", + " response = f(*args, **kwargs)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Temp\\ipykernel_10480\\3601372427.py\", line 109, in display_image\n", + " generated_image_path = process_images(prompt, image1, image2)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Temp\\ipykernel_10480\\3601372427.py\", line 75, in process_images\n", + " prompt = generate_prompt(image_names[0])\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Temp\\ipykernel_10480\\3601372427.py\", line 26, in generate_prompt\n", + " image_embeds_position_mask=inputs[\"image_embeds_position_mask\"],\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\transformers\\feature_extraction_utils.py\", line 86, in __getitem__\n", + " return self.data[item]\n", + "KeyError: 'image_embeds_position_mask'\n", + "Traceback (most recent call last):\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\queueing.py\", line 541, in process_events\n", + " response = await route_utils.call_process_api(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\route_utils.py\", line 276, in call_process_api\n", + " output = await app.get_blocks().process_api(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\blocks.py\", line 1928, in process_api\n", + " result = await self.call_function(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\blocks.py\", line 1514, in call_function\n", + " prediction = await anyio.to_thread.run_sync(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\anyio\\to_thread.py\", line 33, in run_sync\n", + " return await get_asynclib().run_sync_in_worker_thread(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\anyio\\_backends\\_asyncio.py\", line 877, in run_sync_in_worker_thread\n", + " return await future\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\anyio\\_backends\\_asyncio.py\", line 807, in run\n", + " result = context.run(func, *args)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\utils.py\", line 833, in wrapper\n", + " response = f(*args, **kwargs)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Temp\\ipykernel_10480\\3601372427.py\", line 109, in display_image\n", + " generated_image_path = process_images(prompt, image1, image2)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Temp\\ipykernel_10480\\3601372427.py\", line 75, in process_images\n", + " prompt = generate_prompt(image_names[0])\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Temp\\ipykernel_10480\\3601372427.py\", line 26, in generate_prompt\n", + " image_embeds_position_mask=inputs[\"image_embeds_position_mask\"],\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\transformers\\feature_extraction_utils.py\", line 86, in __getitem__\n", + " return self.data[item]\n", + "KeyError: 'image_embeds_position_mask'\n", + "Traceback (most recent call last):\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\queueing.py\", line 541, in process_events\n", + " response = await route_utils.call_process_api(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\route_utils.py\", line 276, in call_process_api\n", + " output = await app.get_blocks().process_api(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\blocks.py\", line 1928, in process_api\n", + " result = await self.call_function(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\blocks.py\", line 1514, in call_function\n", + " prediction = await anyio.to_thread.run_sync(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\anyio\\to_thread.py\", line 33, in run_sync\n", + " return await get_asynclib().run_sync_in_worker_thread(\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\anyio\\_backends\\_asyncio.py\", line 877, in run_sync_in_worker_thread\n", + " return await future\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\anyio\\_backends\\_asyncio.py\", line 807, in run\n", + " result = context.run(func, *args)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\gradio\\utils.py\", line 833, in wrapper\n", + " response = f(*args, **kwargs)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Temp\\ipykernel_10480\\3601372427.py\", line 109, in display_image\n", + " generated_image_path = process_images(prompt, image1, image2)\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Temp\\ipykernel_10480\\3601372427.py\", line 75, in process_images\n", + " prompt = generate_prompt(image_names[0])\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Temp\\ipykernel_10480\\3601372427.py\", line 26, in generate_prompt\n", + " image_embeds_position_mask=inputs[\"image_embeds_position_mask\"],\n", + " File \"C:\\Users\\shash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\transformers\\feature_extraction_utils.py\", line 86, in __getitem__\n", + " return self.data[item]\n", + "KeyError: 'image_embeds_position_mask'\n" + ] + } + ], + "source": [ + "def save_base64_image(base64_str, file_name):\n", + " header, encoded = base64_str.split(',', 1)\n", + " data = base64.b64decode(encoded)\n", + " with open(file_name, \"wb\") as f:\n", + " f.write(data)\n", + " print(f\"Base64 image {file_name} saved successfully\")\n", + "\n", + "def reupload_image(image_path, driver, div_element):\n", + " t = f\"!upload_image {image_path}\"\n", + " ActionChains(driver).send_keys(t).perform()\n", + " ActionChains(driver).send_keys(Keys.RETURN).perform()\n", + " time.sleep(random.uniform(4, 5))\n", + " latest_div_element = driver.find_elements(By.CSS_SELECTOR, 'div.loadingOverlay__35a04')[-1]\n", + " return latest_div_element.find_element(By.TAG_NAME, 'img').get_attribute('src')\n", + "\n", + "def generate_prompt(image_path):\n", + " image = Image.open(image_path)\n", + " prompt = \" An image of\"\n", + " inputs = processor(text=prompt, images=image, return_tensors=\"pt\")\n", + " \n", + " generated_ids = model.generate(\n", + " pixel_values=inputs[\"pixel_values\"],\n", + " input_ids=inputs[\"input_ids\"],\n", + " attention_mask=inputs[\"attention_mask\"],\n", + " image_embeds=None,\n", + " image_embeds_position_mask=inputs[\"image_embeds_position_mask\"],\n", + " use_cache=True,\n", + " max_new_tokens=64,\n", + " )\n", + " generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]\n", + " caption, _ = processor.post_process_generation(generated_text)\n", + " \n", + " print(f\"Generated prompt: {caption}\")\n", + " return caption\n", + "\n", + "def process_images(prompt, image1, image2=None):\n", + " if not os.path.exists('Demo_Visual'):\n", + " os.makedirs('Demo_Visual')\n", + "\n", + " image_names = []\n", + " for idx, image in enumerate([image1, image2]):\n", + " if image is not None:\n", + " image_name = f\"Image_{idx + 1}.jpg\"\n", + " image.save(image_name)\n", + " image_names.append(image_name)\n", + "\n", + " filename = os.path.basename(image_name)\n", + "\n", + " t = f\"!upload_image {filename}\"\n", + " div_element = driver.find_element(By.CSS_SELECTOR, 'div[data-slate-node=\"element\"]')\n", + "\n", + " ActionChains(driver).send_keys(t).perform()\n", + " ActionChains(driver).send_keys(Keys.RETURN).perform()\n", + " time.sleep(random.uniform(5, 6))\n", + "\n", + " image_srcs = []\n", + " latest_div_elements = driver.find_elements(By.CSS_SELECTOR, 'div.loadingOverlay_d4597d')[-len(image_names):]\n", + " for latest_div_element in latest_div_elements:\n", + " image_src = latest_div_element.find_element(By.TAG_NAME, 'img').get_attribute('src')\n", + "\n", + " if \"data:image\" in image_src:\n", + " save_base64_image(image_src, image_name)\n", + " new_image_src = reupload_image(image_name, driver, div_element)\n", + " image_srcs.append(new_image_src)\n", + " else:\n", + " image_srcs.append(image_src)\n", + "\n", + " driver.switch_to.window(driver.window_handles[0])\n", + "\n", + " time.sleep(random.uniform(1, 2))\n", + " ActionChains(driver).send_keys(\"/imagine \").perform()\n", + " time.sleep(random.uniform(0.4, 0.6))\n", + "\n", + " if not prompt:\n", + " prompt = generate_prompt(image_names[0])\n", + "\n", + " combined_text = \" \".join(image_srcs) + f\" {prompt}\".strip()\n", + " ActionChains(driver).send_keys(combined_text).perform()\n", + " ActionChains(driver).send_keys(Keys.RETURN).perform()\n", + "\n", + " time.sleep(random.uniform(0.5, 1))\n", + "\n", + " # Wait for the image to be generated\n", + " time.sleep(random.uniform(60, 80))\n", + "\n", + " # Download the generated image\n", + " latest_div_element = driver.find_elements(By.CSS_SELECTOR, 'div.loadingOverlay_d4597d')[-1]\n", + " generated_image_src = latest_div_element.find_element(By.TAG_NAME, 'img').get_attribute('src')\n", + "\n", + " response = requests.get(generated_image_src)\n", + " if response.status_code == 200:\n", + " download_image_name = \"Demo_Visual/generated_image.png\"\n", + " with open(download_image_name, \"wb\") as f:\n", + " f.write(response.content)\n", + " print(f\"Image {download_image_name} saved successfully\")\n", + " \n", + " # Resize image to one-fourth of its current size\n", + " image = Image.open(download_image_name)\n", + " resized_image = image.resize((image.width // 4, image.height // 4))\n", + " resized_image.save(download_image_name)\n", + " print(f\"Image {download_image_name} resized successfully\")\n", + " \n", + " return download_image_name\n", + " else:\n", + " print(f\"Failed to download the image for prompt {prompt}\")\n", + " return None\n", + "\n", + "def display_image(prompt, image1, image2=None):\n", + " generated_image_path = process_images(prompt, image1, image2)\n", + " \n", + " if generated_image_path:\n", + " return Image.open(generated_image_path)\n", + " else:\n", + " return None\n", + "\n", + "# Create the Gradio interface\n", + "iface = gr.Interface(\n", + " fn=display_image,\n", + " inputs=[\"text\", gr.Image(type=\"pil\"), gr.Image(type=\"pil\", label=\"Optional Image\")],\n", + " outputs=gr.Image(type=\"pil\", label=\"Generated Image\", width=400, height=400),\n", + " title=\"Visual Paraphrase using Midjourney\",\n", + " description=\"Upload 1 or 2 images and enter a prompt. If no prompt is given, a prompt will be generated for you.\"\n", + ")\n", + "\n", + "# Launch the interface in a Jupyter Notebook\n", + "iface.launch(inline=True, share=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Running on local URL: http://127.0.0.1:7865\n", + "Running on public URL: https://3b5070f739396e53c1.gradio.live\n", + "\n", + "This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)\n" + ] + }, + { + "data": { + "text/html": [ + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import base64\n", + "import os\n", + "import random\n", + "import time\n", + "import requests\n", + "from PIL import Image\n", + "from selenium.webdriver.common.action_chains import ActionChains\n", + "from selenium.webdriver.common.by import By\n", + "from selenium.webdriver.common.keys import Keys\n", + "import gradio as gr\n", + "from transformers import BlipProcessor, BlipForConditionalGeneration\n", + "import torch\n", + "\n", + "# Initialize the captioning model\n", + "processor = BlipProcessor.from_pretrained(\"Salesforce/blip-image-captioning-base\")\n", + "model = BlipForConditionalGeneration.from_pretrained(\"Salesforce/blip-image-captioning-base\")\n", + "\n", + "def save_base64_image(base64_str, file_name):\n", + " header, encoded = base64_str.split(',', 1)\n", + " data = base64.b64decode(encoded)\n", + " with open(file_name, \"wb\") as f:\n", + " f.write(data)\n", + " print(f\"Base64 image {file_name} saved successfully\")\n", + "\n", + "def reupload_image(image_path, driver, div_element):\n", + " t = f\"!upload_image {image_path}\"\n", + " ActionChains(driver).send_keys(t).perform()\n", + " ActionChains(driver).send_keys(Keys.RETURN).perform()\n", + " time.sleep(random.uniform(4, 5))\n", + " latest_div_element = driver.find_elements(By.CSS_SELECTOR, 'div.loadingOverlay__35a04')[-1]\n", + " return latest_div_element.find_element(By.TAG_NAME, 'img').get_attribute('src')\n", + "\n", + "def generate_caption(image_path):\n", + " image = Image.open(image_path).convert(\"RGB\")\n", + " inputs = processor(images=image, return_tensors=\"pt\")\n", + " outputs = model.generate(**inputs)\n", + " caption = processor.decode(outputs[0], skip_special_tokens=True)\n", + " return caption\n", + "\n", + "def process_images(image1, image2=None):\n", + " if not os.path.exists('Demo_Visual'):\n", + " os.makedirs('Demo_Visual')\n", + "\n", + " image_names = []\n", + " for idx, image in enumerate([image1, image2]):\n", + " if image is not None:\n", + " image_name = f\"Demo_Visual/Image_{idx + 1}.jpg\"\n", + " image.save(image_name)\n", + " image_names.append(image_name)\n", + " filename = os.path.basename(image_name)\n", + "\n", + " t = f\"!upload_image {filename}\"\n", + " div_element = driver.find_element(By.CSS_SELECTOR, 'div[data-slate-node=\"element\"]')\n", + "\n", + " ActionChains(driver).send_keys(t).perform()\n", + " ActionChains(driver).send_keys(Keys.RETURN).perform()\n", + " time.sleep(random.uniform(5, 6))\n", + "\n", + " image_srcs = []\n", + " latest_div_elements = driver.find_elements(By.CSS_SELECTOR, 'div.loadingOverlay_d4597d')[-len(image_names):]\n", + " for latest_div_element in latest_div_elements:\n", + " image_src = latest_div_element.find_element(By.TAG_NAME, 'img').get_attribute('src')\n", + "\n", + " if \"data:image\" in image_src:\n", + " save_base64_image(image_src, image_name)\n", + " new_image_src = reupload_image(image_name, driver, div_element)\n", + " image_srcs.append(new_image_src)\n", + " else:\n", + " image_srcs.append(image_src)\n", + "\n", + " driver.switch_to.window(driver.window_handles[0])\n", + "\n", + " time.sleep(random.uniform(1, 2))\n", + " ActionChains(driver).send_keys(\"/imagine \").perform()\n", + " time.sleep(random.uniform(0.4, 0.6))\n", + "\n", + " captions = [generate_caption(image_name) for image_name in image_names]\n", + " combined_text = \" \".join(image_srcs) + \" \" + \" \".join(captions)\n", + " ActionChains(driver).send_keys(combined_text).perform()\n", + " ActionChains(driver).send_keys(Keys.RETURN).perform()\n", + "\n", + " time.sleep(random.uniform(0.5, 1))\n", + " time.sleep(random.uniform(60, 80))\n", + "\n", + " latest_div_element = driver.find_elements(By.CSS_SELECTOR, 'div.loadingOverlay_d4597d')[-1]\n", + " generated_image_src = latest_div_element.find_element(By.TAG_NAME, 'img').get_attribute('src')\n", + "\n", + " response = requests.get(generated_image_src)\n", + " if response.status_code == 200:\n", + " download_image_name = \"Demo_Visual/generated_image.png\"\n", + " with open(download_image_name, \"wb\") as f:\n", + " f.write(response.content)\n", + " print(f\"Image {download_image_name} saved successfully\")\n", + " return download_image_name\n", + " else:\n", + " print(f\"Failed to download the image\")\n", + " return None\n", + "\n", + "def display_image(image1, image2=None):\n", + " generated_image_path = process_images(image1, image2)\n", + " \n", + " if generated_image_path:\n", + " return Image.open(generated_image_path)\n", + " else:\n", + " return None\n", + "\n", + "iface = gr.Interface(\n", + " fn=display_image,\n", + " inputs=[gr.Image(type=\"pil\"), gr.Image(type=\"pil\", label=\"Optional Image\")],\n", + " outputs=gr.Image(type=\"pil\", label=\"Generated Image\", width=256, height=256),\n", + " title=\"Visual Paraphrase using Midjourney\",\n", + " description=\"Upload 1 or 2 images and enter a prompt. If no prompt is given, a prompt will be generated for you.\"\n", + ")\n", + "\n", + "iface.launch(inline=True, share=True)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.11" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}