使用Bash shall 下载civitai模型(工作流)并上传到百度网盘

civitai的网络并不是非常友好,正好有一台香港的vps,于是随便写了一个bash脚本来下载模型同时上传到百度云,这样下载速度会快很多,话不多说,开整。

使用Bash shall 下载civitai模型(工作流)并上传到百度网盘

获得API Keys

访问:https://civitai.com/user/account

使用Bash shall 下载civitai模型(工作流)并上传到百度网盘

使用Bash shall 下载civitai模型(工作流)并上传到百度网盘

使用Bash shall 下载civitai模型(工作流)并上传到百度网盘

下载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

网盘效果
使用Bash shall 下载civitai模型(工作流)并上传到百度网盘

正文完
 0
nekoda
版权声明:本站原创文章,由 nekoda 于2024-08-18发表,共计2023字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)