Edita imágenes

Imagen te permite editar imágenes en segundos con instrucciones de texto, máscaras y las imágenes existentes para guiar las ediciones.

Consulta la tarjeta del modelo de Imagen for Editing and Customization

Versiones de modelos compatibles

La API de Imagen admite los siguientes modelos:

  • imagen-3.0-capability-001

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/imagen-3.0-capability-001:predict \

-d '{
  "instances": [
    {
      "referenceImages": [
        {
          "referenceType": "REFERENCE_TYPE_RAW",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": string
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_MASK",
          "referenceId": 2,
          "referenceImage": {
            "bytesBase64Encoded": string
          },
          "maskImageConfig": {
            "maskMode": "MASK_MODE_USER_PROVIDED"
          }
        }
      ],
      "prompt": string
    }
  ],
  "parameters": {
    "addWatermark": boolean,
    "baseSteps": integer,
    "editMode": string,
    "guidanceScale": integer,
    "includeRaiReason": boolean,
    "includeSafetyAttributes": boolean,
    "language": string,
    "negativePrompt": string,
    "outputOptions": {
      "mimeType": string,
      "compressionQuality": integer
    },
    "personGeneration": string,
    "safetySetting": string,
    "sampleCount": integer,
    "seed": integer,
    "storageUri": string
  }
}'

Instancias

Instancias
prompt

string

Es opcional. Es la instrucción de texto para la imagen. Si no se especifica un prompt, el modelo completa el contenido a partir del contexto de la imagen.

referenceImages

Lista de objetos ReferenceImage.

Obligatorio. Para la edición de máscaras, se deben especificar exactamente dos imágenes de referencia, una con REFERENCE_TYPE_RAW y otra con REFERENCE_TYPE_MASK.

Objeto referenceImages

El objeto referenceImages describe los recursos de imagen que Imagen editará.

Parámetros
referenceType

string

Obligatorio. Es el tipo de imagen de referencia. Uno de los siguientes:

  • REFERENCE_TYPE_RAW: Es la imagen base que se editará.
  • REFERENCE_TYPE_MASK: Es la imagen de máscara cuyos valores distintos de cero indican dónde editar la imagen base.
referenceId

integer

Obligatorio. Es un identificador único de la imagen de referencia. No se usa para la edición enmascarada.

referenceImage.bytesBase64Encoded

string

Obligatorio. Son los bytes de la imagen codificados en Base64. Acepta archivos PNG, JPEG, GIF y BMP. El tamaño máximo es de 20 MB después de la transcodificación a PNG. Si proporcionas una imagen de máscara, debe tener las mismas dimensiones que la imagen base.

maskImageConfig.maskMode

string

Obligatorio cuando referenceType es REFERENCE_TYPE_MASK. Debe ser una de las siguientes opciones:

  • MASK_MODE_USER_PROVIDED: Usa la máscara de referenceImage.bytesBase64Encoded.
  • MASK_MODE_BACKGROUND: Usa una máscara generada automáticamente a partir de la segmentación de fondo.
  • MASK_MODE_FOREGROUND: Usa una máscara generada automáticamente a partir de la segmentación del primer plano.
  • MASK_MODE_SEMANTIC: Usa una máscara generada automáticamente a partir de la segmentación semántica con la clase de máscara determinada.
maskImageConfig.dilation

float

Es opcional. Rango: [0, 1]. Es el porcentaje del ancho de la imagen según el cual se dilata (aumenta) la máscara. Esto puede ayudar a compensar las máscaras imprecisas. Para obtener los mejores resultados, te recomendamos los siguientes parámetros de configuración de maskImageConfig.maskMode, con los valores que se indican a continuación:

  • EDIT_MODE_INPAINT_INSERTION: 0.01
  • EDIT_MODE_INPAINT_REMOVAL: 0.01
  • EDIT_MODE_BGSWAP: 0.0
  • EDIT_MODE_OUTPAINT: 0.01-0.03
maskImageConfig.maskClasses

list[integer]

Es opcional. Máscara clases para el modo MASK_MODE_SEMANTIC.

Parámetros

Parámetros
addWatermark

bool

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

El valor predeterminado es true.

baseSteps

integer

Es opcional. Es la cantidad de pasos de muestreo. Un valor más alto tiene una mejor calidad de imagen, mientras que un valor más bajo tiene una mejor latencia. La configuración predeterminada es 75.

Para áreas de máscara más pequeñas o para los modos de inserción o eliminación, usa los pasos de 16 a 35 para reducir la latencia y, al mismo tiempo, obtener un nivel de calidad similar.

editMode

string

Se requiere para la edición de máscaras.

