HCP-Diffusion: código de modelo de difusión general unificado de código abierto de la Universidad Sun Yat-sen

La fuente de este artículo es el departamento editorial del corazón de la máquina.

En los últimos años, los modelos de generación de imágenes basados ​​en modelos de difusión han surgido en una corriente interminable, mostrando efectos de generación sorprendentes. Sin embargo, el marco de código del modelo de investigación relacionado existente tiene el problema de una fragmentación excesiva y la falta de un sistema de marco unificado, lo que resulta en problemas de implementación del código de "migración difícil", "umbral alto" y "mala calidad".

Con este fin, el Laboratorio de Fusión de Inteligencia Física, Computadora y Humano (HCP Lab) de la Universidad Sun Yat-sen construyó el marco HCP-Diffusion, que implementó sistemáticamente algoritmos relacionados basados ​​en el modelo de Difusión, como el ajuste fino del modelo, el entrenamiento personalizado y el razonamiento. optimización y edición de imágenes.La estructura es la siguiente:La Figura 1 lo muestra.

f06cc95daa7f3d76dd09c51794fcbff2.png

Figura 1 Diagrama de estructura del marco HCP-Diffusion, unifica los métodos existentes relacionados con la difusión a través de un marco unificado y proporciona una variedad de métodos modulares de optimización de inferencia y capacitación.

HCP-Diffusion implementa varios componentes y algoritmos a través de un archivo de configuración unificado, lo que mejora enormemente la flexibilidad y escalabilidad del marco. Los desarrolladores combinan algoritmos como bloques de construcción sin repetir los detalles del código de implementación.

Por ejemplo, según HCP-Diffusion, podemos completar la implementación y combinación de LoRA, DreamArtist, ControlNet y otros algoritmos comunes simplemente modificando el archivo de configuración. Esto no sólo reduce el umbral de innovación, sino que también hace que el marco sea compatible con varios diseños personalizados.

  • Herramienta de código HCP-Diffusion: https://github.com/7eu7d7/HCP-Diffusion

  • GUI de HCP-Diffusion: https://github.com/7eu7d7/HCP-Diffusion-webui

HCP-Diffusion: Introducción al módulo de funciones

Características del marco

HCP-Diffusion se da cuenta de la versatilidad del marco al modularizar el marco actual del algoritmo de entrenamiento de difusión convencional. Las características principales son las siguientes:

  • Arquitectura unificada: cree un marco de código unificado para los modelos de la serie Diffusion

  • Complemento de operador: admite algoritmos de operador como datos, capacitación, razonamiento y optimización del rendimiento, como velocidad profunda, IA colosal y descarga para acelerar la optimización.

  • Configuración con un solo clic: los modelos de la serie Diffusion pueden completar la realización del modelo modificando los archivos de configuración con alta flexibilidad

  • Capacitación con un solo clic: proporciona interfaz de usuario web, capacitación e inferencia con un solo clic

módulo de datos

HCP-Diffusion admite la definición de múltiples conjuntos de datos paralelos. Cada conjunto de datos puede usar diferentes tamaños de imagen y formatos de anotación. Cada iteración de entrenamiento extraerá un lote de cada conjunto de datos para el entrenamiento, como se muestra en la Figura 2. Además, cada conjunto de datos se puede configurar con múltiples fuentes de datos, admite txt, json, yaml y otros formatos de anotación o formatos de anotación personalizados, y tiene un mecanismo de carga y preprocesamiento de datos altamente flexible.

d95ae32fa1b0b03db3dfd19193dcd6e8.png

Figura 2 Diagrama esquemático de la estructura del conjunto de datos.

La parte de procesamiento de conjuntos de datos proporciona un depósito de relación de aspecto con agrupación automática, que admite el procesamiento de conjuntos de datos con diferentes tamaños de imagen. El usuario no necesita realizar procesamiento ni alineación adicionales en el tamaño del conjunto de datos, y el marco seleccionará automáticamente el método de agrupación óptimo según la relación de aspecto o la resolución. Esta tecnología reduce en gran medida el umbral del procesamiento de datos, optimiza la experiencia del usuario y permite a los desarrolladores centrarse más en la innovación del algoritmo en sí.

Para el preprocesamiento de datos de imágenes, el marco también es compatible con varias bibliotecas de procesamiento de imágenes, como visión de antorcha, albumentaciones, etc. Los usuarios pueden configurar directamente el método de preprocesamiento en el archivo de configuración según sus necesidades, o expandir el método de procesamiento de imágenes personalizado sobre esta base.

1082d646f2146f2a663586dbb51b11ea.png

Figura 3 Ejemplo de archivo de configuración de conjunto de datos

