Fix: show image im kaggle
Browse files- pix2pix-model.ipynb +1 -1
pix2pix-model.ipynb
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"},"kaggle":{"accelerator":"gpu","dataSources":[{"sourceId":8109869,"sourceType":"datasetVersion","datasetId":4790518},{"sourceId":8131022,"sourceType":"datasetVersion","datasetId":4805885}],"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"!git clone \"https://github.com/timothybrooks/instruct-pix2pix/\"","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cd /kaggle/working/instruct-pix2pix","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(\"\\nInstalling dependencies ...\")","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"!conda env create -f /kaggle/working/instruct-pix2pix/environment.yaml > /dev/null 2>&1","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"mkdir /root/.kaggle/","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cp -r /kaggle/input/api-connections/kaggle.json /root/.kaggle/","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cp -r /kaggle/input/api-connections/service_account.json /kaggle/working/instruct-pix2pix","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cp -r /kaggle/input/pix2pix-checkpoints/checkpoints /kaggle/working/instruct-pix2pix","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import os\nimport subprocess\nimport shutil\nimport json\nfrom PIL import Image\nfrom google.oauth2 import service_account\nfrom googleapiclient.discovery import build\nfrom googleapiclient.http import MediaFileUpload, MediaIoBaseDownload\n\n\nDATASET_PATH = \"/kaggle/working/dataset\"\n\nclass GoogleDrive_API:\n def __init__(self):\n self.SCOPES = [\"https://www.googleapis.com/auth/drive\"]\n self.SERVICE_ACCOUNT_FILE = \"service_account.json\"\n self.PARENT_FOLDER_ID = \"1r-MlnEpWHx3b1fxHDnHcZ2-Wh_Y89676\"\n self.service = self.authenticate()\n\n def authenticate(self):\n credentials = service_account.Credentials.from_service_account_file(\n self.SERVICE_ACCOUNT_FILE, scopes=self.SCOPES\n )\n service = build(\"drive\", \"v3\", credentials=credentials)\n\n return service\n\n def get_files(self):\n # List all files in the folder\n results = (\n self.service.files()\n .list(\n q=f\"'{self.PARENT_FOLDER_ID}' in parents and trashed=false\",\n fields=\"files(id, name)\",\n )\n .execute()\n )\n return results.get(\"files\", [])\n\n def clear_files(self):\n items = self.get_files()\n\n # Delete each file\n for item in items:\n file_id = item[\"id\"]\n self.service.files().delete(fileId=file_id).execute()\n\n def upload_file(self, file_path):\n file_metadata = {\n \"name\": os.path.basename(file_path),\n \"parents\": [self.PARENT_FOLDER_ID],\n }\n media = MediaFileUpload(file_path)\n file = (\n self.service.files()\n .create(body=file_metadata, media_body=media, fields=\"id\")\n .execute()\n )\n print(\"File uploaded. File ID:\", file.get(\"id\"))\n\n def download_file(self, file_name, file_path):\n results = (\n self.service.files()\n .list(\n q=f\"'{self.PARENT_FOLDER_ID}' in parents and name='{file_name}' and trashed=false\",\n fields=\"files(id)\",\n )\n .execute()\n )\n items = results.get(\"files\", [])\n\n if items:\n # Get the file ID\n file_id = items[0][\"id\"]\n\n request = self.service.files().get_media(fileId=file_id)\n\n with open(file_path, \"wb\") as file:\n downloader = MediaIoBaseDownload(file, request)\n done = False\n while not done:\n status, done = downloader.next_chunk()\n print(f\"Download {int(status.progress() * 100)}%.\")\n else:\n print(rf\"Fine {file_name} is Not Found\")\n\ndef execute_terminal_command(command: str):\n try:\n process = subprocess.Popen(\n command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE\n )\n output, error = process.communicate()\n output = str(output.decode(\"utf-8\"))\n error = str(error.decode(\"utf-8\"))\n print(rf\"Command executed successfully: {command}\")\n return output\n except Exception as e:\n return None, str(e)\n \ndef read_file(file_path: str):\n with open(file_path, \"r\") as file:\n data = json.load(file)\n return data\n\ndef write_file(data: list, file_path: str, file_name: str = \"\"):\n # Writing JSON data\n with open(rf\"{file_path}/{file_name}\", \"w\") as file:\n for idx in range(len(data)):\n json_string = json.dumps(data[idx]) + (\"\\n\" if idx < len(data) - 1 else \"\")\n file.write(json_string)\n \ndef read_image(image_path: str):\n try:\n image = Image.open(image_path)\n return image\n except IOError:\n print(\"Unable to load image\")\n return None\n \ndef generate_image(input_image: str, edit_instruction: str, output_path: str):\n command = fr'/opt/conda/envs/ip2p/bin/python3 /kaggle/working/instruct-pix2pix/edit_cli.py --input {input_image} --output {output_path} --edit \"{edit_instruction}\"'\n return execute_terminal_command(command)\n\n\ndef main():\n if not os.path.exists(DATASET_PATH):\n execute_terminal_command(rf\"mkdir {DATASET_PATH}\")\n \n # download dataset\n GoogleDrive_connection = GoogleDrive_API()\n GoogleDrive_connection.download_file(\"data.jsonl\", rf\"{DATASET_PATH}/data.jsonl\")\n \n # input\n data = read_file(rf\"{DATASET_PATH}/data.jsonl\")\n # get data\n edit_instruction = data[\"edit\"]\n input_image_path = data[\"input_image_path\"]\n output_image_path = data[\"output_image_path\"]\n \n GoogleDrive_connection.download_file(input_image_path, rf\"{DATASET_PATH}/{input_image_path}\")\n\n input_image = read_image(rf\"{DATASET_PATH}/{input_image_path}\")\n # run model\n ######################################################\n generate_image(rf\"{DATASET_PATH}/{input_image_path}\", edit_instruction, rf\"{DATASET_PATH}/{output_image_path}\")\n ######################################################\n\n # update dataset\n GoogleDrive_connection.upload_file(rf\"{DATASET_PATH}/{output_image_path}\")\n
|
|
|
|
| 1 |
+
{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"},"kaggle":{"accelerator":"gpu","dataSources":[{"sourceId":8109869,"sourceType":"datasetVersion","datasetId":4790518},{"sourceId":8131022,"sourceType":"datasetVersion","datasetId":4805885}],"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"!git clone \"https://github.com/timothybrooks/instruct-pix2pix/\"","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cd /kaggle/working/instruct-pix2pix","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(\"\\nInstalling dependencies ...\")","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"!conda env create -f /kaggle/working/instruct-pix2pix/environment.yaml > /dev/null 2>&1","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"mkdir /root/.kaggle/","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cp -r /kaggle/input/api-connections/kaggle.json /root/.kaggle/","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cp -r /kaggle/input/api-connections/service_account.json /kaggle/working/instruct-pix2pix","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cp -r /kaggle/input/pix2pix-checkpoints/checkpoints /kaggle/working/instruct-pix2pix","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import os\nimport subprocess\nimport shutil\nimport json\nfrom PIL import Image\nimport matplotlib.pyplot as plt\nimport matplotlib.image as mpimg\nfrom google.oauth2 import service_account\nfrom googleapiclient.discovery import build\nfrom googleapiclient.http import MediaFileUpload, MediaIoBaseDownload\n\n\nDATASET_PATH = \"/kaggle/working/dataset\"\n\nclass GoogleDrive_API:\n def __init__(self):\n self.SCOPES = [\"https://www.googleapis.com/auth/drive\"]\n self.SERVICE_ACCOUNT_FILE = \"service_account.json\"\n self.PARENT_FOLDER_ID = \"1r-MlnEpWHx3b1fxHDnHcZ2-Wh_Y89676\"\n self.service = self.authenticate()\n\n def authenticate(self):\n credentials = service_account.Credentials.from_service_account_file(\n self.SERVICE_ACCOUNT_FILE, scopes=self.SCOPES\n )\n service = build(\"drive\", \"v3\", credentials=credentials)\n\n return service\n\n def get_files(self):\n # List all files in the folder\n results = (\n self.service.files()\n .list(\n q=f\"'{self.PARENT_FOLDER_ID}' in parents and trashed=false\",\n fields=\"files(id, name)\",\n )\n .execute()\n )\n return results.get(\"files\", [])\n\n def clear_files(self):\n items = self.get_files()\n\n # Delete each file\n for item in items:\n file_id = item[\"id\"]\n self.service.files().delete(fileId=file_id).execute()\n\n def upload_file(self, file_path):\n file_metadata = {\n \"name\": os.path.basename(file_path),\n \"parents\": [self.PARENT_FOLDER_ID],\n }\n media = MediaFileUpload(file_path)\n file = (\n self.service.files()\n .create(body=file_metadata, media_body=media, fields=\"id\")\n .execute()\n )\n print(\"File uploaded. File ID:\", file.get(\"id\"))\n\n def download_file(self, file_name, file_path):\n results = (\n self.service.files()\n .list(\n q=f\"'{self.PARENT_FOLDER_ID}' in parents and name='{file_name}' and trashed=false\",\n fields=\"files(id)\",\n )\n .execute()\n )\n items = results.get(\"files\", [])\n\n if items:\n # Get the file ID\n file_id = items[0][\"id\"]\n\n request = self.service.files().get_media(fileId=file_id)\n\n with open(file_path, \"wb\") as file:\n downloader = MediaIoBaseDownload(file, request)\n done = False\n while not done:\n status, done = downloader.next_chunk()\n print(f\"Download {int(status.progress() * 100)}%.\")\n else:\n print(rf\"Fine {file_name} is Not Found\")\n\ndef execute_terminal_command(command: str):\n try:\n process = subprocess.Popen(\n command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE\n )\n output, error = process.communicate()\n output = str(output.decode(\"utf-8\"))\n error = str(error.decode(\"utf-8\"))\n print(rf\"Command executed successfully: {command}\")\n return output\n except Exception as e:\n return None, str(e)\n \ndef read_file(file_path: str):\n with open(file_path, \"r\") as file:\n data = json.load(file)\n return data\n\ndef write_file(data: list, file_path: str, file_name: str = \"\"):\n # Writing JSON data\n with open(rf\"{file_path}/{file_name}\", \"w\") as file:\n for idx in range(len(data)):\n json_string = json.dumps(data[idx]) + (\"\\n\" if idx < len(data) - 1 else \"\")\n file.write(json_string)\n \ndef read_image(image_path: str):\n try:\n image = Image.open(image_path)\n return image\n except IOError:\n print(\"Unable to load image\")\n return None\n \ndef generate_image(input_image: str, edit_instruction: str, output_path: str):\n command = fr'/opt/conda/envs/ip2p/bin/python3 /kaggle/working/instruct-pix2pix/edit_cli.py --input {input_image} --output {output_path} --edit \"{edit_instruction}\"'\n return execute_terminal_command(command)\n\n\ndef main():\n if not os.path.exists(DATASET_PATH):\n execute_terminal_command(rf\"mkdir {DATASET_PATH}\")\n \n # download dataset\n GoogleDrive_connection = GoogleDrive_API()\n GoogleDrive_connection.download_file(\"data.jsonl\", rf\"{DATASET_PATH}/data.jsonl\")\n \n # input\n data = read_file(rf\"{DATASET_PATH}/data.jsonl\")\n # get data\n edit_instruction = data[\"edit\"]\n input_image_path = data[\"input_image_path\"]\n output_image_path = data[\"output_image_path\"]\n \n GoogleDrive_connection.download_file(input_image_path, rf\"{DATASET_PATH}/{input_image_path}\")\n\n input_image = read_image(rf\"{DATASET_PATH}/{input_image_path}\")\n # run model\n ######################################################\n generate_image(rf\"{DATASET_PATH}/{input_image_path}\", edit_instruction, rf\"{DATASET_PATH}/{output_image_path}\")\n ######################################################\n\n # update dataset\n GoogleDrive_connection.upload_file(rf\"{DATASET_PATH}/{output_image_path}\")\n \n # Load the images\n img1 = mpimg.imread(rf\"{DATASET_PATH}/{input_image_path}\")\n img2 = mpimg.imread(rf\"{DATASET_PATH}/{output_image_path}\")\n\n # Display the images side by side\n plt.figure(figsize=(10, 5))\n plt.subplot(1, 2, 1)\n plt.imshow(img1)\n plt.axis('off')\n plt.title('Input Image')\n\n plt.subplot(1, 2, 2)\n plt.imshow(img2)\n plt.axis('off')\n plt.title(rf\"Edited Image: {edit_instruction}\")\n \n plt.show()\n \nif __name__ == \"__main__\":\n main()","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}
|