Editar imágenes

Imagen te permite editar imágenes en segundos usando peticiones de texto, máscaras e imágenes para guiar las ediciones.

Ver la tarjeta de modelo de Imagen para edición y personalización

Versiones de modelo admitidas

La API 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

Opcional. La petición de texto de la imagen. Si no se especifica un prompt, el modelo rellena el contenido a partir del contexto de la imagen.

referenceImages

Lista de objetos ReferenceImage.

Obligatorio. Para editar una máscara, 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 de la imagen que se va a editar.

Parámetros
referenceType

string

Obligatorio. El tipo de imagen de referencia. Uno de los siguientes:

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

integer

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

referenceImage.bytesBase64Encoded

string

Obligatorio. Bytes de imagen codificados en Base64. Se aceptan archivos PNG, JPEG, GIF y BMP. El tamaño máximo es de 20 MB después de transcodificarlo a PNG. Si proporcionas una imagen de máscara, debe tener las mismas dimensiones que la imagen base.

maskImageConfig.maskMode

string

Es obligatorio cuando referenceType se configura como REFERENCE_TYPE_MASK. Debe ser una de las siguientes:

  • 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 del fondo.
  • MASK_MODE_FOREGROUND: usa una máscara generada automáticamente a partir de la segmentación en 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 proporcionada.
maskImageConfig.dilation

float

Opcional. Intervalo: [0, 1]. El porcentaje de la anchura de la imagen que se va a dilatar (aumentar) la máscara. Esto puede ayudar a compensar las máscaras imprecisas. Para obtener los mejores resultados, te recomendamos los siguientes ajustes de maskImageConfig.maskMode y 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]

Opcional. Clases de máscara para el modo MASK_MODE_SEMANTIC.

Parámetros

Parámetros
addWatermark

bool

Opcional. Añade una marca de agua invisible a las imágenes generadas.

El valor predeterminado es true.

baseSteps

integer

Opcional. Número 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. El valor predeterminado es 75.

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

editMode

string

Obligatorio para editar la máscara.

Una enumeración con uno de los siguientes valores:

  • EDIT_MODE_INPAINT_REMOVAL: elimina objetos y rellena el fondo de la imagen en el área de la máscara.
  • EDIT_MODE_INPAINT_INSERTION: añade objetos a partir de una petición determinada.
  • EDIT_MODE_BGSWAP: añade contenido de fondo en el área de la máscara y conserva el contenido del objeto en el área sin máscara. Útil para editar productos.
  • EDIT_MODE_OUTPAINT: extiende la imagen al á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

Opcional. Controla en qué medida se ajusta el modelo a la petición de texto. Los valores grandes aumentan la salida y la alineación de las peticiones, pero pueden afectar a la calidad de la imagen.

Intervalo aceptado: 0 - 500

Valor predeterminado: 60 para el modo de inserción y 75 para eliminar, bgswap y outpaint.

includeRaiReason

boolean

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

Opcional. Indica si se deben registrar las puntuaciones de seguridad de cada imagen en la respuesta. El valor predeterminado es false.

language

string

Opcional. El código de idioma que corresponde al idioma de tu petición de texto. Se admiten los siguientes valores:

  • "auto": detección automática. Si Imagen detecta un idioma admitido, la petición y una petición negativa opcional se traducen al inglés. Si el idioma detectado no se admite, Imagen usa el texto de entrada tal cual, lo que puede dar lugar a 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

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

outputOptions

outputOptions

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

personGeneration

string

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

  • "dont_allow": no permitir que se incluyan personas o caras en las imágenes.
  • "allow_adult": permite generar contenido solo para adultos.
  • "allow_all": permite generar imágenes de personas de todas las edades.

En la edición basada en máscaras, personGeneration tiene el valor predeterminado allow_adult. Para editar sin máscaras, personGeneration tiene el valor predeterminado allow_adult.

sampleCount

integer

Opcional. Número de imágenes que se van a generar. El valor predeterminado es 4.

seed

Uint32

Opcional. Semilla aleatoria para la generación de imágenes. Esta opción no está disponible cuando addWatermark está configurado como true.

safetySetting

string

Opcional. Añade un nivel de filtro al filtro de seguridad. Se admiten los siguientes valores:

  • "block_low_and_above": nivel de filtrado más alto, bloqueo más estricto. Valor obsoleto: "block_most".
  • "block_medium_and_above": bloquea algunas peticiones y respuestas problemáticas. Valor obsoleto: "block_some".
  • "block_only_high": reduce el número de solicitudes bloqueadas debido a los filtros de seguridad. Puede aumentar el contenido inapropiado generado por Imagen. Valor obsoleto: "block_few".
  • "block_none": bloquea muy pocas peticiones y respuestas problemáticas. El acceso a esta función está restringido. Valor del campo anterior: "block_fewest".

El valor predeterminado es "block_medium_and_above".

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

