Omitir contenido con una petición negativa

Probar Imagen en Colab

En esta página se describe cómo omitir contenido de las imágenes generadas por Imagen en Vertex AI.

Una petición negativa es una descripción de lo que quieres omitir en las imágenes generadas. Por ejemplo, considera la petición "una calle de ciudad lluviosa por la noche sin gente". El modelo puede interpretar "personas" como una directiva de qué incluir en lugar de qué omitir. Para obtener mejores resultados, puedes usar la petición "una calle de ciudad lluviosa por la noche" con la petición negativa "gente".

Imagen genera estas imágenes con y sin una petición negativa:

Solo petición de texto

  • Petición de texto: "una pizza"

tres imágenes de muestra de pizza

Petición de texto y petición negativa

  • Petición de texto: "una pizza"
  • Petición negativa: "pepperoni"

tres imágenes de muestra de pizzas sin pepperoni

Los siguientes modelos admiten peticiones negativas:

  • imagen-3.0-capability-001
  • imagen-3.0-fast-generate-001
  • imagen-3.0-generate-001

Usar una petición negativa

Para omitir contenido de las imágenes generadas, sigue estos pasos:

Consola

  1. En la Google Cloud consola, ve a la página Vertex AI > Media Studio.

    Ir a Media Studio

  2. Haz clic en Imagen. Se muestra la página de generación de imágenes de Imagen Media Studio.

  3. En el panel Configuración, ajusta las siguientes opciones:

    • Modelo: elige un modelo de entre las opciones disponibles.

      Para obtener más información sobre los modelos disponibles, consulta Modelos de imagen.

    • Número de resultados: ajusta el control deslizante o introduce un valor entre 1 y 4.

    • En el cuadro Petición negativa, escribe una petición que describa lo que no quieres que se genere en la imagen.

  4. En el cuadro Escribe tu petición, introduce la petición de texto que describa las imágenes que quieres generar. Por ejemplo, barco pequeño en el agua en una ilustración de acuarela por la mañana.

    Para obtener más información sobre cómo escribir peticiones eficaces, consulta la guía sobre peticiones y atributos de imagen.

  5. Haz clic en Generar.

REST

