hunyuan-npu-models
Modelos y app de Hunyuan NPU: generar vídeo con HunyuanVideo 1.5, FastHunyuan 13B y, desde la 0.3.0,
Wan 2.2 (TI2V-5B y T2V-A14B MoE; modelos en JiangFeng12/wan22-npu-models) en local, en la NPU
Hexagon v81 de los Snapdragon 8 Elite (Gen 5) — probado en un Nubia Z80 Ultra —, con stable-diffusion.cpp +
ggml-hexagon. Proyecto personal, no comercial, hecho con mucho cariño y poca paciencia.
⚠️ Restricción territorial (léelo primero). Los pesos de HunyuanVideo / HunyuanVideo 1.5 / FastHunyuan y sus derivados están bajo la Tencent Hunyuan Community License, que NO se aplica ni concede ningún derecho en la Unión Europea, el Reino Unido ni Corea del Sur. Si estás en uno de esos territorios, no descargues ni uses estos modelos. En el resto, úsalos sólo conforme a la licencia y a su Política de Uso Aceptable.
No es competencia de Nightmare Mobile 🙂
Este proyecto no pretende competir con Nightmare Mobile de AbrahamPaulJ, que es la referencia para generar imagen y vídeo en la NPU de los Snapdragon, ni con Local Dream (xororz). Al contrario: sin ellos esto no existiría. El motor DiT viene de Local Dream, con parches de Nightmare Mobile, y todo corre sobre el fork de stable-diffusion.cpp/ggml con Hexagon de happyyzy. Todo el mérito del trabajo duro es suyo; aquí sólo hemos atornillado HunyuanVideo encima.
¿Y por qué existe, entonces? Pues porque al autor le picaban las manos. No había pasado ni una semana desde que Nightmare Mobile añadió Wan 2.2 y aquí ya estábamos, incapaces de esperar sentados, metiendo HunyuanVideo en el móvil «a ver qué pasa». Si buscas algo pulido y mantenido, usa Nightmare Mobile. Si te gusta trastear con lo experimental, bienvenido al club de las manos inquietas.
Uso no comercial y aviso de responsabilidad
- No comercial por decisión del autor. La licencia de Tencent Hunyuan permite, en sí misma, el uso comercial por debajo de 100 millones de usuarios activos mensuales, pero este proyecto (app, convertidor y archivos convertidos) se ofrece sólo para uso no comercial. Además, parte del motor deriva de Local Dream y Nightmare Mobile, que son CC BY-NC 4.0 (no comercial). El código propio usa la PolyForm Noncommercial 1.0.0 (ver «Código fuente»).
- Aviso de responsabilidad. Todo se proporciona «tal cual», sin garantía de ningún tipo, expresa o implícita. El autor no se hace responsable del uso que cada persona haga de los modelos ni del contenido generado. Cada usuario es el único responsable de cumplir la Tencent Hunyuan Community License, su Política de Uso Aceptable, el resto de licencias indicadas aquí y las leyes de su país.
Apps
| app | archivo | tamaño | SHA-256 |
|---|---|---|---|
| Hunyuan NPU 0.3.2 (generar vídeo: HunyuanVideo y Wan 2.2; importa modelos Wan propios) | apk/hunyuan-npu-0.3.2-release.apk | 47.3 MB | a25b7b37ba38e9b2bff3642545de26b1ce595320582c782688eb044ada695b41 |
| Hunyuan NPU Forja 0.2.0 (convertidor en el móvil: HunyuanVideo y Wan 2.2 propios) | apk/hunyuan-npu-forja-0.2.0-release.apk | 21.8 MB | 7e348b62e270c3cc250b780775c28debb73721d0abc909804e39712f9d892a92 |
| Convertidor de escritorio Linux (0.1.0, sólo HunyuanVideo) | converter/linux/hnpu-convert | 75.8 MB | f65ef65af72255598efd2586a2d4b85a545cdca28687cf5cc48b835fb0dbbdd2 |
| Convertidor de escritorio Windows (0.1.0, sólo HunyuanVideo) | converter/windows/hnpu-convert.exe | 38.6 MB | d5b779131a4248bb3f9ede46b785fe32ca35baccd1f6e3deadc69357ceba7343 |
| Código fuente de todo | source/hunyuan-npu-src-0.3.2-forja-0.2.0.tar.gz · carpeta source/hunyuan-npu/ | ver «Código fuente» |
Las dos apps: Android 15+ (minSdk 35), arm64-v8a, interfaz en español, sin permiso de internet, firmadas con la misma
clave personal (certificado SHA-256 dc432750a07edc40fb26e6ee24b3690042dcc6fdec337984a0294aa3e1cac2fc).
- Hunyuan NPU: genera vídeo en la NPU Hexagon v81 o la CPU. Descargas los modelos desde aquí con el navegador y los
importas en la pestaña Modelos (cada componente tiene un botón que abre su página en Hugging Face y otro
«Importar» que comprueba tamaño y SHA-256). También detecta sola los archivos que dejes en
Download/HunyuanNPU/. Las versiones 0.1.x y 0.2.0 siguen enapk/por historial (no uses la 0.2.0 para 13B: ver «Estado en el móvil»). - Wan 2.2 (desde 0.3.0): los modelos Wan están en otro repo,
JiangFeng12/wan22-npu-models(Apache-2.0). En la pestaña Modelos aparecen «Wan 2.2 TI2V-5B» y «Wan 2.2 T2V-A14B (MoE)» con enlace a ese repo; se importan igual (comprobando tamaño y SHA-256). Ver la guía de importación y «Estado en el móvil». - Hunyuan NPU Forja: convierte en el móvil un checkpoint de HunyuanVideo 1.5 o 13B / FastHunyuan (safetensors normal,
fragmentado o carpeta diffusers,
.pt/.bin/.ckpt, GGUF F16/BF16; fp16/bf16/fp32/fp8 y fp8 escalado) a IQ4_NL / Q4_0, guardándolo por defecto enDownload/HunyuanNPU/. El resultado es idéntico byte a byte al del convertidor de escritorio (mismo código de cuantización de ggml). Servicio en primer plano con progreso, tiempo restante y cancelar; SHA-256, informe.jsony verificación de la cabecera al terminar. - Forja 0.2.0: modelos Wan 2.2 propios (fine-tunes / fusiones de TI2V-5B y T2V-A14B):
- Entradas: safetensors de un archivo (claves de ComfyUI
model.diffusion_model.o sin prefijo), carpetas diffusers fragmentadas (transformer/, ytransformer_2/para A14B), fp16 / bf16 / fp8 (e4m3fn / e5m2, con o sin escalas) y GGUF existentes (se recuantizan, o se copian tal cual si ya están en el tipo pedido). - A14B: los dos expertos (ruido alto / bajo) se emparejan solos por el nombre (
high_noise/low_noise). Un único experto se rechaza salvo que marques «Sólo este experto» (para sustituir sólo ese en la app). - Se detecta el modelo por las formas de los tensores; Wan 2.1 1.3B, HunyuanVideo u otros se rechazan con un mensaje en español. I2V-A14B se convierte, pero la app aún no lo usa (aviso).
- LoRAs horneadas (opcional): mismas claves que la app (ComfyUI, Kohya, diffusers, PEFT); en A14B cada LoRA va a su experto (ruido bajo / alto).
- Salida IQ4_NL (por defecto) o Q4_0 con la misma política de tipos que los GGUF oficiales (mismos nombres, tipos
y formas), metadatos
hnpu.wan.*y un manifiesto.hnpu.jsonque la app 0.3.2 importa de una vez (Modelos → Modelos personalizados: comprueba cabeceras, tamaños y empareja los dos expertos de A14B). - Validado: un GGUF oficial reconstruido a bf16 y convertido da los mismos nombres, tipos y formas que el oficial (SNR de pesos 43,8 dB; vídeo de prueba en CPU 160x96x5, 4 pasos: PSNR 33,6 dB frente al oficial); el GGUF oficial pasa idéntico; escritorio y Forja dan archivos idénticos byte a byte en 17 casos de Wan y 28 de HunyuanVideo.
- Los convertidores de escritorio publicados (
converter/linux,converter/windows) siguen en 0.1.0 (sólo HunyuanVideo). Para Wan en el PC usa el código fuente:python -m hnpu_converter(verconverter/README.md).
- Entradas: safetensors de un archivo (claves de ComfyUI
Guía de importación
Descarga un archivo por fila (elige IQ4_NL o Q4_0 donde hay dos; IQ4_NL es el recomendado para la NPU) y luego impórtalo en la app. Los componentes compartidos (p. ej. el codificador de texto de HV 1.5) sólo hacen falta una vez.
Ajustes recomendados: HV 1.5 T2V con la LoRA lightx2v → 4 pasos, cfg 1, shift 7. FastHunyuan 13B → 6 pasos, guidance embebido 6, flow shift 17, cfg 1. Wan 2.2: la app pone los valores oficiales (5B: 20 pasos, cfg 5, shift 5, 24 fps; A14B: 20 pasos, cfg 3 bajo / 4 alto, shift 12, cambio de experto en 0,875, 16 fps; negativo oficial). Validado en CPU x86 con el mismo motor (13B: DiT, codificador de texto y CLIP comparados numéricamente con diffusers/transformers: corr 0,99999 / 0,994 / 0,999999). El set 13B se ha probado ya en la NPU de un Nubia Z80 Ultra: ver «Estado en el móvil».
Estado en el móvil (Nubia Z80 Ultra, Snapdragon 8 Elite Gen 5)
-
Primer resultado real (app 0.2.0): FastHunyuan 13B IQ4_NL + LoRA AnimeShots, 480x272x9, 4 pasos, todo en la NPU: el codificador de texto (9,1 s) y el DiT (~8,4 s/paso, 43 s en total, RAM pico 4,2 GB) funcionaron, pero el vídeo salió gris y plano. Causa: el VAE (TAEHV) en la NPU. El kernel de convolución HMX de Hexagon sólo acepta un fotograma por llamada y TAEHV convoluciona todos los fotogramas a la vez, así que esas convoluciones caían a otro camino que lee los pesos ya reordenados para HMX → valores basura. Con los mismos ajustes en CPU (PC) sale el zorro.
-
0.2.1: arreglo del VAE en la NPU (una convolución por fotograma) y procesador por componente en Ajustes (DiT, codificador de texto, VAE). En el móvil el VAE en la NPU ya decodifica bien, pero con todo en la NPU el 13B daba ruido de colores: el diagnóstico mostró NaN/±65504 en la salida del DiT desde el paso 2.
-
Causa (reproducida en el PC emulando la NPU): la NPU multiplica matrices en F16 (máx. 65504). En el 13B la proyección de bajada del MLP de texto del último bloque doble (
double_blocks.19.txt_mlp.2) produce 5,2·10⁴ en el paso 1 y 1,7·10⁵ en el paso 2 → infinito → NaN en todo lo que sigue. Ninguna otra capa pasa de ~4000; la LoRA no es la causa (sale igual sin LoRA). El flujo residual llega a 2,7·10⁶, pero va en F32 y no da problemas. -
0.2.2: modo seguro F16 (Ajustes; «Normal» por defecto): esa capa divide su entrada entre 128 antes de multiplicar y reescala el resultado en F32 (exacto, potencia de 2). Sólo procesa los ~17 tokens de texto, así que no cuesta tiempo. «Reforzado» reescala además todas las proyecciones grandes del DiT (~5 % más lento, por si con otros ajustes vuelve a salir ruido). En el PC, emulando el F16 de la NPU, deja de haber NaN. El VAE vuelve a la NPU por defecto (puedes elegir CPU). El «F32 total» es poner el DiT en CPU (mucho más lento). HunyuanVideo 1.5 usa el mismo modo; no se ha visto el fallo en él, pero conviene probarlo.
-
0.2.2 confirmado en el móvil: 13B todo en la NPU, modo «Normal», 480x272x9, 4 pasos, LoRA@1.0 → vídeo coherente (oso/zorro borroso en la nieve), sin NaN, 61 s en total, 8,4 s/paso, RAM pico 3336 MB.
-
Sin memoria a 848x480x33 (código 137, Android mata el proceso). Medido en el PC, lo que más memoria gasta es: (1) el VAE TAEHV, que decodificaba todos los fotogramas de golpe (20,7 GB a 848x480x33 en el 13B); (2) los pesos del DiT cargados enteros en un solo segmento, porque nunca se fijaba un presupuesto; (3) las activaciones de los bloques simples del DiT (2,9 GB por segmento).
-
0.2.3:
- Por trozos de tokens: el MLP de los bloques simples y dobles se procesa en trozos de 2048 tokens a partir de 6144 tokens (DiT a 848x480x33: de 3040 a 2129 MB).
- Presupuesto de memoria: el motor recibe
--mem-budget, divide el DiT en segmentos que caben y reparte el VAE en teselas (temporales y espaciales). En el PC el resultado es casi idéntico (PSNR 46,9 dB). - Ajustes → «Límite de RAM para la app»: auto ≈ 70 % de la RAM libre. Se muestra la RAM en vivo.
- Comprobación antes de generar: estima el pico y avisa o bloquea con sugerencias si no cabe.
- Nueva pestaña LORAS, estilo Civitai: secciones por modelo base, palabras clave sacadas de los metadatos o editables (importar/exportar JSON) y chips bajo «Generar» para añadirlas al prompt o quitarlas.
Tamaño (13B) Todo cargado (estimado) Con segmentos + teselas (estimado) Estado 480x272x9 8,8 GB 2,3 GB probado en el móvil (0.2.2: 3,3 GB) 640x368x17 9,4 GB 2,4 GB debería funcionar (por probar) 848x480x17 12,7 GB 2,6 GB debería funcionar (por probar) 848x480x33 20,1 GB 3,5 GB debería funcionar (por probar); fallaba en 0.2.2 HunyuanVideo 1.5: de 6,1 a 6,9 GB con todo cargado y unos 2,4 GB con segmentos. Con un límite más bajo va más lento (más segmentos). Si 480x272x9 tarda más que los 61 s de antes, sube el límite en Ajustes.
-
0.2.3 en el móvil: 13B 848x480x33, 8 pasos, LoRA AnimeShots@0.895, todo en la NPU, límite de 6,0 GB: ya no se queda sin memoria. Terminó el paso 1/8 sin NaN, con RSS pico de 3439 MB, pero iba lento. El DiT quedaba partido en 62 segmentos y, en cada segmento y cada paso, volvía a leer de disco los pesos del bloque y la LoRA y a preparar y soltar los buffers de la NPU. Usaba muy poco del presupuesto, y la línea «RAM del sistema» llenaba el registro.
-
0.2.4 (planificador de segmentos):
- La LoRA se carga una sola vez y queda residente; antes se releía el archivo en cada segmento. Es la mitad de la sobrecarga.
- Varios bloques por segmento (4 o 2 según el tamaño y el presupuesto): 17 segmentos en lugar de 62, con el mismo pico de memoria.
- Lo que cabe se queda cargado entre pasos (los primeros segmentos) y sólo se lee de disco el resto. Al faltar memoria se sueltan antes los pesos que el espacio de trabajo, así no se reasignan los buffers en cada paso.
- En el PC sale el mismo vídeo bit a bit. La carga por paso baja de 17,5 s a 3,8 s (480x272x9) y de 22 s a unos 4 s (848x480x33).
- Estimación para el móvil a 848x480x33: unos 110–115 s/paso, frente a unos 135 s con 0.2.3. Casi todo es ya cálculo puro en la NPU (≈105 s/paso).
- Progreso nuevo: fases (cargando → codificador de texto → paso N/M → VAE tesela k/K → guardando). La barra de pasos avanza también dentro de cada paso, por segmento, y se muestran el tiempo transcurrido, los s/paso y la hora estimada de fin.
- El registro de RAM sale como mucho cada 10 s o cuando cambia más de 0,3 GB. Cada paso deja una línea compacta
(
## paso N/M: s · segmentos, residente/desde disco MB).@@MEMPLANaparece siempre al principio e incluyeseg_group. - Qué probar: 848x480x33 con 8 pasos, y enviar las líneas
@@MEMPLAN,## pasoy[plan]. En 480x272x9, si va más lento que los 61 s de 0.2.2, sube el límite de RAM en Ajustes.
-
0.2.4 confirmado en el móvil: 13B 848x480x33, 8 pasos, LoRA AnimeShots@0.895, todo en la NPU, presupuesto 5,5 GB: vídeo correcto (chica anime, la LoRA se nota), sin NaN, 2203 s en total, ~237–262 s/paso, de los que sólo ~10 s/paso son carga (17 segmentos, 1,7 GB residentes, 6,0 GB leídos por paso, pico de cálculo 2777 MB), RSS pico 4,8 GB. El móvil estaba en modo ahorro de batería, así que el tiempo no es representativo (estimado sin él: ~110–115 s/paso).
-
0.2.5 (interfaz):
- Generar con deslizadores: ancho y alto en múltiplos de 16 (256–1280, proporciones 16:9 / 9:16 / 1:1 / 4:3 / 3:4 y candado), fotogramas en valores 4n+1 (5–129) y FPS del MP4 (8–30; no cambia el cálculo). Debajo, una estimación en vivo de memoria, paquetes del DiT y tiempo (s/paso y total, aproximados).
- Paquetes de memoria según la RAM asignada: la app elige cuántos bloques del DiT van en cada segmento (1, 2 o 4) y cuánto queda residente a partir del presupuesto. Más RAM = más bloques residentes y menos lecturas por paso (848x480x33: 1,7 GB residentes con 5,5 GB, medido; ~5,6 GB con un límite de 10 GB, estimado).
- Límite de RAM según la RAM del móvil: 16 GB (MemTotal ~13–17,5 GB) → máximo 10 GB; 12 GB → 8 GB; más de 16 GB → sin tope; menos → 60 %. Opción en Ajustes para usar el límite aunque supere la RAM libre.
- Arreglado: al ir a otra pestaña y volver, el formulario se reiniciaba (parecía que la generación se perdía). El formulario se guarda ahora fuera de la pantalla (sobrevive a pestañas, giros y reinicios de la app). La generación sigue en el servicio en primer plano con su notificación de progreso, y al volver se muestra arriba.
- Modelos personalizados (pestaña Modelos): importa tus propios fine-tunes (DiT GGUF IQ4_NL / Q4_0 de 1.5 T2V/I2V o 13B y, opcionalmente, codificador de texto o VAE). La arquitectura se detecta leyendo la cabecera del archivo, sin cargar los pesos. Les pones nombre, se comprueba que estén los demás componentes, y aparecen en «Generar» junto al modelo base, que no se toca. Sólo se pueden borrar los tuyos. Las LoRAs se aplican según la familia base.
- Qué probar: cambiar de pestaña durante una generación; los deslizadores y la estimación; el tope de RAM en
Ajustes (debería ofrecer hasta 10 GB) y, con 8–10 GB, 848x480x33 sin ahorro de batería (enviar las líneas
@@MEMPLAN,## plan de memoriay## paso); importar un GGUF propio desde Download/HunyuanNPU/custom.
-
0.2.6: la RAM en Ajustes y en la estimación de «Generar» refleja el límite asignado: «RAM usable total» (MemAvailable), «Asignada a la app» y «Disponible (restante)». Hay una barra (usada por el sistema / asignada / restante), aviso en rojo si lo asignado supera lo usable, y se actualiza al mover el deslizador y cada ~2 s.
-
0.3.0 (Wan 2.2): nuevos modelos Wan 2.2 TI2V-5B y Wan 2.2 T2V-A14B (MoE), con archivos en
JiangFeng12/wan22-npu-models(se importan en Modelos).- Valores oficiales al elegir el modelo (5B: 20 pasos, cfg 5, shift 5, 24 fps, 640x352; A14B: 20 pasos, cfg 3 / 4 con ruido alto, shift 12, frontera 0,875, 16 fps, 480x272) y negativo oficial. Resolución en múltiplos de 32 (5B) o 16 (A14B), fotogramas 4n+1.
- A14B: ajustes MoE (frontera, cfg alto/bajo, «pasos ruido alto/bajo» en vivo). Sólo un experto en memoria: el de ruido alto se descarga entero antes de cargar el de ruido bajo, y cada uno se trocea con el límite de RAM. El progreso muestra qué experto trabaja.
- umT5 en la CPU por defecto (en la NPU su residuo llega a ~37 500, cerca del máximo de F16) y Q8_0 recomendado: IQ4_NL se aleja bastante (coseno ~0,90 por token).
- Decodificador: TAEHV (
taew2_2/taew2_1) por defecto si el VAE completo no cabe. En el PC: 27 veces más rápido que el VAE completo de Wan 2.2 y visualmente casi igual. El VAE completo (opcional) va por teselas y en la CPU. - LoRAs de Wan (secciones 5B, A14B alto y A14B bajo), detección de GGUF de Wan propios y estimación de memoria/tiempo.
- Probado en el PC (CPU y simulación de dispositivo con límite de RAM); aún no en el móvil. Estimado en la NPU: 5B 480x288x9 ≈ 1,5 s/paso; A14B 480x272x17 ≈ 27 s/paso.
- Qué probar primero (con refrigerador): Wan 2.2 TI2V-5B, taew2_2, umT5 Q8_0 en CPU, 480x288x9, 20 pasos;
luego A14B a 480x272x9 con 8 pasos. Enviar las líneas
@@MEMPLAN,[moe],[plan]y## paso.
-
0.3.1 (LoRAs de Wan y registro opcional):
- LoRAs para Wan 2.2 TI2V-5B y Wan 2.2 A14B, con importación, peso y palabras clave como en HunyuanVideo.
En A14B cada experto lleva su LoRA y su peso: sección «ruido alto», «ruido bajo» o «ambos expertos» (p. ej.
LoRAs de Wan 2.1 14B, que encajan en A14B). Al elegir
…high_noise…se rellena sola la pareja…low_noise…. - Formatos de claves: ComfyUI (
diffusion_model.), Kohya (lora_unet_), diffusers (transformer.…attn1/attn2) y PEFT (lora_A/lora_B), además delora_down/lora_upconalpha. - Corregido en el motor (parche 110): la LoRA del experto de ruido alto no se aplicaba (0.3.0 la ignoraba) y el formato diffusers de Wan no se reconocía. Cada experto tiene su propio adaptador; las LoRAs se quedan cargadas entre segmentos y la del experto alto se descarga con él en el cambio de experto. El registro dice cuántos tensores se aplicaron en cada experto.
- LoRAs incompatibles se rechazan con un mensaje claro (Wan 14B en 5B, 5B en A14B, Wan 2.1 1.3B, HunyuanVideo en Wan).
- Ajustes → «Guardar log de inferencias» (activado por defecto). Si lo desactivas, no se guarda ningún archivo de registro ni se guarda el registro completo en memoria (el progreso sigue igual). Botón «Borrar logs».
- LoRAs para Wan 2.2 TI2V-5B y Wan 2.2 A14B, con importación, peso y palabras clave como en HunyuanVideo.
En A14B cada experto lleva su LoRA y su peso: sección «ruido alto», «ruido bajo» o «ambos expertos» (p. ej.
LoRAs de Wan 2.1 14B, que encajan en A14B). Al elegir
-
Pruebas en el móvil aplazadas hasta tener un ventilador o refrigerador: el móvil se calentó incluso en ahorro de batería.
-
El registro incluye diagnóstico numérico (NaN/Inf, mín/máx/media del texto, de cada paso y de los fotogramas) y se guarda entero en
Download/HunyuanNPU/registros/. -
0.3.2 (modelos Wan propios de Forja 0.2.0): la pestaña Modelos → Modelos personalizados encuentra los manifiestos
.hnpu.jsonde Forja / el convertidor (enDownload/HunyuanNPU/customyDownload/HunyuanNPU/) y los importa de una vez: comprueba cada cabecera frente al manifiesto, marca el papel (5B, A14B ruido alto / bajo) y empareja los dos expertos; al elegir un experto propio se selecciona solo su pareja. Los GGUF conhnpu.wan.expertse reconocen sin preguntar; I2V-A14B se detecta y se avisa de que aún no está soportado. -
Con 4 pasos el 13B sale algo borroso: usa 6 pasos (el valor por defecto).
Convertidor de escritorio (converter/)
¿Tienes un fine-tune o un checkpoint con una LoRA fusionada? El convertidor lo pasa al GGUF IQ4_NL o Q4_0 que entiende la app (interfaz gráfica en español + línea de comandos):
- Ejecutables 0.1.0 (sólo HunyuanVideo): Linux x86_64
converter/linux/hnpu-convert· Windows 10/11converter/windows/hnpu-convert.exe - Uso: abre el programa, arrastra el
.safetensors/carpeta, elige cuantización y Convertir; o bienhnpu-convert modelo.safetensors -o salida/ -t iq4_nl. Detalles y limitaciones enconverter/README.md. - Wan 2.2 propio (convertidor 0.2.0, desde el código fuente):
python -m hnpu_converter mi_wan5b.safetensors -o salida/; A14B:python -m hnpu_converter mi_high_noise.safetensors mi_low_noise.safetensors -o salida/(o sólo uno de los dos: busca la pareja en la misma carpeta); LoRAs horneadas:--lora a.safetensors=0.8 --lora-high b.safetensors. Escribe también el manifiesto.hnpu.jsonpara la app. O usa Forja 0.2.0 en el móvil. - Luego copia el
.gguf(y el.hnpu.jsonsi es Wan) al móvil, aDownload/HunyuanNPU/custom/, e impórtalo en la pestaña Modelos. - Recuerda: un modelo convertido sigue sujeto a la licencia del original.
Código fuente
Todo el código (app Hunyuan NPU, app Hunyuan NPU Forja y el convertidor de escritorio) está aquí para que cualquiera lo lea, lo use y lo modifique:
- Navegable:
source/hunyuan-npu/—android/(app Kotlin/Compose),forja/(app Forja: núcleo Kotlincore/+ JNInative/),converter/(convertidor de escritorio),engine/(motor DiT),patches/,scripts/,tools/,docs/. - Archivo:
source/hunyuan-npu-src-0.3.2-forja-0.2.0.tar.gz, SHA-2569ee0d912d43f726836d66b4e1416c6569077bfe55891abcf1cf24ecc50923012(git archive: app 0.3.2 + Forja 0.2.0 + convertidor 0.2.0). Las versiones anteriores (source/hunyuan-npu-src-0.2.0*.tar.gz,…-0.2.1-…,…-0.2.3-…,…-0.2.4-…,…-0.2.5-…,…-0.2.6-…,…-0.3.0-…,…-0.3.1-…) se conservan. - Cómo compilar (en español):
source/hunyuan-npu/docs/BUILD.md— NDK 29.0.14206865, Hexagon SDK 6.6 (lo consigues tú, no se redistribuye),scripts/setup-sources.shdescarga stable-diffusion.cpp/ggml de happyyzy en revisiones fijas; la firma de release usa tu propia clave. - Licencia del código propio: PolyForm Noncommercial 1.0.0 — puedes leerlo,
usarlo, modificarlo y compartirlo para cualquier fin no comercial, manteniendo la licencia y el aviso de copyright.
El autor podría cambiarla en el futuro. El motor derivado de Local Dream / Nightmare Mobile y sus parches siguen en
CC BY-NC 4.0, y stable-diffusion.cpp/ggml en MIT (ver
NOTICE.md,LICENSES/). - No incluye: claves de firma ni contraseñas, el Hexagon SDK de Qualcomm, modelos ni builds intermedios.
Licencias
- Tencent Hunyuan Community License. HunyuanVideo 1.5, HunyuanVideo / FastHunyuan y sus derivados de este repo
(
hv15/dit,hv15/text_encoder/byt5…,hv15/lora,hv13b/dit) son materiales Tencent Hunyuan (licenses/TENCENT_HUNYUAN_VIDEO_1.5_LICENSE.txt,licenses/TENCENT_HUNYUAN_VIDEO_LICENSE.txt,licenses/FASTHUNYUAN_NOTICE.txt). “Tencent Hunyuan is licensed under the Tencent Hunyuan Community License Agreement, Copyright © 2024/2025 Tencent. All Rights Reserved. The trademark rights of “Tencent Hunyuan” are owned by Tencent or its affiliate.” Territorio: no aplica en la UE, el Reino Unido ni Corea del Sur. - Meta Llama 3. El codificador de texto de HunyuanVideo 13B es LLaVA-Llama-3-8B: Built with Meta Llama 3,
Meta Llama 3 Community License (
licenses/META_LLAMA_3_LICENSE.txt); los archivos empiezan por “Llama-3”. - Wan 2.2 y umT5-XXL (repo aparte
wan22-npu-models): Apache-2.0, © Wan Team / Alibaba y Google. TAEHVtaew2_1/taew2_2: MIT, © Ollin Boer Bohan. Sin restricción territorial; uso no comercial por decisión del autor. - Qwen2.5-VL: Apache-2.0 (
licenses/APACHE-2.0.txt). CLIP-L: MIT (licenses/OPENAI_CLIP_MIT_LICENSE.txt). TAEHV: MIT, © Ollin Boer Bohan (licenses/TAEHV_MIT_LICENSE.txt). LoRA AnimeShots: MIT, © trojblue (licenses/ANIMESHOTS_LORA_MIT.txt). Destilación lightx2v de 4 pasos: lightx2v (Apache-2.0); la LoRA es un derivado de HunyuanVideo 1.5. - Código: propio bajo PolyForm Noncommercial 1.0.0; la app incluye stable-diffusion.cpp/ggml (MIT) y el motor DiT de Local Dream con parches de Nightmare Mobile (CC BY-NC 4.0, licencia verificada en sus repositorios).
- No se incluye ningún contenido de CivitAI.
Archivos
| ruta | tamaño | qué es | origen | licencia |
|---|---|---|---|---|
hv15/dit/hunyuanvideo1.5_480p_t2v_cfg_distilled-iq4_nl.gguf | 4.91 GB | HunyuanVideo 1.5 T2V 480p (CFG-distilled) DiT, IQ4_NL, 1-D norms F32 | Comfy-Org/HunyuanVideo_1.5_repackaged (fp16), converted with hunyuan-npu sd.cpp | Tencent Hunyuan Community |
hv15/dit/hunyuanvideo1.5_480p_t2v_cfg_distilled-q4_0.gguf | 4.91 GB | same, Q4_0 | same | Tencent Hunyuan Community |
hv15/dit/hunyuanvideo1.5_480p_i2v_step_distilled-iq4_nl.gguf | 4.91 GB | HunyuanVideo 1.5 I2V 480p (step-distilled) DiT, IQ4_NL | same | Tencent Hunyuan Community |
hv15/dit/hunyuanvideo1.5_480p_i2v_step_distilled-q4_0.gguf | 4.91 GB | same, Q4_0 | same | Tencent Hunyuan Community |
hv15/text_encoder/qwen2.5-vl-7b-hnpu-iq4_nl.gguf | 4.87 GB | Qwen2.5-VL-7B text encoder, pure IQ4_NL for all text-path matmuls (NPU-clean) | Comfy-Org/HunyuanVideo_1.5_repackaged qwen_2.5_vl_7b.safetensors (BF16) | Apache-2.0 (Qwen) |
hv15/text_encoder/Qwen_Qwen2.5-VL-7B-Instruct-Q4_0.gguf | 4.44 GB | Qwen2.5-VL-7B Q4_0 (alternative; only unused output.weight is K-quant) | bartowski/Qwen_Qwen2.5-VL-7B-Instruct-GGUF (unmodified) | Apache-2.0 (Qwen) |
hv15/text_encoder/byt5_small_glyphxl_fp16.safetensors | 0.44 GB | ByT5-small Glyph encoder | Comfy-Org/HunyuanVideo_1.5_repackaged (unmodified) | Tencent Hunyuan Community |
hv15/vae/taehv1_5.safetensors | 0.02 GB | TAEHV 1.5 tiny VAE decoder | madebyollin/taehv (unmodified) | MIT |
hv15/lora/hunyuanvideo1.5_t2v_480p_lightx2v_4step_lora_rank_32_bf16.safetensors | 0.34 GB | lightx2v 4-step distill LoRA (rank 32) for HV 1.5 T2V | Comfy-Org/HunyuanVideo_1.5_repackaged (unmodified); distill by lightx2v (Apache-2.0) | Tencent Hunyuan Community (derivative of HV 1.5); lightx2v work Apache-2.0 |
hv13b/dit/fast-hunyuan-13b-t2v-hnpu-iq4_nl.gguf | 7.74 GB | FastHunyuan 13B T2V 720p DiT, IQ4_NL (preferred for the NPU), 1-D norms F32 | FastVideo/FastHunyuan-diffusers transformer (BF16), streamed and converted with hunyuan-npu sd.cpp | Tencent Hunyuan Community |
hv13b/dit/fast-hunyuan-13b-t2v-hnpu-q4_0.gguf | 7.74 GB | FastHunyuan 13B T2V 720p DiT, Q4_0 (img_in reshaped 5-D -> 4-D for ggml) | city96/FastHunyuan-gguf Q4_0 (FastVideo/FastHunyuan) | Tencent Hunyuan Community |
hv13b/text_encoder/Llama-3-LLaVA-8B-hv13b-te-hnpu-q4_0.gguf | 4.52 GB | LLaVA-Llama-3-8B text encoder of HunyuanVideo (LLM part), Q4_0, norms F32, HF (non-permuted) q/k layout | Comfy-Org/HunyuanVideo_repackaged llava_llama3_fp16.safetensors | Meta Llama 3 Community License (Built with Meta Llama 3) + Tencent Hunyuan Community |
hv13b/text_encoder/Llama-3-LLaVA-8B-hv13b-te-hnpu-iq4_nl.gguf | 4.52 GB | same, IQ4_NL | same | same |
hv13b/text_encoder/clip_l.safetensors | 0.25 GB | CLIP ViT-L/14 text encoder (pooled output -> vector_in) | Comfy-Org/HunyuanVideo_repackaged (unmodified) | MIT (OpenAI CLIP) |
hv13b/vae/taehv.safetensors | 0.02 GB | TAEHV tiny VAE decoder for HunyuanVideo (16-ch latents) | madebyollin/taehv (unmodified) | MIT |
hv13b/lora/hv13b_animeshots_v0.1.safetensors | 0.32 GB | AnimeShots v0.1 style LoRA for HunyuanVideo 13B (test LoRA), by trojblue | trojblue/HunyuanVideo-lora-AnimeShots v0.1 (unmodified) | MIT (c) trojblue |
SHA256
7e348b62e270c3cc250b780775c28debb73721d0abc909804e39712f9d892a92 apk/hunyuan-npu-forja-0.2.0-release.apk
5c9680ab389cd73dc2a1e32e3cc056b0aea87aab05fca381917cdfa242eac336 apk/hunyuan-npu-forja-0.1.0-release.apk
a25b7b37ba38e9b2bff3642545de26b1ce595320582c782688eb044ada695b41 apk/hunyuan-npu-0.3.2-release.apk
02860ad6a83238511f359c41af98ec8ad5cd92a38061147c8b35776c54dc20a9 apk/hunyuan-npu-0.3.1-release.apk
6cb60247675694ead5ea981c8fe3838f511f5dac563444ddf2b582a9ae4ed8e4 apk/hunyuan-npu-0.3.0-release.apk
6f2f79f7c60730c64a71c6b7515ca3d0fbeeec0b137473fbc806c52701c85f44 apk/hunyuan-npu-0.2.6-release.apk
825463e49f94c835a9628e9d000ee08605ff04000d329e71a3ef91219b41beed apk/hunyuan-npu-0.2.5-release.apk
a314a1acf6e7d3984633e630575b3988f32828441c3aa33951cb133bc0132f04 apk/hunyuan-npu-0.2.4-release.apk
9fd6c8d340d5f0f3d8f72eaee74fc49a86c148724e0d15f479b3a4d5ba4aa776 apk/hunyuan-npu-0.2.3-release.apk
82a99ad3f364950d914cd40344c58a934e61be5259ffb15c4a64457d34993d9c apk/hunyuan-npu-0.2.2-release.apk
23eb2d7714e4b6188648ff770026494499cad07f32aa6ce59d9ec46c733cdf9b apk/hunyuan-npu-0.2.1-release.apk
478bdfd103ff697a44facb70d6cea3e1d37c237b0b1bba872f53f28222bfa906 apk/hunyuan-npu-0.2.0-release.apk
7d0221590b024198c715d8b9ba89f850b0e02add9a1e0efbfa750ecfaf22c3df apk/hunyuan-npu-0.1.1-release.apk
dfc51e862fd08df5860462c7c3687c5d5464baaaae8cba7242f804d5ca55212d apk/hunyuan-npu-0.1.0-release.apk
92b23b308b6e2848f7fb39536b55e9d699346c16fbb2c8c889d47c5c4d61e203 hv13b/dit/fast-hunyuan-13b-t2v-hnpu-iq4_nl.gguf
88186fd5c09aeccd78ed435244b1f4c8f5a6a187171f015ed6fd09118fd0af54 hv13b/dit/fast-hunyuan-13b-t2v-hnpu-q4_0.gguf
55eaaaea0420811a2bcd3225a616a6694c696a433843ca71421926309a32faff hv13b/lora/hv13b_animeshots_v0.1.safetensors
660c6f5b1abae9dc498ac2d21e1347d2abdb0cf6c0c0c8576cd796491d9a6cdd hv13b/text_encoder/clip_l.safetensors
e00610841b6f48d1d9e20f9fb402271717e485797e8219f88d2a4a6e532c67d3 hv13b/text_encoder/Llama-3-LLaVA-8B-hv13b-te-hnpu-iq4_nl.gguf
001911f969ceb75a038a6171c02c9e9f2944980f2a9e212ca8fb2f6261b301d0 hv13b/text_encoder/Llama-3-LLaVA-8B-hv13b-te-hnpu-q4_0.gguf
032ad4ddc689513287ce02fcc099b5278592526ed1eac0324a7fab94bb690ed9 hv13b/vae/taehv.safetensors
ed2fb7e4c9e6c7aea72b6dec0aff0f9e21f83dc09ad109fecc997a879f22fa1c hv15/dit/hunyuanvideo1.5_480p_i2v_step_distilled-iq4_nl.gguf
d56a41a7126ad554ed47557a2cbc00f6e38e31caa1085d42ae2c7b234d25a012 hv15/dit/hunyuanvideo1.5_480p_i2v_step_distilled-q4_0.gguf
8e838daf379227e96a1b79b9728899020e4b649d0368830e89ba47ae1bc3c90e hv15/dit/hunyuanvideo1.5_480p_t2v_cfg_distilled-iq4_nl.gguf
61437649db01370ebe4a7ea523f2e6c7a25308a5585ec76abe562c18583bd3a0 hv15/dit/hunyuanvideo1.5_480p_t2v_cfg_distilled-q4_0.gguf
8fef6f9b9f2f6aa5259166e78b10a022485391dababc6a8c68585fddd31d5d62 hv15/lora/hunyuanvideo1.5_t2v_480p_lightx2v_4step_lora_rank_32_bf16.safetensors
ce54f09487edf01bccca242a488012d1764d8813de33d15195b5fb39021df733 hv15/text_encoder/Qwen_Qwen2.5-VL-7B-Instruct-Q4_0.gguf
516910bb4c9b225370290e40585d1b0e6c8cd3583690f7eec2f7fb593990fb48 hv15/text_encoder/byt5_small_glyphxl_fp16.safetensors
09182981b3b4eafe80eb0f85f99ab4652a5d839fd979316770adc36cf23c42b4 hv15/text_encoder/qwen2.5-vl-7b-hnpu-iq4_nl.gguf
b52e245bb86c62e159f50338e2e8f422d4b6f98b467164939c1c031c7d61352e hv15/vae/taehv1_5.safetensors
f65ef65af72255598efd2586a2d4b85a545cdca28687cf5cc48b835fb0dbbdd2 converter/linux/hnpu-convert
d5b779131a4248bb3f9ede46b785fe32ca35baccd1f6e3deadc69357ceba7343 converter/windows/hnpu-convert.exe
9ee0d912d43f726836d66b4e1416c6569077bfe55891abcf1cf24ecc50923012 source/hunyuan-npu-src-0.3.2-forja-0.2.0.tar.gz