diff --git a/glob/manager_downloader.py b/glob/manager_downloader.py index 2718de50..b9b2e043 100644 --- a/glob/manager_downloader.py +++ b/glob/manager_downloader.py @@ -80,10 +80,8 @@ def aria2_download_url(model_url: str, model_dir: str, filename: str): import tqdm import time - if model_dir.startswith(core.comfy_path): - model_dir = model_dir[len(core.comfy_path) :] - - download_dir = model_dir if model_dir.startswith('/') else os.path.join('/models', model_dir) + download_dir = model_dir + filename += '.downloading' # aria2 uses .downloading suffix for incomplete files download = aria2_find_task(download_dir, filename) if download is None: @@ -104,6 +102,17 @@ def aria2_download_url(model_url: str, model_dir: str, filename: str): progress_bar.update(download.completed_length - progress_bar.n) time.sleep(1) download.update() + + if download.is_complete and download.completed_length == download.total_length: + file_path = os.path.join(download_dir, filename) + final_path = file_path[:-len('.downloading')] # remove the .downloading suffix + if os.path.exists(file_path): + os.rename(file_path, final_path) + logging.info(f"Download completed: {final_path}") + else: + logging.error(f"Download directory {file_path} does not exist after download completion.") + else: + logging.error(f"Download failed or incomplete: {download.status} for {model_url}") def download_url_with_agent(url, save_path):