La petición negativa es un campo opcional del objeto parameters de un cuerpo de solicitud JSON.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: tu Google Cloud ID de proyecto.
  • MODEL_VERSION: la versión del modelo Imagen que se va a usar. Para obtener más información sobre los modelos disponibles, consulta Modelos de Imagen.

  • LOCATION: la región de tu proyecto. Por ejemplo, us-central1, europe-west2 o asia-northeast3. Para ver una lista de las regiones disponibles, consulta Ubicaciones de la IA generativa en Vertex AI.
  • TEXT_PROMPT: la petición de texto que indica qué imágenes debe generar el modelo. Este campo es obligatorio tanto para generar como para editar.
  • IMAGE_COUNT: número de imágenes generadas. Valores enteros aceptados: del 1 al 8 (imagegeneration@002) y del 1 al 4 (todas las demás versiones del modelo). Valor predeterminado: 4.
  • Parámetros opcionales adicionales

    Usa las siguientes variables opcionales según tu caso práctico. Añada algunos o todos los parámetros siguientes en el objeto "parameters": {}. Esta lista muestra parámetros opcionales habituales y no es exhaustiva. Para obtener más información sobre los parámetros opcionales, consulta la referencia de la API Imagen: generar imágenes.

    "parameters": {
      "sampleCount": IMAGE_COUNT,
      "addWatermark": ADD_WATERMARK,
      "aspectRatio": "ASPECT_RATIO",
      "enhancePrompt": ENABLE_PROMPT_REWRITING,
      "includeRaiReason": INCLUDE_RAI_REASON,
      "includeSafetyAttributes": INCLUDE_SAFETY_ATTRIBUTES,
      "outputOptions": {
        "mimeType": "MIME_TYPE",
        "compressionQuality": COMPRESSION_QUALITY
      },
      "personGeneration": "PERSON_SETTING",
      "safetySetting": "SAFETY_SETTING",
      "seed": SEED_NUMBER,
      "storageUri": "OUTPUT_STORAGE_URI"
    }
    
    • ADD_WATERMARK: booleano. Opcional. Si quieres habilitar una marca de agua en las imágenes generadas. Las imágenes generadas cuando el campo se define como true contienen una marca de agua digital SynthID que puedes usar para verificar una imagen con marca de agua. Si omite este campo, se usará el valor predeterminado true. Para inhabilitar esta función, debe asignar el valor false. Puede usar el campo seed para obtener resultados deterministas solo cuando este campo tenga el valor false.
    • ASPECT_RATIO: cadena. Opcional. Un parámetro del modo de generación que controla la relación de aspecto. Valores de relación de aspecto admitidos y su uso previsto:
      • 1:1 (predeterminado, cuadrado)
      • 3:4 (anuncios, redes sociales)
      • 4:3 (televisión, fotografía)
      • 16:9 (horizontal)
      • 9:16 (vertical)
    • ENABLE_PROMPT_REWRITING: booleano. Opcional. Parámetro para usar una función de reescritura de peticiones basada en LLMs para ofrecer imágenes de mayor calidad que reflejen mejor la intención de la petición original. Si inhabilitas esta función, puede que la calidad de las imágenes y la precisión de las peticiones se vean afectadas. Valor predeterminado: true.
    • INCLUDE_RAI_REASON: booleano. Opcional. Indica si se debe habilitar el código de motivo filtrado de IA responsable en las respuestas con entradas o salidas bloqueadas. Valor predeterminado: true.
    • INCLUDE_SAFETY_ATTRIBUTES: booleano. Opcional. Indica si se deben habilitar las puntuaciones de IA responsable redondeadas para una lista de atributos de seguridad en las respuestas de entrada y salida sin filtrar. Categorías de atributos de seguridad: "Death, Harm & Tragedy", "Firearms & Weapons", "Hate", "Health", "Illicit Drugs", "Politics", "Porn", "Religion & Belief", "Toxic", "Violence", "Vulgarity" y "War & Conflict". Valor predeterminado: false.
    • MIME_TYPE: cadena. Opcional. Tipo MIME del contenido de la imagen. Valores disponibles:
      • image/jpeg
      • image/gif
      • image/png
      • image/webp
      • image/bmp
      • image/tiff
      • image/vnd.microsoft.icon
    • COMPRESSION_QUALITY: número entero. Opcional. Solo se aplica a los archivos de salida JPEG. El nivel de detalle que conserva el modelo en las imágenes generadas en formato de archivo JPEG. Valores: 0 a 100, donde un número más alto significa más compresión. Predeterminado: 75.
    • PERSON_SETTING: cadena. Opcional. El ajuste de seguridad que controla el tipo de personas o la generación de caras que permite el modelo. Valores disponibles:
      • allow_adult (valor predeterminado): permite generar contenido solo para adultos, excepto si se trata de contenido de famosos. No se permite generar imágenes de famosos en ningún ajuste.
      • dont_allow: inhabilita la inclusión de personas o caras en las imágenes generadas.
    • SAFETY_SETTING: cadena. Opcional. Un ajuste que controla los umbrales del filtro de seguridad de las imágenes generadas. Valores disponibles:
      • block_low_and_above: el umbral de seguridad más alto, que da como resultado la mayor cantidad de imágenes generadas que se filtran. Valor anterior: block_most.
      • block_medium_and_above (opción predeterminada): umbral de seguridad medio que equilibra el filtrado de contenido potencialmente dañino y seguro. Valor anterior: block_some.
      • block_only_high: umbral de seguridad que reduce el número de solicitudes bloqueadas debido a los filtros de seguridad. Este ajuste puede aumentar el contenido inapropiado generado por Imagen. Valor anterior: block_few.
    • SEED_NUMBER: número entero. Opcional. Cualquier número entero no negativo que proporciones para que las imágenes de salida sean deterministas. Si se proporciona el mismo número de semilla, siempre se obtendrán las mismas imágenes. Si el modelo que estás usando admite marcas de agua digitales, debes definir "addWatermark": false para usar este campo. Valores enteros aceptados: 1 - 2147483647.
    • OUTPUT_STORAGE_URI: cadena. Opcional. El segmento de Cloud Storage donde se almacenarán las imágenes de salida. Si no se proporciona, se devuelven bytes de imagen codificados en Base64 en la respuesta. Valor de ejemplo: gs://image-bucket/output/.

Método HTTP y URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict

Cuerpo JSON de la solicitud:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT"
    }
  ],
  "parameters": {
    "sampleCount": IMAGE_COUNT
  }
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict" | Select-Object -Expand Content
La siguiente respuesta de ejemplo corresponde a una solicitud con "sampleCount": 2. La respuesta devuelve dos objetos de predicción con los bytes de la imagen generada codificados en base64.
{
  "predictions": [
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    },
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}

Si usas un modelo que admite la mejora de las peticiones, la respuesta incluye un campo prompt adicional con la petición mejorada que se ha usado para la generación:

{
  "predictions": [
    {
      "mimeType": "MIME_TYPE",
      "prompt": "ENHANCED_PROMPT_1",
      "bytesBase64Encoded": "BASE64_IMG_BYTES_1"
    },
    {
      "mimeType": "MIME_TYPE",
      "prompt": "ENHANCED_PROMPT_2",
      "bytesBase64Encoded": "BASE64_IMG_BYTES_2"
    }
  ]
}

  1. Haz los cambios siguientes:

    • NEGATIVE_PROMPT: una petición negativa para ayudar a generar las imágenes. Por ejemplo: "animales" (quita los animales), "borroso" (hace que la imagen sea más nítida), "texto" (quita el texto) o "recortado" (quita las imágenes recortadas).
    {
      "instances": [
        ...
      ],
      "parameters": {
        "sampleCount": IMAGE_COUNT,
        "negativePrompt": "NEGATIVE_PROMPT"
      }
    }
    

Siguientes pasos