You can use safety settings to adjust the likelihood of getting responses that may be considered harmful. By default, safety settings block content with medium and/or high probability of being unsafe content across all dimensions.
Jump to Gemini safety settings Jump to Imagen safety settings
Safety settings for Gemini models
Click your Gemini API provider to view provider-specific content and code on this page.
Swift
You configure  SafetySettings 
 
when you create a GenerativeModel 
instance.
Example with one safety setting:
  import 
  
 FirebaseAILogic 
 // Specify the safety settings as part of creating the `GenerativeModel` instance 
 let 
  
 model 
  
 = 
  
 FirebaseAI 
 . 
 firebaseAI 
 ( 
 backend 
 : 
  
 . 
 googleAI 
 ()). 
 generativeModel 
 ( 
  
 modelName 
 : 
  
 " GEMINI_MODEL_NAME 
" 
 , 
  
 safetySettings 
 : 
  
 [ 
  
 SafetySetting 
 ( 
 harmCategory 
 : 
  
 . 
 harassment 
 , 
  
 threshold 
 : 
  
 . 
 blockOnlyHigh 
 ) 
  
 ] 
 ) 
 // ... 
 
 
Example with multiple safety settings:
  import 
  
 FirebaseAILogic 
 let 
  
 harassmentSafety 
  
 = 
  
 SafetySetting 
 ( 
 harmCategory 
 : 
  
 . 
 harassment 
 , 
  
 threshold 
 : 
  
 . 
 blockOnlyHigh 
 ) 
 let 
  
 hateSpeechSafety 
  
 = 
  
 SafetySetting 
 ( 
 harmCategory 
 : 
  
 . 
 hateSpeech 
 , 
  
 threshold 
 : 
  
 . 
 blockMediumAndAbove 
 ) 
 // Specify the safety settings as part of creating the `GenerativeModel` instance 
 let 
  
 model 
  
 = 
  
 FirebaseAI 
 . 
 firebaseAI 
 ( 
 backend 
 : 
  
 . 
 googleAI 
 ()). 
 generativeModel 
 ( 
  
 modelName 
 : 
  
 " GEMINI_MODEL_NAME 
" 
 , 
  
 safetySettings 
 : 
  
 [ 
 harassmentSafety 
 , 
  
 hateSpeechSafety 
 ] 
 ) 
 // ... 
 
 
Kotlin
You configure  SafetySettings 
 
when you create a GenerativeModel 
instance.
Example with one safety setting:
  import 
  
 com.google.firebase.vertexai.type.HarmBlockThreshold 
 import 
  
 com.google.firebase.vertexai.type.HarmCategory 
 import 
  
 com.google.firebase.vertexai.type.SafetySetting 
 // Specify the safety settings as part of creating the `GenerativeModel` instance 
 val 
  
 model 
  
 = 
  
 Firebase 
 . 
 ai 
 ( 
 backend 
  
 = 
  
 GenerativeBackend 
 . 
 googleAI 
 ()). 
 generativeModel 
 ( 
  
 modelName 
  
 = 
  
 " GEMINI_MODEL_NAME 
" 
 , 
  
 safetySettings 
  
 = 
  
 listOf 
 ( 
  
 SafetySetting 
 ( 
 HarmCategory 
 . 
 HARASSMENT 
 , 
  
 HarmBlockThreshold 
 . 
 ONLY_HIGH 
 ) 
  
 ) 
 ) 
 // ... 
 
 
