We present a methodology for seismic inversion that generates high-resolution models of facies and elastic properties from pre-stack data. Our inversion algorithm uses a transdimensional approach where, in addition to the layer properties, the number of layers is treated as unknown. In other words, the data itself determine the correct model parameterization, that is, the number of layers. The reversible jump Markov Chain Monte Carlo method is an effective tool to solve such transdimensional problems as it generates models of reservoir properties along with uncertainty estimates. However, current implementations of the reversible jump Markov Chain Monte Carlo algorithms do not account for the non-Gaussian and multimodal nature of model parameters. The target elastic reservoir properties generally have multimodal and non-parametric distribution at each location of the model. The number of modes is equal to the number of facies.Taking these factors into account, we extend the reversible jump Markov Chain Monte Carlo algorithm to simultaneously invert for discrete facies and continuous elastic reservoir properties. The proposed extension to the algorithm iteratively samples the facies, by moving from one mode to another, and elastic properties by sampling within the same mode. The integration of facies classification within the inversion reduces nonuniqueness, improves convergence speed and produces geologically consistent results.The workflow uses machine learning to generate probabilistic priors for the model parameters. We validate our approach by applying it to a synthetic dataset generated from a well log with two facies and then to a complex synthetic two-dimensional model involving three facies having overlapping elastic property distribution. Finally, we apply our algorithm to a field dataset acquired over an unconventional reservoir. Our algorithm demonstrates the usefulness of incorporating facies information in seismic inversion and also the feasibility of inverting for facies from seismic data.