Files
change_hair/scripts/sync_data_to_server.sh
xsl 9b7324cd26 chore: 适配本机 xsl 路径(RTX 5090 机器)
将所有绝对路径从 /home/ubuntu 改回 /home/xsl,覆盖启动脚本、
configure.ini 及训练/测试脚本。纯路径替换,无功能性改动。

本分支(xsl5090)用于本机(RTX 5090)运行;master 维持 /home/ubuntu
供远程 ubuntu 机器使用。
2026-07-18 16:26:16 +08:00

70 lines
2.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# 断点续传大文件到云服务器 /home/xsl/data
# 用法: bash scripts/sync_data_to_server.sh [all|weights|sd|hairstyles]
set -euo pipefail
REMOTE="ubuntu@117.50.213.111"
REMOTE_BASE="/home/xsl/data"
LOCAL_BASE="/home/xsl/change_hair"
LOG_DIR="${LOCAL_BASE}/project/logs"
mkdir -p "$LOG_DIR"
RSYNC_OPTS=(-avP --partial --info=progress2)
sync_weights() {
echo ">>> [1/3] 同步 hair_service_sd/weights (~10G) ..."
rsync "${RSYNC_OPTS[@]}" \
"${LOCAL_BASE}/project/hair_service_sd/weights/" \
"${REMOTE}:${REMOTE_BASE}/hair_service_sd/weights/"
}
sync_sd_models() {
echo ">>> [2/3] 同步 SD 底模 + ESRGAN + GFPGAN (~4.6G) ..."
rsync "${RSYNC_OPTS[@]}" \
"${LOCAL_BASE}/project/onediff/stable-diffusion-webui/models/Stable-diffusion/v1-5-pruned-emaonly.safetensors" \
"${REMOTE}:${REMOTE_BASE}/sdwebui/models/Stable-diffusion/"
rsync "${RSYNC_OPTS[@]}" \
"${LOCAL_BASE}/project/onediff/stable-diffusion-webui/models/ESRGAN/" \
"${REMOTE}:${REMOTE_BASE}/sdwebui/models/ESRGAN/"
rsync "${RSYNC_OPTS[@]}" \
"${LOCAL_BASE}/project/onediff/stable-diffusion-webui/models/GFPGAN/" \
"${REMOTE}:${REMOTE_BASE}/sdwebui/models/GFPGAN/"
}
sync_hairstyles() {
echo ">>> [3/3] 同步 5 个 chang_* 发型资源 (~0.8G) ..."
for id in chang_tuoyuan chang_bolang chang_zhixian chang_huaban chang_xinxing; do
echo " - $id"
rsync "${RSYNC_OPTS[@]}" \
"${LOCAL_BASE}/project/data/ref_hairstyle/${id}/" \
"${REMOTE}:${REMOTE_BASE}/project/data/ref_hairstyle/${id}/"
rsync "${RSYNC_OPTS[@]}" \
"${LOCAL_BASE}/project/data/hair_template_material/${id}/" \
"${REMOTE}:${REMOTE_BASE}/project/data/hair_template_material/${id}/"
rsync "${RSYNC_OPTS[@]}" \
"${LOCAL_BASE}/project/data/upload_train_imgs/${id}/" \
"${REMOTE}:${REMOTE_BASE}/project/data/upload_train_imgs/${id}/"
rsync "${RSYNC_OPTS[@]}" \
"${LOCAL_BASE}/data/train_material/${id}/" \
"${REMOTE}:${REMOTE_BASE}/train_material/${id}/"
done
}
TARGET="${1:-all}"
case "$TARGET" in
weights) sync_weights ;;
sd) sync_sd_models ;;
hairstyles) sync_hairstyles ;;
all)
sync_weights
sync_sd_models
sync_hairstyles
;;
*)
echo "用法: $0 [all|weights|sd|hairstyles]"
exit 1
;;
esac
echo ">>> 同步完成: ${TARGET}"