Если этот скрипт помог вам избавиться от лагов в Google AI Studio, пожалуйста, поставьте звезду (Star) этому репозиторию в правом верхнем углу страницы! Это помогает продвигать проект в топ GitHub, чтобы другие разработчики тоже смогли его найти. Большое спасибо!
🇬🇧 English version # AI Studio Performance Fix
Фикс лагов ввода, мерцания текста и драки за скролл в Google AI Studio при работе с длинными чатами (200K+ токенов).
При накоплении большого контекста в AI Studio (200 000–500 000+ токенов) веб-интерфейс начинает катастрофически тормозить:
- Лаг ввода — каждая буква в поле ввода появляется с задержкой в несколько секунд
- Мерцание текста — блоки сообщений пропадают при скролле и появляются снова
- Драка за скролл — страница дёргается вниз во время генерации ответа, не давая читать текст
- "Пластовая" подгрузка — текст генерируется рывками по 5–10 строк, а не плавным потоком
Google AI Studio не использует виртуализацию списка — весь чат рендерится целиком. При 500K токенов DOM раздувается до сотен тысяч узлов. Каждое нажатие клавиши запускает каскадную перерисовку всего этого дерева. Плюс Google активировал Trusted Types CSP, который блокирует userscript'ы в Tampermonkey V3.
Комбинация из двух userscript'ов:
- Trusted-Types Helper — обходит блокировку Trusted Types CSP, позволяя Tampermonkey внедрять код на AI Studio
- AI Studio Performance Fixer — устраняет лаги ввода, мерцание и драку за скролл
| Проблема | Механика фикса |
|---|---|
| Лаг ввода | Отключает CSS-анимации и transition, изолирует блоки сообщений через contain: layout paint |
| Мерцание текста | Обманывает IntersectionObserver, заставляя думать, что все блоки всегда видимы |
| Драка за скролл | Перехватывает scrollIntoView от AI Studio, пока пользователь сам скроллит |
| Пластовая подгрузка | Убирает smooth-scroll, текст идёт равномерным потоком |
Chrome Web Store — Tampermonkey
- Откройте Tampermonkey Dashboard → "Создать новый скрипт"
- Удалите шаблон (Ctrl+A → Delete)
- Скопируйте содержимое файла
trusted-types-helper.user.js - Сохраните (Ctrl+S)
Важно: В коде Helper найдите строку const overwrite_default = false; и поменяйте на true для AI Studio.
- Создайте ещё один новый скрипт в Tampermonkey
- Удалите шаблон
- Скопируйте содержимое файла
ai-studio-fixer.user.js - Сохраните (Ctrl+S)
Важно: Этот скрипт содержит директиву @inject-into page, которая критична для работы в Manifest V3.
В Tampermonkey Dashboard Trusted-Types Helper должен выполняться до AI Studio Fixer. Если Helper ниже в списке — удалите оба и создайте сначала Helper, потом Fixer.
- Откройте Google AI Studio с длинным чатом
- Откройте консоль (F12 → Console)
- Найдите логи:
Trusted-Types Helper: Trusted-Type Policies: TTP: TrustedTypePolicy {name: 'default'} [AI Studio Fixer v1] Performance & UI CSS injected. [AI Studio Fixer v1] Disappearing content/flicker fix is active. [AI Studio Fixer v1] Direct-control scroll fix is active. - Попробуйте писать в поле ввода — буквы должны идти без задержки
- Проверьте, что в настройках Tampermonkey включено "Разрешить пользовательские скрипты" (chrome://extensions → Tampermonkey → Разрешения)
- Убедитесь, что Tampermonkey имеет доступ к
aistudio.google.com
- Проверьте, что в Fixer прописана директива
@inject-into page - Попробуйте включить Developer Mode в Chrome (
chrome://extensions→ переключатель в правом верхнем углу)
Если ничего не помогает — используйте Chrome DevTools Snippets как fallback:
- F12 → Sources → Snippets
- Создайте новый сниппет, вставьте код Fixer
- Запускайте через Ctrl+Enter при каждом заходе в AI Studio
- Chrome (или Chromium-based браузер: Edge, Яндекс.Браузер)
- Tampermonkey v5.5.0+ (Manifest V3)
- Google AI Studio с чатом 200K+ токенов (где проблема воспроизводится)
- AI Studio Performance Fixer — адаптирован из скрипта Diyar Baban
- Trusted-Types Helper — Benjamin Philipp
- Комбинация и адаптация под Manifest V3 — сообщество
Это неофициальный фикс, не связанный с Google. Используйте на свой страх и риск. Скрипт только модифицирует клиентский рендеринг и не влияет на логику моделей или сохранение данных.
MIT License — см. LICENSE