In this paper, a new technique for modeling textured 3D faces is introduced. 3D faces can either be generated automatically from one or more photographs, or modeled directly through an intuitive user interface. Users are assisted in two key problems of computer aided face modeling. First, new face images or new 3D face models can be registered automatically by computing dense one-to-one correspondence to an internal face model. Second, the approach regulates the naturalness of modeled faces avoiding faces with an ``unlikely'' appearance. Starting from an example set of 3D face models, we derive a Morphable Face Model by transforming the shape and texture of the examples into a vector space representation. New faces and expressions can be modeled by forming linear combinations of the prototypes. Shape and texture constraints derived from the statistics of our example faces are used to guide manual modeling or automated matching algorithms. In this framework, it is easy to control complex facial attributes, such as gender, attractiveness, body weight, or facial expressions. Attributes are automatically learned from a set of faces rated by the user, and can then be applied to classify and manipulate new faces. Given a single photograph of a face, we can estimate its 3D shape, its orientation in space and the illumination conditions in the scene. Starting from a rough estimate of size, orientation and illumination, our algorithm optimizes these parameters along with the face's internal shape and surface colour to find the best match to the input image. The face model extracted from the image can be rotated and manipulated in 3D.