您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Sets all safety settings to none whenever the page loads or model changes
当前为
// ==UserScript== // @license it made me include this idk // @name Always Set AI Studio Filters to None // @description Sets all safety settings to none whenever the page loads or model changes // @namespace http://tampermonkey.net/ // @version 1.2 // @match *://aistudio.google.*/* // @grant none // @author HORSELOCKSPACEPIRATE/rayzorium // ==/UserScript== (function() { 'use strict'; const delay = 300; //millis to wait for sliders to appear, increase this is your shit's not working // Function to set sliders to lowest value (-4) function setSlidersToLowest(dialogContainer) { const sliders = dialogContainer.querySelectorAll('mat-slider input[type="range"]'); sliders.forEach(slider => { slider.value = -4; slider.dispatchEvent(new Event('input', { bubbles: true })); slider.dispatchEvent(new Event('change', { bubbles: true })); }); // Close the dialog box dialogContainer.querySelector('button[aria-label="Close Run Safety Settings"]').click(); } // Function to attempt setting sliders on page load or model change function setSliderOnLoadOrChange() { // Try to find and click the "Edit safety settings" button const editButton = document.querySelector('.edit-safety-button') || document.querySelector('.settings-item.safety-settings'); if (editButton) { editButton.click(); } else { // If button not found, try again after a short delay setTimeout(setSliderOnLoadOrChange, 100); } } // Mutation observer to detect when the safety settings dialog appears const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { if (mutation.addedNodes.length) { const addedNode = mutation.addedNodes[0]; if (addedNode.nodeType === Node.ELEMENT_NODE && addedNode.matches('mat-dialog-container')) { setTimeout(() => setSlidersToLowest(addedNode), delay); // Adding a slight delay to ensure sliders are loaded } } }); }); // Start observing the body for additions of the dialog container observer.observe(document.body, { childList: true, subtree: true }); // Adding click event listener to the "Edit safety settings" button document.addEventListener('click', function(e) { if (e.target && (e.target.closest('.edit-safety-button') || e.target.closest('.settings-item.safety-settings'))) { // We wait for the dialog to be added to the DOM observer.observe(document.body, { childList: true, subtree: true }); } }); // Function to handle model change function handleModelChange(mutationsList, observer) { for(let mutation of mutationsList) { if (mutation.type === 'characterData' || mutation.type === 'childList') { // Model has changed, trigger slider adjustment setSliderOnLoadOrChange(); break; } } } // Create an observer for the model selector const modelObserver = new MutationObserver(handleModelChange); // Function to start observing the model selector function observeModelSelector() { const modelSelector = document.querySelector('#model-selector .mat-mdc-select-value-text'); if (modelSelector) { modelObserver.observe(modelSelector, { childList: true, characterData: true, subtree: true }); } else { // If not found, try again after a short delay setTimeout(observeModelSelector, 1000); } } // Run the setSliderOnLoadOrChange function when the page is fully loaded if (document.readyState === 'complete') { setSliderOnLoadOrChange(); observeModelSelector(); } else { window.addEventListener('load', () => { setSliderOnLoadOrChange(); observeModelSelector(); }); } })();