- BrainTools - https://www.braintools.ru -
Открытый в конце ноября 2022 года ChatGPT вскоре перестал быть сервисом только для создания текстов. Ещё 19 октября 2023 в платные тарифы добавили [1] DALL·E 3. 8 августа 2024 года OpenAI расщедрилась [2]: отныне можно было создавать до двух картинок в сутки на бесплатном тарифе ChatGPT. Важно, что это был просто союз с большой языковой моделью: БЯМ переводит нестройную человеческую просьбу в детальный бриф промпта для графического бэкэнда — генеративной нейросети на диффузионных декодерах.
25 марта компания OpenAI объявила [3], что отныне модель GPT-4o может генерировать картинки. БЯМ способна не только создать новое изображение с нуля по текстовому описанию, но и принять на входе другую картинку с текстовым промптом и сгенерировать что-то на этой основе. Теперь картинки рисовала не чистая диффузия, а авторегрессионный трансформер в связке с мощным декодером, качество поднялось, практическая польза резко выросла.
Почти сразу обнаружился огромный недостаток картинок от GPT-4o — лёгкий коричневый оттенок любых результатов, которому в разной степени были подвержены все результаты. Хотя проблема решается тривиально, сегодня существует целая экосистема платного софта для устранения этого эффекта.
Если подытожить всю статью сразу: не платите никому денег, просто запустите magick "image.png" -separate -contrast-stretch 0.5%x0.5% -combine "output.png", воспользуйтесь одним из бесплатных онлайн-инструментов по типу Yellow Tint Cleaner [4] или сделайте автобаланс белого в GIMP [5]. Но давайте хотя бы разок проговорим, что тут происходит.
Пользователи заметили неладное сразу же. Типичная жалоба [6] на одном из подреддитов через три дня после релиза: «Почему так много сгененированных ChatGPT картинок имеют вид такой, будто к ним применён жёлтый фильтр?» Реддитор пишет, что видит такое у всех картинок от нового инструмента.
Спорно, проявляется ли излишняя желтизна всегда или в редких случаях её нет. Одно ясно точно: промптами проблему не решить. Как сообщают [7] реддиторы, не помогает добавление никаких фраз: ни «без фильтра сепии», ни «естественные цвета», ни даже указание кода цвета для конкретных объектов на изображении. Бесполезно также расспрашивать ChatGPT, почему у изображения такой оттенок или просить БЯМ написать промпт, который не будет давать этого эффекта.
Вот та же фотография Маркса от папарацци c автобалансом белого.

Для сравнения: ниже представлена анимация с комбинацией исходного и нового изображений. Картинка пожата в GIF, поэтому градиенты цветов здесь выглядят чуть похуже из-за артефактов сжатия, но разница в общем оттенке очевидна.

