Este repositorio contiene definiciones de modelos de PyTorch, pesos previamente entrenados y código de inferencia/muestreo para nuestro artículo que explora Hunyuan-DiT. Puede encontrar más visualizaciones en nuestra página de proyecto.
Hunyuan-DiT: un potente transformador de difusión de resolución múltiple con un conocimiento chino detallado
DialogGen: sistema de diálogo interactivo multimodal para generación de texto a imagen en múltiples turnos
15 de julio de 2024: HunYuanDiT y Shakker.Ai lanzaron conjuntamente un evento de ajuste basado en el modelo HunYuanDiT 1.2. Al publicar un lora o un modelo mejorado basado en HunYuanDiT, puedes ganar un bono de hasta $230 de Shakker.Ai. Consulte Shakker.Ai para obtener más detalles.
15 de julio de 2024:? Actualice ComfyUI para admitir flujos de trabajo estandarizados y compatibilidad con pesos del módulo t2i y el entrenamiento de Lora para las versiones 1.1/1.2, así como aquellos entrenados por Kohya o el script oficial. Consulte ComfyUI para obtener más detalles.
15 de julio de 2024: ⚡ Ofrecemos entornos Docker para CUDA 11/12, lo que le permite evitar instalaciones complejas y jugar con un solo clic. Consulte los estibadores para obtener más detalles.
08 de julio de 2024: ? Se lanza la versión HYDiT-v1.2. Consulte HunyuanDiT-v1.2 y Distillation-v1.2 para obtener más detalles.
03 de julio de 2024: ? La versión Kohya-hydit ahora está disponible para los modelos v1.1 y v1.2, con GUI para inferencia. La versión oficial de Kohya está bajo revisión. Ver kohya para más detalles.
27 de junio de 2024:? Se lanza Hunyuan-Captioner, que proporciona subtítulos detallados para los datos de entrenamiento. Consulte mllm para obtener más detalles.
27 de junio de 2024:? Soporte LoRa y ControlNet en difusores. Ver difusores para más detalles.
27 de junio de 2024:? Se lanzan los scripts de inferencia de GPU VRAM de 6 GB. Ver lite para más detalles.
19 de junio de 2024:? Se lanza ControlNet, que admite control astuto, de pose y de profundidad. Consulte los códigos de entrenamiento/inferencia para obtener más detalles.
13 de junio de 2024: ⚡ Se lanza la versión HYDiT-v1.1, que mitiga el problema de la sobresaturación de imágenes y alivia el problema de la marca de agua. Consulte HunyuanDiT-v1.1 y Distillation-v1.1 para obtener más detalles.
13 de junio de 2024:? Se publica el código de capacitación, que ofrece capacitación con parámetros completos y capacitación LoRA.
06 de junio de 2024: ? Hunyuan-DiT ahora está disponible en ComfyUI. Consulte ComfyUI para obtener más detalles.
6 de junio de 2024: Presentamos la versión Distillation para la aceleración Hunyuan-DiT, que logra una aceleración del 50 % en las GPU NVIDIA. Consulte Destilación para obtener más detalles.
05 de junio de 2024: ? Hunyuan-DiT ya está disponible en ? ¡Difusores! Por favor consulte el siguiente ejemplo.
4 de junio de 2024: Admite enlaces de Tencent Cloud para descargar los modelos previamente entrenados. Por favor consulte los enlaces a continuación.
22 de mayo de 2024: presentamos la versión TensorRT para la aceleración Hunyuan-DiT, que logra una aceleración del 47 % en las GPU NVIDIA. Consulte TensorRT-libs para obtener instrucciones.
22 de mayo de 2024: ahora admitimos la demostración que ejecuta la generación de imágenes de texto a múltiples turnos. Consulte el guión a continuación.
Bienvenido a nuestro Tencent Hunyuan Bot basado en la web, donde podrá explorar nuestros productos innovadores. Simplemente ingrese las indicaciones sugeridas a continuación o cualquier otra sugerencia imaginativa que contenga palabras clave relacionadas con el dibujo para activar la función de generación de texto a imagen de Hunyuan. Da rienda suelta a tu creatividad y crea cualquier imagen que desees, ¡todo gratis!
Puede utilizar indicaciones simples similares al texto en lenguaje natural.
画一只穿着西装的猪
dibujar un cerdo con traje
生成一幅画,赛博朋克风,跑车
generar un cuadro, estilo cyberpunk, auto deportivo
o interacciones lingüísticas de varios turnos para crear la imagen.
画一个木制的鸟
dibujar un pájaro de madera
变成玻璃的
convertirse en vidrio
Hunyuan-DiT (modelo de texto a imagen)
Inferencia
Puntos de control
Versión de destilación
Versión TensorRT
Capacitación
lora
Controlnet (Pose, Astuto, Profundidad)
Inferencia de VRAM GPU de 6 GB
adaptador IP
Puntos de control Hunyuan-DiT-S (modelo 0.7B)
Mllmm
Inferencia
Inferencia
Hunyuan-Captioner (Vuelve a subtitular los pares de imagen y texto sin procesar)
Hunyuan-DialogGen (modelo de mejora rápida)
Demostración web (Gradio)
Demostración T2I multivuelta (Gradio)
Demostración CLI
Cómoda interfaz de usuario
Difusores
koya
interfaz de usuario web
Hunyuan-DiT: un potente transformador de difusión de resolución múltiple con un conocimiento chino detallado
Ejemplos
Instrucciones
Inferencia
Gradio
ControlNet
Inferencia de VRAM GPU de 6 GB
Usando Gradio
Usando ? Difusores
Usando la línea de comando
Más configuraciones
Usando cómoda interfaz de usuario
Usando Kohya
Usando versiones anteriores
Preparación de datos
Entrenamiento de parámetros completos
lora
Guía de instalación para Linux
Arquitectura DiT bilingüe chino-inglés
Generación de texto a imagen de múltiples vueltas
¡¡Noticias!!
Pruébalo en la web
Plan de código abierto
Contenido
Abstracto
Características clave de Hunyuan-DiT
Comparaciones
Visualización
Requisitos
Dependencias e instalación
Descargar modelos previamente entrenados - 1. Uso de HF-Mirror - 2. Reanudar la descarga
Capacitación
Inferencia
Adaptador
Subtitulador de Hunyuan
Aceleración (para Linux)
BibTeX
Historial de inicio
Presentamos Hunyuan-DiT, un transformador de difusión de texto a imagen con un conocimiento detallado tanto del inglés como del chino. Para construir Hunyuan-DiT, diseñamos cuidadosamente la estructura del transformador, el codificador de texto y la codificación posicional. También creamos desde cero un canal de datos completo para actualizar y evaluar datos para la optimización iterativa del modelo. Para una comprensión detallada del lenguaje, entrenamos un modelo de lenguaje grande multimodal para refinar los títulos de las imágenes. Finalmente, Hunyuan-DiT puede realizar un diálogo multimodal con los usuarios, generando y refinando imágenes según el contexto. A través de nuestro protocolo de evaluación humana holística cuidadosamente diseñado con más de 50 evaluadores humanos profesionales, Hunyuan-DiT establece un nuevo estado del arte en la generación de chino a imagen en comparación con otros modelos de código abierto.
Hunyuan-DiT es un modelo de difusión en el espacio latente, como se muestra en la figura siguiente. Siguiendo el modelo de difusión latente, utilizamos un codificador automático variacional (VAE) previamente entrenado para comprimir las imágenes en espacios latentes de baja dimensión y entrenar un modelo de difusión para aprender la distribución de datos con modelos de difusión. Nuestro modelo de difusión está parametrizado con un transformador. Para codificar las indicaciones de texto, aprovechamos una combinación de CLIP bilingüe (inglés y chino) previamente entrenado y un codificador T5 multilingüe.
Comprender las instrucciones en lenguaje natural y realizar interacciones de varios turnos con los usuarios es importante para un sistema de conversión de texto a imagen. Puede ayudar a construir un proceso de creación dinámico e iterativo que haga realidad la idea del usuario paso a paso. En esta sección, detallaremos cómo potenciamos a Hunyuan-DiT con la capacidad de realizar conversaciones de múltiples rondas y generación de imágenes. Entrenamos a MLLM para que comprenda el diálogo de usuario de múltiples rondas y genere el nuevo mensaje de texto para la generación de imágenes.
Para comparar exhaustivamente las capacidades de generación de HunyuanDiT y otros modelos, construimos un conjunto de pruebas de 4 dimensiones, que incluye consistencia texto-imagen, exclusión de artefactos de IA, claridad del sujeto y estética. Más de 50 evaluadores profesionales realizan la evaluación.
Modelo | Código abierto | Consistencia texto-imagen (%) | Excluidos artefactos de IA (%) | Claridad del tema (%) | Estética (%) | En general (%) | ||||
---|---|---|---|---|---|---|---|---|---|---|
SDXL | ✔ | 64.3 | 60,6 | 91.1 | 76,3 | 42,7 | ||||
PixArt-α | ✔ | 68.3 | 60,9 | 93.2 | 77,5 | 45,5 | ||||
Patio de recreo 2.5 | ✔ | 71,9 | 70,8 | 94,9 | 83.3 | 54.3 | ||||
DE 3 | ✘ | 77.1 | 69,3 | 94,6 | 82,5 | 56,7 | ||||
Medio viaje v6 | ✘ | 73,5 | 80.2 | 93,5 | 87,2 | 63.3 | ||||
DALL-E 3 | ✘ | 83,9 | 80.3 | 96,5 | 89,4 | 71.0 | ||||
Hunyuan-DiT | ✔ | 74.2 | 74.3 | 95,4 | 86,6 | 59.0 |
Elementos chinos
Entrada de texto largo
Generación de texto a imagen de múltiples vueltas
Este repositorio consta de DialogGen (un modelo de mejora rápida) y Hunyuan-DiT (un modelo de texto a imagen).
La siguiente tabla muestra los requisitos para ejecutar los modelos (tamaño de lote = 1):
Modelo | --load-4bit (DialogGen) | Memoria máxima de GPU | GPU |
---|---|---|---|
DialogGen + Hunyuan-DiT | ✘ | 32G | A100 |
DialogGen + Hunyuan-DiT | ✔ | 22G | A100 |
Hunyuan-DiT | - | 11G | A100 |
Hunyuan-DiT | - | 14G | RTX3090/RTX4090 |
Se requiere una GPU NVIDIA con soporte CUDA.
Hemos probado las GPU V100 y A100.
Mínimo : la memoria GPU mínima requerida es 11 GB.
Recomendado : Recomendamos utilizar una GPU con 32 GB de memoria para una mejor calidad de generación.
Sistema operativo probado: Linux
Comience clonando el repositorio:
clon de git https://github.com/tencent/HunyuanDiTcd HunyuanDiT
Proporcionamos un archivo environment.yml
para configurar un entorno Conda. Las instrucciones de instalación de Conda están disponibles aquí.
Recomendamos las versiones CUDA 11.7 y 12.0+.
# 1. Prepare el entorno condaconda env create -f Environment.yml# 2. Active el entornoconda active HunyuanDiT# 3. Instale las dependencias de pippython -m pip install -r requisitos.txt# 4. Instale flash atención v2 para aceleración (requiere CUDA 11.6 o arriba)python -m pip instalar git+https://github.com/Dao-AILab/[email protected]
Además, también puedes utilizar Docker para configurar el entorno.
# 1. Utilice el siguiente enlace para descargar el archivo tar de imagen de Docker.# Para CUDA 12wget https://dit.hunyuan.tencent.com/download/HunyuanDiT/hunyuan_dit_cu12.tar# Para CUDA 11wget https://dit.hunyuan. tencent.com/download/HunyuanDiT/hunyuan_dit_cu11.tar# 2. Importe el archivo tar de Docker y muestre la metainformación de la imagen# Para CUDA 12docker load -i hunyuan_dit_cu12.tar# Para CUDA 11docker load -i hunyuan_dit_cu11.tar docker image ls# 3. Ejecute el contenedor según la imagendocker run -dit --gpus all --init --net=host --uts=host --ipc=host --name hunyuandit --security-opt=seccomp= ilimitado --ulimit=stack=67108864 --ulimit=memlock=-1 --privileged docker_image_tag
Para descargar el modelo, primero instale huggingface-cli. (Las instrucciones detalladas están disponibles aquí).
python -m pip instalar "huggingface_hub[cli]"
Luego descargue el modelo usando los siguientes comandos:
# Cree un directorio llamado 'ckpts' donde se guardará el modelo, cumpliendo los requisitos previos para ejecutar demo.mkdir ckpts# Utilice la herramienta huggingface-cli para descargar el modelo.# El tiempo de descarga puede variar de 10 minutos a 1 hora dependiendo en condiciones de red.huggingface-cli descargar Tencent-Hunyuan/HunyuanDiT-v1.2 --local-dir ./ckpts
Si encuentra velocidades de descarga lentas en China, puede probar con un espejo para acelerar el proceso de descarga. Por ejemplo,
HF_ENDPOINT=https://hf-mirror.com huggingface-cli descargar Tencent-Hunyuan/HunyuanDiT-v1.2 --local-dir ./ckpts
huggingface-cli
admite la reanudación de descargas. Si se interrumpe la descarga, puede volver a ejecutar el comando de descarga para reanudar el proceso de descarga.
Nota: Si se produce un error similar No such file or directory: 'ckpts/.huggingface/.gitignore.lock'
durante el proceso de descarga, puede ignorar el error y volver a ejecutar el comando de descarga.
Todos los modelos se descargarán automáticamente. Para obtener más información sobre el modelo, visite el repositorio de Hugging Face aquí.
Modelo | #parámetros | URL de descarga de Huggingface | URL de descarga de Tencent Cloud |
---|---|---|---|
mT5 | 1,6 mil millones | mT5 | mT5 |
ACORTAR | 350M | ACORTAR | ACORTAR |
Tokenizador | - | Tokenizador | Tokenizador |
DiálogoGen | 7.0 mil millones | DiálogoGen | DiálogoGen |
sdxl-vae-fp16-fix | 83M | sdxl-vae-fp16-fix | sdxl-vae-fp16-fix |
Hunyuan-DiT-v1.0 | 1,5 mil millones | Hunyuan-DiT | Hunyuan-DiT-v1.0 |
Hunyuan-DiT-v1.1 | 1,5 mil millones | Hunyuan-DiT-v1.1 | Hunyuan-DiT-v1.1 |
Hunyuan-DiT-v1.2 | 1,5 mil millones | Hunyuan-DiT-v1.2 | Hunyuan-DiT-v1.2 |
Demostración de datos | - | - | Demostración de datos |
Consulte los comandos a continuación para preparar los datos de entrenamiento.
Instalar dependencias
Ofrecemos una biblioteca de gestión de datos eficiente, denominada IndexKits, que admite la gestión de la lectura de cientos de millones de datos durante la capacitación; consulte más en documentos.
#1 Instalar dependenciascd HunyuanDiT instalación de pip -e ./IndexKits
Descarga de datos
No dude en descargar la demostración de datos.
# 2 Descarga de datoswget -O ./dataset/data_demo.zip https://dit.hunyuan.tencent.com/download/HunyuanDiT/data_demo.zip descomprimir ./dataset/data_demo.zip -d ./dataset mkdir ./dataset/porcelain/arrows ./dataset/porcelain/jsons
Conversión de datos
Cree un archivo CSV para los datos de entrenamiento con los campos enumerados en la siguiente tabla.
Campos | Requerido | Descripción | Ejemplo |
---|---|---|---|
image_path | Requerido | ruta de la imagen | ./dataset/porcelain/images/0.png |
text_zh | Requerido | texto | 青花瓷风格,一只蓝色的鸟儿站在蓝色的花瓶上,周围点缀着白色花朵,背景是白色 |
md5 | Opcional | imagen md5 (Algoritmo 5 de resumen de mensajes) | d41d8cd98f00b204e9800998ecf8427e |
width | Opcional | ancho de la imagen | 1024 |
height | Opcional | altura de la imagen | 1024 |
️ Se pueden omitir campos opcionales como MD5, ancho y alto. Si se omite, el siguiente script los calculará automáticamente. Este proceso puede llevar mucho tiempo cuando se trata de datos de entrenamiento a gran escala.
Utilizamos Arrow para el formato de datos de entrenamiento, ofreciendo una representación de datos en memoria estándar y eficiente. Se proporciona un script de conversión para transformar archivos CSV al formato Arrow.
# 3 Python de conversión de datos ./hydit/data_loader/csv2arrow.py ./dataset/porcelain/csvfile/image_text.csv ./dataset/porcelain/arrows 1
Selección de datos y creación de archivos de configuración
Configuramos los datos de entrenamiento a través de archivos YAML. En estos archivos, puede configurar estrategias de procesamiento de datos estándar para filtrar, copiar, deduplicar y más con respecto a los datos de entrenamiento. Para obtener más detalles, consulte ./IndexKits.
Para obtener un archivo de muestra, consulte el archivo. Para obtener un archivo de configuración de parámetros completo, consulte el archivo.
Cree un archivo de índice de datos de entrenamiento utilizando el archivo YAML.
# Preparación de datos de resolución única idk base -c dataset/yamls/porcelain.yaml -t dataset/porcelain/jsons/porcelain.json # Preparación de datos de resolución múltiple idk multireso -c conjunto de datos/yamls/porcelain_mt.yaml -t conjunto de datos/porcelain/jsons/porcelain_mt.json
La estructura de directorios para el conjunto de datos porcelain
es:
cd ./conjunto de datos porcelana ├──imágenes/ (archivos de imágenes) │ ├──0.png │ ├──1.png │ ├──...... ├──csvfile/ (archivos csv que contienen pares texto-imagen) │ ├──imagen_texto.csv ├──flechas/ (archivos de flechas que contienen todos los datos de entrenamiento necesarios) │ ├──00000.flecha │ ├──00001.flecha │ ├──...... ├──jsons/ (archivos de índice de datos de entrenamiento finales que leen datos de archivos de flechas durante el entrenamiento) │ ├──porcelana.json │ ├──porcelana_mt.json
Requisito:
El requisito mínimo es una única GPU con al menos 20 GB de memoria, pero recomendamos utilizar una GPU con aproximadamente 30 GB de memoria para evitar la descarga de memoria del host.
Además, animamos a los usuarios a aprovechar las múltiples GPU en diferentes nodos para acelerar el entrenamiento en grandes conjuntos de datos.
Aviso:
Los usuarios personales también pueden utilizar el ligero Kohya para ajustar el modelo con aproximadamente 16 GB de memoria. Actualmente, estamos intentando reducir aún más el uso de memoria de nuestro marco de nivel industrial para usuarios personales.
Si tiene suficiente memoria GPU, intente eliminar --cpu-offloading
o --gradient-checkpointing
para ahorrar tiempo.
Específicamente para la capacitación distribuida, tiene la flexibilidad de controlar la capacitación de un solo nodo o de varios nodos ajustando parámetros como --hostfile
y --master_addr
. Para más detalles, ver enlace.
# Entrenamiento de resolución únicaPYTHONPATH=./ sh hydit/train.sh --index-file dataset/porcelain/jsons/porcelain.json# Entrenamiento de resolución múltiplePYTHONPATH=./ sh hydit/train.sh --index-file dataset/porcelain/jsons /porcelain_mt.json --multireso --reso-step 64# Entrenamiento con la versión antigua de HunyuanDiT (<= v1.1)PYTHONPATH=./ sh hydit/train_v1.1.sh --index-file dataset/porcelain/jsons/porcelain.json
Una vez guardados los puntos de control, puede utilizar el siguiente comando para evaluar el modelo.
# Inferencia # Debes reemplazar 'log_EXP/xxx/checkpoints/final.pt' con tu ruta real.python sample_t2i.py --infer-mode fa --prompt "青花瓷风格,一只可爱的哈士奇" --no-enhance - -dit-weight log_EXP/xxx/checkpoints/final.pt --carga-clave module# Versión antigua de HunyuanDiT (<= v1.1)# Debes reemplazar 'log_EXP/xxx/checkpoints/final.pt' con tu ruta real.python sample_t2i.py --infer-mode fa --prompt "青花瓷风格,一只可爱的哈士奇" --model-root ./HunyuanDiT-v1.1 --use-style-cond --size-cond 1024 1024 --beta-end 0.03 --no-enhance --dit-weight log_EXP/xxx/checkpoints/final.pt --load- módulo clave
Proporcionamos scripts de capacitación e inferencia para LoRA, detallados en ./lora.
# Entrenamiento para porcelana LoRA.PYTHONPATH=./ sh lora/train_lora.sh --index-file dataset/porcelain/jsons/porcelain.json# Inferencia usando pesos LORA entrenados.python sample_t2i.py --infer-mode fa --prompt "青花瓷风格,一只小狗" --sin mejora --lora-ckpt log_EXP/001-lora_porcelain_ema_rank64/checkpoints/0001000.pt
Ofrecemos dos tipos de pesas LoRA entrenadas para porcelain
y jade
, consulte los detalles en los enlaces
cd HunyuanDiT# Utilice la herramienta huggingface-cli para descargar el modelo.huggingface-cli descargar Tencent-Hunyuan/HYDiT-LoRA --local-dir ./ckpts/t2i/lora# Inicio rápidopython sample_t2i.py --infer-mode fa - -inmediato "青花瓷风格,一只猫在追蝴蝶" --no-enhance --load-key ema --lora-ckpt ./ckpts/t2i/lora/porcelain
Ejemplos de datos de entrenamiento | |||
青花瓷风格,一只蓝色的鸟儿站在蓝色的花瓶上,周围点缀着白色花朵,背景是白色 (Estilo porcelana, azul El pájaro se encuentra sobre un jarrón azul, rodeado de flores blancas, con un fondo blanco. ) | 青花瓷风格,这是一幅蓝白相间的陶瓷盘子,上面描绘着一只狐狸和它的幼崽在森林中漫步,背景是白色(Estilo de porcelana, este es un plato de cerámica azul y blanco que representa un zorro y sus cachorros paseando por el bosque, con un fondo blanco.) | Porcelana estilo, sobre un fondo negro, un lobo azul se encuentra sobre un plato azul y blanco, rodeado de árboles y la luna.) | 青花瓷风格,在蓝色背景上,一只蓝色蝴蝶和白色花朵被放置在中央 (Estilo de porcelana, sobre un fondo azul, en el centro se colocan una mariposa azul y flores blancas.) |
Ejemplos de resultados de inferencia | |||
青花瓷风格,苏州园林 (Estilo de porcelana, jardines de Suzhou). | 青花瓷风格,一朵荷花 (Estilo de porcelana, una flor de loto). | 青花瓷风格,一只羊(Estilo porcelana, una oveja.) | 青花瓷风格,一个女孩在雨中跳舞(Estilo de porcelana, una niña bailando bajo la lluvia.) |
La ejecución de HunyuanDiT en menos de 6 GB de GPU VRAM ya está disponible en función de los difusores. Aquí proporcionamos instrucciones y una demostración para su inicio rápido.
La versión de 6 GB admite tarjetas gráficas de la serie de arquitectura Nvidia Ampere, como RTX 3070/3080/4080/4090, A100, etc.
Lo único que necesitas hacer es instalar la siguiente biblioteca:
instalación de pip -U bits y bytes pip instalar git+https://github.com/huggingface/diffusers antorcha de instalación de pipa == 2.0.0
¡Entonces podrás disfrutar de tu viaje de texto a imagen de HunyuanDiT directamente con 6 GB de GPU VRAM!
Aquí tienes una demostración.
cd HunyuanDiT# Inicio rápidomodel_id=Tencent-Hunyuan/HunyuanDiT-v1.2-Difusores-Distilled símbolo=一个宇航员在骑马 inferir_pasos=50 escala_orientación=6 python3 lite/inference.py ${model_id} ${prompt} ${infer_steps} ${guidance_scale}
Se pueden encontrar más detalles en ./lite.
Asegúrese de que el entorno conda esté activado antes de ejecutar el siguiente comando.
# De forma predeterminada, iniciamos una interfaz de usuario china. Uso de Flash Attention para aceleración.python app/hydit_app.py --infer-mode fa# Puede desactivar el modelo de mejora si la memoria de la GPU es insuficiente.# La mejora no estará disponible hasta que reinicie la aplicación sin `--no- mejorar la bandera. python app/hydit_app.py --no-enhance --infer-mode fa# Iniciar con la interfaz de usuario en ingléspython app/hydit_app.py --lang es --infer-mode fa# Iniciar una interfaz de usuario de generación T2I de múltiples turnos. # Si la memoria de su GPU tiene menos de 32 GB, use '--load-4bit' para habilitar la cuantificación de 4 bits, que requiere al menos 22 GB de memoria.python app/multiTurnT2I_app.py --infer-mode fa
Luego se puede acceder a la demostración a través de http://0.0.0.0:443. Cabe señalar que el 0.0.0.0 aquí debe ser XXXX con la IP de su servidor.
Instale PyTorch versión 2.0 o superior con anticipación para satisfacer los requisitos de la versión especificada de la biblioteca de difusores.
Instale difusores, asegurándose de que la versión sea al menos 0.28.1:
pip instalar git+https://github.com/huggingface/diffusers.git
o
difusores de instalación de pipa
Puede generar imágenes con mensajes en chino e inglés utilizando el siguiente script de Python:
importar antorcha de difusores importar HunyuanDiTPipelinepipe = HunyuanDiTPipeline.from_pretrained("Tencent-Hunyuan/HunyuanDiT-v1.2-Diffusers", torch_dtype=torch.float16)pipe.to("cuda")# También puede utilizar el mensaje en inglés, ya que HunyuanDiT admite ambos idiomas y chino# Prompt = "Un astronauta montando a caballo"prompt = "一个宇航员在骑马"imagen = pipe(prompt).images[0]
Puede utilizar nuestro modelo resumido para generar imágenes aún más rápido:
importar antorcha de difusores importar HunyuanDiTPipelinepipe = HunyuanDiTPipeline.from_pretrained("Tencent-Hunyuan/HunyuanDiT-v1.2-Diffusers-Distilled", torch_dtype=torch.float16)pipe.to("cuda")# También puede utilizar el mensaje en inglés, ya que HunyuanDiT lo admite tanto en inglés como en chino# Prompt = "Un astronauta montando a caballo"prompt = "一个宇航员在骑马"image = pipe(prompt, num_inference_steps=25).images[0]
Se pueden encontrar más detalles en HunyuanDiT-v1.2-Diffusers-Distilled
Más funciones: Para otras funciones como LoRA y ControlNet, consulte el archivo README de ./diffusers.
Proporcionamos varios comandos para un inicio rápido:
# Solo texto a imagen. Modo de atención flashpython sample_t2i.py --infer-mode fa --prompt "渔舟唱晚" --no-enhance# Genera una imagen con otros tamaños de imagen.python sample_t2i.py --infer-mode fa --prompt "渔舟唱晚" --image-size 1280 768# Mejora rápida + Texto a imagen. DialogGen se carga con cuantificación de 4 bits, pero puede perder rendimiento.python sample_t2i.py --infer-mode fa --prompt "渔舟唱晚" --load-4bit
Se pueden encontrar más mensajes de ejemplo en example_prompts.txt
Enumeramos algunas configuraciones más útiles para un fácil uso:
Argumento | Por defecto | Descripción |
---|---|---|
--prompt | Ninguno | El mensaje de texto para la generación de imágenes. |
--image-size | 1024 1024 | El tamaño de la imagen generada. |
--seed | 42 | La semilla aleatoria para generar imágenes. |
--infer-steps | 100 | El número de pasos para el muestreo. |
--negative | - | El mensaje negativo para la generación de imágenes. |
--infer-mode | antorcha | El modo de inferencia (antorcha, fa o trt) |
--sampler | ddpm | El muestreador de difusión (ddpm, ddim o dpmms) |
--no-enhance | FALSO | Deshabilitar el modelo de mejora rápida |
--model-root | ckpts | El directorio raíz de los puntos de control del modelo. |
--load-key | emma | Cargar el modelo de estudiante o modelo EMA (ema o módulo) |
--load-4bit | Fasle | Cargar modelo DialogGen con cuantificación de 4 bits |
Admite dos flujos de trabajo: ComfyUI estándar y Difusores Wrapper; se recomienda el primero.
Admite HunyuanDiT-v1.1 y v1.2.
Módulo de soporte, modelos lora y clip lora entrenados por Kohya.
Módulo de soporte, modelos lora capacitados mediante guiones de capacitación oficiales de HunyunDiT.
ControlNet llegará pronto.
Se pueden encontrar más detalles en ./comfyui-hydit
Admitimos códigos personalizados para kohya_ss GUI y códigos de entrenamiento de scripts sd para HunyuanDiT. Se pueden encontrar más detalles en ./kohya_ss-hydit
Hunyuan-DiT <= v1.1
# ============================== v1.1 ================ ==============# Descargar el modelohuggingface-cli descargar Tencent-Hunyuan/HunyuanDiT-v1.1 --local-dir ./HunyuanDiT-v1.1# Inferencia con el modelpython sample_t2i.py --infer-mode fa --prompt "渔舟唱晚" --model-root ./HunyuanDiT-v1.1 --use-style-cond --size-cond 1024 1024 --beta-end 0.03 # ================================ v1.0 ==============================# Descargar el modelohuggingface-cli descargar Tencent-Hunyuan/HunyuanDiT --local-dir ./HunyuanDiT-v1.0# Inferencia con modelpython sample_t2i.py --infer-mode fa --prompt "渔舟唱晚" --model-root ./HunyuanDiT-v1.0 --use-style-cond --size-cond 1024 1024 --beta-end 0.03
Proporcionamos scripts de capacitación para ControlNet, detallados en ./controlnet.
# Entrenamiento para el astuto ControlNet.PYTHONPATH=./ sh hydit/train_controlnet.sh
Ofrecemos tres tipos de pesas ControlNet entrenadas para depth
y pose
canny
; consulte los detalles en los enlaces
cd HunyuanDiT# Utilice la herramienta huggingface-cli para descargar el modelo.# Recomendamos utilizar pesas destiladas como modelo base para la inferencia de ControlNet, ya que nuestras pesas previamente entrenadas proporcionadas se entrenan en ellas.huggingface-cli descargar Tencent-Hunyuan/HYDiT-ControlNet- v1.2 --local-dir ./ckpts/t2i/controlnet huggingface-cli descargar Tencent-Hunyuan/Distillation-v1.2 ./pytorch_model_distill.pt --local-dir ./ckpts/t2i/model# Inicio rápidopython3 sample_controlnet.py --infer-mode fa --no-enhance --load -key destilar --inferir-pasos 50 --control-tipo astuto --prompt "在夜晚的酒logging门前,一座古老的中国风格的狮子雕像矗立着,它的眼睛闪烁着光芒,仿佛在守护着这座建筑。背景是夜晚的酒order前,构图方式是特写,平视,居中构图。这张照片呈现" --condición-imagen-ruta controlnet/asset/input/canny.jpg --control-weight 1.0
Entrada de condición | ||
Astuto ControlNet | Red de control de profundidad | Pose ControlNet |
一座古老的中国风格的狮子雕像矗立着,它的眼睛闪烁着光芒,仿佛在守护着这座建筑。背景是夜晚的酒构图方式是特写,平视,居中构图。这张照片呈现了真实摄影风格,蕴含了中国雕塑文化,同时展现了神秘氛围(En Por la noche, una antigua estatua de león de estilo chino se encuentra frente al hotel, con los ojos brillando como si protegiera el edificio. El fondo es la entrada del hotel por la noche, con una composición centrada, en primer plano, a la altura de los ojos. Esta foto presenta un estilo fotográfico realista, encarna la cultura escultórica china y revela una atmósfera misteriosa.) | 背景是En En el denso bosque, un panda blanco y negro se sienta tranquilamente entre los árboles verdes y las flores rojas, rodeado de montañas y océanos. El fondo es un bosque diurno con mucha luz. La foto utiliza una composición centrada, a la altura de los ojos y en primer plano para crear un efecto realista). | 在白天的森林中,一位穿着绿色上衣的亚洲女性站在大象旁边。照片采用了中景、平视和居中En En el bosque diurno, una mujer asiática con una camisa verde se encuentra junto a un elefante. La fotografía utiliza una composición centrada, a la altura de los ojos y de plano medio para crear un efecto realista. Esta imagen encarna la cultura de la fotografía de personajes y transmite una atmósfera serena.) |
Salida ControlNet | ||
Hunyuan-Captioner satisface la necesidad de técnicas de conversión de texto a imagen manteniendo un alto grado de coherencia entre imagen y texto. Puede generar descripciones de imágenes de alta calidad desde una variedad de ángulos, incluida la descripción de objetos, las relaciones de los objetos, la información de fondo, el estilo de la imagen, etc. Nuestro código se basa en la implementación de LLaVA.
a. Instalar dependencias
Las dependencias y la instalación son básicamente las mismas que las del modelo base .
b. Descarga del modelo
# Utilice la herramienta huggingface-cli para descargar model.huggingface-cli descargar Tencent-Hunyuan/HunyuanCaptioner --local-dir ./ckpts/captioner
Nuestro modelo admite tres modos diferentes, que incluyen: generar directamente subtítulos en chino , generar subtítulos en chino según conocimientos específicos y generar directamente subtítulos en inglés . La información inyectada puede ser señales precisas o etiquetas ruidosas (por ejemplo, descripciones sin procesar extraídas de Internet). El modelo es capaz de generar descripciones confiables y precisas basadas tanto en la información insertada como en el contenido de la imagen.
Modo | Plantilla de aviso | Descripción |
---|---|---|
caption_zh | 描述这张图fotos | Título en chino |
insertar_contenido | 根据提示词“{}”,描述这张图片 | Título con conocimiento insertado |
caption_en | Por favor describe el contenido de esta imagen. | Subtítulo en inglés |
a. Inferencia de imagen única en chino
python mllm/caption_demo.py --mode "caption_zh" --image_file "mllm/images/demo1.png" --model_path "./ckpts/captioner"
b. Insertar conocimientos específicos en el título
python mllm/caption_demo.py --mode "insert_content" --content "宫保鸡丁" --image_file "mllm/images/demo2.png" --model_path "./ckpts/captioner"
do. Inferencia de imagen única en inglés
python mllm/caption_demo.py --mode "caption_en" --image_file "mllm/images/demo3.png" --model_path "./ckpts/captioner"
d. Inferencia de múltiples imágenes en chino.