civitai的网络并不是非常友好,正好有一台香港的vps,于是随便写了一个bash脚本来下载模型同时上传到百度云,这样下载速度会快很多,话不多说,开整。
获得API Keys
访问:https://civitai.com/user/account
下载BaiduPCS-Go
Github:https://github.com/qjfoidnh/BaiduPCS-Go
下载地址:https://github.com/qjfoidnh/BaiduPCS-Go/releases
基础使用教程:https://github.com/qjfoidnh/BaiduPCS-Go?tab=readme-ov-file#%E5%88%9D%E7%BA%A7%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B
Shall脚本
将会下载到脚本所在目录,然后上传到百度网盘中
#!/bin/bash
# 删除上次产生的临时文件
rm -rf log.txt mode.dl mode.url
# 设置civitai KEY
civitai_key=API Keys
# 基础信息获取
echo '输入模型信息页面:'
read mode_url
echo '输入模型下载地址:'
read mode_dl
echo '输入封面地址'
read mdoe_img
echo '输入自定义TAG'
read tag_text
# 提取页面ID
echo $mode_url >> mode.url
sed -i 's|/|,|g' mode.url
mode_url_id=$( cut -d, -f5 mode.url)
echo $mode_url_id
# 提取模型ID
echo $mode_dl >> mode.dl
sed -i 's|\?|,|g' mode.dl
sed -i 's|/|,|g' mode.dl
idnum=$( cut -d, -f7 mode.dl)
echo $idnum
# 下载链接
wget "https://civitai.com/api/download/models/${idnum}?\&token=${civitai_key}" --content-disposition 2>&1 | tee log.txt
# 获得文件名称
filename=$( sed -n 's/.*\(Saving to: ‘\)\(.*\)\(’\).*/\2/p' log.txt)
echo '------------'
echo "已下载的文件名称: $filename"
echo '------------'
#显示当前下载模组信息
echo '------------'
ls -all $filename
echo '------------'
# 选择mods类型
echo 'Select mode category:'
modes_class_list=("Checkpoint" "Embedding" "Hypernetwork" "Aesthetic Gradient" "LoRA" "LyCORIS" "DoRA" "Controlnet" "Upscaler" "Motion" "VAE" "Poses" "Wildcards" "Workflows" "Other")
for index in "${!modes_class_list[@]}"; do
echo $index ${modes_class_list[$index]}
done
# 上传设置
echo '输入序号(从0开始)'
read modes_class_id
# 检查文件是否下载成功
if [ ! -f "$filename" ]; then
echo "文件下载失败,请检查链接或重试。"
exit 1
fi
# 文件重命名
new_name=$mode_url_id.$filename
mv $filename $new_name
echo "已将 $filename 修改为 $new_name"
# 下载封面并重命名
wget -O $new_name.jpeg $mdoe_img
# 开始上传
./BaiduPCS-Go upload $new_name $new_name.jpeg /我的资源/civitai/${modes_class_list[modes_class_id]}/$tag_text
# 检查上传是否成功
if [ $? -ne 0 ]; then
echo "文件上传失败,请检查上传命令或重试。"
exit 1
fi
# 删除文件
rm -rf $new_name
rm -rf $new_name.jpeg
rm -rf log.txt mode.dl mode.url
# 完成
echo 'DONE!'
echo "已上传到:/我的资源/civitai/${modes_class_list[modes_class_id]}/$tag_text"
echo "已上传到:/我的资源/civitai/${modes_class_list[modes_class_id]}/$tag_text" >> done.txt
RUN
chmod +x getmode.sh
bash getmode.sh
网盘效果
正文完