API de recontextualización de productos de Imagen

El producto Imagen recontext en la API de Vertex AI te permite editar imágenes de productos en diferentes escenas o fondos. Proporcionas una imagen de un producto y una instrucción, y la función de recontextualización de productos de Imagen genera imágenes de tu producto en escenas nuevas o con fondos diferentes.

Para solicitar acceso al recontextualizador de productos de Imagen, completa el formulario de solicitud de acceso a medios generativos para marketing de Vertex AI.

Versiones de modelos compatibles

La recontextualización de productos de Imagen admite los siguientes modelos:

  • imagen-product-recontext-preview-06-30

Para obtener más información sobre las funciones que admite el modelo, consulta Modelos de Imagen.

Solicitud HTTP

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:predict \

-d '{
  "instances": [
    {
      "prompt": string,
      "productImages": [
        // The following fields can be repeated up to 3 times for different
        // views of the same product.
        {
          "image": {
            // Union field can be only one of the following:
            "bytesBase64Encoded": string,
            "gcsUri": string,
            // End of list of possible types for union field.
          },
        }
      ]
    }
  ],
  "parameters": {
    "addWatermark": boolean,
    "enhancePrompt": boolean
    "personGeneration": string,
    "safetySetting": string,
    "sampleCount": integer,
    "seed": integer,
    "storageUri": string,
    "outputOptions": {
      "mimeType": string,
      "compressionQuality": integer
    }
  }
}'

Instancias

Instancias
prompt

string

Opcional. Es una instrucción de texto para guiar la generación de la escena.

productImages

list[productImages]

Es una lista de hasta tres ProductImages diferentes del mismo producto. El modelo usa las imágenes para recontextualizar el producto en diferentes escenas o fondos.

Objeto productImages

El objeto productImages describe los recursos de imagen que se colocarán en diferentes escenas o fondos.

productImages

Campo de unión image.

Imagen del producto de imagen-product-recontext-preview-06-30 como entrada para diferentes vistas del producto. Cada imagen puede ser una cadena bytesBase64Encoded que codifica una imagen o una cadena gcsUri URI a una ubicación de bucket de Cloud Storage.

bytesBase64Encoded

string

Es una cadena codificada en base64 de bytes de un archivo de imagen o video.

gcsUri

string

Es un URI de cadena a la ubicación de un bucket de Cloud Storage.

Parámetros

Parámetros
addWatermark

boolean

Opcional. Agrega una marca de agua invisible a las imágenes generadas.

El valor predeterminado es true.

enhancePrompt

boolean

Opcional. Es un parámetro opcional para usar una función de reformulación de instrucciones basada en LLM para generar imágenes de mayor calidad que reflejen mejor la intención de la instrucción original. Inhabilitar esta función puede afectar la calidad de la imagen y el cumplimiento de las instrucciones.

El valor predeterminado es true.

personGeneration

string

Opcional. Permite que el modelo genere personas. Se admiten los siguientes valores:

  • "dont_allow": No permite la inclusión de personas ni rostros en las imágenes.
  • "allow_adult": Permite la generación de adultos solamente.
  • "allow_all": permite la generación de personas de todas las edades.

El valor predeterminado es "allow_adult".

safetySetting

string

Opcional. Agrega un nivel de filtro al filtrado de seguridad. Se admiten los siguientes valores:

  • "block_low_and_above": Es el nivel de filtrado más estricto y el bloqueo más estricto. Valor obsoleto: "block_most".
  • "block_medium_and_above": Bloquea algunas instrucciones y respuestas problemáticas. Valor obsoleto: "block_some".
  • "block_only_high": Reduce la cantidad de solicitudes bloqueadas debido a los filtros de seguridad. Puede aumentar el contenido censurable que genera Imagen. Valor obsoleto: "block_few".
  • "block_none": Bloquea muy pocas instrucciones y respuestas problemáticas. El acceso a esta función está restringido. Valor anterior del campo: "block_fewest".

El valor predeterminado es "block_medium_and_above".

sampleCount

int

Es la cantidad de imágenes que se generarán.

Es un valor de número entero en el rango de 1 a 4. El valor predeterminado es 1.

seed

Uint32

Opcional. La semilla aleatoria para la generación de imágenes. No está disponible cuando addWatermark se configura como true.

Si enhancePrompt se establece en true, el parámetro seed no funcionará, ya que enhancePrompt genera una nueva instrucción, lo que da como resultado una imagen nueva o diferente.