Example with multiple safety settings:
  import 
  
 com.google.firebase.vertexai.type.HarmBlockThreshold 
 import 
  
 com.google.firebase.vertexai.type.HarmCategory 
 import 
  
 com.google.firebase.vertexai.type.SafetySetting 
 val 
  
 harassmentSafety 
  
 = 
  
 SafetySetting 
 ( 
 HarmCategory 
 . 
 HARASSMENT 
 , 
  
 HarmBlockThreshold 
 . 
 ONLY_HIGH 
 ) 
 val 
  
 hateSpeechSafety 
  
 = 
  
 SafetySetting 
 ( 
 HarmCategory 
 . 
 HATE_SPEECH 
 , 
  
 HarmBlockThreshold 
 . 
 MEDIUM_AND_ABOVE 
 ) 
 // Specify the safety settings as part of creating the `GenerativeModel` instance 
 val 
  
 model 
  
 = 
  
 Firebase 
 . 
 ai 
 ( 
 backend 
  
 = 
  
 GenerativeBackend 
 . 
 googleAI 
 ()). 
 generativeModel 
 ( 
  
 modelName 
  
 = 
  
 " GEMINI_MODEL_NAME 
" 
 , 
  
 safetySettings 
  
 = 
  
 listOf 
 ( 
 harassmentSafety 
 , 
  
 hateSpeechSafety 
 ) 
 ) 
 // ... 
 
 
Java
You configure  SafetySettings 
 
when you create a GenerativeModel 
instance.
  SafetySetting 
  
 harassmentSafety 
  
 = 
  
 new 
  
 SafetySetting 
 ( 
 HarmCategory 
 . 
 HARASSMENT 
 , 
 HarmBlockThreshold 
 . 
 ONLY_HIGH 
 ); 
 // Specify the safety settings as part of creating the `GenerativeModel` instance 
 GenerativeModelFutures 
  
 model 
  
 = 
  
 GenerativeModelFutures 
 . 
 from 
 ( 
  
 FirebaseAI 
 . 
 getInstance 
 ( 
 GenerativeBackend 
 . 
 googleAI 
 ()) 
  
 . 
 generativeModel 
 ( 
  
 /* modelName */ 
  
 " GEMINI_MODEL_NAME 
" 
 , 
  
 /* generationConfig is optional */ 
  
 null 
 , 
  
 Collections 
 . 
 singletonList 
 ( 
 harassmentSafety 
 ) 
  
 ); 
 ); 
 // ... 
 
 
Example with multiple safety settings:
  SafetySetting 
  
 harassmentSafety 
  
 = 
  
 new 
  
 SafetySetting 
 ( 
 HarmCategory 
 . 
 HARASSMENT 
 , 
 HarmBlockThreshold 
 . 
 ONLY_HIGH 
 ); 
 SafetySetting 
  
 hateSpeechSafety 
  
 = 
  
 new 
  
 SafetySetting 
 ( 
 HarmCategory 
 . 
 HATE_SPEECH 
 , 
 HarmBlockThreshold 
 . 
 MEDIUM_AND_ABOVE 
 ); 
 // Specify the safety settings as part of creating the `GenerativeModel` instance 
 GenerativeModelFutures 
  
 model 
  
 = 
  
 GenerativeModelFutures 
 . 
 from 
 ( 
  
 FirebaseAI 
 . 
 getInstance 
 ( 
 GenerativeBackend 
 . 
 googleAI 
 ()) 
  
 . 
 generativeModel 
 ( 
  
 /* modelName */ 
  
 " GEMINI_MODEL_NAME 
" 
 , 
  
 /* generationConfig is optional */ 
  
 null 
 , 
  
 List 
 . 
 of 
 ( 
 harassmentSafety 
 , 
  
 hateSpeechSafety 
 ) 
  
 ); 
 ); 
 // ... 
 
 
Web
You configure  SafetySettings 
 
when you create a GenerativeModel 
instance.
Example with one safety setting:
  import 
  
 { 
  
 HarmBlockThreshold 
 , 
  
 HarmCategory 
 , 
  
 getAI 
 , 
  
 getGenerativeModel 
 , 
  
 GoogleAIBackend 
  
 } 
  
 from 
  
 "firebase/ai" 
 ; 
 // ... 
 const 
  
 ai 
  
 = 
  
 getAI 
 ( 
 firebaseApp 
 , 
  
 { 
  
 backend 
 : 
  
 new 
  
 GoogleAIBackend 
 () 
  
 }); 
 const 
  
 safetySettings 
  
 = 
  
 [ 
  
 { 
  
 category 
 : 
  
 HarmCategory 
 . 
 HARM_CATEGORY_HARASSMENT 
 , 
  
 threshold 
 : 
  
 HarmBlockThreshold 
 . 
 BLOCK_ONLY_HIGH 
 , 
  
 }, 
 ]; 
 // Specify the safety settings as part of creating the `GenerativeModel` instance 
 const 
  
 model 
  
 = 
  
 getGenerativeModel 
 ( 
 ai 
 , 
  
 { 
  
 model 
 : 
  
 " GEMINI_MODEL_NAME 
" 
 , 
  
 safetySettings 
  
 }); 
 // ... 
 
 
