Descargo de responsabilidad
Este es un proyecto de investigación, NO un producto comercial. Los usuarios tienen la libertad de crear imágenes utilizando esta herramienta, pero se espera que cumplan con las leyes locales y la utilicen de manera responsable. Los desarrolladores no asumen ninguna responsabilidad por un posible mal uso por parte de los usuarios.
Noticias y actualización
- [29 de enero] ¡Actualización para admitir difusores == 0.24.0!
- [23 de octubre] ¡Se publican el código y los datos de DragBench! Consulte README en "drag_bench_evaluación" para obtener más detalles.
- [16 de octubre] Integre FreeU al arrastrar la imagen generada.
- [3 de octubre] Acelerar el entrenamiento de LoRA al editar imágenes reales. ( ¡Ahora solo alrededor de 20 en la A100! )
- [3 de septiembre] Lanzamiento v0.1.0.
- Habilite el arrastre de imágenes generadas por difusión.
- Presentamos un nuevo mecanismo de guía que mejora enormemente la calidad de los resultados de arrastre. (Inspirado en MasaCtrl)
- Habilitar arrastrar imágenes con relación de aspecto arbitraria
- Agregar soporte para DPM++Solver (imágenes generadas)
- [18 de julio] Lanzamiento v0.0.1.
- Integre la capacitación de LoRA en la interfaz de usuario. ¡No es necesario utilizar un script de capacitación y todo se puede hacer cómodamente en la interfaz de usuario!
- Optimice el diseño de la interfaz de usuario.
- Habilite el uso de mejores VAE para ojos y rostros (consulte esto)
- [8 de julio] Lanzamiento v0.0.0.
- Implementar la función básica de DragDiffusion
Instalación
Se recomienda ejecutar nuestro código en una GPU Nvidia con un sistema Linux. Aún no lo hemos probado en otras configuraciones. Actualmente, se requieren alrededor de 14 GB de memoria GPU para ejecutar nuestro método. Continuaremos optimizando la eficiencia de la memoria.
Para instalar las bibliotecas necesarias, simplemente ejecute el siguiente comando:
conda env create -f environment.yaml
conda activate dragdiff
Ejecute DragDiffusion
Para comenzar, en la línea de comando, ejecute lo siguiente para iniciar la interfaz de usuario de gradio:
Puede consultar nuestro GIF anterior que demuestra el uso de la interfaz de usuario paso a paso.
Básicamente consta de los siguientes pasos:
Caso 1: Arrastrar imágenes reales de entrada
1) entrenar un LoRA
- Suelte nuestra imagen de entrada en el cuadro de la izquierda.
- Ingrese un mensaje que describa la imagen en el campo "mensaje"
- Haga clic en el botón "Entrenar LoRA" para entrenar un LoRA dada la imagen de entrada.
2) realizar edición "arrastrando"
- Dibuja una máscara en el cuadro más a la izquierda para especificar las áreas editables.
- Haga clic en los puntos de control y destino en el cuadro central. Además, puede restablecer todos los puntos haciendo clic en "Deshacer punto".
- Haga clic en el botón "Ejecutar" para ejecutar nuestro algoritmo. Los resultados editados se mostrarán en el cuadro más a la derecha.
Caso 2: Arrastrar imágenes generadas por difusión
1) generar una imagen
- Complete los parámetros de generación (por ejemplo, mensaje positivo/negativo, parámetros en Configuración de generación y parámetros FreeU).
- Haga clic en "Generar imagen".
2) "arrastra" la imagen generada
- Dibuja una máscara en el cuadro más a la izquierda para especificar las áreas editables
- Haga clic en los puntos de control y los puntos de destino en el cuadro central.
- Haga clic en el botón "Ejecutar" para ejecutar nuestro algoritmo. Los resultados editados se mostrarán en el cuadro más a la derecha.
Licencia
El código relacionado con el algoritmo DragDiffusion está bajo la licencia Apache 2.0.
BibTeX
Si encuentra útil nuestro repositorio, considere dejar una estrella o citar nuestro artículo :)
@article { shi2023dragdiffusion ,
title = { DragDiffusion: Harnessing Diffusion Models for Interactive Point-based Image Editing } ,
author = { Shi, Yujun and Xue, Chuhui and Pan, Jiachun and Zhang, Wenqing and Tan, Vincent YF and Bai, Song } ,
journal = { arXiv preprint arXiv:2306.14435 } ,
year = { 2023 }
}
Contacto
Si tiene alguna pregunta sobre este proyecto, comuníquese con Yujun ([email protected])
Reconocimiento
Este trabajo está inspirado en el increíble DragGAN. El código de entrenamiento de lora se modifica a partir de un ejemplo de difusores. Se recopilan muestras de imágenes de unsplash, pexels, pixabay. Finalmente, un gran agradecimiento a todos los increíbles modelos y bibliotecas de difusión de código abierto.
Enlaces relacionados
- Arrastre su GAN: manipulación interactiva basada en puntos en el colector de imágenes generativas
- MasaCtrl: control de autoatención mutua sin ajustes para una síntesis y edición de imágenes consistentes
- Correspondencia emergente de la difusión de imágenes
- DragonDiffusion: habilitación de la manipulación estilo arrastre en modelos de difusión
- FreeDrag: el seguimiento de puntos no es necesario para la edición de imágenes interactiva basada en puntos
Problemas comunes y soluciones
- Para los usuarios que tienen dificultades para cargar modelos desde huggingface debido a limitaciones de Internet, 1) sigan estos enlaces y descarguen el modelo en el directorio "local_pretrained_models"; 2) Ejecute "drag_ui.py" y seleccione el directorio de su modelo previamente entrenado en "Parámetros del algoritmo -> Configuración del modelo base -> Ruta del modelo de difusión".