En noviembre de 2022, nosotros anunció que los clientes de AWS pueden generar imágenes a partir de texto con Difusión estable modelos usando JumpStart de Amazon SageMaker. Hoy, nos complace presentar una nueva función que permite a los usuarios pintar imágenes con modelos de difusión estable. Repintar se refiere al proceso de reemplazar una parte de una imagen con otra imagen basada en un mensaje de texto. Al proporcionar la imagen original, una imagen de máscara que describe la parte que se va a reemplazar y un mensaje de texto, el modelo de difusión estable puede producir una nueva imagen que reemplaza el área enmascarada con el objeto, el sujeto o el entorno descrito en el mensaje de texto.
Puede usar inpainting para restaurar imágenes degradadas o crear nuevas imágenes con temas o estilos novedosos en ciertas secciones. Dentro del ámbito del diseño arquitectónico, la pintura de difusión estable se puede aplicar para reparar áreas incompletas o dañadas de los planos de construcción, proporcionando información precisa para los equipos de construcción. En el caso de imágenes de resonancia magnética clínica, la cabeza del paciente debe estar restringida, lo que puede conducir a resultados deficientes debido al artefacto de recorte que provoca la pérdida de datos o reduce la precisión del diagnóstico. Repintar imágenes puede ayudar de manera efectiva a mitigar estos resultados subóptimos.
En esta publicación, presentamos una guía completa sobre la implementación y ejecución de la inferencia utilizando el modelo de pintura de difusión estable en dos métodos: a través de la interfaz de usuario (UI) de JumpStart en Estudio Amazon SageMaker, y programáticamente a través de API JumpStart disponible en el SDK de SageMaker Python.
Resumen de la solución
Las siguientes imágenes son ejemplos de inpainting. Las imágenes originales están a la izquierda, la imagen de la máscara está en el centro y la imagen sin pintar generada por el modelo está a la derecha. Para el primer ejemplo, a la modelo se le proporcionó la imagen original, una imagen de máscara y el mensaje textual "un gato blanco, ojos azules, con un suéter, acostado en el parque", así como el mensaje negativo "pies mal dibujados". ” Para el segundo ejemplo, el mensaje textual fue "Una modelo femenina luce elegantemente un vestido largo casual con una combinación de tonos rosa y azul".
Ejecutar modelos grandes como Stable Diffusion requiere scripts de inferencia personalizados. Debe ejecutar pruebas de extremo a extremo para asegurarse de que el script, el modelo y la instancia deseada funcionen juntos de manera eficiente. JumpStart simplifica este proceso al proporcionar secuencias de comandos listas para usar que se han probado de forma exhaustiva. Puede acceder a estos scripts con un clic a través de la interfaz de usuario de Studio o con muy pocas líneas de código a través de la API JumpStart.
Las siguientes secciones lo guían a través de la implementación del modelo y la ejecución de la inferencia mediante la interfaz de usuario de Studio o las API de JumpStart.
Tenga en cuenta que al utilizar este modelo, acepta las Licencia CreativeML Open RAIL++-M.
Acceda a JumpStart a través de la interfaz de usuario de Studio
En esta sección, ilustramos la implementación de modelos JumpStart mediante la interfaz de usuario de Studio. El video adjunto muestra cómo ubicar el modelo Stable Diffusion inpainting entrenado previamente en JumpStart e implementarlo. La página del modelo ofrece detalles esenciales sobre el modelo y su uso. Para realizar la inferencia, empleamos el tipo de instancia ml.p3.2xlarge, que ofrece la aceleración de GPU necesaria para la inferencia de baja latencia a un precio asequible. Después de configurar la instancia de hospedaje de SageMaker, elija Despliegue. El terminal estará operativo y preparado para gestionar solicitudes de inferencia en aproximadamente 10 minutos.
JumpStart proporciona un cuaderno de muestra que puede ayudar a acelerar el tiempo que lleva ejecutar la inferencia en el punto final recién creado. Para acceder al cuaderno en Studio, seleccione cuaderno abierto existentes Usar Endpoint desde Studio sección de la página de punto final del modelo.
Utilice JumpStart mediante programación con el SDK de SageMaker
El uso de la interfaz de usuario de JumpStart le permite implementar un modelo previamente entrenado de forma interactiva con solo unos pocos clics. Como alternativa, puede emplear modelos JumpStart mediante programación mediante el uso de API integradas en SageMaker Python SDK.
En esta sección, elegimos un modelo preentrenado adecuado en JumpStart, implementamos este modelo en un punto final de SageMaker y realizamos inferencias en el punto final implementado, todo usando el SDK de Python de SageMaker. Los siguientes ejemplos contienen fragmentos de código. Para acceder al código completo con todos los pasos incluidos en esta demostración, consulte el Introducción a la edición de imágenes JumpStart: pintura de difusión estable ejemplo de cuaderno.
Implementar el modelo preentrenado
SageMaker utiliza contenedores Docker para varias tareas de compilación y tiempo de ejecución. JumpStart utiliza el Contenedores de aprendizaje profundo de SageMaker (DLC) que son específicos del marco. Primero buscamos cualquier paquete adicional, así como scripts para manejar el entrenamiento y la inferencia para la tarea seleccionada. Luego, los artefactos del modelo preentrenado se obtienen por separado con model_uris
, lo que proporciona flexibilidad a la plataforma. Esto permite utilizar varios modelos preentrenados con un solo script de inferencia. El siguiente código ilustra este proceso:
A continuación, proporcionamos esos recursos a un modelo de SageMaker instancia e implementar un punto final:
Después de implementar el modelo, ¡podemos obtener predicciones en tiempo real de él!
Entrada
La entrada es la imagen base, una imagen de máscara y el mensaje que describe el sujeto, el objeto o el entorno que se sustituirá en la parte enmascarada. La creación de la imagen de máscara perfecta para los efectos de pintura implica varias prácticas recomendadas. Comience con un aviso específico y no dude en experimentar con varias configuraciones de difusión estable para lograr los resultados deseados. Utilice una imagen de máscara que se asemeje mucho a la imagen que pretende pintar. Este enfoque ayuda al algoritmo de pintura a completar las secciones faltantes de la imagen, lo que da como resultado una apariencia más natural. Las imágenes de alta calidad generalmente producen mejores resultados, así que asegúrese de que las imágenes base y de máscara sean de buena calidad y se parezcan entre sí. Además, opte por una imagen de máscara grande y suave para preservar los detalles y minimizar los artefactos.
El punto final acepta la imagen base y la máscara como valores RGB sin procesar o una imagen codificada en base64. El controlador de inferencias decodifica la imagen basándose en content_type
:
-
content_type = “application/json”
, la carga útil de entrada debe ser un diccionario JSON con los valores RGB sin procesar, la indicación textual y otros parámetros opcionales -
content_type = “application/json;jpeg”
, la carga útil de entrada debe ser un diccionario JSON con la imagen codificada en base64, un indicador de texto y otros parámetros opcionales
Salida
El punto final puede generar dos tipos de salida: una imagen RGB codificada en Base64 o un diccionario JSON de las imágenes generadas. Puede especificar el formato de salida que desea configurando el accept
encabezado a "application/json"
or "application/json;jpeg"
para una imagen JPEG o base64, respectivamente.
-
accept = “application/json”
, el punto final devuelve un diccionario JSON con valores RGB para la imagen -
accept = “application/json;jpeg”
, el extremo devuelve un diccionario JSON con la imagen JPEG como bytes codificados con codificación base64.b64
Tenga en cuenta que enviar o recibir la carga útil con los valores RGB sin procesar puede alcanzar los límites predeterminados para la carga útil de entrada y el tamaño de la respuesta. Por lo tanto, recomendamos usar la imagen codificada en base64 configurando content_type = “application/json;jpeg”
y aceptar = “aplicación/json;jpeg”.
El siguiente código es un ejemplo de solicitud de inferencia:
Parámetros admitidos
Los modelos de pintura de difusión estable admiten muchos parámetros para la generación de imágenes:
- imagen – La imagen original.
- máscara – Una imagen en la que la parte oscurecida permanece sin cambios durante la generación de la imagen y se reemplaza la parte blanca.
- puntual – Un aviso para guiar la generación de la imagen. Puede ser una cadena o una lista de cadenas.
- num_inference_steps (opcional) – El número de pasos de eliminación de ruido durante la generación de imágenes. Más pasos conducen a una imagen de mayor calidad. Si se especifica, debe ser un entero positivo. Tenga en cuenta que más pasos de inferencia conducirán a un tiempo de respuesta más largo.
- guía_escala (opcional) – Una escala de guía más alta da como resultado una imagen más estrechamente relacionada con el aviso, a expensas de la calidad de la imagen. Si se especifica, debe ser un flotante.
guidance_scale<=1
se ignora. - mensaje_negativo (opcional) – Esto guía la generación de imágenes contra este indicador. Si se especifica, debe ser una cadena o una lista de cadenas y debe usarse con
guidance_scale
. Siguidance_scale
está deshabilitado, esto también está deshabilitado. Además, si el aviso es una lista de cadenas, entonces elnegative_prompt
también debe ser una lista de cadenas. - semilla (opcional) – Esto corrige el estado aleatorio para la reproducibilidad. Si se especifica, debe ser un número entero. Siempre que use el mismo indicador con la misma semilla, la imagen resultante siempre será la misma.
- tamaño_lote (opcional) – El número de imágenes a generar en un solo paso hacia adelante. Si usa una instancia más pequeña o genera muchas imágenes, reduzca
batch_size
ser un número pequeño (1–2). El número de imágenes = número de avisos*num_images_per_prompt
.
Limitaciones y sesgos
Aunque Stable Diffusion tiene un rendimiento impresionante en la pintura, adolece de varias limitaciones y sesgos. Estos incluyen pero no se limitan a:
- Es posible que el modelo no genere caras o extremidades precisas porque los datos de entrenamiento no incluyen suficientes imágenes con estas características.
- El modelo fue entrenado en el Conjunto de datos LAION-5B, que tiene contenido para adultos y puede no ser apto para el uso del producto sin más consideraciones.
- Es posible que el modelo no funcione bien con idiomas que no sean inglés porque el modelo se entrenó en texto en inglés.
- El modelo no puede generar un buen texto dentro de las imágenes.
- La pintura de difusión estable normalmente funciona mejor con imágenes de resoluciones más bajas, como 256 × 256 o 512 × 512 píxeles. Cuando se trabaja con imágenes de alta resolución (768 × 768 o superior), el método puede tener dificultades para mantener el nivel deseado de calidad y detalle.
- Aunque el uso de una semilla puede ayudar a controlar la reproducibilidad, la difusión estable en la pintura aún puede producir resultados variados con ligeras alteraciones en la entrada o los parámetros. Esto puede dificultar el ajuste fino de la salida para requisitos específicos.
- El método puede tener dificultades para generar texturas y patrones intrincados, especialmente cuando abarcan grandes áreas dentro de la imagen o son esenciales para mantener la coherencia y calidad general de la región pintada.
Para obtener más información sobre limitaciones y sesgos, consulte el Tarjeta modelo Stable Diffusion Repinting.
Solución de pintura con máscara generada a través de un mensaje
CLIPSeq es una técnica avanzada de aprendizaje profundo que utiliza el poder de los modelos CLIP (Contrastive Language-Image Pretraining) previamente entrenados para generar máscaras a partir de imágenes de entrada. Este enfoque proporciona una forma eficiente de crear máscaras para tareas como la segmentación de imágenes, la pintura y la manipulación. CLIPSeq usa CLIP para generar una descripción de texto de la imagen de entrada. A continuación, la descripción del texto se utiliza para generar una máscara que identifica los píxeles de la imagen que son relevantes para la descripción del texto. Luego, la máscara se puede usar para aislar las partes relevantes de la imagen para su posterior procesamiento.
CLIPSeq tiene varias ventajas sobre otros métodos para generar máscaras a partir de imágenes de entrada. Primero, es un método más eficiente, porque no requiere que la imagen sea procesada por un algoritmo de segmentación de imagen separado. En segundo lugar, es más preciso porque puede generar máscaras que se alinean más estrechamente con la descripción del texto de la imagen. En tercer lugar, es más versátil porque puede usarlo para generar máscaras a partir de una amplia variedad de imágenes.
Sin embargo, CLIPSeq también tiene algunas desventajas. En primer lugar, la técnica puede tener limitaciones en cuanto al tema, ya que se basa en modelos CLIP previamente entrenados que pueden no abarcar dominios o áreas de especialización específicos. En segundo lugar, puede ser un método sensible, porque es susceptible de errores en la descripción del texto de la imagen.
Para obtener más información, consulte Estilo de moda virtual con IA generativa usando Amazon SageMaker.
Limpiar
Una vez que haya terminado de ejecutar el cuaderno, asegúrese de eliminar todos los recursos creados en el proceso para garantizar que se detenga la facturación. El código para limpiar el punto final está disponible en el asociado cuaderno.
Conclusión
En esta publicación, mostramos cómo implementar un modelo de pintura de Difusión estable previamente entrenado usando JumpStart. Mostramos fragmentos de código en esta publicación: el código completo con todos los pasos de esta demostración está disponible en el Introducción a JumpStart: mejore la calidad de la imagen guiada por indicaciones cuaderno de ejemplo. Pruebe la solución usted mismo y envíenos sus comentarios.
Para obtener más información sobre el modelo y cómo funciona, consulte los siguientes recursos:
Para obtener más información sobre JumpStart, consulte las siguientes publicaciones:
Acerca de los autores
Dr. Vivek Madan es un científico aplicado del equipo JumpStart de Amazon SageMaker. Obtuvo su doctorado en la Universidad de Illinois en Urbana-Champaign y fue investigador posdoctoral en Georgia Tech. Es un investigador activo en aprendizaje automático y diseño de algoritmos y ha publicado artículos en conferencias EMNLP, ICLR, COLT, FOCS y SODA.
alfredo shen es especialista sénior en inteligencia artificial y aprendizaje automático en AWS. Ha estado trabajando en Silicon Valley, ocupando cargos técnicos y gerenciales en diversos sectores, incluidos el de la salud, las finanzas y la alta tecnología. Es un investigador dedicado de AI/ML aplicado, que se concentra en CV, NLP y multimodalidad. Su trabajo ha sido exhibido en publicaciones como EMNLP, ICLR y Public Health.
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- Platoblockchain. Inteligencia del Metaverso Web3. Conocimiento amplificado. Accede Aquí.
- Fuente: https://aws.amazon.com/blogs/machine-learning/inpaint-images-with-stable-diffusion-using-amazon-sagemaker-jumpstart/
- :es
- $ UP
- 10
- 100
- 2022
- 7
- a
- Nuestra Empresa
- acelerar
- Aceptar
- Acepta
- de la máquina
- la exactitud
- preciso
- Lograr
- lector activo
- Adicionales
- Adicionalmente
- Adulto
- avanzado
- ventajas
- asequible
- Después
- en contra
- AI
- AI / ML
- SIDA
- algoritmo
- alineado
- Todos
- permite
- hacerlo
- Amazon
- Amazon SageMaker
- JumpStart de Amazon SageMaker
- y
- Otra
- abejas
- API
- aplicada
- enfoque
- adecuado
- aproximadamente
- arquitectónico
- somos
- Reservada
- áreas
- AS
- At
- automáticamente
- Hoy Disponibles
- AWS
- bases
- basado
- BE
- porque
- MEJOR
- y las mejores prácticas
- mejores
- parcialidad
- facturación
- Blend
- Azul
- build
- Construir la
- by
- PUEDEN
- case
- casual
- CAT
- causando
- Reubicación
- a ciertos
- desafiante
- comprobar
- Elige
- clase
- clic
- Clínico
- de cerca
- código
- comentarios
- completar
- completando
- exhaustivo
- conferencias
- consideraciones
- construcción
- que no contengo
- Envase
- Contenedores
- contenido
- control
- Para crear
- creado
- Creamos
- personalizado
- Clientes
- datos
- De pérdida de datos
- a dedicados
- profundo
- deep learning
- Predeterminado
- entrega
- demuestra
- desplegar
- desplegado
- Desplegando
- despliegue
- descrito
- descripción
- Diseño
- deseado
- detalle
- detalles
- Difusión
- discapacitados
- diverso
- Docker
- No
- dominios
- No
- durante
- cada una
- de manera eficaz
- los efectos
- eficiente
- eficiente.
- ya sea
- permite
- de extremo a extremo
- Punto final
- Inglés
- garantizar
- entrada
- Entorno
- Errores
- especialmente
- esencial
- ejemplo
- ejemplos
- excitado
- experimento
- Experiencia
- Ojos
- caras
- Moda
- Feature
- Caracteristicas
- Con la participación de:
- Pies
- hembra
- Obtenido
- pocos
- Archive
- financiar
- Nombre
- cómodo
- Flexibilidad
- Flotador
- siguiendo
- formato
- adelante
- Desde
- ser completados
- promover
- en general
- generar
- generado
- la generación de
- generación de AHSS
- generativo
- IA generativa
- Georgia
- candidato
- GPU
- guía
- guía
- Guías
- encargarse de
- Tienen
- cabeza
- Salud
- la salud
- ayuda
- alta calidad
- de alta resolución
- más alto
- Golpear
- tenencia
- hosting
- Cómo
- Como Hacer
- HTML
- HTTPS
- identifica
- Illinois
- imagen
- imágenes
- Proyección de imagen
- impresionante
- in
- incluir
- incluido
- Incluye
- información
- Las opciones de entrada
- ejemplo
- COMPLETAMENTE
- Interfaz
- introducir
- IT
- SUS
- jpg
- json
- idioma
- Idiomas
- large
- Lead
- APRENDE:
- aprendizaje
- Nivel
- como
- limitaciones
- Limitada
- límites
- líneas
- Lista
- Largo
- por más tiempo
- de
- máquina
- máquina de aprendizaje
- mantener
- Mantener los
- para lograr
- directivo
- Manipulación
- muchos
- máscara
- Mascarillas
- Materia
- Puede..
- Método
- métodos
- podría
- Min
- que falta
- Mitigar las
- ML
- modelo
- modelos
- más,
- más eficiente
- Por otra parte
- MRI
- múltiples
- Natural
- ¿ Necesita ayuda
- negativas
- Nuevo
- nlp
- cuaderno
- novela
- Noviembre
- número
- objeto
- obtener
- of
- Ofertas
- on
- ONE
- habiertos
- operativos.
- solicite
- reconocida por
- Otro
- contornos
- salida
- total
- EL DESARROLLADOR
- paquetes
- página
- papeles
- parámetros
- Tayrona
- partes
- pass
- .
- perfecto
- Realizar
- actuación
- plataforma
- Platón
- Inteligencia de datos de Platón
- PlatónDatos
- punto
- abiertas
- positivo
- Publicación
- Artículos
- industria
- prácticas
- necesidad
- Predicciones
- Predictor
- preparado
- presente
- precio
- Procesado
- tratamiento
- producir
- Producto
- proporcionar
- previsto
- proporciona un
- proporcionando
- público
- salud pública
- publicaciones
- publicado
- Python
- calidad
- Aleatorizado
- Crudo
- en tiempo real
- reino
- aprovecha
- recomiendan
- reducir
- Reducción
- se refiere
- región
- relacionado
- permanece
- reparación
- reemplazados
- solicita
- solicitudes
- exigir
- Requisitos
- Requisitos
- requiere
- investigador
- se asemeja
- Recursos
- respuesta
- restauración
- resultante
- Resultados
- volvemos
- devoluciones
- RGB
- Ejecutar
- correr
- sabio
- mismo
- Escala
- Científico
- guiones
- Sdk
- Segundo
- Sección
- (secciones)
- Sectores
- dispersores
- segmentación
- seleccionado
- enviando
- mayor
- sensible
- separado
- pólipo
- ajustes
- Varios
- Silicio
- Silicon Valley
- soltero
- Tamaño
- chica
- menores
- So
- a medida
- algo
- lapso
- especialista
- soluciones y
- especificado
- estable
- comienzo
- Estado
- pasos
- Sin embargo
- detenido
- Cordón
- Luchar
- estudio
- sujeto
- tal
- Sufre
- suficiente
- SOPORTE
- susceptible
- toma
- Tarea
- tareas
- equipo
- tecnología
- Técnico
- términos
- pruebas
- esa
- La
- por lo tanto
- Estas
- Código
- A través de esta formación, el personal docente y administrativo de escuelas y universidades estará preparado para manejar los recursos disponibles que derivan de la diversidad cultural de sus estudiantes. Además, un mejor y mayor entendimiento sobre estas diferencias y similitudes culturales permitirá alcanzar los objetivos de inclusión previstos.
- equipo
- a
- hoy
- juntos
- entrenado
- Formación
- tipos
- típicamente
- ui
- universidad
- us
- Uso
- utilizan el
- Usuario
- Interfaz de usuario
- usuarios
- utilizar
- utiliza
- Valle
- Valores
- variedad
- diversos
- versátil
- vía
- Video
- Camino..
- WELL
- que
- complejo de salvador blanco
- amplio
- seguirá
- dentro de
- sin
- Actividades:
- trabajar juntos
- trabajando
- funciona
- Rendimiento
- Usted
- tú
- zephyrnet