Как видно, в данном случае различие не такое большое. Можно даже списать его на мягкий свет уличного освещения. Но из слабо выраженного эффекта не получилось бы мема.
Вскоре после того, как GPT-4o научилась рисовать, желтоватый оттенок начали использовать в качестве простого маркера картинок от ИИ. Весь Интернет заметил наплыв рисунков с характерной тёплой цветовой гаммой, часто выраженной в избытке. Как и любой арт от ИИ, который повторяется и похож, оранжево-желтые картинки начали слегка выбешивать.
Называют эффект по-разному. В энциклопедии интернет-культуры Know Your Meme собрано [8] много примеров: «piss tint» («оттенок ссанины»), «сепия», «yellow bias» («склонность к желтизне») и так далее.
Желтизна характерна только для GPT-4o. Не удаётся найти схожего потока жалоб на подобный эффект у других систем генерации изображений. При этом объяснения со стороны OpenAI отсутствуют — будто и нет ничего, будто так и должно быть. А может, разработчики компании и сами не могут понять, что у них получились?
Сторонние исследователи тоже разводят руками. Типичный пример — это препринт статьи про бенчмарк GPT-ImgEval, где оценивается производительность GPT-4o в вопросе генерации изображений (arXiv:2504.02782 [9]). Среди прочего вскользь упоминается эта самая желтизна. Её авторы предлагают считать за цветовую предвзятость БЯМ.
Исследователи выдвигают осторожное предположение об источниках: дисбаланс цветораспределений в датасетах обучения [10] или выученные стилистические приоритеты, характерные для крупных датасетов. Однако авторы статьи считают, что нежелательная желтизна появляется только в тех случаях, когда промпт не указывает освещение и палитру. Это довольно спорно: этот янтарный оттенок хочется убрать почти всегда.
Если давать более общий обзор, это уже не первый маркер картинок ИИ. До этого предлагалось [11] искать оранжево-бирюзовый контраст. Дело в том, что в цветокоррекции сочетание оранжевого и бирюзового одновременно и хорошо подчёркивает кожу, и не забывает [12] про тени с фонами. Эти цвета комплементарны, поэтому картинка выглядит контрастнее и киношнее, персонажи от окружения отделяются лучше, достигается высокая визуальная выразительность.
Но не каждый на свете рисунок должен выглядеть как постер для блокбастера! Обычно за зеленцу в тенях и морковную кожу ругают Midjourney и Ideogram. При этом в случае Midjourney, чем промпт абстрактней и немногословней, тем эффект будет выражен сильнее.
Как бы то ни было, но вокруг проблемы сформировалась целая экосистема небольших сервисов-помогаторов. Некоторые из них даже просят за работу деньги.
Картинка от GPT-4o выглядит так, будто на неё смотришь через янтарь. Нейтрали желтеют, средние тона становятся теплее, чем должны. В свете недостаёт синего, поэтому белое — не белое, а кремово-бежевая бумага. Чистое небо превращается в циан, в тенях появляется болотность, холодные оттенки глохнут. Всё изображение имеет винтажный вид, будто это старая выцветшая фотография. Совсем плохо становится при последующем редактировании в ChatGPT: тёплый сдвиг усиливается и становится за��етнее с каждым проходом.
Но какая разница? Почему бы не оставить, как есть? На самом деле желтизна опасна в первую очередь из-за раздражения обычных людей — никому не хочется разглядывать однообразный ИИ-арт.
Основная задача сервисов по фиксу картинки — вернуть нейтральную опорную точку и восстановить нормальный тональный диапазон без паразитной теплоты. Важно также не тупо задирать синий, а соблюсти разумный баланс. Иначе белый начнёт голубить, кожа — сереть, а тени будут отдавать маджентой.
Типичный пример таких сайтов — UnYellowGPT [13]. Вообще-то сервис платный: на странице тарифов указано [14], что за $4 можно купить обработку 100 картинок, за $12 — сразу 800. Новопредставившемуся (регистрация только через аккаунт Google) дают обработать пять картинок бесплатно. Также с платными тарифами результаты обработки и оригиналы хранятся 30 суток, у пользователей, которые не платят, этот срок составляет всего 2 недели.
UnYellowGPT — интересный инструмент. На странице описания он рекомендует [15] себя как «standalone web tool». Это взаимоисключающие понятия: «standalone» подразумевает, что софт запускается локально, без доступа в Интернет, а «web tool» намекает на обратное.
Другие подобные сайты не просят денег. Сервисы по типу GPT-Tone [16], UnYellow.app [17] и Fix Yellow Tint [18] в худшем случае содержат ссылку на пожертвования их автору.
Часто их даже не выносят в отдельный сайт, такой инструмент может быть захощен [4] полностью внутри Hugging Face. Кстати, как признал [19] сам автор UnYellowGPT, он попросту портировал (не без помощи ИИ) упомянутый проект под свои нужды и попробовал подключить биллинг.
Иногда это утилита на Python [20]. Фичу могут встроить в платные генераторы картинок [21] или палитр [22] нейросетями , но функция правки желтизны GPT-4o будет бесплатная. В случае инструмента ИИ-редактора Freepik это лишь одна [23] из многих опций.
На самом деле быстро пофиксить можно хоть в одну команду в ImageMagick. Для этого он должен быть установлен в системе.
Пользователи Linux и каких-нибудь вариантов BSD могут установить его из пакетного менеджера своего дистрибутива. Будем считать, что мы на Windows, и вместо скачивания с официального сайта [24] мы поставим его через Chocolatey.
Проследуйте инструкциям с chocolatey.org/install#install-step1 [25] и запустите в PowerShell с правами администратора следующее:
Set-ExecutionPolicy AllSigned
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
После установки Chocolatey будем ставить собственно ImageMagick:
choco install -y imagemagick
Опционально: переменные окружения изменились, не помешало бы их обновить.
refreshenv
Теперь в системе должен работать ImageMagick. Можно проверить его версию:
magick -version
Позднее желательно время от времени запускать choco upgrade -y all.
Наивный подход — просто убрать немного из красного и зелёного каналов, а синий усилить. Руки так и чешутся написать что-то такое:
magick "image.png" -colorspace sRGB -channel R,G -evaluate Multiply 0.97 -channel B -evaluate Multiply 1.05 "output.png"
Лучше не подкручивать каналы на глаз, а нормализовать каждый канал автоматически, чтобы вернуть нейтральную опорную точку без перекоса в синеву.
magick "image.png" -separate -contrast-stretch 0.5%x0.5% -combine "output.png"
Здесь исходная картинка разложена на три однослойные маски красного, зелёного и синего. В каждом из них отрезаются 0,5 % самых тёмных и самых светлых пикселей, а оставшийся диапазон растягивается на все возможные значения между 0 и 255. Затем три канала собираются обратно. По сути, так реализуется простенький автобаланс белого.
Вот пример того, что может получиться. Это всё та же картинка с Марксом, которую для усиления желтизны ChatGPT перерисовал в стиле студии «Гибли» — очень пошлый и надоедливый промпт.

