diff --git a/src/applications/people/cache/PhabricatorUserProfileImageCacheType.php b/src/applications/people/cache/PhabricatorUserProfileImageCacheType.php
--- a/src/applications/people/cache/PhabricatorUserProfileImageCacheType.php
+++ b/src/applications/people/cache/PhabricatorUserProfileImageCacheType.php
@@ -24,8 +24,43 @@
   public function newValueForUsers($key, array $users) {
     $viewer = $this->getViewer();
 
-    $file_phids = mpull($users, 'getProfileImagePHID');
-    $file_phids = array_filter($file_phids);
+    $file_phids = array();
+    $generate_users = array();
+    foreach ($users as $user) {
+      $user_phid = $user->getPHID();
+      $custom_phid = $user->getProfileImagePHID();
+      $default_phid = $user->getDefaultProfileImagePHID();
+      $version = $user->getDefaultProfileImageVersion();
+
+      if ($custom_phid) {
+        $file_phids[$user_phid] = $custom_phid;
+        continue;
+      }
+      if ($default_phid) {
+        if ($version == PhabricatorFilesComposeAvatarBuiltinFile::VERSION) {
+          $file_phids[$user_phid] = $default_phid;
+          continue;
+        }
+      }
+      $generate_users[] = $user;
+    }
+
+    // Generate Files for anyone without a default
+    foreach ($generate_users as $generate_user) {
+      $generate_user_phid = $generate_user->getPHID();
+      $generate_username = $generate_user->getUsername();
+      $generate_version = PhabricatorFilesComposeAvatarBuiltinFile::VERSION;
+      $generate_file = id(new PhabricatorFilesComposeAvatarBuiltinFile())
+        ->getUserProfileImageFile($generate_username);
+
+      $unguarded = AphrontWriteGuard::beginScopedUnguardedWrites();
+      $generate_user->setDefaultProfileImagePHID($generate_file->getPHID());
+      $generate_user->setDefaultProfileImageVersion($generate_version);
+      $generate_user->save();
+      unset($unguarded);
+
+      $file_phids[$generate_user_phid] = $generate_file->getPHID();
+    }
 
     if ($file_phids) {
       $files = id(new PhabricatorFileQuery())
@@ -40,8 +75,11 @@
     $results = array();
     foreach ($users as $user) {
       $image_phid = $user->getProfileImagePHID();
+      $default_phid = $user->getDefaultProfileImagePHID();
       if (isset($files[$image_phid])) {
         $image_uri = $files[$image_phid]->getBestURI();
+      } else if (isset($files[$default_phid])) {
+        $image_uri = $files[$default_phid]->getBestURI();
       } else {
         $image_uri = PhabricatorUser::getDefaultProfileImageURI();
       }
diff --git a/src/applications/people/controller/PhabricatorPeopleProfilePictureController.php b/src/applications/people/controller/PhabricatorPeopleProfilePictureController.php
--- a/src/applications/people/controller/PhabricatorPeopleProfilePictureController.php
+++ b/src/applications/people/controller/PhabricatorPeopleProfilePictureController.php
@@ -30,22 +30,12 @@
     $e_file = true;
     $errors = array();
 
-    // Verify install has GD extension, otherwise default to avatar.png
-    $gd = function_exists('imagecreatefromstring');
-
     if ($request->isFormPost()) {
       $phid = $request->getStr('phid');
       $is_default = false;
       if ($phid == PhabricatorPHIDConstants::PHID_VOID) {
-        // Compose the builtin unique image
-        if ($gd) {
-          $file = id(new PhabricatorFilesComposeAvatarBuiltinFile())
-            ->getUserProfileImageFile($name);
-        } else {
-          $phid = null;
-          $is_default = true;
-        }
-
+        $phid = null;
+        $is_default = true;
       } else if ($phid) {
         $file = id(new PhabricatorFileQuery())
           ->setViewer($viewer)
@@ -96,13 +86,15 @@
     $form = id(new PHUIFormLayoutView())
       ->setUser($viewer);
 
-    if ($gd) {
-      $unique_default = id(new PhabricatorFilesComposeAvatarBuiltinFile())
-        ->getUniqueProfileImage($name);
-      $default_image = PhabricatorFile::loadBuiltin(
-        $viewer, $unique_default['icon']);
-    } else {
-      $unique_default = null;
+    $default_image = $user->getDefaultProfileImagePHID();
+    if ($default_image) {
+      $default_image = id(new PhabricatorFileQuery())
+        ->setViewer($viewer)
+        ->withPHIDs(array($default_image))
+        ->executeOne();
+    }
+
+    if (!$default_image) {
       $default_image = PhabricatorFile::loadBuiltin($viewer, 'profile.png');
     }
 
@@ -181,21 +173,9 @@
       }
     }
 
-    $default_style = array();
-    if ($unique_default) {
-      $border_color = implode(', ', $unique_default['border']);
-      $default_style = array(
-        'background-color: '.$unique_default['color'].';',
-        'border: 4px solid rgba('.$border_color.');',
-        'height: 42px;',
-        'width: 42px',
-      );
-    }
-
     $images[PhabricatorPHIDConstants::PHID_VOID] = array(
       'uri' => $default_image->getBestURI(),
       'tip' => pht('Default Picture'),
-      'style' => implode(' ', $default_style),
     );
 
     require_celerity_resource('people-profile-css');
@@ -223,7 +203,6 @@
             'height' => 50,
             'width' => 50,
             'src' => $spec['uri'],
-            'style' => $style,
           )));
 
       $button = array(
diff --git a/src/applications/people/management/PhabricatorPeopleProfileImageWorkflow.php b/src/applications/people/management/PhabricatorPeopleProfileImageWorkflow.php
--- a/src/applications/people/management/PhabricatorPeopleProfileImageWorkflow.php
+++ b/src/applications/people/management/PhabricatorPeopleProfileImageWorkflow.php
@@ -55,8 +55,14 @@
     foreach ($iterator as $user) {
       $username = $user->getUsername();
       $default_phid = $user->getDefaultProfileImagePHID();
+      $gen_version = $user->getDefaultProfileImageVersion();
 
-      if ($default_phid == null || $is_force) {
+      $generate = false;
+      if ($gen_version != $version) {
+        $generate = true;
+      }
+
+      if ($default_phid == null || $is_force || $generate) {
         $file = id(new PhabricatorFilesComposeAvatarBuiltinFile())
           ->getUserProfileImageFile($username);
         $user->setDefaultProfileImagePHID($file->getPHID());
diff --git a/src/applications/people/storage/PhabricatorUserProfile.php b/src/applications/people/storage/PhabricatorUserProfile.php
--- a/src/applications/people/storage/PhabricatorUserProfile.php
+++ b/src/applications/people/storage/PhabricatorUserProfile.php
@@ -13,7 +13,9 @@
 
     return id(new self())
       ->setUserPHID($user->getPHID())
-      ->setIcon($default_icon);
+      ->setIcon($default_icon)
+      ->setTitle('')
+      ->setBlurb('');
   }
 
   protected function getConfiguration() {