  We present AstroPhot, a fast, powerful, and user-friendly Python based
astronomical image photometry solver. AstroPhot incorporates automatic
differentiation and GPU (or parallel CPU) acceleration, powered by the machine
learning library PyTorch. Everything: AstroPhot can fit models for sky, stars,
galaxies, PSFs, and more in a principled Chi^2 forward optimization, recovering
Bayesian posterior information and covariance of all parameters. Everywhere:
AstroPhot can optimize forward models on CPU or GPU; across images that are
large, multi-band, multi-epoch, rotated, dithered, and more. All at once: The
models are optimized together, thus handling overlapping objects and including
the covariance between parameters (including PSF and galaxy parameters). A
number of optimization algorithms are available including Levenberg-Marquardt,
Gradient descent, and No-U-Turn MCMC sampling. With an object-oriented user
interface, AstroPhot makes it easy to quickly extract detailed information from
complex astronomical data for individual images or large survey programs. This
paper outlines novel features of the AstroPhot code and compares it to other
popular astronomical image modeling software. AstroPhot is open-source, fully
Python based, and freely accessible here:
https://github.com/Autostronomy/AstroPhot
