Out of the box, Filament uses ui-avatars.com to generate avatars based on a user's name. To provide your own avatar URLs, you can implement the HasAvatar contract.

So, if you want to support gravatar.com, you can start with creating a custom AvatarProvider.

namespace App\Filament\AvatarProviders;
 
use App\Models\User;
use Filament\AvatarProviders\Contracts\AvatarProvider;
use Illuminate\Database\Eloquent\Model;
 
class GravatarsProvider implements AvatarProvider
{
public function get(Model $authUser): string
{
/** @var User $user */
$user = $authUser;
 
$hash = md5(strtolower(trim($user->email)));
return "https://www.gravatar.com/avatar/{$hash}.jpg";
}
}

Once you have this, it is as simple as registering it in config/filament.php under the key default_avatar_provider:

return [
 
/*
|--------------------------------------------------------------------------
| Default Avatar Provider
|--------------------------------------------------------------------------
|
| This is the service that will be used to retrieve default avatars if one
| has not been uploaded.
|
*/
 
'default_avatar_provider' => App\Filament\AvatarProviders\GravatarsProvider::class,
 
];

Important to know is that if null is returned from the getFilamentAvatarUrl() method, Filament will fall back to ui-avatars.com.