Es una enumeración con uno de los siguientes valores:

  • EDIT_MODE_INPAINT_REMOVAL: Quita objetos y completa el fondo de la imagen en el área de la máscara.
  • EDIT_MODE_INPAINT_INSERTION: Agrega objetos a partir de una instrucción determinada.
  • EDIT_MODE_BGSWAP: Agrega contenido de fondo en el área de la máscara y conserva el contenido del objeto en el área sin máscara. Es útil para editar productos.
  • EDIT_MODE_OUTPAINT: Extiende la imagen hacia el área de la máscara. A diferencia de EDIT_MODE_BGSWAP, esta opción generará la finalización de objetos parciales en el límite de la imagen.
guidanceScale

integer

Es opcional. Controla hasta qué punto el modelo cumple con la instrucción de texto. Los valores grandes aumentan la salida y la alineación de la instrucción, pero pueden comprometer la calidad de la imagen.

Rango aceptado: 0 - 500

Valor predeterminado: 60 para el modo de inserción y 75 para quitar, intercambiar fondo y expansión.

includeRaiReason

boolean

Es opcional. Indica si se debe incluir un motivo de seguridad para las imágenes filtradas en la respuesta. El valor predeterminado es false.

includeSafetyAttributes

boolean

Es opcional. Indica si se deben informar las puntuaciones de seguridad de cada imagen en la respuesta. El valor predeterminado es false.

language

string

Es opcional. Es el código de idioma que corresponde a tu idioma de la instrucción de texto. Se admiten los siguientes valores:

  • "auto": Detección automática Si Imagen detecta un idioma admitido, la instrucción y una instrucción negativa opcional se traducen al inglés. Si el idioma detectado no es compatible, Imagen usa el texto de entrada tal cual, lo que podría generar un resultado inesperado. No se devuelve ningún código de error.
  • "en": Inglés (si se omite, se usa el valor predeterminado)
  • "zh" o "zh-CN": Chino (simplificado)
  • "zh-TW": Chino (tradicional)
  • "hi": Hindi
  • "ja": Japonés
  • "ko": Coreano
  • "pt": Portugués
  • "es": Español

language solo es compatible con imagen-3.0-capability-001.

negativePrompt

string

Es opcional. Una descripción de lo que se debe evitar en las imágenes generadas.

outputOptions

outputOptions

Es opcional. Describe el formato de imagen de salida en un objeto outputOptions.

personGeneration

string

Es 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.

Para la edición basada en máscaras, personGeneration se establece de forma predeterminada en allow_adult. Para la edición sin máscara, personGeneration se establece de forma predeterminada en allow_adult.

sampleCount

integer

Es opcional. Es la cantidad de imágenes que se generarán. El valor predeterminado es 4.

seed

Uint32

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

safetySetting

string

Es 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".

safetySetting solo es compatible con imagen-3.0-capability-001.

storageUri

string

Es opcional. Es el URI de Cloud Storage para almacenar las imágenes generadas.

Objeto de opciones de salida

El objeto outputOptions describe el resultado de la imagen.

Parámetros
outputOptions.mimeType

string

Es opcional. Es el formato de imagen en el que se debe guardar el resultado. Se admiten los siguientes valores:

  • "image/png": Guardar como imagen PNG
  • "image/jpeg": Guardar como imagen JPEG

El valor predeterminado es "image/png".

outputOptions.compressionQuality

integer

Es opcional. El nivel de compresión si el tipo de salida es "image/jpeg". Los valores aceptados son de 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: Es el ID de tu proyecto de Google Cloud .
  • TEXT_PROMPT: Opcional. Es una instrucción de texto para guiar las imágenes que genera el modelo. Para obtener mejores resultados, usa una descripción del área enmascarada y evita las instrucciones de una sola palabra. Por ejemplo, usa "un corgi tierno" en lugar de "corgi".
  • B64_BASE_IMAGE: Imagen codificada en Base64 de la imagen que se está editando, con un tamaño de 10 MB o menos. Para obtener más información sobre la codificación en Base64, consulta Codifica y decodifica archivos en Base64.
  • B64_MASK_IMAGE: Imagen de máscara en blanco y negro codificada en Base64 con un tamaño de 10 MB o menos.
  • MASK_DILATION: Opcional. Es un valor de número de punto flotante entre 0 y 1, inclusive, que representa el porcentaje del ancho de la imagen en el que se debe aumentar la máscara. El uso de dilation ayuda a compensar las máscaras imprecisas. Recomendamos un valor de 0.01.
  • EDIT_STEPS: Opcional. Es un número entero que representa la cantidad de pasos de muestreo. Un valor más alto ofrece una mejor calidad de imagen, mientras que un valor más bajo ofrece una mejor latencia.

    Te recomendamos que pruebes con 35 pasos para comenzar. Si la calidad no cumple con tus requisitos, te recomendamos que aumentes el valor hasta un límite superior de 75.

  • SAMPLE_COUNT: Opcional. Es un número entero que describe la cantidad de imágenes que se generarán. El rango de valores aceptado es de 1 a 4. El valor predeterminado es 4.

