You've already forked Nano-Banana-AI-Image-Editor
\"新增 支持自定义Gemini模型名称配置\"
This commit is contained in:
@@ -13,6 +13,7 @@ export const SettingsModal: React.FC<SettingsModalProps> = ({ open, onOpenChange
|
||||
const [geminiApiKey, setGeminiApiKey] = useState('');
|
||||
const [uploadApiUrl, setUploadApiUrl] = useState('');
|
||||
const [uploadAssetUrl, setUploadAssetUrl] = useState('');
|
||||
const [modelName, setModelName] = useState('');
|
||||
|
||||
// 组件挂载时从localStorage加载设置
|
||||
useEffect(() => {
|
||||
@@ -21,11 +22,13 @@ export const SettingsModal: React.FC<SettingsModalProps> = ({ open, onOpenChange
|
||||
const savedGeminiApiKey = localStorage.getItem('VITE_GEMINI_API_KEY') || '';
|
||||
const savedUploadApiUrl = localStorage.getItem('VITE_UPLOAD_API') || '';
|
||||
const savedUploadAssetUrl = localStorage.getItem('VITE_UPLOAD_ASSET_URL') || '';
|
||||
const savedModelName = localStorage.getItem('VITE_GEMINI_MODEL_NAME') || 'gemini-2.5-flash-image-preview';
|
||||
|
||||
setAccessToken(savedAccessToken);
|
||||
setGeminiApiKey(savedGeminiApiKey);
|
||||
setUploadApiUrl(savedUploadApiUrl);
|
||||
setUploadAssetUrl(savedUploadAssetUrl);
|
||||
setModelName(savedModelName);
|
||||
}
|
||||
}, [open]);
|
||||
|
||||
@@ -55,6 +58,12 @@ export const SettingsModal: React.FC<SettingsModalProps> = ({ open, onOpenChange
|
||||
localStorage.removeItem('VITE_UPLOAD_ASSET_URL');
|
||||
}
|
||||
|
||||
if (modelName) {
|
||||
localStorage.setItem('VITE_GEMINI_MODEL_NAME', modelName);
|
||||
} else {
|
||||
localStorage.removeItem('VITE_GEMINI_MODEL_NAME');
|
||||
}
|
||||
|
||||
// 显示保存成功的提示
|
||||
alert('设置已保存!');
|
||||
|
||||
@@ -68,11 +77,13 @@ export const SettingsModal: React.FC<SettingsModalProps> = ({ open, onOpenChange
|
||||
const defaultGeminiApiKey = import.meta.env.VITE_GEMINI_API_KEY || '';
|
||||
const defaultUploadApiUrl = import.meta.env.VITE_UPLOAD_API || '';
|
||||
const defaultUploadAssetUrl = import.meta.env.VITE_UPLOAD_ASSET_URL || '';
|
||||
const defaultModelName = import.meta.env.VITE_GEMINI_MODEL_NAME || 'gemini-2.5-flash-image-preview';
|
||||
|
||||
setAccessToken(defaultAccessToken);
|
||||
setGeminiApiKey(defaultGeminiApiKey);
|
||||
setUploadApiUrl(defaultUploadApiUrl);
|
||||
setUploadAssetUrl(defaultUploadAssetUrl);
|
||||
setModelName(defaultModelName);
|
||||
};
|
||||
|
||||
return (
|
||||
@@ -160,6 +171,23 @@ export const SettingsModal: React.FC<SettingsModalProps> = ({ open, onOpenChange
|
||||
图像上传后返回的URL前缀
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="space-y-2">
|
||||
<label htmlFor="modelName" className="text-sm font-medium text-gray-700">
|
||||
模型名称
|
||||
</label>
|
||||
<input
|
||||
id="modelName"
|
||||
type="text"
|
||||
value={modelName}
|
||||
onChange={(e) => setModelName(e.target.value)}
|
||||
className="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-yellow-500 focus:border-transparent"
|
||||
placeholder="输入模型名称"
|
||||
/>
|
||||
<p className="text-xs text-gray-500">
|
||||
用于AI图像生成和编辑的Google Gemini模型名称
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex justify-between pt-4">
|
||||
|
||||
Reference in New Issue
Block a user