Так выглядит результат обработки командой выше.

Но запоминать никакие команды не хочется. Почему бы не написать один раз небольшой батничек, чтобы потом вызывать его? Следующий скрипт нужно сохранить в текстовый файл с расширением .bat с кодировкой UTF-8 без BOM, а затем перетаскивать файлы или целые папки в него. Предполагается, что в системе установлен ImageMagick. Команда для ImageMagick здесь чуть посложнее, с преобразованием в sRGB и удалением ненужных метаданных.
@echo off
REM Надо для циклов и условий.
setlocal EnableExtensions
REM Должно исправить кодировки.
chcp 65001 >nul
REM Сколько в процентах усекаем от цветового канала. Чем больше, тем агрессивнее коррекция.
set "PCT=0.5"
REM Расширения изображений, которые будем обрабатывать. Обычно ChatGPT отдаёт PNG, но мало ли.
set "EXTS=.png .jpg .jpeg"
REM Ошибка: нет файла.
if "%~1"=="" (
echo Ошибка: нет файлов.
echo Перетащите на этот файл .bat одно или несколько изображений, либо папку.
echo Исправленные файлы будут сохранены рядом с исходниками с суффиксом _unyellow.
pause
exit /b
)
REM Где ImageMagick?
where magick >nul 2>nul || (
echo Ошибка: ImageMagick не найден
echo https://imagemagick.org/script/download.php#windows
pause
exit /b
)
REM Обработка элементов
for %%A in (%*) do (
if exist "%%~fA" (
call :processDir "%%~fA"
) else (
call :processFile "%%~fA"
)
)
goto :eof
REM Обработка папки
:processDir
set "root=%~1"
echo [Папка] %root%
for /R "%root%" %%F in (*.*) do call :processFile "%%~fF"
REM Обработка файла
:processFile
set "in=%~1"
if not exist "%in%" goto :eof
REM Проверим расширение на вхождение в список допустимых
set "ext=%~x1"
set "isimg="
for %%E in (%EXTS%) do (
if /I "%%E"=="%ext%" set "isimg=1"
)
if not defined isimg (
echo [Пропуск] Не изображение: %in%
goto :eof
)
REM Построим путь вывода: тот же каталог, суффикс _unyellow перед расширением.
set "dir=%~dp1"
set "name=%~n1"
set "out=%dir%%name%_unyellow%ext%"
REM Если имя уже содержит _unyellow, пропустим.
if /I not "%name:_unyellow=%"=="%name%" (
echo [Пропуск] Уже обработано: %in%
goto :eof
)
REM Если файл результата уже существует, пропустим.
if exist "%out%" (
echo [Пропуск] Есть файл: %out%
goto :eof
)
REM Вызов ImageMagick
echo [Обработка] Корректирую: %in%
magick "%in%" -auto-orient -colorspace sRGB -channel R,G,B -contrast-stretch %PCT%%%x%PCT%%% +channel -strip "%out%"
REM Более простой вариант. Раскомментировать, если нужно.
REM magick "%in%" -separate -contrast-stretch %PCT%%%x%PCT%%% -combine "%out%"
goto :eof
Понятно, что файлы с символом процента («%») в имени этим пакетным файлом будут обрабатываться некорректно.
Наконец, баланс белого есть в любом графическом редакторе сложнее Microsoft Paint. Речь идёт не про дорогие продукты, а свободные и бесплатные. В Paint.net [26] это Adjustment → Auto-Level (Ctrl + Shift + L), в GIMP [5] — Colors → Auto → White Balance, в Krita [27] — Filters → Adjust → Levels и так далее.
Результат в каждом случае может выглядеть лучше или хуже. Выбирайте сами, что вам подходит больше, но только не публикуйте картинки с надоедливым янтарным оттенком.
Автор: atomlib
Источник [29]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/19959
URLs in this post:
[1] добавили: https://openai.com/index/dall-e-3-is-now-available-in-chatgpt-plus-and-enterprise/
[2] расщедрилась: https://www.theverge.com/2024/8/8/24216348/chatgpt-free-users-dall-e-3-images
[3] объявила: https://openai.com/index/introducing-4o-image-generation/
[4] Yellow Tint Cleaner: https://huggingface.co/spaces/gokaygokay/GPT4o-Yellow-Tint-Cleaner
[5] GIMP: https://www.gimp.org/
[6] жалоба: https://www.reddit.com/r/ChatGPTPro/comments/1jls6cv/why_do_many_of_chatgptgenerated_images_look_like/
[7] сообщают: https://www.reddit.com/r/ChatGPTPro/comments/1jmszh1/why_is_every_image_yellow/
[8] собрано: https://knowyourmeme.com/memes/ai-art-becoming-yellow
[9] arXiv:2504.02782: https://arxiv.org/abs/2504.02782
[10] обучения: http://www.braintools.ru/article/5125
[11] предлагалось: https://datalab.flitto.com/en/company/blog/this-orange-and-teal-color-bias-shouts-that-your-image-was-ai-generated/
[12] забывает: http://www.braintools.ru/article/333
[13] UnYellowGPT: https://unyellowgpt.com/
[14] указано: https://unyellowgpt.com/pricing
[15] Образец работы: https://unyellowgpt.com/blog/fix-yellow-tint-chatgpt-sora-unyellowgpt
[16] GPT-Tone: https://gpt-tone.com/
[17] UnYellow.app: http://UnYellow.app
[18] Fix Yellow Tint: https://fix-yellow-tint.vercel.app/
[19] признал: https://old.reddit.com/r/ChatGPTPro/comments/1jls6cv/why_do_many_of_chatgptgenerated_images_look_like/n0arc8c/?context=4
[20] утилита на Python: https://github.com/gokayfem/gpt4o-yellow-tint-cleaner
[21] картинок: https://4oimagegen.app/ai-color-correction
[22] палитр: https://colormagic.club/color-reshape
[23] лишь одна: https://www.freepik.com/blog/fixing-openais-color-bias-with-simple-rgb-scaling/
[24] скачивания с официального сайта: https://imagemagick.org/script/download.php#windows
[25] chocolatey.org/install#install-step1: https://chocolatey.org/install
[26] Paint.net: http://Paint.net
[27] Krita: https://krita.org/
[28] post-death_wave_core: https://www.reddit.com/r/ChatGPT/comments/1jlx4z2/hopefully_they_turn_off_the_sepia_filter/
[29] Источник: https://habr.com/ru/articles/950782/?utm_source=habrahabr&utm_medium=rss&utm_campaign=950782
Нажмите здесь для печати.