File size: 3,913 Bytes
d643072 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
#!/bin/bash
output_dir=output
# ============ start of custom code block ==========
if [ -n "$1" ]; then
config_file=$1
fi
if [ -n "$2" ]; then
model_paths_file=$2
fi
# ============ end of custom code block ===========
default_step=20
default_bs=1 # must be 1 for image-reward
default_sample_nums=100
default_sampling_algo="flow_dpm-solver"
json_file="tools/metrics/image_reward/benchmark-prompts-dict.json"
default_add_label=''
default_dataset='ImageReward'
default_suffix_label='30K_bs50_Flow_DPM20_' # suffix of the line chart on wandb
default_log_image_reward=false
# 👇No need to change the code below
job_name=$(basename $(dirname $(dirname "$model_paths_file")))
for arg in "$@"
do
case $arg in
--np=*)
np="${arg#*=}"
shift
;;
--step=*)
step="${arg#*=}"
shift
;;
--bs=*)
bs="${arg#*=}"
shift
;;
--sample_nums=*)
sample_nums="${arg#*=}"
shift
;;
--sampling_algo=*)
sampling_algo="${arg#*=}"
shift
;;
--dataset=*)
dataset="${arg#*=}"
shift
;;
--cfg_scale=*)
cfg_scale="${arg#*=}"
shift
;;
--suffix_label=*)
suffix_label="${arg#*=}"
shift
;;
--add_label=*)
add_label="${arg#*=}"
shift
;;
--log_image_reward=*)
log_image_reward="${arg#*=}"
shift
;;
--auto_ckpt=*)
auto_ckpt="${arg#*=}"
shift
;;
--auto_ckpt_interval=*)
auto_ckpt_interval="${arg#*=}"
shift
;;
--inference=*)
inference="${arg#*=}"
shift
;;
--imagereward=*)
imagereward="${arg#*=}"
shift
;;
--tracker_pattern=*)
tracker_pattern="${arg#*=}"
shift
;;
--ablation_key=*)
ablation_key="${arg#*=}"
shift
;;
--ablation_selections=*)
ablation_selections="${arg#*=}"
shift
;;
*)
;;
esac
done
np=${np:-8}
inference_script=${inference_script:-"scripts/inference_image_reward.py"}
inference=${inference:-true} # if run model inference
imagereward=${imagereward:-true} # if compute image-reward
step=${step:-$default_step}
bs=${bs:-$default_bs}
dataset=${dataset:-$default_dataset}
cfg_scale=${cfg_scale:-4.5}
sample_nums=${sample_nums:-$default_sample_nums}
sampling_algo=${sampling_algo:-$default_sampling_algo}
suffix_label=${suffix_label:-$default_suffix_label}
add_label=${add_label:-$default_add_label}
ablation_key=${ablation_key:-''}
ablation_selections=${ablation_selections:-''}
tracker_pattern=${tracker_pattern:-"epoch_step"}
log_image_reward=${log_image_reward:-$default_log_image_reward}
auto_ckpt=${auto_ckpt:-false} # if collect ckpt path automatically, use with the following one $auto_ckpt_interval
auto_ckpt_interval=${auto_ckpt_interval:-0} # 0:last step in one epoch; 1000: every 1000 steps
read -r -d '' cmd <<EOF
bash scripts/infer_metric_run_inference_metric.sh $config_file $model_paths_file --np=$np \
--inference=$inference --fid=false --clipscore=false --imagereward=$imagereward \
--step=$step --bs=$bs --sample_nums=$sample_nums --json_file=$json_file --dataset=$dataset \
--exist_time_prefix=$exist_time_prefix --cfg_scale=$cfg_scale \
--fid_suffix_label=$suffix_label --add_label=$add_label \
--log_fid=false --log_clip_score=false --log_image_reward=$log_image_reward \
--output_dir=$output_dir --auto_ckpt=$auto_ckpt --sampling_algo=$sampling_algo \
--auto_ckpt_interval=$auto_ckpt_interval --tracker_pattern=$tracker_pattern \
--ablation_key=$ablation_key --ablation_selections="$ablation_selections" \
--inference_script=$inference_script
EOF
echo $cmd '\n'
bash -c "${cmd}"
|