Example with multiple safety settings:
  import 
  
 { 
  
 HarmBlockThreshold 
 , 
  
 HarmCategory 
 , 
  
 getAI 
 , 
  
 getGenerativeModel 
 , 
  
 GoogleAIBackend 
  
 } 
  
 from 
  
 "firebase/ai" 
 ; 
 // ... 
 const 
  
 ai 
  
 = 
  
 getAI 
 ( 
 firebaseApp 
 , 
  
 { 
  
 backend 
 : 
  
 new 
  
 GoogleAIBackend 
 () 
  
 }); 
 const 
  
 safetySettings 
  
 = 
  
 [ 
  
 { 
  
 category 
 : 
  
 HarmCategory 
 . 
 HARM_CATEGORY_HARASSMENT 
 , 
  
 threshold 
 : 
  
 HarmBlockThreshold 
 . 
 BLOCK_ONLY_HIGH 
 , 
  
 }, 
  
 { 
  
 category 
 : 
  
 HarmCategory 
 . 
 HARM_CATEGORY_HATE_SPEECH 
 , 
  
 threshold 
 : 
  
 HarmBlockThreshold 
 . 
 BLOCK_MEDIUM_AND_ABOVE 
 , 
  
 }, 
 ]; 
 // Specify the safety settings as part of creating the `GenerativeModel` instance 
 const 
  
 model 
  
 = 
  
 getGenerativeModel 
 ( 
 ai 
 , 
  
 { 
  
 model 
 : 
  
 " GEMINI_MODEL_NAME 
" 
 , 
  
 safetySettings 
  
 }); 
 // ... 
 
 
Dart
You configure  SafetySettings 
 
when you create a GenerativeModel 
instance.
Example with one safety setting:
  // ... 
 final 
  
 safetySettings 
  
 = 
  
 [ 
  
 SafetySetting 
 ( 
 HarmCategory 
 . 
 harassment 
 , 
  
 HarmBlockThreshold 
 . 
 high 
 ) 
 ]; 
 // Specify the safety settings as part of creating the `GenerativeModel` instance 
 final 
  
 model 
  
 = 
  
 FirebaseAI 
 . 
 googleAI 
 (). 
 generativeModel 
 ( 
  
 model: 
  
 ' GEMINI_MODEL_NAME 
' 
 , 
  
 safetySettings: 
  
 safetySettings 
 , 
 ); 
 // ... 
 
 
Example with multiple safety settings:
  // ... 
 final 
  
 safetySettings 
  
 = 
  
 [ 
  
 SafetySetting 
 ( 
 HarmCategory 
 . 
 harassment 
 , 
  
 HarmBlockThreshold 
 . 
 high 
 ), 
  
 SafetySetting 
 ( 
 HarmCategory 
 . 
 hateSpeech 
 , 
  
 HarmBlockThreshold 
 . 
 high 
 ), 
 ]; 
 // Specify the safety settings as part of creating the `GenerativeModel` instance 
 final 
  
 model 
  
 = 
  
 FirebaseAI 
 . 
 googleAI 
 (). 
 generativeModel 
 ( 
  
 model: 
  
 ' GEMINI_MODEL_NAME 
' 
 , 
  
 safetySettings: 
  
 safetySettings 
 , 
 ); 
 // ... 
 
 
Unity
You configure  SafetySettings 
 
