106 lines
1.7 KiB
Bash
Executable File
106 lines
1.7 KiB
Bash
Executable File
#!/bin/zsh
|
|
|
|
dir=${0:a:h}
|
|
hdir=${0:a:h:h}
|
|
mkdir -p $hdir/png
|
|
f=$hdir/png/t.png
|
|
f_sleep=$hdir/png/sleep
|
|
txt=$hdir/txt
|
|
|
|
if [ ! -d $txt ];then
|
|
mkdir -p $txt
|
|
fi
|
|
|
|
cfg=$dir/stable_diffusion_prompt.j
|
|
cfg_did=$txt/stable_diffusion_did.txt
|
|
opt_af=$txt/stable_diffusion_a.txt
|
|
opt_bf=$txt/stable_diffusion_b.txt
|
|
opt_allf=$txt/stable_diffusion_all.txt
|
|
|
|
if [ ! -f $cfg_did ];then
|
|
touch $cfg_did
|
|
fi
|
|
|
|
did=$1
|
|
|
|
if [ ! -f $cfg ];then
|
|
echo no file $cfg
|
|
exit
|
|
fi
|
|
|
|
opt_a=`echo $@|cut -d ' ' -f 2`
|
|
opt_b=`echo $@|cut -d ' ' -f 3`
|
|
|
|
echo $opt_a >! $opt_af
|
|
echo $opt_b >! $opt_bf
|
|
echo $@ >! $opt_allf
|
|
|
|
case "$opt_a" in
|
|
-p|p)
|
|
q="$opt_b , masterpiece, best quality, 8k wallpaper Highly, cinematic Lighting, cinematic Beautiful"
|
|
;;
|
|
-t|t)
|
|
tag=$opt_b
|
|
json=`cat $cfg|jq ".[]|select(.tag == \"${tag}\")"`
|
|
if [ -z "$json" ] || [ -z "$tag" ];then
|
|
echo no tag
|
|
exit
|
|
fi
|
|
json=`echo $json|jq -s`
|
|
n=`echo $json|jq "length"`
|
|
n=$((RANDOM % n))
|
|
q=`echo $json|jq -r ".[$n].body"`
|
|
#m=`echo $json|jq -r ".[$n].model"`
|
|
;;
|
|
*)
|
|
n=`cat $cfg|jq "length"`
|
|
n=$((RANDOM % n))
|
|
q=`cat $cfg|jq -r ".[$n].body"`
|
|
;;
|
|
esac
|
|
|
|
model_s="model
|
|
coharu
|
|
flat2d
|
|
pastelmix
|
|
pvcstyle"
|
|
model_r=$((RANDOM % `echo "$model_s"|wc -l` + 1))
|
|
m=`echo "$model_s"|awk "NR==$model_r"`
|
|
|
|
case $1 in
|
|
-pm)
|
|
m=$2
|
|
q=`echo $@ | cut -d ' ' -f 3-`
|
|
;;
|
|
esac
|
|
|
|
if [ -z "$q" ];then
|
|
echo no prompt
|
|
exit
|
|
fi
|
|
if [ -z "$m" ];then
|
|
m=model
|
|
fi
|
|
|
|
echo $q
|
|
echo $m
|
|
|
|
function run(){
|
|
if [ -f $f_sleep ];then
|
|
rm $f_sleep
|
|
fi
|
|
ssh diffusers "conda activate ldm;cd ./stable-diffusion/;python safe.py \'${q}\' ${m}"
|
|
scp -r diffusers:stable-diffusion/t.png $f
|
|
if [ $? -ne 0 ];then
|
|
touch $f_sleep
|
|
fi
|
|
}
|
|
|
|
if [ -n "`cat $cfg_did| grep -x $did`" ] && [ "$did" != "$admin" ];then
|
|
rm $f
|
|
else
|
|
echo "\n$did" >> $cfg_did
|
|
run
|
|
fi
|
|
|