Quick tutorial on how to change profile photo in ChatGPT

First of all it is important to know that this is not possible natively, we must use Gravatar to do this.
Briefly gravatar is a platform that allows you to have custom photos on Wordpress based sites or sites that support this format of avatar or profile picture.

So let’s start

IMPORTANT
The Gravatar/Wordpress account must be created with the SAME E-Mail with which the ChatGPT account was created.

1 You must create a Gravatar account (It is the same as a wordpress account, if you already have one just log in to it) https://en.gravatar.com/

2 At the top right of your profile select “Add an image”

3 Select the image you want to upload and save changes

4 After a while you will have the picture in the ChatGPT chat (In my case I had to wait 1 hour for the changes to be applied)

  • Additionally, the picture you choose must be appropriate as it will be shown on ChatGPT as well as on pages or blogs where you are registered with this E-Mail.
9 Likes

Result:
image

1 Like

Thank u so much, I finally have my pfp

1 Like

its been several days now since i added the pic on gravatar but chatgpt still hasnt applied it why?

worked thank you so much,but may i ask how dose it worked?

omg I didn’t see this comment at the time and it’s been a long time, you set the same email address?, have you marked your image as appropriate for all audiences?

I’m glad it worked
Of course, this works because ChatGPT, supports this type of wordpress images, in simple words, all websites that support this type of avatar will be able to display your image.

Assuming ofc that your image is appropriate for all audiences
And I apologize for the late reply, but I haven’t checked the forum much :3

Mine worked on the ChatGPT Website, but not the app. I only did it a few hours ago, might it just take a little longer?

charge GPT give me a photo of a child who were juggling with football

Still doesn’t change… Changed on OpenAI Playground website, but ChatGPT doesn’t change yet ;(

still aint changed, only on openai. is smth wrong??

Mine got changed quickly, make sure after you change your profile pic in gravatar, wait a few minutes then log out of the chat gpt website. After a few minutes, log back in.
PS: make sue the email that you used to make a gravatar account is the same email you used with chatgpt otherwise, it won’t work.

It didnt work, I do every single step an ddouble check y zero results

First of all, it is entirely possible to do this “native” - as in modify the runtime CSS of ChatGPT so that your Gravatar icon is not shown.

Then further, that you can then uBlock Gravatar completely so there isn’t an identity web bug receiving your email address sent from providers without respect for your privacy, and tracking your movements on the internet.

Tampermonkey/Greasemonkey script to sanitize screenshots:

// ==UserScript==
// @name         ChatGPT Replace Gravatar
// @namespace    http://tampermonkey.net/
// @version      2025.05.16
// @description  Use an emoji instead of downloaded web bug
// @author       -J
// @match        https://chatgpt.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=chatgpt.com
// @grant        none
// ==/UserScript==
//  ------- new user menu icon, not gravatar
(function() {
    'use strict';

    function newUserIcon() {
        const button = document.querySelector('button[data-testid="profile-button"]');
        if (!button) return;

        const imageContainer = button.querySelector('div.relative.flex');
        if (!imageContainer) return;

        // Remove existing image if present
        const existingImg = imageContainer.querySelector('img');
        if (existingImg) {
            imageContainer.removeChild(existingImg);
        }

        // Prevent multiple icons
        if (!imageContainer.querySelector('span#customUserIcon')) {
            const newIcon = document.createElement('span');
            newIcon.id = 'customUserIcon'; // Unique identifier
            newIcon.textContent = '⚙️'; // Emoji for user profile
            newIcon.style = 'font-size: 20px; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center;';
            imageContainer.appendChild(newIcon);
        }
    }

    // Observer to ensure the DOM is fully loaded and dynamically managed
    const observer = new MutationObserver(mutations => {
        mutations.forEach(mutation => {
            if (mutation.addedNodes.length) {
                newUserIcon(); // Run our function to check and modify DOM
            }
        });
    });

    // Configuration of the observer:
    const config = { childList: true, subtree: true };

    // Start observing the body for added elements
    observer.observe(document.body, config);

    // Also run immediately on load in case the content is already there
    document.addEventListener('DOMContentLoaded', newUserIcon);
})();

Thanks for this tips
It worked for me instantly