在现代互联网中,下载大规模的数据文件时,我们往往需要借助一些自动化工具来简化过程,尤其是当需要下载多个文件或特定资源时。本文将介绍如何使用 wget
工具配合 Python 脚本来批量下载 Civitai 网站上的数据,同时提供一些优化和定制化的技巧。
简便的教程,一阵见血
wget https://civitai.com/api/download/models/{modelnumber}?token={token} --content-disposition
modelnumber:通过模型的下载地址可以获取,那串数字!
Token:获取看下面!简单说就是注册账号,在账号那里找到!
1. Civitai是什么?
Civitai 是一个提供人工智能图像生成平台,它允许用户上传和下载由 AI 模型生成的各种艺术作品。通过它的 API 和网站,用户可以方便地管理和下载自己创建的内容。在这个教程中,我们将学习如何利用 wget
自动化下载 Civitai 上的图像文件。
2. 如何使用 wget
下载 Civitai 内容?
在使用 wget
进行下载时,我们通常会通过 URL 访问资源。但是在 Civitai 上下载时,很多文件都需要通过 API token 进行授权。因此,我们需要通过 Python 脚本生成带有 token 的 URL,然后使用 wget
来进行下载。
下面是我们需要的 Python 脚本:
import subprocess
import argparse
import urllib.parse
def download_civitai(index, url, file_name):
# 解析 URL,构建新的带 token 的 URL
parse_url = urllib.parse.urlparse(url)
base_url = parse_url.scheme + "://" + parse_url.netloc + parse_url.path
url_new = f"{base_url}?token={token}"
print(f"第 {index + 1} 个 URL: {url_new}")
# 如果文件名为 None,则直接下载到当前目录
if file_name == "None":
command = ['wget', url_new,'--content-disposition']
else:
command = ['wget', url_new, '-O', file_name,'--content-disposition']
# 执行下载命令
subprocess.run(command)
if __name__ == '__main__':
token = 'your-api-token-here' # 请替换为你的实际 API token
parser = argparse.ArgumentParser(description='批量下载 Civitai 文件脚本')
parser.add_argument('urls', metavar='urls', type=str, nargs='+', help='输入一个或多个 Civitai 的 URL 地址')
parser.add_argument('--files', metavar='files', type=str, nargs='+', help='输入对应的文件名,如果不需要文件名则输入 None')
args = parser.parse_args()
urls = args.urls
files = args.files if args.files else ['None'] * len(urls)
print(f"\n总共需要下载 {len(urls)} 个文件\n")
for index, (url, file_name) in enumerate(zip(urls, files)):
download_civitai(index, url, file_name)
2.1 脚本详解
- URL 处理: 我们首先解析传入的 URL,提取出协议、主机和路径,然后拼接上我们的
token
参数,生成带有授权信息的新 URL。 wget
下载: 使用wget
命令行工具执行下载操作。通过-O
参数来指定下载后的文件名,如果没有指定文件名,则直接使用默认文件名。subprocess.run
: 该函数用于在 Python 中执行外部命令,即wget
命令。
2.2 如何使用
-
获取 API token:
- 首先,你需要注册一个 Civitai 账号。
- 登录后,前往 Civitai 账户页面,在页面下方,你可以看到 "API Token"。点击 "获取 API token",并将其复制。
-
设置脚本:
- 将上面的 Python 脚本保存为
civitai_download.py
。 - 用你的 API token 替换
token = 'your-api-token-here'
中的值。
- 将上面的 Python 脚本保存为
-
在
.bashrc
中设置快捷命令: 为了方便执行该脚本,你可以在.bashrc
文件中创建一个快捷命令,使其能够通过简单的命令行调用:alias civitai_download='python /path/to/civitai_download.py'
将
/path/to/civitai_download.py
替换为你保存脚本的路径。这样,执行civitai_download
命令即可自动运行该脚本,进行批量下载。 -
运行脚本:
-
如果你有多个 URL 需要下载,可以通过以下命令传入:
civitai_download https://civitai.com/some_file_url https://civitai.com/another_file_url --files "file1.checkpoint" "file2.checkpoint"
-
如果不想为文件指定名称,只需将
None
传入:civitai_download https://civitai.com/some_file_url https://civitai.com/another_file_url --files "None" "None"
该命令会根据指定的 URL 和文件名(如果有)进行下载。
-
3. 效果
4. 总结
使用 wget
结合 Python 脚本下载 Civitai 上的资源,不仅简化了手动下载的步骤,还能大大提高下载效率。通过合理的 URL 参数管理和文件命名,我们可以轻松地实现批量下载。同时,利用 Bash 别名和定时任务等技巧,可以使下载过程更加自动化和便捷。希望这个教程对你有所帮助,快去试试看吧!
如果你对 Civitai 下载有其他问题或建议,欢迎在评论区留言讨论!
标签:教程,url,token,Civitai,wget,civitai,下载 From: https://blog.csdn.net/yaoyihe/article/details/145207237