En términos de etiquetado de texto, HCP-Diffusion ha diseñado una especificación de plantilla de aviso flexible y clara, que puede admitir métodos de capacitación y etiquetado de datos complejos y diversos. Corresponde a los nombres de palabras en el directorio fuente del archivo de configuración anterior, en el que puede personalizar los vectores de palabras incrustados y las descripciones de categorías correspondientes a los caracteres especiales entre llaves en la figura siguiente, para que sean compatibles con modelos como DreamBooth y DreamArtist.

a2f2696745e5aa75092ba67f1da0c476.png

Figura 4 plantilla de aviso

Y para la anotación de texto, también proporciona una variedad de métodos de mejora de texto, como el borrado oración por oración (TagDropout) o la codificación oración por oración (TagShuffle), que pueden reducir el problema de sobreajuste entre imágenes y datos de texto. y hacer que las imágenes generadas cambien más diversas.

Módulo de marco modelo

HCP-Diffusion se da cuenta de la versatilidad del marco al modularizar el marco actual del algoritmo de entrenamiento de difusión convencional. Específicamente, Image Encoder y Image Decoder completan la codificación y decodificación de imágenes, el Noise Generator genera ruido en el proceso directo, el modelo de difusión realiza el proceso de difusión, el codificador de condiciones codifica las condiciones de generación, el modelo de ajuste fino del adaptador está alineado con las tareas posteriores, positivas y negativas. Los canales dobles representan la generación de imágenes de control condicional positivo y negativo.

4fe3877f532af04f9752dea6db6e286c.png

Figura 5 Ejemplo de configuración de la estructura del modelo (complementos de modelo, palabras personalizadas, etc.)

Como se muestra en la Figura 5, HCP-Diffusion puede implementar varios algoritmos de entrenamiento convencionales, como LoRA, ControlNet y DreamArtist, mediante una combinación simple en el archivo de configuración. Al mismo tiempo, admite la combinación de los algoritmos anteriores, como el entrenamiento LoRA y de inversión textual al mismo tiempo, vinculando palabras desencadenantes exclusivas para LoRA, etc. Además, a través del módulo de complemento, cualquier complemento se puede personalizar fácilmente y es compatible con todos los métodos de acceso convencionales actuales. A través de la modularización anterior, HCP-Diffusion realiza la construcción del marco de cualquier algoritmo convencional, reduce el umbral de desarrollo y promueve la innovación colaborativa de modelos.

HCP-Diffusion abstrae varios algoritmos de adaptador, como LoRA y ControlNet, en complementos de modelo. Al definir algunas clases base de complementos de modelo generales, todos estos algoritmos se pueden tratar de manera uniforme, lo que reduce los costos de usuario y los costos de desarrollo. Todas las clases de adaptador Los algoritmos están unificados .

El marco proporciona cuatro tipos de complementos, que pueden admitir fácilmente todos los algoritmos convencionales actuales:

+ SinglePluginBlock: un complemento de una sola capa que cambia la salida según la entrada de esta capa, como la serie lora. Admite expresiones regulares (re: prefijo) para definir la capa de inserción, no admite pre_hook: prefijo.

+ PluginBlock: solo hay una capa de entrada y una capa de salida, como la definición de conexiones residuales. Admite expresiones regulares (re: prefijo) para definir la capa de inserción, y tanto la capa de entrada como la de salida admiten pre_hook: prefijo.

+ MultiPluginBlock: Puede haber múltiples capas de entrada y salida, como controlnet. No admite expresiones regulares (re: prefijo), tanto la capa de entrada como la de salida admiten pre_hook: prefijo.

+ WrapPluginBlock: reemplaza una capa del modelo original y usa la capa del modelo original como un objeto de esta clase. Admite expresiones regulares (re: prefijo) para definir capas de reemplazo, no admite pre_hook: prefijo.

entrenamiento, módulo de inferencia

02ea8c6684969f1cacedea5e70bb8214.png

Figura 6 Configuración del optimizador personalizado

El archivo de configuración en HCP-Diffusion admite la definición de objetos Python, de los que se crean instancias automáticamente en tiempo de ejecución. Este diseño permite a los desarrolladores acceder fácilmente a cualquier módulo personalizado instalable por pip, como optimizadores personalizados, funciones de pérdida, muestreadores de ruido, etc., sin modificar el código del marco, como se muestra en la figura anterior. La estructura del archivo de configuración es clara, fácil de entender y altamente reproducible, lo que ayuda a conectar sin problemas la investigación académica y la implementación de ingeniería.

Soporte de optimización acelerada