when you create a GenerativeModel 
instance.
Example with one safety setting:
  // ... 
 // Specify the safety settings as part of creating the `GenerativeModel` instance 
 var 
  
 ai 
  
 = 
  
 FirebaseAI 
 . 
 GetInstance 
 ( 
 FirebaseAI 
 . 
 Backend 
 . 
 GoogleAI 
 ()); 
 var 
  
 model 
  
 = 
  
 ai 
 . 
 GetGenerativeModel 
 ( 
  
 modelName 
 : 
  
 " GEMINI_MODEL_NAME 
" 
 , 
  
 safetySettings 
 : 
  
 new 
  
 SafetySetting 
 [] 
  
 { 
  
 new 
  
 SafetySetting 
 ( 
 HarmCategory 
 . 
 Harassment 
 , 
  
 SafetySetting 
 . 
 HarmBlockThreshold 
 . 
 OnlyHigh 
 ) 
  
 } 
 ); 
 // ... 
 
 
Example with multiple safety settings:
  // ... 
 var 
  
 harassmentSafety 
  
 = 
  
 new 
  
 SafetySetting 
 ( 
 HarmCategory 
 . 
 Harassment 
 , 
  
 SafetySetting 
 . 
 HarmBlockThreshold 
 . 
 OnlyHigh 
 ); 
 var 
  
 hateSpeechSafety 
  
 = 
  
 new 
  
 SafetySetting 
 ( 
 HarmCategory 
 . 
 HateSpeech 
 , 
  
 SafetySetting 
 . 
 HarmBlockThreshold 
 . 
 MediumAndAbove 
 ); 
 // Specify the safety settings as part of creating the `GenerativeModel` instance 
 var 
  
 ai 
  
 = 
  
 FirebaseAI 
 . 
 GetInstance 
 ( 
 FirebaseAI 
 . 
 Backend 
 . 
 GoogleAI 
 ()); 
 var 
  
 model 
  
 = 
  
 ai 
 . 
 GetGenerativeModel 
 ( 
  
 modelName 
 : 
  
 " GEMINI_MODEL_NAME 
" 
 , 
  
 safetySettings 
 : 
  
 new 
  
 SafetySetting 
 [] 
  
 { 
  
 harassmentSafety 
 , 
  
 hateSpeechSafety 
  
 } 
 ); 
 // ... 
 
 
Safety settings for Imagen models
Click your Gemini API provider to view provider-specific content and code on this page.
Learn about all the supported safety settings and their available values for Imagen models in the Google Cloud documentation.
Swift
You configure  ImagenSafetySettings 
 
when you create an ImagenModel 
instance.
  import 
  
 FirebaseAILogic 
 // Specify the safety settings as part of creating the `ImagenModel` instance 
 let 
  
 model 
  
 = 
  
 FirebaseAI 
 . 
 firebaseAI 
 ( 
 backend 
 : 
  
 . 
 googleAI 
 ()). 
 imagenModel 
 ( 
  
 modelName 
 : 
  
 " IMAGEN_MODEL_NAME 
" 
 , 
  
 safetySettings 
 : 
  
 ImagenSafetySettings 
 ( 
  
 safetyFilterLevel 
 : 
  
 . 
 blockLowAndAbove 
 , 
  
 personFilterLevel 
 : 
  
 . 
 allowAdult 
  
 ) 
 ) 
 // ... 
 
 
Kotlin
You configure  ImagenSafetySettings 
 
when you create an ImagenModel 
instance.
  // Specify the safety settings as part of creating the `ImagenModel` instance 
 val 
  
 model 
  
 = 
  
 Firebase 
 . 
 ai 
 ( 
 backend 
  
 = 
  
 GenerativeBackend 
 . 
 googleAI 
 ()). 
 imagenModel 
 ( 
  
 modelName 
  
 = 
  
 " IMAGEN_MODEL_NAME 
" 
 , 
  
 safetySettings 
  
 = 
  
 ImagenSafetySettings 
 ( 
  
 safetyFilterLevel 
  
 = 
  
 ImagenSafetyFilterLevel 
 . 
 BLOCK_LOW_AND_ABOVE 
 , 
  
 personFilterLevel 
  
 = 
  
 ImagenPersonFilterLevel 
 . 
 BLOCK_ALL 
  
 ) 
 ) 
 // ... 
 
 
Java
You configure  ImagenSafetySettings 
 
