Spaces:
Running
Running
File size: 2,204 Bytes
736dcf7 | 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 | #!/bin/bash
echo "Starting Puppeteer rigging pipeline..."
mkdir -p results
# skeleton
echo "Running skeleton generation..."
cd skeleton
python demo.py \
--input_dir ../examples \
--pretrained_weights skeleton_ckpts/puppeteer_skeleton_w_diverse_pose.pth \
--output_dir ../results/ --save_name skel_results --input_pc_num 8192 \
--save_render --apply_marching_cubes --joint_token --seq_shuffle
echo "Skeleton generation completed."
# If you found the results not satisfactory, try the model trained with bone-based tokenization:
# echo "Running skeleton with bone tokenization..."
# python demo.py \
# --input_dir ../examples \
# --pretrained_weights skeleton_ckpts/puppeteer_skeleton_w_diverse_pose_bone_token.pth \
# --output_dir ../results/ --save_name skel_results --input_pc_num 8192 \
# --save_render --apply_marching_cubes --hier_order --seq_shuffle
# Copy generated rig files to skeletons for following skinning
echo "Copying generated rig files..."
mkdir -p ../results/skeletons/
cd ../results/skel_results/
for file in *_pred.txt; do
if [ -f "$file" ]; then
new_name=$(echo "$file" | sed 's/_pred\.txt$/.txt/')
cp "$file" "../skeletons/$new_name"
fi
done
cd ../../skeleton
echo "Rig files copied to results/skeletons/"
# skinning
# Note that meshes with complex topology may require more data processing time.
echo "Running skinning..."
cd ../skinning
CUDA_VISIBLE_DEVICES=0 torchrun \
--nproc_per_node=1 \
--master_port=10009 \
main.py \
--num_workers 1 --batch_size 1 --generate --save_skin_npy \
--pretrained_weights skinning_ckpts/puppeteer_skin_w_diverse_pose_depth1.pth \
--input_skel_folder ../results/skeletons \
--mesh_folder ../examples \
--post_filter --depth 1 --save_folder ../results/skin_results
echo "Skinning completed."
echo "Copying generated skin files..."
mkdir -p ../results/final_rigging/
cd ../results/skin_results/generate/
for file in *_skin.txt; do
if [ -f "$file" ]; then
new_name=$(echo "$file" | sed 's/_skin\.txt$/.txt/')
cp "$file" "../../final_rigging/$new_name"
fi
done
cd ../../../
echo "Final rig files copied to results/final_rigging/" |