HCP-Diffusion admite múltiples marcos de optimización del entrenamiento, como Accelerate, DeepSpeed ​​y Colossal-AI, que pueden reducir significativamente el uso de memoria durante el entrenamiento y acelerarlo. Admite la operación EMA, que puede mejorar aún más el efecto de generación y la generalización del modelo. En la etapa de inferencia, se admiten operaciones como la descarga de modelos y el mosaico VAE, y la generación de imágenes se puede completar con un mínimo de 1 GB de memoria de video.

35e47da3fdb6a0ed74f21ca2efd41f3a.png

Figura 7 Archivo de configuración modular

A través de la configuración de archivo simple anterior, puede completar la configuración del modelo sin gastar mucho esfuerzo para encontrar los recursos del marco relevantes, como se muestra en la figura anterior. El diseño modular de HCP-Diffusion separa completamente la definición del método del modelo, la lógica de entrenamiento y la lógica de inferencia. Al configurar el modelo, no es necesario considerar la lógica de las partes de entrenamiento e inferencia, lo que ayuda a los usuarios a centrarse mejor en el método en sí. Al mismo tiempo, HCP-Diffusion ha proporcionado ejemplos de configuración del marco de la mayoría de los algoritmos principales, y la implementación solo se puede realizar modificando algunos de los parámetros.

HCP-Diffusion: interfaz gráfica de interfaz de usuario web

Además de modificar directamente los archivos de configuración, HCP-Diffusion ha proporcionado una interfaz de imagen de interfaz de usuario web correspondiente, que incluye múltiples módulos, como generación de imágenes y entrenamiento de modelos, para mejorar la experiencia del usuario, reducir en gran medida el umbral de aprendizaje del marco y acelerar el algoritmo desde teoría a la práctica transformar.

293de67589a5ba600d67986c59303935.png

Figura 8 Interfaz de imagen de la interfaz de usuario web de HCP-Diffusion

Introducción al laboratorio

El Laboratorio HCP de la Universidad Sun Yat-sen fue fundado por el profesor Lin Ji en 2010. En los últimos años, ha logrado importantes logros académicos en comprensión de contenido multimodal, razonamiento causal y cognitivo, aprendizaje incorporado, etc., y ha ganado varios premios. Premios de ciencia y tecnología nacionales y extranjeros y premios al mejor artículo, y se compromete a crear plataformas y tecnología de IA a nivel de producto. Sitio web del laboratorio: http://www.sysu-hcp.net

Preste atención a la cuenta oficial [Aprendizaje automático y creación de generación de IA], hay más cosas interesantes esperando que lea

¡Tumbado, 60.000 palabras! ¡130 artículos en 30 direcciones! ¡El documento AIGC más completo de CVPR 2023! léelo de una vez

Explicación simple de la difusión estable: interpretación del modelo de difusión potencial detrás de la tecnología de pintura con IA

¡Explicación detallada de ControlNet, un algoritmo de generación de pintura AIGC controlable! 

Classic GAN tiene que leer: StyleGAN

1d052b5a2e39d7d6b9aa0303a5027174.png ¡Haz clic en mí para ver los álbumes de la serie GAN ~!

¡Una taza de té con leche, conviértete en la frontera de la visión AIGC + CV!

¡El último y más completo resumen de 100! Generar modelos de difusión Modelos de difusión

ECCV2022 | Resumen de algunos artículos sobre la generación de redes de confrontación GAN

CVPR 2022 | Más de 25 direcciones, los últimos 50 artículos de GAN

 ICCV 2021 | Resumen de artículos de GAN sobre 35 temas

¡Más de 110 artículos! CVPR 2021 peinado de papel GAN ​​más completo

¡Más de 100 artículos! CVPR 2020 peinado de papel GAN ​​más completo

Desmantelando la nueva GAN: desacoplando la representación MixNMatch

StarGAN Versión 2: Generación de imágenes de diversidad multidominio

Descarga adjunta | Versión china de "Aprendizaje automático explicable"

Descarga adjunta | "Algoritmos de aprendizaje profundo de TensorFlow 2.0 en la práctica"

Descarga adjunta | "Métodos Matemáticos en Visión por Computador" compartir

"Una revisión de los métodos de detección de defectos superficiales basados ​​en el aprendizaje profundo"

Un estudio sobre la clasificación de imágenes de disparo cero: una década de progreso

"Un estudio sobre el aprendizaje en pocas oportunidades basado en redes neuronales profundas"

"Libro de los Ritos · Xue Ji" tiene un dicho: "Aprender solo sin amigos es solitario e ignorante".

¡Haga clic en una taza de té con leche y conviértase en el líder de la visión AIGC+CV! , ¡únete  al planeta de la creación generada por IA y  el conocimiento de la visión por computadora!

Supongo que te gusta

Origin blog.csdn.net/lgzlgz3102/article/details/132486268
Recomendado
Clasificación