Método HTTP y URL:

POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001:predict

Cuerpo JSON de la solicitud:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT",
      "referenceImages": [
        {
          "referenceType": "REFERENCE_TYPE_RAW",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "B64_BASE_IMAGE"
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_MASK",
          "referenceImage": {
            "bytesBase64Encoded": "B64_MASK_IMAGE"
          },
          "maskImageConfig": {
            "maskMode": "MASK_MODE_USER_PROVIDED",
            "dilation": MASK_DILATION
          }
        }
      ]
    }
  ],
  "parameters": {
    "editConfig": {
      "baseSteps": EDIT_STEPS
    },
    "editMode": "EDIT_MODE_INPAINT_INSERTION",
    "sampleCount": SAMPLE_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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001: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-3.0-capability-001:predict" | Select-Object -Expand Content
La siguiente respuesta de muestra es para una solicitud con "sampleCount": 2. La respuesta muestra dos objetos de predicción, con los bytes de imagen generados codificados en base64.
{
  "predictions": [
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    },
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}

IDs de clase

Usa los siguientes IDs de clase de objeto para crear automáticamente una máscara de imagen basada en objetos específicos.

ID de clase (class_id) Objeto
0 mochila
1 paraguas
2 bolsa
3 corbata
4 maleta
5 caso
6 pájaro
7 gato
8 perro
9 caballo
10 oveja
11 vaca
12 elefante
13 oso
14 cebra
15 jirafa
16 animal (otro)
17 microondas
18 radiador
19 horno
20 tostadora
21 tanque de almacenamiento
22 cinta transportadora
23 lavabo
24 refrigerador
25 lavadora/secadora
26 ventilador
27 lavavajillas
28 baño
29 bañera
30 ducha
31 túnel
32 puente
33 muelle
34 carpa
35 edificio
36 techo
37 laptop
38 teclado
39 ratón
40 remoto
41 teléfono celular
42 televisión
43 piso
44 etapa
45 banana
46 apple
47 emparedado
48 naranja
49 brócoli
50 zanahoria
51 perro caliente
52 pizza
53 rosquilla
54 pastel
55 fruta (otro)
56 comida (otro)
57 silla (otro)
58 sillón
59 silla giratoria
60 banqueta
61 asiento
62 sofá
63 papelera
64 planta en maceta
65 mesita de noche
66 cama
67 tabla
68 mesa de billar
69 barril
70 escritorio
71 otomana
72 ropero
73 cuna
74 cesta
75 cómoda
76 biblioteca
77 mesada (otro)
78 mesada de baño
79 isla de cocina
80 puerta
81 luz (otro)
82 lámpara
83 aplique
84 candelabro
85 espejo
86 pizarra
87 estantería
88 escaleras
89 escalera mecánica
90 gabinete
91 chimenea
92 estufa
93 máquina de arcade
94 grava
95 plataforma
96 campo de juego
97 ferrocarril
98 ruta
99 nieve
100 pavimento en las aceras
101 pista
102 relieve
103 libro
104 caja
105 reloj
106 florero
107 tijeras
108 juguete (otro)
109 oso de peluche
110 secador de cabello
111 cepillo de dientes
112 pintura
113 póster
114 cartelera de anuncios
115 botella
116 taza
117 copa de vino
118 cuchillo
119 tenedor
120 cuchara
121 bol
122 bandeja
123 campana extractora
124 plato
125 persona
126 pasajero (otro)
127 ciclista
128 motociclista
129 papel
130 farola
131 barrera vial
132 buzón
133 cámara de cctv
134 caja de conexión
135 señal de tráfico
136 semáforo
137 hidrante
138 parquímetro
139 banca
140 soporte para bicicletas
141 cartel
142 cielo
143 poste
144 cerca
145 barandilla
146 barrera
147 colina de montaña
148 piedra
149 frisbi
150 esquís
151 tabla de snowboard
152 pelota deportiva
153 cometa
154 bate de béisbol
155 guante de béisbol
156 patineta
157 tabla de surf
158 raqueta de tenis
159 red
160 base
161 escultura
162 columna
163 fuente
164 toldo
165 indumentaria
166 banner
167 bandera
168 manta
169 cortina (otro)
170 cortina de baño
171 almohada
172 toalla
173 alfombra
174 vegetación
175 bicicleta
176 auto
177 mototaxi
178 motocicleta
179 avión
180 autobús
181 tren
182 camión
183 remolque
184 barco
185 objeto con ruedas de movimiento lento
186 lago de río
187 mar
188 agua (otro)
189 piscina
190 cascada
191 pared
192 ventana
193 persiana

¿Qué sigue?