Este artículo le mostrará cómo instalar y utilizar software basado en Windows que puede entrenar modelos LoRA de video de Hunyuan, lo que permite al usuario generar personalidades personalizadas en el modelo básico de Hunyuan Video:
Haz clic para jugar. Ejemplos de la reciente explosión de celebridades Hunyuan LoRA de la comunidad civit.ai.
Por el momento, las dos formas más populares de generar modelos Hunyuan LoRA localmente son:
1) el marco basado en Docker de difusión-pipe-uique se basa en el Subsistema de Windows para Linux (WSL) para manejar algunos de los procesos.
2) Sintonizador Musubiuna nueva incorporación a la popular arquitectura de entrenamiento de difusión Kohya ss. Musubi Tuner no requiere Docker y no depende de WSL u otros servidores proxy basados en Linux, pero puede resultar difícil ejecutarlo en Windows.
Por lo tanto, este análisis se centrará en Musubi Tuner y en proporcionar una solución completamente local para el entrenamiento y la generación de Hunyuan LoRA, sin el uso de sitios web basados en API o procesos comerciales de alquiler de GPU como Runpod.
Haz clic para jugar. Muestras de capacitación de LoRA en Musubi Tuner para este artículo. Todos los permisos otorgados por la persona representada, con el propósito de ilustrar este artículo.
REQUISITOS
La instalación requerirá como mínimo una PC con Windows 10 con una tarjeta NVIDIA serie 30+/40+ que tenga al menos 12 GB de VRAM (aunque se recomiendan 16 GB). La instalación utilizada para este artículo se probó en una máquina con 64 GB de sistema RAM y una tarjeta gráfica NVIDIA 3090 con 24GB de VRAM. Se probó en un sistema de banco de pruebas dedicado utilizando una instalación nueva de Windows 10 Professional, en una partición con más de 600 GB de espacio libre en disco.
ADVERTENCIA
La instalación de Musubi Tuner y sus requisitos previos también implica la instalación de software y paquetes centrados en el desarrollador directamente en la instalación principal de Windows de una PC. Teniendo en cuenta la instalación de ComfyUI, para las etapas finales, este proyecto requerirá entre 400 y 500 gigabytes de espacio en disco. Aunque he probado el procedimiento sin incidentes varias veces en entornos de prueba de Windows 10 recién instalados, ni yo ni unite.ai somos responsables de ningún daño a los sistemas por seguir estas instrucciones. Le aconsejo que haga una copia de seguridad de cualquier dato importante antes de intentar este tipo de procedimiento de instalación.
Consideraciones
¿Sigue siendo válido este método?
La escena de la IA generativa se está moviendo muy rápido y podemos esperar métodos mejores y más optimizados de los marcos de Hunyuan Video LoRA este año.
…¡o incluso esta semana! Mientras escribía este artículo, el desarrollador de Kohya/Musubi produjo musubi-sintonizador-gui, una sofisticada GUI de Gradio para Musubi Tuner:
Obviamente, es preferible una GUI fácil de usar a los archivos BAT que uso en esta función, una vez que musubi-tuner-gui esté funcionando. Mientras escribo, solo se conectó hace cinco días y no encuentro ninguna cuenta de nadie que lo haya utilizado con éxito.
Según las publicaciones en el repositorio, se pretende que la nueva GUI se implemente directamente en el proyecto Musubi Tuner lo antes posible, lo que pondrá fin a su existencia actual como repositorio independiente de GitHub.
Según las instrucciones de instalación actuales, la nueva GUI se clona directamente en el entorno virtual Musubi existente; y, a pesar de muchos esfuerzos, no puedo asociarlo con la instalación existente de Musubi. ¡Esto significa que cuando funcione, descubrirá que no tiene motor!
Una vez que la GUI esté integrada en Musubi Tuner, los problemas de este tipo seguramente se resolverán. Aunque el autor admite que el nuevo proyecto es “realmente difícil”, es optimista sobre su desarrollo e integración directamente en Musubi Tuner.
Dados estos problemas (también relacionados con las rutas predeterminadas en el momento de la instalación y el uso del paquete UV Python, que complica ciertos procedimientos en la nueva versión), probablemente tendremos que esperar un poco para tener una experiencia de capacitación de Hunyuan Video LoRA más fluida. Dicho esto, ¡parece muy prometedor!
Pero si no puede esperar y está dispuesto a arremangarse un poco, puede ejecutar localmente el entrenamiento LoRA en video de Hunyuan ahora mismo.
Empecemos.
¿Por qué instalar? Cualquier cosa en metal desnudo?
(Sáltate este párrafo si no eres un usuario avanzado)
Los usuarios avanzados se preguntarán por qué he elegido instalar tanto software en la instalación básica de Windows 10 en lugar de en un entorno virtual. La razón es que la versión esencial para Windows del paquete Triton basado en Linux es mucho más difícil de hacer funcionar en un entorno virtual. Todas las demás instalaciones básicas del tutorial no se pueden instalar en un entorno virtual, ya que deben interactuar directamente con el hardware local.
Instalación de paquetes y programas de requisitos previos
Para los programas y paquetes que deben instalarse inicialmente, el orden de instalación es importante. Empecemos.
1: Descargar Microsoft Redistribuible
Descargue e instale el paquete redistribuible de Microsoft desde https://aka.ms/vs/17/release/vc_redist.x64.exe.
Esta es una instalación sencilla y rápida.
2: Instale Visual Studio 2022
Descargue la edición comunitaria de Microsoft Visual Studio 2022 desde https://visualstudio.microsoft.com/downloads/?cid=learn-onpage-download-install-visual-studio-page-cta
Inicie el instalador descargado:
No necesitamos todos los paquetes disponibles, lo que sería una instalación pesada y larga. en la inicial Cargas de trabajo página que se abre, marque Desarrollo de escritorio con C++ (ver imagen a continuación).
Ahora haga clic en Componentes individuales pestaña en la parte superior izquierda de la interfaz y use el cuadro de búsqueda para encontrar ‘Windows SDK’.
Por defecto, sólo el SDK de Windows 11 está marcado. Si tiene Windows 10 (no he probado este procedimiento de instalación en Windows 11), marque la última versión de Windows 10, indicada en la imagen de arriba.
Busque ‘C++ CMake’ y verifique que Herramientas C++ CMake para Windows está marcado.
Esta instalación ocupará al menos 13 GB de espacio.
Una vez que Visual Studio se haya instalado, intentará ejecutarse en su computadora. Déjalo abrir completamente. Cuando la interfaz de pantalla completa de Visual Studio finalmente esté visible, cierre el programa.
3: Instale Visual Studio 2019
Algunos de los paquetes posteriores para Musubi esperan una versión anterior de Microsoft Visual Studio, mientras que otros necesitan una más reciente.
Por lo tanto, descargue también la edición comunitaria gratuita de Visual Studio 19 desde Microsoft (https://visualstudio.microsoft.com/vs/older-downloads/ – se requiere cuenta) o Techspot (https://www.techspot.com/downloads/ 7241-visual-studio-2019.html).
Instálelo con las mismas opciones que para Visual Studio 2022 (consulte el procedimiento anterior, excepto que SDK de Windows ya está marcado en el instalador de Visual Studio 2019).
Verá que el instalador de Visual Studio 2019 ya conoce la versión más reciente a medida que la instala:
Cuando se complete la instalación y haya abierto y cerrado la aplicación Visual Studio 2019 instalada, abra un símbolo del sistema de Windows (Escriba CMD en Iniciar búsqueda) y escriba e ingrese:
where cl
El resultado deberían ser las ubicaciones conocidas de las dos ediciones de Visual Studio instaladas.
Si en cambio obtienes INFO: Could not find files for the given pattern(s)
ver el Comprobar ruta de este artículo a continuación y utilice esas instrucciones para agregar las rutas de Visual Studio relevantes al entorno de Windows.
Guarde los cambios realizados según las Comprobar rutas siguiente sección y luego intente nuevamente el comando donde cl.
4: Instale los kits de herramientas CUDA 11 + 12
Los distintos paquetes instalados en Musubi necesitan diferentes versiones de NVIDIA CUDA, que acelera y optimiza el entrenamiento en las tarjetas gráficas NVIDIA.
La razón por la que instalamos las versiones de Visual Studio primero es que los instaladores de NVIDIA CUDA buscan e integran con cualquier instalación de Visual Studio existente.
Descargue un paquete de instalación CUDA de la serie 11+ desde:
https://developer.nvidia.com/cuda-11-8-0-download-archive?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local (descargar ‘exe (local’) )
Descargue un paquete de instalación del kit de herramientas CUDA serie 12+ desde:
https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64
El proceso de instalación es idéntico para ambos instaladores. Ignore cualquier advertencia sobre la existencia o no existencia de rutas de instalación en las variables de entorno de Windows; nos ocuparemos de esto manualmente más adelante.
Instalar el kit de herramientas NVIDIA CUDA V11+
Inicie el instalador del kit de herramientas CUDA de la serie 11+.
En Opciones de instalaciónelegir Personalizado (avanzado) y proceder.
Desmarque la opción NVIDIA GeForce Experience y haga clic en Próximo.
Dejar Seleccione la ubicación de instalación en los valores predeterminados (esto es importante):
Hacer clic Próximo y dejar que concluya la instalación.
Ignore cualquier advertencia o nota que el instalador proporcione sobre Estudio visual nocturno integración, que no es necesaria para nuestro caso de uso.
Instalar el kit de herramientas NVIDIA CUDA V12+
Repita todo el proceso para el instalador independiente 12+ NVIDIA Toolkit que descargó:
El proceso de instalación para esta versión es idéntico al mencionado anteriormente (la versión 11+), excepto por una advertencia sobre las rutas del entorno, que puede ignorar:
Cuando se complete la instalación de la versión 12+ CUDA, abra un símbolo del sistema en Windows y escriba e ingrese:
nvcc --version
Esto debería confirmar la información sobre la versión del controlador instalado:
Para comprobar que tu tarjeta es reconocida, escribe e ingresa:
nvidia-smi
5: Instalar GIT
GIT se encargará de la instalación del repositorio de Musubi en su máquina local. Descargue el instalador de GIT en:
https://git-scm.com/downloads/win (‘Configuración de Git de 64 bits para Windows’)
Ejecute el instalador:
Utilice la configuración predeterminada para Seleccionar componentes:
Deje el editor predeterminado en Empuje:
Deje que GIT decida sobre los nombres de las sucursales:
Utilice la configuración recomendada para el Camino Ambiente:
Utilice la configuración recomendada para SSH:
Utilice la configuración recomendada para Servidor de transporte HTTPS:
Utilice la configuración recomendada para conversiones de final de línea:
Elija la consola predeterminada de Windows como emulador de terminal:
Utilice la configuración predeterminada (Avanzar rápido o fusionar) para Git Pull:
Utilice Git-Credential Manager (la configuración predeterminada) para Credential Helper:
En Configurar opciones adicionalesdejar Habilitar el almacenamiento en caché del sistema de archivos marcado, y Habilitar enlaces simbólicos sin marcar (a menos que sea un usuario avanzado que utilice enlaces físicos para un repositorio de modelos centralizado).
Concluya la instalación y pruebe que Git esté instalado correctamente abriendo una ventana CMD y escribiendo e ingresando:
git --version
Iniciar sesión en GitHub
Más adelante, cuando intente clonar repositorios de GitHub, es posible que se le soliciten sus credenciales de GitHub. Para anticipar esto, inicie sesión en su cuenta de GitHub (cree una, si es necesario) en cualquier navegador instalado en su sistema Windows. De esta forma, el método de autenticación 0Auth (una ventana emergente) debería tardar el menor tiempo posible.
Después de ese desafío inicial, deberías permanecer autenticado automáticamente.
6: Instalar CMake
Se requiere CMake 3.21 o posterior para partes del proceso de instalación de Musubi. CMake es una arquitectura de desarrollo multiplataforma capaz de orquestar diversos compiladores y de compilar software a partir del código fuente.
Descárgalo en:
https://cmake.org/download/ (‘Instalador de Windows x64’)
Inicie el instalador:
Asegurar Agregue Cmake a la variable de entorno PATH está marcado.
Prensa Próximo.
Escriba e ingrese este comando en el símbolo del sistema de Windows:
cmake --version
Si CMake se instaló correctamente, mostrará algo como:
cmake version 3.31.4
CMake suite maintained and supported by Kitware (kitware.com/cmake).
7: Instale Python 3.10
El intérprete de Python es fundamental para este proyecto. Descargue la versión 3.10 (el mejor compromiso entre las diferentes demandas de los paquetes de Musubi) en:
https://www.python.org/downloads/release/python-3100/ (‘Instalador de Windows (64 bits)’)
Ejecute el instalador de descarga y déjelo en la configuración predeterminada:
Al final del proceso de instalación, haga clic en Deshabilitar límite de longitud de ruta (requiere confirmación del administrador de UAC):
En el símbolo del sistema de Windows, escriba e ingrese:
python --version
Esto debería resultar en Python 3.10.0
Comprobar rutas
La clonación e instalación de los frameworks Musubi, así como su funcionamiento normal después de la instalación, requiere que sus componentes conozcan la ruta a varios componentes externos importantes en Windows, particularmente CUDA.
Entonces necesitamos abrir el entorno de ruta y verificar que todos los requisitos estén allí.
Una forma rápida de acceder a los controles del entorno Windows es escribir Editar las variables de entorno del sistema. en la barra de búsqueda de Windows.
Al hacer clic en esto se abrirá el Propiedades del sistema Panel de control. En la parte inferior derecha de Propiedades del sistemahaga clic en Variables de entorno botón y una ventana llamada Variables de entorno se abre. En el Variables del sistema panel en la mitad inferior de esta ventana, desplácese hacia abajo hasta Camino y haga doble clic en él. Esto abre una ventana llamada Editar variables de entorno. Arrastre el ancho de esta ventana para que pueda ver la ruta completa de las variables:
Aquí las entradas importantes son:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\libnvvp
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64
C:\Program Files\Git\cmd
C:\Program Files\CMake\bin
En la mayoría de los casos, las variables de ruta correctas ya deberían estar presentes.
Agregue las rutas que faltan haciendo clic Nuevo a la izquierda del Editar variable de entorno ventana y pegando en la ruta correcta:
NO se limite a copiar y pegar desde las rutas enumeradas anteriormente; compruebe que exista cada ruta equivalente en su propia instalación de Windows.
Si hay variaciones menores en las rutas (particularmente con instalaciones de Visual Studio), use las rutas enumeradas anteriormente para encontrar las carpetas de destino correctas (es decir, x64 en Anfitrión64 en su propia instalación. Luego pegue aquellos caminos hacia el Editar variable de entorno ventana.
Después de esto, reinicie la computadora.
Instalación de Musubi
Actualizar PIP
El uso de la última versión del instalador PIP puede facilitar algunas de las etapas de instalación. En un símbolo del sistema de Windows con privilegios de administrador (consulte Elevacióna continuación), escriba e ingrese:
pip install --upgrade pip
Elevación
Algunos comandos pueden requerir privilegios elevados (es decir, ejecutarse como administrador). Si recibe mensajes de error sobre permisos en las siguientes etapas, cierre la ventana del símbolo del sistema y vuelva a abrirla en modo administrador escribiendo CMD en el cuadro de búsqueda de Windows, haciendo clic derecho en Símbolo del sistema y seleccionando Ejecutar como administrador:
Para las siguientes etapas, usaremos Windows Powershell en lugar del símbolo del sistema de Windows. Puedes encontrarlo ingresando powershell en el cuadro de búsqueda de Windows y (según sea necesario) haciendo clic derecho sobre él para Ejecutar como administrador:
Instalar antorcha
En Powershell, escriba e ingrese:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
Tenga paciencia mientras se instalan los numerosos paquetes.
Cuando esté completo, puede verificar una instalación de PyTorch habilitada para GPU escribiendo e ingresando:
python -c "import torch; print(torch.cuda.is_available())"
Esto debería resultar en:
C:\WINDOWS\system32>python -c "import torch;
print(torch.cuda.is_available())"
True
Instalar Tritón para Windows
A continuación, la instalación del Tritón para Windows componente. En Powershell elevado, ingrese (en una sola línea):
pip install https://github.com/woct0rdho/triton-windows/releases/download/v3.1.0-windows.post8/triton-3.1.0-cp310-cp310-win_amd64.whl
(El instalador triton-3.1.0-cp310-cp310-win_amd64.whl
funciona tanto para CPU Intel como AMD siempre que la arquitectura sea de 64 bits y el entorno coincida con la versión de Python)
Después de ejecutar, esto debería resultar en:
Successfully installed triton-3.1.0
Podemos comprobar si Triton está funcionando importándolo en Python. Ingrese este comando:
python -c "import triton; print('Triton is working')"
Esto debería generar:
Triton is working
Para verificar que Triton esté habilitado para GPU, ingrese:
python -c "import torch; print(torch.cuda.is_available())"
Esto debería resultar en True
:
Crea el entorno virtual para Musubi
De ahora en adelante, instalaremos cualquier software adicional en un Entorno virtual de Python (o venv). Esto significa que todo lo que necesitará hacer para desinstalar todo el software siguiente es arrastrar la carpeta de instalación de venv a la papelera.
Creemos esa carpeta de instalación: hagamos una carpeta llamada Musubi en tu escritorio. Los siguientes ejemplos suponen que esta carpeta existe: C:\Users\(Your Profile Name)\Desktop\Musubi\
.
En Powershell, navegue hasta esa carpeta ingresando:
cd C:\Users\(Your Profile Name)\Desktop\Musubi
Queremos que el entorno virtual tenga acceso a lo que ya tenemos instalado (especialmente Triton), así que usaremos el --system-site-packages
bandera. Ingrese esto:
python -m venv --system-site-packages musubi
Espere a que se cree el entorno y luego actívelo ingresando:
.\musubi\Scripts\activate
A partir de este momento, podrás saber que estás en el entorno virtual activado por el hecho de que (musubi) aparece al principio de todas tus indicaciones.
Clonar el repositorio
Navegue hasta el recién creado musubi carpeta (que está dentro del Musubi carpeta en su escritorio):
cd musubi
Ahora que estamos en el lugar correcto, ingresa el siguiente comando:
git clone https://github.com/kohya-ss/musubi-tuner.git
Espere a que se complete la clonación (no tardará mucho).
Requisitos de instalación
Navegue a la carpeta de instalación:
cd musubi-tuner
Ingresar:
pip install -r requirements.txt
Espere a que finalicen las numerosas instalaciones (esto llevará más tiempo).
Automatización del acceso a Hunyuan Video Venv
Para activar y acceder fácilmente al nuevo venv para futuras sesiones, pegue lo siguiente en el Bloc de notas y guárdelo con el nombre activar.batguardándolo con Todos los archivos opción (ver imagen a continuación).
@echo off
call C:\Users\(Your Profile Name)\Desktop\Musubi\musubi\Scripts\activate
cd C:\Users\(Your Profile Name)\Desktop\Musubi\musubi\musubi-tuner
cmd
(Reemplazar (Your Profile Name)
con el nombre real de su perfil de usuario de Windows)
No importa en qué ubicación guarde este archivo.
A partir de ahora puedes hacer doble clic activar.bat y empezar a trabajar inmediatamente.
Usando el sintonizador Musubi
Descargando los modelos
El proceso de capacitación de Hunyuan Video LoRA requiere la descarga de al menos siete modelos para admitir todas las opciones de optimización posibles para el almacenamiento en caché previo y el entrenamiento de un video LoRA de Hunyuan. Juntos, estos modelos pesan más de 60 GB.
Las instrucciones actuales para descargarlos se pueden encontrar en https://github.com/kohya-ss/musubi-tuner?tab=readme-ov-file#model-download
Sin embargo, estas son las instrucciones de descarga al momento de escribir este artículo:
clip_l.safetensors
y
llava_llama3_fp16.safetensorsllava_llama3_fp8_scaled.safetensors
se puede descargar en:
https://huggingface.co/Comfy-Org/HunyuanVideo_repackged/tree/main/split_files/text_encoders
mp_rank_00_model_states.pt
y
mp_rank_00_model_states_fp8.ptmp_rank_00_model_states_fp8_map.pt
se puede descargar en:
https://huggingface.co/tencent/HunyuanVideo/tree/main/hunyuan-video-t2v-720p/transformers
pytorch_model.pt
se puede descargar en:
https://huggingface.co/tencent/HunyuanVideo/tree/main/hunyuan-video-t2v-720p/vae
Aunque puede colocarlos en cualquier directorio que elija, para mantener la coherencia con secuencias de comandos posteriores, pongámoslos en:
C:\Users\(Your Profile Name)\Desktop\Musubi\musubi\musubi-tuner\models\
Esto es consistente con la disposición del directorio anterior a este punto. Cualquier comando o instrucción posterior asumirá que aquí es donde se encuentran los modelos; y no olvide reemplazar (Su nombre de perfil) con el nombre real de su carpeta de perfil de Windows.
Preparación del conjunto de datos
Haciendo caso omiso de la controversia de la comunidad sobre este punto, es justo decir que necesitará entre 10 y 100 fotos para un conjunto de datos de entrenamiento para su Hunyuan LoRA. Se pueden obtener muy buenos resultados incluso con 15 imágenes, siempre que las imágenes estén bien equilibradas y sean de buena calidad.
Un Hunyuan LoRA se puede entrenar tanto en imágenes como en videoclips muy cortos y de baja resolución, o incluso una combinación de cada uno, aunque usar videoclips como datos de entrenamiento es un desafío, incluso para una tarjeta de 24 GB.
Sin embargo, los videoclips sólo son realmente útiles si tu personaje se mueve de una manera tan inusual que el modelo de la fundación Hunyuan Video podría no saberlo, o poder adivinar.
Los ejemplos incluirían a Roger Rabbit, un xenomorfo, La Máscara, Spider-Man u otras personalidades que posean único movimiento característico.
Dado que Hunyuan Video ya sabe cómo se mueven los hombres y mujeres comunes y corrientes, no son necesarios videoclips para obtener un personaje de tipo humano LoRA de Hunyuan Video convincente. Entonces usaremos imágenes estáticas.
Preparación de imágenes
La lista de deseos
La versión TLDR:
Es mejor usar imágenes que sean todas del mismo tamaño para su conjunto de datos, o usar una división 50/50 entre dos tamaños diferentes, es decir, 10 imágenes de 512x768px y 10 de 768x512px.
La capacitación puede ir bien incluso si no haces esto: los Video LoRA de Hunyuan pueden ser sorprendentemente indulgentes.
La versión más larga
Al igual que con los LoRA Kohya-ss para sistemas generativos estáticos como Stable Diffusion, cubos se utiliza para distribuir la carga de trabajo entre imágenes de diferentes tamaños, lo que permite utilizar imágenes más grandes sin causar errores de falta de memoria en el momento del entrenamiento (es decir, el agrupamiento “corta” las imágenes en fragmentos que la GPU puede manejar, mientras se mantiene la integridad semántica de toda la imagen).
Para cada tamaño de imagen que incluya en su conjunto de datos de entrenamiento (es decir, 512×768 px), se creará un depósito o “subtarea” para ese tamaño. Entonces, si tiene la siguiente distribución de imágenes, así es como la atención del cubo se desequilibra y existe el riesgo de que algunas fotos reciban más consideración en el entrenamiento que otras:
2x imágenes de 512x768px
Imágenes de 7x 768x512px
1x imagen de 1000x600px
3x imágenes de 400x800px
Podemos ver que la atención del cubo se divide de manera desigual entre estas imágenes:
Por lo tanto, limítese a un tamaño de formato o intente mantener la distribución de los diferentes tamaños relativamente igual.
En cualquier caso, evite las imágenes muy grandes, ya que es probable que ralenticen el entrenamiento, con un beneficio insignificante.
Para simplificar, he utilizado 512x768px para todas las fotos de mi conjunto de datos.
Descargo de responsabilidad: El modelo (persona) utilizado en el conjunto de datos me dio pleno permiso para usar estas imágenes para este propósito y ejerció su aprobación de todos los resultados basados en IA que representan su imagen presentada en este artículo.
Mi conjunto de datos consta de 40 imágenes, en formato PNG (aunque JPG también está bien). Mis imágenes fueron almacenadas en C:\Users\Martin\Desktop\DATASETS_HUNYUAN\examplewoman
Deberías crear un cache carpeta dentro de la carpeta de imágenes de entrenamiento:
Ahora creemos un archivo especial que configurará la capacitación.
Archivos TOML
Los procesos de entrenamiento y almacenamiento previo en caché de Hunyuan Video LoRA obtienen las rutas de los archivos de un archivo de texto plano con la extensión .toml.
Para mi prueba, el TOML se encuentra en C:\Users\Martin\Desktop\DATASETS_HUNYUAN\training.toml
El contenido de mi TOML de entrenamiento se ve así:
(general)
resolution = (512, 768)
caption_extension = ".txt"
batch_size = 1
enable_bucket = true
bucket_no_upscale = false
((datasets))
image_directory = "C:\\Users\\Martin\\Desktop\\DATASETS_HUNYUAN\\examplewoman"
cache_directory = "C:\\Users\\Martin\\Desktop\\DATASETS_HUNYUAN\\examplewoman\\cache"
num_repeats = 1
(Las barras invertidas dobles para los directorios de imágenes y caché no siempre son necesarias, pero pueden ayudar a evitar errores en los casos en los que hay un espacio en la ruta. He entrenado modelos con archivos .toml que usaban avance único y avance único). barras invertidas)
Podemos ver en el resolution
sección que se considerarán dos resoluciones: 512 px y 768 px. También puedes dejar esto en 512 y aún así obtener buenos resultados.
Subtítulos
El vídeo de Hunyuan es un texto+ modelo de base de visión, por lo que necesitamos títulos descriptivos para estas imágenes, que se considerarán durante el entrenamiento. El proceso de formación fallará sin subtítulos.
Hay una multitud de sistemas de subtítulos de código abierto que podríamos usar para esta tarea, pero mantengámoslo simple y usemos el sistema taggui. Aunque está almacenado en GitHub, y aunque descarga algunos modelos de aprendizaje profundo muy pesados en la primera ejecución, viene en forma de un ejecutable simple de Windows que carga bibliotecas de Python y una GUI sencilla.
Después de iniciar Taggui, use Archivo > Cargar directorio para navegar a su conjunto de datos de imágenes y, opcionalmente, colocar un identificador de token (en este caso, mujer ejemplo) que se agregará a todos los títulos:
(Asegúrese de apagar Cargar en 4 bits cuando Taggui se abre por primera vez, arrojará errores durante los subtítulos si se deja activado)
Seleccione una imagen en la columna de vista previa de la izquierda y presione CTRL+A para seleccionar todas las imágenes. Luego presione el botón Iniciar subtítulos automáticos a la derecha:
Verá Taggui descargando modelos en la pequeña CLI de la columna de la derecha, pero solo si es la primera vez que ejecuta el subtítulo. De lo contrario, verá una vista previa de los subtítulos.
Ahora, cada foto tiene un título .txt correspondiente con una descripción del contenido de la imagen:
Puedes hacer clic Opciones avanzadas en Taggui para aumentar la longitud y el estilo de los subtítulos, pero eso está más allá del alcance de este repaso.
Sal de Taggui y pasemos a…
Almacenamiento en caché previo latente
Para evitar una carga excesiva de la GPU durante el entrenamiento, es necesario crear dos tipos de archivos almacenados en caché previamente: uno para representar la imagen latente derivada de las imágenes mismas y otro para evaluar una codificación de texto relacionada con el contenido de los subtítulos.
Para simplificar los tres procesos (caché 2x + capacitación), puede utilizar archivos .BAT interactivos que le harán preguntas y realizarán los procesos cuando haya proporcionado la información necesaria.
Para el almacenamiento en caché previo latente, copie el siguiente texto en el Bloc de notas y guárdelo como un archivo .BAT (es decir, asígnele un nombre como latente-precache.bat), como antes, asegurándose de que el tipo de archivo en el menú desplegable en el Guardar como el diálogo es Todos los archivos (ver imagen a continuación):
@echo off
REM Activate the virtual environment
call C:\Users\(Your Profile Name)\Desktop\Musubi\musubi\Scripts\activate.bat
REM Get user input
set /p IMAGE_PATH=Enter the path to the image directory:
set /p CACHE_PATH=Enter the path to the cache directory:
set /p TOML_PATH=Enter the path to the TOML file:
echo You entered:
echo Image path: %IMAGE_PATH%
echo Cache path: %CACHE_PATH%
echo TOML file path: %TOML_PATH%
set /p CONFIRM=Do you want to proceed with latent pre-caching (y/n)?
if /i "%CONFIRM%"=="y" (
REM Run the latent pre-caching script
python C:\Users\(Your Profile Name)\Desktop\Musubi\musubi\musubi-tuner\cache_latents.py --dataset_config %TOML_PATH% --vae C:\Users\(Your Profile Name)\Desktop\Musubi\musubi\musubi-tuner\models\pytorch_model.pt --vae_chunk_size 32 --vae_tiling
) else (
echo Operation canceled.
)
REM Keep the window open
pause
(Asegúrese de reemplazar (Su nombre de perfil) con el nombre real de la carpeta de su perfil de Windows)
Ahora puede ejecutar el archivo .BAT para el almacenamiento en caché latente automático:
Cuando se lo soliciten las diversas preguntas del archivo BAT, pegue o escriba la ruta a su conjunto de datos, carpetas de caché y archivo TOML.
Almacenamiento previo en caché de texto
Crearemos un segundo archivo BAT, esta vez para el almacenamiento previo en caché del texto.
@echo off
REM Activate the virtual environment
call C:\Users\(Your Profile Name)\Desktop\Musubi\musubi\Scripts\activate.bat
REM Get user input
set /p IMAGE_PATH=Enter the path to the image directory:
set /p CACHE_PATH=Enter the path to the cache directory:
set /p TOML_PATH=Enter the path to the TOML file:
echo You entered:
echo Image path: %IMAGE_PATH%
echo Cache path: %CACHE_PATH%
echo TOML file path: %TOML_PATH%
set /p CONFIRM=Do you want to proceed with text encoder output pre-caching (y/n)?
if /i "%CONFIRM%"=="y" (
REM Use the python executable from the virtual environment
python C:\Users\(Your Profile Name)\Desktop\Musubi\musubi\musubi-tuner\cache_text_encoder_outputs.py --dataset_config %TOML_PATH% --text_encoder1 C:\Users\(Your Profile Name)\Desktop\Musubi\musubi\musubi-tuner\models\llava_llama3_fp16.safetensors --text_encoder2 C:\Users\(Your Profile Name)\Desktop\Musubi\musubi\musubi-tuner\models\clip_l.safetensors --batch_size 16
) else (
echo Operation canceled.
)
REM Keep the window open
pause
Reemplace el nombre de su perfil de Windows y guárdelo como caché-de-texto.bat (o cualquier otro nombre que desee), en cualquier ubicación conveniente, según el procedimiento del archivo BAT anterior.
Ejecute este nuevo archivo BAT, siga las instrucciones y los archivos codificados de texto necesarios aparecerán en el cache carpeta:
Entrenando a la videolora de Hunyuan
Entrenar el LoRA real llevará mucho más tiempo que estos dos procesos preparatorios.
Aunque también hay múltiples variables de las que podríamos preocuparnos (como el tamaño del lote, las repeticiones, las épocas y si usar modelos completos o cuantificados, entre otras), guardaremos estas consideraciones para otro día y analizaremos en mayor profundidad el complejidades de la creación de LoRA.
Por ahora, minimicemos un poco las opciones y entrenemos un LoRA en configuraciones “medianas”.
Crearemos un tercer archivo BAT, esta vez para iniciar el entrenamiento. Pegue esto en el Bloc de notas y guárdelo como un archivo BAT, como antes, como entrenamiento.bat (o cualquier nombre que desee):
@echo off
REM Activate the virtual environment
call C:\Users\(Your Profile Name)\Desktop\Musubi\musubi\Scripts\activate.bat
REM Get user input
set /p DATASET_CONFIG=Enter the path to the dataset configuration file:
set /p EPOCHS=Enter the number of epochs to train:
set /p OUTPUT_NAME=Enter the output model name (e.g., example0001):
set /p LEARNING_RATE=Choose learning rate (1 for 1e-3, 2 for 5e-3, default 1e-3):
if "%LEARNING_RATE%"=="1" set LR=1e-3
if "%LEARNING_RATE%"=="2" set LR=5e-3
if "%LEARNING_RATE%"=="" set LR=1e-3
set /p SAVE_STEPS=How often (in steps) to save preview images:
set /p SAMPLE_PROMPTS=What is the location of the text-prompt file for training previews?
echo You entered:
echo Dataset configuration file: %DATASET_CONFIG%
echo Number of epochs: %EPOCHS%
echo Output name: %OUTPUT_NAME%
echo Learning rate: %LR%
echo Save preview images every %SAVE_STEPS% steps.
echo Text-prompt file: %SAMPLE_PROMPTS%
REM Prepare the command
set CMD=accelerate launch --num_cpu_threads_per_process 1 --mixed_precision bf16 ^
C:\Users\(Your Profile Name)\Desktop\Musubi\musubi\musubi-tuner\hv_train_network.py ^
--dit C:\Users\(Your Profile Name)\Desktop\Musubi\musubi\musubi-tuner\models\mp_rank_00_model_states.pt ^
--dataset_config %DATASET_CONFIG% ^
--sdpa ^
--mixed_precision bf16 ^
--fp8_base ^
--optimizer_type adamw8bit ^
--learning_rate %LR% ^
--gradient_checkpointing ^
--max_data_loader_n_workers 2 ^
--persistent_data_loader_workers ^
--network_module=networks.lora ^
--network_dim=32 ^
--timestep_sampling sigmoid ^
--discrete_flow_shift 1.0 ^
--max_train_epochs %EPOCHS% ^
--save_every_n_epochs=1 ^
--seed 42 ^
--output_dir "C:\Users\(Your Profile Name)\Desktop\Musubi\Output Models" ^
--output_name %OUTPUT_NAME% ^
--vae C:/Users/(Your Profile Name)/Desktop/Musubi/musubi/musubi-tuner/models/pytorch_model.pt ^
--vae_chunk_size 32 ^
--vae_spatial_tile_sample_min_size 128 ^
--text_encoder1 C:/Users/(Your Profile Name)/Desktop/Musubi/musubi/musubi-tuner/models/llava_llama3_fp16.safetensors ^
--text_encoder2 C:/Users/(Your Profile Name)/Desktop/Musubi/musubi/musubi-tuner/models/clip_l.safetensors ^
--sample_prompts %SAMPLE_PROMPTS% ^
--sample_every_n_steps %SAVE_STEPS% ^
--sample_at_first
echo The following command will be executed:
echo %CMD%
set /p CONFIRM=Do you want to proceed with training (y/n)?
if /i "%CONFIRM%"=="y" (
%CMD%
) else (
echo Operation canceled.
)
REM Keep the window open
cmd /k
Como de costumbre, asegúrese de reemplazar todas las instancias of (Nombre de su perfil) con su nombre de perfil de Windows correcto.
Asegúrese de que el directorio C:\Users\(Your Profile Name)\Desktop\Musubi\Output Models\
existe y, si no, créelo en esa ubicación.
Vistas previas de entrenamiento
Hay una función de vista previa de entrenamiento muy básica habilitada recientemente para Musubi Trainer, que le permite forzar la pausa del modelo de entrenamiento y generar imágenes según las indicaciones que haya guardado. Estos se guardan en una carpeta creada automáticamente llamada Muestraen el mismo directorio donde se guardan los modelos entrenados.
Para habilitar esto, deberá guardar al menos un mensaje en un archivo de texto. El BAT de entrenamiento que creamos le pedirá que ingrese la ubicación de este archivo; por lo tanto, puede nombrar el archivo de solicitud como desee y guardarlo en cualquier lugar.
A continuación se muestran algunos ejemplos rápidos de un archivo que generará tres imágenes diferentes cuando lo solicite la rutina de entrenamiento:
Como puede ver en el ejemplo anterior, puede colocar marcas al final del mensaje que afectarán las imágenes:
–w es ancho (el valor predeterminado es 256 px si no está configurado, según los documentos)
-su altura (el valor predeterminado es 256 px si no está configurado)
–f es el número de fotogramas. Si se establece en 1, se produce una imagen; más de uno, un vídeo.
–d es la semilla. Si no se establece, es aleatorio; pero debes configurarlo para ver cómo evoluciona un mensaje.
–s es el número de pasos en la generación, por defecto 20.
Consulte la documentación oficial para conocer indicadores adicionales.
Aunque las vistas previas del entrenamiento pueden revelar rápidamente algunos problemas que podrían hacer que usted cancele el entrenamiento y reconsidere los datos o la configuración, ahorrando así tiempo, recuerde que cada mensaje adicional ralentiza el entrenamiento un poco más.
Además, cuanto mayor sea el ancho y el alto de la imagen de vista previa del entrenamiento (como se establece en las banderas enumeradas anteriormente), más se ralentizará el entrenamiento.
Inicie su archivo BAT de entrenamiento.
Pregunta #1 es ‘Ingrese la ruta a la configuración del conjunto de datos. Pegue o escriba la ruta correcta a su archivo TOML.
Pregunta #2 es ‘Ingrese el número de épocas para entrenar’. Esta es una variable de prueba y error, ya que se ve afectada por la cantidad y calidad de las imágenes, así como por los pies de foto y otros factores. En general, es mejor configurarlo demasiado alto que demasiado bajo, ya que siempre puedes detener el entrenamiento con Ctrl+C en la ventana de entrenamiento si crees que el modelo ha avanzado lo suficiente. Configúrelo en 100 en primera instancia y vea cómo va.
Pregunta #3 es ‘Ingrese el nombre del modelo de salida’. ¡Nombra tu modelo! Quizás sea mejor mantener el nombre razonablemente breve y simple.
Pregunta #4 es ‘Elegir tasa de aprendizaje’, que por defecto es 1e-3 (opción 1). Este es un buen punto de partida, en espera de adquirir más experiencia.
Pregunta #5 es ‘Con qué frecuencia (en pasos) guardar imágenes de vista previa. Si lo configuras demasiado bajo, verás poco progreso entre los guardados de las imágenes de vista previa y esto ralentizará el entrenamiento.
Pregunta #6 es “¿Cuál es la ubicación del archivo de mensajes de texto para las vistas previas de capacitación?”. Pegue o escriba la ruta al archivo de texto de indicaciones.
Luego, el BAT le muestra el comando que enviará al modelo Hunyuan y le pregunta si desea continuar, sí/no.
Anímate y comienza a entrenar:
Durante este tiempo, si revisa la sección GPU de la pestaña Rendimiento del Administrador de tareas de Windows, verá que el proceso consume alrededor de 16 GB de VRAM.
Puede que esta no sea una cifra arbitraria, ya que es la cantidad de VRAM disponible en bastantes tarjetas gráficas NVIDIA, y es posible que el código ascendente se haya optimizado para ajustar las tareas en 16 GB para beneficio de quienes poseen dichas tarjetas.
Dicho esto, es muy fácil aumentar este uso enviando banderas más exorbitantes al comando de entrenamiento.
Durante el entrenamiento, verá en la parte inferior derecha de la ventana CMD una cifra de cuánto tiempo ha pasado desde que comenzó el entrenamiento y una estimación del tiempo total de entrenamiento (que variará mucho dependiendo de las banderas configuradas, la cantidad de imágenes de entrenamiento). , número de imágenes de vista previa de entrenamiento y varios otros factores).
Un tiempo de capacitación típico es de alrededor de 3 a 4 horas en configuraciones medianas, según el hardware disponible, la cantidad de imágenes, la configuración de las banderas y otros factores.
Uso de sus modelos LoRA entrenados en el video de Hunyuan
Elegir puntos de control
Cuando finalice el entrenamiento, tendrá un punto de control modelo para cada época de entrenamiento.
Esta frecuencia de guardado puede ser cambiada por el usuario para guardar con mayor o menor frecuencia, según lo desee, modificando la --save_every_n_epochs (N)
número en el archivo BAT de entrenamiento. Si agregó una cifra baja para guardar por paso al configurar el entrenamiento con BAT, habrá una gran cantidad de archivos de puntos de control guardados.
¿Qué punto de control elegir?
Como se mencionó anteriormente, los primeros modelos entrenados serán los más flexibles, mientras que los puntos de control posteriores pueden ofrecer la mayor cantidad de detalles. La única forma de probar estos factores es ejecutar algunos de los LoRA y generar algunos videos. De esta manera podrás saber qué puntos de control son más productivos y representan el mejor equilibrio entre flexibilidad y fidelidad.
Cómoda interfaz de usuario
El entorno más popular (aunque no el único) para usar Hunyuan Video LoRA, en este momento, es ComfyUI, un editor basado en nodos con una elaborada interfaz Gradio que se ejecuta en su navegador web.
Fuente: https://github.com/comfyanonymous/ComfyUI
Las instrucciones de instalación son sencillas y están disponibles en el repositorio oficial de GitHub (se deberán descargar modelos adicionales).
Conversión de modelos para ComfyUI
Sus modelos entrenados se guardan en un formato (difusores) que no es compatible con la mayoría de las implementaciones de ComfyUI. Musubi puede convertir un modelo a un formato compatible con ComfyUI. Configuremos un archivo BAT para implementar esto.
Antes de ejecutar este BAT, cree el C:\Users\(Your Profile Name)\Desktop\Musubi\CONVERTED\
carpeta que espera el script.
@echo off
REM Activate the virtual environment
call C:\Users\(Your Profile Name)\Desktop\Musubi\musubi\Scripts\activate.bat
:START
REM Get user input
set /p INPUT_PATH=Enter the path to the input Musubi safetensors file (or type "exit" to quit):
REM Exit if the user types "exit"
if /i "%INPUT_PATH%"=="exit" goto END
REM Extract the file name from the input path and append 'converted' to it
for %%F in ("%INPUT_PATH%") do set FILENAME=%%~nF
set OUTPUT_PATH=C:\Users\(Your Profile Name)\Desktop\Musubi\Output Models\CONVERTED\%FILENAME%_converted.safetensors
set TARGET=other
echo You entered:
echo Input file: %INPUT_PATH%
echo Output file: %OUTPUT_PATH%
echo Target format: %TARGET%
set /p CONFIRM=Do you want to proceed with the conversion (y/n)?
if /i "%CONFIRM%"=="y" (
REM Run the conversion script with correctly quoted paths
python C:\Users\(Your Profile Name)\Desktop\Musubi\musubi\musubi-tuner\convert_lora.py --input "%INPUT_PATH%" --output "%OUTPUT_PATH%" --target %TARGET%
echo Conversion complete.
) else (
echo Operation canceled.
)
REM Return to start for another file
goto START
:END
REM Keep the window open
echo Exiting the script.
pause
Al igual que con los archivos BAT anteriores, guarde el script como “Todos los archivos” desde el Bloc de notas y asígnele el nombre convertir.bat (o lo que quieras).
Una vez guardado, haga doble clic en el nuevo archivo BAT, lo que le pedirá la ubicación del archivo para convertir.
Pegue o escriba la ruta al archivo entrenado que desea convertir, haga clic en y
y presione Intro.
Después de guardar el LoRA convertido en el CONVERTIDO carpeta, el script le preguntará si desea convertir otro archivo. Si desea probar varios puntos de control en ComfyUI, convierta una selección de los modelos.
Cuando haya convertido suficientes puntos de control, cierre la ventana de comando BAT.
Ahora puede copiar sus modelos convertidos en la carpeta models\loras en su instalación de ComfyUI.
Normalmente, la ubicación correcta es algo como:
C:\Users\(Your Profile Name)\Desktop\ComfyUI\models\loras\
Creación de LoRA de vídeo de Hunyuan en ComfyUI
Aunque los flujos de trabajo basados en nodos de ComfyUI parecen complejos al principio, las configuraciones de otros usuarios más expertos se pueden cargar arrastrando una imagen (creada con el ComfyUI del otro usuario) directamente a la ventana de ComfyUI. Los flujos de trabajo también se pueden exportar como archivos JSON, que se pueden importar manualmente o arrastrar a una ventana de ComfyUI.
Algunos flujos de trabajo importados tendrán dependencias que pueden no existir en su instalación. Por lo tanto, instale ComfyUI-Manager, que puede recuperar automáticamente los módulos faltantes.
Fuente: https://github.com/ltdrdata/ComfyUI-Manager
Para cargar uno de los flujos de trabajo utilizados para generar videos a partir de los modelos de este tutorial, descargue este archivo JSON y arrástrelo a su ventana de ComfyUI (aunque hay ejemplos de flujos de trabajo mucho mejores disponibles en las distintas comunidades de Reddit y Discord que han adoptado Hunyuan Video). y el mío está adaptado de uno de estos).
Este no es el lugar para un tutorial extenso sobre el uso de ComfyUI, pero vale la pena mencionar algunos de los parámetros cruciales que afectarán su resultado si descarga y usa el diseño JSON que vinculé anteriormente.
1) Ancho y Alto
Cuanto más grande sea la imagen, más tardará la generación y mayor será el riesgo de que se produzca un error de falta de memoria (OOM).
2) longitud
Este es el valor numérico del número de fotogramas. La cantidad de segundos que suma depende de la velocidad de fotogramas (establecida en 30 fps en este diseño). Puede convertir segundos>fotogramas según fps en Omnicalculator.
3) Tamaño del lote
Cuanto mayor sea el tamaño del lote, más rápido podrá llegar el resultado, pero mayor será la carga de VRAM. Si lo configuras demasiado alto, es posible que obtengas un OOM.
4) Control después de generar
Esto controla la semilla aleatoria. Las opciones para este subnodo son fijado, incremento, decremento y aleatorizar. Si lo dejas en fijado y no cambie el mensaje de texto, obtendrá la misma imagen cada vez. Si modifica el mensaje de texto, la imagen cambiará de forma limitada. El incremento y decremento La configuración le permite explorar valores de semillas cercanos, mientras aleatorizar le ofrece una interpretación totalmente nueva del mensaje.
5) Nombre de Lora
Deberá seleccionar aquí su propio modelo instalado antes de intentar generar.
6) Ficha
Si ha entrenado su modelo para activar el concepto con un token (como ‘persona-ejemplo’), coloque esa palabra desencadenante en su mensaje.
7) Pasos
Esto representa cuántos pasos aplicará el sistema al proceso de difusión. Los pasos más altos pueden obtener mejores detalles, pero hay un límite en la eficacia de este enfoque, y ese umbral puede ser difícil de encontrar. El rango común de pasos es alrededor de 20-30.
8) Tamaño del mosaico
Esto define cuánta información se maneja al mismo tiempo durante la generación. Está configurado en 256 de forma predeterminada. Aumentarlo puede acelerar la generación, pero aumentarlo demasiado puede llevar a una experiencia OOM particularmente frustrante, ya que llega al final de un largo proceso.
9) Superposición temporal
La generación de personas de Hunyuan Video puede provocar “fantasmas” o movimientos poco convincentes si se establece en un nivel demasiado bajo. En general, la opinión actual es que esto debería establecerse en un valor mayor que el número de fotogramas, para producir un mejor movimiento.
Conclusión
Aunque una mayor exploración del uso de ComfyUI está fuera del alcance de este artículo, la experiencia de la comunidad en Reddit y Discords puede facilitar la curva de aprendizaje, y existen varias guías en línea que presentan los conceptos básicos.
Publicado por primera vez el jueves 23 de enero de 2025.