storageUri

string

Opcional. Es un URI de cadena a la ubicación de un bucket de Cloud Storage que se usa para almacenar las imágenes generadas. Si no se proporciona un bucket de Cloud Storage, se devuelven bytes de imagen codificados en base64 en la respuesta.

outputOptions

outputOptions

Opcional. Describe el formato de imagen de salida en un objeto outputOptions.

Objeto de opciones de salida

El objeto outputOptions describe el resultado de la imagen.

Parámetros
outputOptions.mimeType

Opcional: string

Es el formato de salida de la imagen. Se admiten los siguientes valores:

  • "image/png": Guarda el archivo como una imagen PNG.
  • "image/jpeg": Guarda como imagen JPEG.

El valor predeterminado es "image/png".

outputOptions.compressionQuality

Opcional: int

El nivel de compresión si el tipo de salida es "image/jpeg". Los valores aceptados son 0 a 100. El valor predeterminado es 75.

Solicitud de muestra

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • REGION: Es la región en la que se encuentra tu proyecto. Para obtener más información sobre las regiones admitidas, consulta IA generativa en ubicaciones de Vertex AI.
  • PROJECT_ID: El ID de tu proyecto de Google Cloud .
  • TEXT_PROMPT: Opcional Es un mensaje de texto para guiar las imágenes que genera el modelo.
  • BASE64_SUBJECT_IMAGE: Es una imagen del sujeto codificada en Base64.
  • PERSON_SETTING: Opcional: Es un valor de cadena que controla el tipo de generación de personas o rostros que permite el modelo. Puedes usar los siguientes valores para personGeneration:
    • "allow_adult": Permite la generación de adultos solamente, excepto la generación de celebridades. No se permite la generación de celebridades para ningún parámetro de configuración. Esta es la configuración predeterminada.
    • "allow_all": Permite la generación de personas de todas las edades, excepto la generación de celebridades. No se permite la generación de celebridades para ningún parámetro de configuración.
    • "dont_allow": No permite la generación de personas ni rostros en el resultado generado.
  • SAFETY_SETTING: Opcional: Es un valor de cadena que controla el umbral del filtro de seguridad para las imágenes generadas. Puedes usar los siguientes valores para seleccionar el parámetro de configuración de seguridad:
    • "block_low_and_above": Es el umbral de seguridad más estricto. "block_low_and_above" filtra la mayor cantidad de imágenes generadas.
    • "block_medium_and_above": Es el umbral de seguridad medio, que equilibra el filtrado del contenido potencialmente dañino y seguro. "block_medium_and_above" es el parámetro de configuración de seguridad predeterminado.
    • "block_only_high": Es el umbral de seguridad más bajo, que reduce la cantidad de solicitudes bloqueadas debido al filtro de seguridad. Usar el umbral de seguridad "block_only_high" podría aumentar la cantidad de imágenes censurables que genera el modelo.
  • WATERMARK_SETTING: Opcional: Es un valor booleano. Cuando este valor se establece en true, el modelo agrega una marca de agua digital que puedes usar para verificar la imagen generada. El valor predeterminado es true.
  • IMAGE_COUNT: Es la cantidad de imágenes que se generarán. El rango de valores aceptado es de 1 a 4.
  • PROMPT_SETTING: Opcional: Es un valor booleano. Cuando este valor se establece en true, el modelo usa prmopts mejoradas. El valor predeterminado es true.

Método HTTP y URL:

POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-product-recontext-preview-06-30:predict

Cuerpo JSON de la solicitud:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT",
      "productImages": [
        {
          "image": {
            "bytesBase64Encoded": "BASE64_SUBJECT_IMAGE"
          },
        }
      ]
    }
  ],
  "parameters": {
    "personGeneration": PERSON_SETTING,
    "safetySetting": SAFETY_SETTING,
    "addWatermark": WATERMARK_SETTING,
    "sampleCount": IMAGE_COUNT,
    "enhancePrompt": PROMPT_SETTING
  }
}

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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-product-recontext-preview-06-30: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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-product-recontext-preview-06-30:predict" | Select-Object -Expand Content
La solicitud devuelve objetos de imagen. En este ejemplo, se devuelven dos objetos de imagen, con dos objetos de predicción como imágenes codificadas en base64.
{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    },
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    }
  ]
}