forked from daswer123/xtts-finetune-webui
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
ade9af7
commit ced6012
Showing
1 changed file
with
154 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,154 @@ | ||
{ | ||
"nbformat": 4, | ||
"nbformat_minor": 0, | ||
"metadata": { | ||
"colab": { | ||
"provenance": [], | ||
"gpuType": "T4", | ||
"authorship_tag": "ABX9TyP4Z6m49+bXNW/J1fP7ZIEB", | ||
"include_colab_link": true | ||
}, | ||
"kernelspec": { | ||
"name": "python3", | ||
"display_name": "Python 3" | ||
}, | ||
"language_info": { | ||
"name": "python" | ||
}, | ||
"accelerator": "GPU" | ||
}, | ||
"cells": [ | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": { | ||
"id": "view-in-github", | ||
"colab_type": "text" | ||
}, | ||
"source": [ | ||
"<a href=\"https://colab.research.google.com/github/DrewThomasson/xtts-finetune-webui/blob/main/notebook/xtts_finetune_webui.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"source": [ | ||
"## Welcome to the *xtts*-finetune-webui gradio gui!\n", | ||
"\n", | ||
"This webui is a slightly modified copy of the official webui for finetune xtts.\n", | ||
"\n", | ||
"If you are looking for an option for normal XTTS use look here https://github.com/daswer123/xtts-webui" | ||
], | ||
"metadata": { | ||
"id": "OVjEG_yGoC2W" | ||
} | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": null, | ||
"metadata": { | ||
"cellView": "form", | ||
"id": "44HpAIVRfJve" | ||
}, | ||
"outputs": [], | ||
"source": [ | ||
"# @title 🛠️ Install requirments\n", | ||
"#!DEBIAN_FRONTEND=noninteractive\n", | ||
"!sudo apt-get update # && sudo apt-get -y upgrade\n", | ||
"!sudo apt-get -y install libegl1\n", | ||
"!sudo apt-get -y install libopengl0\n", | ||
"!sudo apt-get -y install libxcb-cursor0\n", | ||
"!pip install -r https://raw.githubusercontent.com/daswer123/xtts-finetune-webui/main/requirements.txt\n", | ||
"!pip install gradio==4.44.1\n", | ||
"!pip install fastapi==0.103.1\n", | ||
"!pip install pydantic==2.3.0" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"source": [ | ||
"# @title 🚀 Run interface\n", | ||
"%cd /content/\n", | ||
"!git clone https://github.com/DrewThomasson/xtts-finetune-webui.git\n", | ||
"%cd /content/xtts-finetune-webui\n", | ||
"!python xtts_demo.py --share" | ||
], | ||
"metadata": { | ||
"cellView": "form", | ||
"id": "62Da1Q5AgN3W" | ||
}, | ||
"execution_count": null, | ||
"outputs": [] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"source": [ | ||
"import shutil\n", | ||
"import requests\n", | ||
"import os\n", | ||
"from tqdm import tqdm # Progress bar library\n", | ||
"\n", | ||
"# Define the paths\n", | ||
"finetune_dir = '/content/xtts-finetune-webui/finetune_models/ready' # @param {type:\"string\"}\n", | ||
"dataset_dir = '/content/xtts-finetune-webui/finetune_models/dataset' # @param {type:\"string\"}\n", | ||
"\n", | ||
"# Create a temporary directory to collect both folders before zipping\n", | ||
"temp_dir = \"/content/temp_finetune_dataset\"\n", | ||
"os.makedirs(temp_dir, exist_ok=True)\n", | ||
"\n", | ||
"# Copy both directories into the temporary directory with a progress bar\n", | ||
"def copy_with_progress(src, dst):\n", | ||
" total_files = sum(len(files) for _, _, files in os.walk(src))\n", | ||
" with tqdm(total=total_files, desc=f\"Copying {os.path.basename(src)}\") as pbar:\n", | ||
" for root, _, files in os.walk(src):\n", | ||
" rel_path = os.path.relpath(root, src)\n", | ||
" target_path = os.path.join(dst, rel_path)\n", | ||
" os.makedirs(target_path, exist_ok=True)\n", | ||
" for file in files:\n", | ||
" shutil.copy(os.path.join(root, file), target_path)\n", | ||
" pbar.update(1)\n", | ||
"\n", | ||
"copy_with_progress(finetune_dir, os.path.join(temp_dir, \"ready\"))\n", | ||
"copy_with_progress(dataset_dir, os.path.join(temp_dir, \"dataset\"))\n", | ||
"\n", | ||
"# Create a zip file of the combined directories with progress\n", | ||
"zip_filename = \"finetune_and_dataset.zip\"\n", | ||
"with tqdm(total=100, desc=\"Zipping files\") as pbar:\n", | ||
" shutil.make_archive(\"finetune_and_dataset\", 'zip', root_dir=temp_dir)\n", | ||
" pbar.update(100)\n", | ||
"\n", | ||
"# Define a function to stream the upload with a progress bar\n", | ||
"def upload_with_progress(file_path, url):\n", | ||
" file_size = os.path.getsize(file_path)\n", | ||
" with open(file_path, 'rb') as f, tqdm(\n", | ||
" total=file_size, unit='B', unit_scale=True, desc=\"Uploading\"\n", | ||
" ) as progress:\n", | ||
" response = requests.post(\n", | ||
" url,\n", | ||
" files={\"file\": (file_path, f)},\n", | ||
" stream=True,\n", | ||
" headers={\"Connection\": \"keep-alive\"},\n", | ||
" )\n", | ||
" # Update the progress bar as chunks are sent\n", | ||
" for chunk in response.iter_content(chunk_size=4096):\n", | ||
" if chunk:\n", | ||
" progress.update(len(chunk))\n", | ||
" return response\n", | ||
"\n", | ||
"# Upload the zip file to file.io with a progress bar\n", | ||
"response = upload_with_progress(zip_filename, \"https://file.io/?expires=1d\")\n", | ||
"\n", | ||
"# Parse the response and display the download link\n", | ||
"if response.status_code == 200:\n", | ||
" download_link = response.json().get('link', 'Error: No link found.')\n", | ||
" print(f\"Your file is ready: {download_link}\")\n", | ||
"else:\n", | ||
" print(f\"Failed to upload: {response.status_code} - {response.text}\")\n" | ||
], | ||
"metadata": { | ||
"cellView": "form", | ||
"id": "MYBWgKevr6S3" | ||
}, | ||
"execution_count": null, | ||
"outputs": [] | ||
} | ||
] | ||
} |