when you create an ImagenModel 
instance.
  // Specify the safety settings as part of creating the `ImagenModel` instance 
 ImagenModelFutures 
  
 model 
  
 = 
  
 ImagenModelFutures 
 . 
 from 
 ( 
  
 FirebaseAI 
 . 
 getInstance 
 ( 
 GenerativeBackend 
 . 
 googleAI 
 ()) 
  
 . 
 imagenModel 
 ( 
  
 /* modelName */ 
  
 " IMAGEN_MODEL_NAME 
" 
 , 
  
 /* imageGenerationConfig */ 
  
 null 
 ); 
 ); 
 // ... 
 
 
Web
You configure  ImagenSafetySettings 
 
when you create an ImagenModel 
instance.
  // ... 
 const 
  
 ai 
  
 = 
  
 getAI 
 ( 
 firebaseApp 
 , 
  
 { 
  
 backend 
 : 
  
 new 
  
 GoogleAIBackend 
 () 
  
 }); 
 // Specify the safety settings as part of creating the `ImagenModel` instance 
 const 
  
 model 
  
 = 
  
 getImagenModel 
 ( 
  
 ai 
 , 
  
 { 
  
 model 
 : 
  
 " IMAGEN_MODEL_NAME 
" 
 , 
  
 safetySettings 
 : 
  
 { 
  
 safetyFilterLevel 
 : 
  
 ImagenSafetyFilterLevel 
 . 
 BLOCK_LOW_AND_ABOVE 
 , 
  
 personFilterLevel 
 : 
  
 ImagenPersonFilterLevel 
 . 
 ALLOW_ADULT 
 , 
  
 } 
  
 } 
 ); 
 // ... 
 
 
Dart
You configure  ImagenSafetySettings 
 
when you create an ImagenModel 
instance.
  // ... 
 // Specify the safety settings as part of creating the `ImagenModel` instance 
 final 
  
 model 
  
 = 
  
 FirebaseAI 
 . 
 googleAI 
 (). 
 imagenModel 
 ( 
  
 model: 
  
 ' IMAGEN_MODEL_NAME 
' 
 , 
  
 safetySettings: 
  
 ImagenSafetySettings 
 ( 
  
 ImagenSafetyFilterLevel 
 . 
 blockLowAndAbove 
 , 
  
 ImagenPersonFilterLevel 
 . 
 allowAdult 
 , 
  
 ), 
 ); 
 // ... 
 
 
Unity
You configure  ImagenSafetySettings 
 
when you create an ImagenModel 
instance.
  using 
  
 Firebase.AI 
 ; 
 // Specify the safety settings as part of creating the `ImagenModel` instance 
 var 
  
 model 
  
 = 
  
 FirebaseAI 
 . 
 GetInstance 
 ( 
 FirebaseAI 
 . 
 Backend 
 . 
 GoogleAI 
 ()). 
 GetImagenModel 
 ( 
  
 modelName 
 : 
  
 " IMAGEN_MODEL_NAME 
" 
 , 
  
 safetySettings 
 : 
  
 new 
  
 ImagenSafetySettings 
 ( 
  
 safetyFilterLevel 
 : 
  
 ImagenSafetySettings 
 . 
 SafetyFilterLevel 
 . 
 BlockLowAndAbove 
 , 
  
 personFilterLevel 
 : 
  
 ImagenSafetySettings 
 . 
 PersonFilterLevel 
 . 
 AllowAdult 
  
 ) 
 ); 
 // ... 
 
 
Other options to control content generation
- Learn more about prompt design so that you can influence the model to generate output specific to your needs.
- Configure model parameters to control how the model generates a response. For Gemini models, these parameters include max output tokens, temperature, topK, and topP. For Imagen models, these include aspect ratio, person generation, watermarking, etc.
- Set system instructions to steer the behavior of the model. This feature is like a preamble that you add before the model gets exposed to any further instructions from the end user.
- Pass a response schema along with the prompt to specify a specific output schema. This feature is most commonly used when generating JSON output , but it can also be used for classification tasks (like when you want the model to use specific labels or tags).