storageUri

string

Opcional. El URI de Cloud Storage para almacenar las imágenes generadas.

Objeto de opciones de salida

El objeto outputOptions describe la salida de la imagen.

Parámetros
outputOptions.mimeType

string

Opcional. El formato de imagen en el que se debe guardar la salida. 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

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

Solicitud de ejemplo

REST

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

  • REGION: la región en la que se encuentra tu proyecto. Para obtener más información sobre las regiones admitidas, consulta Ubicaciones de la IA generativa en Vertex AI.
  • PROJECT_ID: tu ID de proyecto. Google Cloud
  • TEXT_PROMPT: Opcional. Una petición de texto para guiar las imágenes que genera el modelo. Para obtener los mejores resultados, usa una descripción de la zona enmascarada y evita las peticiones de una sola palabra. Por ejemplo, usa "un corgi bonito" 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 Codificar y decodificar archivos en base64.
  • B64_MASK_IMAGE: Una imagen de máscara en blanco y negro codificada en Base64 que tenga un tamaño de 10 MB o menos.
  • MASK_DILATION: Opcional. Valor flotante entre 0 y 1, ambos incluidos, que representa el porcentaje de la anchura de la imagen en el que se debe aumentar la máscara. Usar dilation ayuda a compensar las máscaras imprecisas. Te recomendamos que definas un valor de 0.01.
  • EDIT_STEPS: Opcional. Número entero que representa el número 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 los pasos 35 para empezar. Si la calidad no cumple tus requisitos, te recomendamos que aumentes el valor hasta un límite superior de 75.

  • SAMPLE_COUNT: Opcional. Un número entero que describe el número de imágenes que se van a generar. El intervalo de valores aceptado es 1-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 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"
    }
  ]
}

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 empate
4 maleta
5 funda
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 depósito de almacenamiento
22 Cinta transportadora
23 fregadero
24 frigorífico
25 lavadora secadora
26 ventilador
27 lavavajillas
28 inodoro
29 bañera
30 ducha
31 túnel
32 puente
33 muelle
34 tienda de campaña
35 edificio
36 techo
37 portátil
38 teclado
39 ratón
40 remoto
41 teléfono móvil
42 televisión
43 suelo
44 fase
45 plátano
46 manzana
47 sándwich
48 naranja
49 brócoli
50 acento circunflejo
51 perrito caliente
52 pizza
53 rosquilla
54 tarta
55 Fruta (otros)
56 Comida (otros)
57 silla (otro)
58 sillón
59 silla giratoria
60 taburete
61 licencia
62 sofá
63 papelera
64 planta en maceta
65 Mesita de noche
66 cama
67 tabla
68 Mesa de billar
69 cañón
70 escritorio
71 otomana
72 armario
73 cuna
74 canasta
75 cómoda
76 estantería
77 Contador (otro)
78 encimera de baño
79 Isla de cocina
80 puerta
81 Luz (otro)
82 lámpara
17. aplique
84 lámpara de araña
85 proyectar
86 pizarra
87 estantería
88 escaleras
89 escalera mecánica
90 armario
91 chimenea
92 cocina de fogones
93 máquina recreativa
94 grava
95 plataforma
96 campo de juego
97 ferrocarril
98 carretera
99 snow
100 pavimento de acera
101 pista
102 relieve
103 libro
104 de correos
105 reloj
106 jarrón
107 tijeras
108 Juguete (otro)
109 oso de peluche
110 secador de pelo
111 cepillo de dientes
112 cuadro
113 Póster
114 tablón de anuncios
115 botella
116 copa
117 Copa de vino
118 cuchillo
119 bifurcación
120 cuchara
121 bol
122 bandeja
123 Campana extractora
124 plato
125 persona
126 Rider (otro)
127 Ciclista
128 motociclista
129 documento
130 farola
131 barrera de carretera
132 buzón
133 cámara de circuito cerrado de televisión
134 Caja de conexiones
135 Señal de tráfico
136 semáforo
137 boca de incendios
138 Parquímetro
139 banco
140 Portabicicletas
141 Billboard
142 sky
143 palo
144 valla
145 barandilla
146 barandilla
147 montaña
148 rock
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 monopatín
157 tabla de surf
158 raqueta de tenis
159 net
160 base
161 escultura
162 columna
163 fuente
164 toldo
165 Ropa
166 banner
167 bandera
168 manta
169 cortina (otro)
170 Cortina de ducha
171 almohada
172 toalla
173 alfombrilla
174 vegetación
175 bicicleta
176 coche
177 autorickshaw
178 motocicleta
179 avión
180 autobús
181 train
182 camión
183 Tráiler
184 barco
185 objeto lento con ruedas
186 lago fluvial
187 ce
188 Agua (otro)
189 Piscina
190 Cascada
191 pared
192 ventana
193 Persiana

Siguientes pasos