1. A method for training machine learning algorithm s to match input images to example images based on combinations of body shape, body pose, and clothing item, the method comprising: generating, by a processing device and based on user inputs, synthetic training images having known combinations of a training body pose, a training clothing item, and a training body shape; training, by the processing device, a machine learning algorithm to generate training feature vectors describing the known combinations of the training body pose, the training clothing item, and the training body shape, wherein training the machine learning algorithm comprises: selecting a set of the synthetic training images with known body pose variations and known body shape variations, generating input depth maps based on clothing depicted in the selected set of synthetic training images, accessing a neural network for encoding the input depth maps into the training feature vectors and decoding output depth maps from the training feature vectors, and iteratively adjusting the neural network such that differences between the input depth maps and the output depth maps are minimized, wherein adjusting the neural network modifies (i) a first set of dimensions representing body pose in the training feature vectors encoded by the adjusted neural network and (ii) a second set of dimensions representing body shape in the training feature vectors encoded by the adjusted neural network; and outputting, by the processing device, the trained machine learning algorithm for matching (i) an input image having an input body shape and input body pose to (ii) an example image having a known combination of example body shape and example body pose.