Manos deformes en IA: por que pasa y como solucionarlo

15 min read

Seis dedos, un pulgar que sale del sitio equivocado, una mano fundida con la otra. Si generas imagenes con IA, ya conoces el problema, y probablemente ya probaste a meter una lista larga de terminos en el prompt negativo sin que cambiara gran cosa.

Respuesta corta: las manos fallan porque ocupan pocos pixeles y tienen una geometria muy variable. La solucion fiable no es el prompt negativo, es el inpainting sobre la mano con denoise entre 0.4 y 0.6, generando solo el area enmascarada a resolucion completa. Todo lo demas reduce la frecuencia del fallo, no lo elimina.

La causa tecnica real, sin mitologia

Circula la explicacion de que el modelo no sabe contar. Es una simplificacion que no ayuda a arreglar nada. El motivo real es una combinacion de tres factores medibles, y entenderlos te dice exactamente donde intervenir.

Las manos ocupan muy pocos pixeles

En un retrato de medio cuerpo tipico, la cara puede ocupar un area varias veces mayor que una mano. El modelo trabaja en un espacio latente comprimido, donde cada unidad latente representa un bloque de pixeles de la imagen final. Una mano que en la imagen mide unos pocos cientos de pixeles de lado se reduce en el latente a un area diminuta, con poquisimo espacio para codificar cinco dedos distinguibles, sus articulaciones y su orientacion. No es que el modelo no sepa: es que no tiene resolucion suficiente para expresarlo.

Esta es tambien la razon por la que un primer plano de manos suele salir mucho mejor que unas manos pequenas en un plano general. Cuando la mano ocupa una porcion grande del encuadre, hay espacio latente de sobra y la tasa de acierto sube de forma notable sin cambiar ni una palabra del prompt.

La geometria de la mano es extremadamente variable

Una cara, vista de frente, tiene una estructura estable: dos ojos, una nariz, una boca, siempre en la misma relacion espacial. Una mano no. Segun el angulo y la postura, puedes ver cinco dedos, tres, uno, ninguno, dedos que se solapan, dedos que se ocultan detras de la palma, o una mano parcialmente cortada por un objeto. El modelo aprendio una distribucion enorme de configuraciones validas, y al muestrear puede mezclar dos de ellas produciendo algo que no corresponde a ninguna anatomia real.

Ese mecanismo explica los fallos tipicos mejor que cualquier otra teoria: el dedo extra aparece porque el modelo esta interpolando entre una mano con cuatro dedos visibles y otra con cinco. La mano fundida aparece porque dos manos cercanas comparten region latente y el modelo no tiene senal suficiente para separarlas.

Los datos de entrenamiento no ayudan

En la mayoria de imagenes de un dataset general, las manos aparecen pequenas, borrosas, en movimiento, parcialmente ocluidas o fuera de foco. Las descripciones asociadas casi nunca mencionan las manos, asi que la senal de supervision es debil. El modelo recibe millones de ejemplos de caras bien enfocadas y descritas, y comparativamente pocos de manos limpias y etiquetadas. El resultado es exactamente el que observas.

Estructura anatomica que los modelos suelen fallar

Lo que no arregla las manos, aunque todo el mundo lo repita

Antes de las soluciones, conviene descartar lo que no funciona, porque la mayor parte del tiempo que la gente pierde con este problema se va en estas tres cosas.

Primero, listas gigantes de terminos negativos. Meter veinte variantes de dedos mal formados en el negativo tiene un efecto marginal, y a partir de cierta longitud empieza a degradar el resto de la imagen porque el vector negativo tira de la composicion entera. Un negativo enorme es una de las causas mas comunes de imagenes planas y sin contraste.

Segundo, subir los pasos de muestreo indefinidamente. Los pasos afectan a la convergencia del ruido, no a la resolucion disponible para la mano. Pasar de treinta a ochenta pasos gasta tiempo y no anade estructura donde no hay pixeles. Si la mano ocupa un area diminuta, seguira ocupandola con ochenta pasos.

Tercero, insistir con semillas nuevas hasta que salga bien. Funciona, en el sentido de que si generas suficientes imagenes alguna tendra las manos correctas, pero es la solucion mas cara posible en tiempo y computo. Sirve como complemento, no como metodo.

Prompt: lo poco que si ayuda

El prompt influye, pero de forma indirecta y limitada. Lo que funciona es describir la postura de la mano de forma concreta en lugar de esperar que el modelo la invente. Una mano apoyada en la cadera, una mano sosteniendo un objeto identificable, una mano en el bolsillo o detras de la espalda son configuraciones con soporte fuerte en los datos y con menos ambiguedad al muestrear.

La estrategia opuesta tambien vale: si las manos no aportan nada a la imagen, sacalas del encuadre o escondelas. Un plano que corta por encima de las munecas elimina el problema por completo. No es hacer trampa, es composicion. Los fotografos llevan decadas decidiendo donde cortar el encuadre por razones parecidas.

En el negativo, unos pocos terminos bien elegidos sobre anatomia de manos son suficientes. Mas alla de eso hay rendimientos decrecientes inmediatos. Si quieres profundizar en como construir prompts que no se saboteen a si mismos, la guia maestra de prompts cubre el equilibrio entre positivo y negativo con ejemplos.

Resolucion y encuadre: la palanca mas infravalorada

Si el problema es que la mano tiene pocos pixeles, la solucion mas directa es darle mas. Generar a la resolucion nativa del modelo es lo minimo. Con arquitecturas modernas de tipo SDXL, eso significa trabajar alrededor de un megapixel, tipicamente 1024 por 1024 o proporciones equivalentes como 832 por 1216 para vertical. Generar por debajo de la resolucion nativa y luego escalar es una receta directa para manos rotas.

El encuadre importa tanto como la resolucion. La misma mano en un plano americano ocupa el doble de area que en un plano general, y la tasa de acierto sube en consecuencia. Si tu imagen final necesita un plano general, una tactica valida es generar primero un encuadre mas cerrado donde las manos salgan bien, y despues ampliar el lienzo con outpainting manteniendo esa region intacta.

El escalado tambien ayuda, pero solo si es un escalado que regenera detalle y no una simple interpolacion. Un pase de escalado con difusion a denoise bajo, en el rango de 0.25 a 0.4, anade estructura real a la mano. Un escalado puramente algoritmico solo hace mas grandes los mismos errores.

Inpainting de manos: el metodo que si funciona

Este es el nucleo de la solucion. En lugar de pelearte con la imagen entera, aislas la mano y la regeneras con toda la capacidad del modelo dedicada a esa region. Es la diferencia entre pedirle al modelo que dibuje una mano de sesenta pixeles y pedirle que dibuje una mano de mil.

El procedimiento base es este. Enmascaras la mano defectuosa con un margen generoso alrededor, incluyendo parte de la muneca para que el modelo tenga contexto anatomico. Activas la opcion de generar solo el area enmascarada, que es la clave de todo: hace que esa region se procese a resolucion completa en lugar de a su tamano original dentro de la imagen. Anades un relleno de contexto alrededor de la mascara, tipicamente entre 32 y 64 pixeles, para que el resultado encaje con lo que hay alrededor.

Denoise: el parametro que decide si funciona

El denoise controla cuanto se aleja el resultado de lo que ya habia. Por debajo de 0.35 el modelo conserva demasiado de la mano rota y solo la suaviza. Por encima de 0.75 ignora el contexto y genera algo que no encaja con el brazo, la iluminacion o el estilo. El rango util para manos esta entre 0.4 y 0.6, y dentro de ese rango la eleccion depende de lo mal que este el original: si solo sobra un dedo, 0.4 basta; si la mano es un amasijo, sube a 0.6.

Trabaja de forma iterativa. Genera un lote pequeno con el mismo denoise, elige el mejor resultado, y si hace falta repite el inpainting sobre ese resultado con un denoise mas bajo para pulir. Dos pasadas suaves suelen dar mejor acabado que una pasada agresiva.

El prompt del inpainting no es el prompt de la imagen

Un error muy comun es dejar el prompt completo de la escena al hacer inpainting de una mano. El modelo intenta meter toda esa descripcion en un recorte que solo contiene una mano, y a veces genera elementos absurdos dentro de la mascara. El prompt del inpainting debe describir solo lo que va en esa region: una mano, su postura, y minimos descriptores de estilo e iluminacion para que encaje.

Cuando el inpainting tampoco arregla la mano

Si tras varias pasadas la mano sigue saliendo mal, el problema suele ser la postura: estas pidiendo una configuracion que el modelo maneja mal, como dedos entrelazados, una mano sosteniendo un objeto de forma compleja, o dos manos que interactuan entre si. La salida practica es cambiar la postura por una equivalente mas simple. Casi siempre existe una version de la misma escena con las manos en una posicion que el modelo si resuelve.

Region enmascarada para reparar con inpainting

ControlNet: darle al modelo la estructura que le falta

Si el problema es que el modelo no tiene senal suficiente sobre donde va cada dedo, la solucion estructural es darsela. ControlNet permite condicionar la generacion con una pose, un mapa de profundidad o un dibujo de lineas, y aplicado a manos convierte un problema de adivinanza en un problema de seguir instrucciones.

Hay dos usos practicos. El primero es condicionar la imagen completa con una pose de referencia que ya tenga las manos bien colocadas, ya sea de una foto o de un modelo 3D sencillo. El segundo, mas quirurgico, es combinar ControlNet con el inpainting: enmascaras la mano y le das al modelo un mapa de profundidad o un boceto de lineas de como debe ser esa mano. La tasa de acierto sube muchisimo porque el modelo ya no elige la topologia, solo la renderiza.

El coste es preparacion. Necesitas una referencia, y la referencia tiene que estar alineada con tu imagen. Para trabajo puntual es excesivo, pero para una serie de imagenes con la misma pose amortiza rapido. El flujo completo esta explicado en la guia de ControlNet, incluyendo que preprocesador conviene en cada caso.

Modelos, LoRAs y por que unos fallan mas que otros

No todos los modelos tienen el mismo problema con las manos, y la diferencia es real, no percepcion. Las arquitecturas mas recientes con codificadores de texto mas capaces y mayor resolucion nativa manejan la anatomia notablemente mejor. Los modelos de la familia Flux son un ejemplo claro de esa mejora generacional en manos y en texto dentro de la imagen.

Dentro del ecosistema SDXL, los checkpoints muy ajustados a un estilo concreto suelen empeorar las manos respecto al modelo base, porque el ajuste fino sobre un dataset estrecho degrada capacidades generales. Modelos orientados a ilustracion como Pony Diffusion XL tienen su propio comportamiento con anatomia, y conviene probar antes de asumir que el que te gusta estilisticamente es el que mejor resuelve manos.

Existen LoRAs especificos para anatomia de manos, y algunos ayudan de verdad, aunque no hacen milagros. Conviene aplicarlos con peso moderado, porque a peso alto tienden a imponer su estilo sobre el resto de la imagen. Los repositorios publicos tienen varios con ejemplos comparativos, y la guia de Civitai explica como evaluar uno antes de integrarlo en tu flujo. Si generas mucho con el mismo personaje o el mismo estilo, entrenar tu propio adaptador con imagenes donde las manos salen bien es otra via, cubierta en la guia de entrenar un LoRA.

Tabla de defectos, causa probable y solucion

Defecto observado Causa mas probable Solucion recomendada
Dedos de mas o de menos Area latente insuficiente para la mano Inpainting con solo area enmascarada, denoise 0.4 a 0.6
Dedos fundidos entre si Postura con dedos juntos o solapados Cambiar a una postura con dedos separados o mano cerrada
Dos manos fusionadas Manos demasiado cercanas en el encuadre Separar las manos en la composicion o hacer inpainting por separado
Pulgar en posicion imposible Ambiguedad de orientacion palma o dorso Especificar la orientacion en el prompt, o usar ControlNet
Mano correcta pero borrosa Escalado por interpolacion sin regenerar Pase de escalado con difusion a denoise 0.25 a 0.4
Mano bien, pero no encaja con el brazo Denoise demasiado alto en el inpainting Bajar denoise y ampliar el relleno de contexto
Objetos raros dentro de la mascara Prompt completo de la escena en el inpainting Usar un prompt corto que describa solo la mano
Manos peor que antes tras cambiar de modelo Checkpoint muy ajustado a un estilo Comparar con el modelo base o con una arquitectura mas reciente
Todo el cuerpo empeora al arreglar manos Prompt negativo demasiado largo Recortar el negativo a lo esencial
Prompts negativos aplicados para corregir defectos

Checklist ordenado por coste, del mas barato al mas caro

  1. Comprueba que estas generando a la resolucion nativa del modelo, no por debajo.
  2. Recorta el prompt negativo a unos pocos terminos de anatomia y descarta el resto.
  3. Describe la postura de la mano de forma concreta en el prompt positivo.
  4. Cierra el encuadre para que la mano ocupe mas area, o sacala del encuadre si no aporta.
  5. Genera un lote pequeno con semillas distintas y quedate con la mejor base.
  6. Aplica inpainting sobre la mano con solo area enmascarada activado y denoise entre 0.4 y 0.6.
  7. Usa un prompt corto y especifico dentro del inpainting, no el de la escena completa.
  8. Repite el inpainting sobre el mejor resultado con denoise mas bajo para pulir.
  9. Anade un pase de escalado con difusion a denoise bajo si la mano quedo blanda.
  10. Si sigue fallando, condiciona con ControlNet usando una referencia de pose o profundidad.
  11. Prueba otro checkpoint o un LoRA de anatomia con peso moderado.
  12. Como ultimo recurso, cambia la postura de la escena por una que el modelo resuelva bien.

Flujo de trabajo segun la herramienta que uses

La disponibilidad de estas tecnicas depende de tu entorno. Las interfaces web sencillas suelen ofrecer inpainting basico pero no siempre exponen el control de denoise ni la opcion de generar solo el area enmascarada, que es justo la que hace que el metodo funcione. Si tu herramienta no te deja tocar esos dos parametros, tu techo de calidad en manos esta limitado por la interfaz, no por el modelo.

En un entorno local tienes control total. Una instalacion de Stable Diffusion en local expone denoise, relleno de mascara y modo de area enmascarada de forma directa, que es todo lo que necesitas. Si prefieres construir el proceso como un grafo repetible, con el inpainting de manos automatizado como un paso fijo despues de cada generacion, ComfyUI permite exactamente eso y ahorra muchisimo tiempo cuando produces en volumen.

Expectativas honestas

Ninguna de estas tecnicas garantiza manos perfectas siempre. Lo que hacen es cambiar la tasa de acierto de forma sustancial y, sobre todo, darte una via de reparacion cuando falla, que es mas importante que evitar el fallo. Un flujo donde puedes arreglar cualquier mano rota en dos pasadas de inpainting es mucho mas productivo que uno donde dependes de que la semilla acierte.

Tambien conviene aceptar que ciertas configuraciones siguen siendo terreno dificil: dedos entrelazados, manos manipulando objetos pequenos con precision, o dos personas cogidas de la mano. En esos casos la decision inteligente suele ser rediseñar la escena en lugar de insistir. Un buen resultado con una postura mas simple vale mas que un resultado mediocre con la postura que tenias en la cabeza.

¿Por que la IA no puede dibujar manos bien?

Porque las manos ocupan muy poca area en el espacio latente, tienen una geometria muy variable segun el angulo, y en los datos de entrenamiento aparecen pequenas, movidas y casi nunca descritas. La combinacion deja al modelo con poca resolucion y poca senal para resolverlas.

¿Sirve de algo un prompt negativo largo con terminos de manos?

Muy poco, y a partir de cierta longitud es contraproducente porque degrada el contraste y la composicion general. Unos pocos terminos bien elegidos bastan. La mejora real viene del inpainting y de la resolucion, no del negativo.

¿Que denoise debo usar para arreglar una mano?

Entre 0.4 y 0.6 como rango de trabajo. Por debajo de 0.35 el modelo conserva demasiado del error original. Por encima de 0.75 genera algo que no encaja con el brazo ni con la iluminacion. Ajusta dentro del rango segun lo dañada que este la mano.

¿Por que el inpainting me mete cosas raras dentro de la mascara?

Casi siempre porque dejaste el prompt completo de la escena. El modelo intenta representar toda esa descripcion dentro de un recorte que solo contiene una mano. Usa un prompt corto que describa unicamente la mano, su postura y el estilo minimo necesario.

¿Es mejor generar grande o escalar despues?

Generar a la resolucion nativa del modelo y luego escalar con un pase de difusion a denoise bajo. Generar por debajo de la nativa y escalar con interpolacion solo agranda los errores. La resolucion en el momento de la generacion es lo que determina si la mano tiene espacio para existir.

¿ControlNet arregla las manos por si solo?

Ayuda mucho porque le quita al modelo la decision sobre la topologia, pero necesita una referencia bien alineada con tu imagen. Combinado con inpainting sobre la region de la mano es la tecnica con mayor tasa de acierto disponible, a cambio de mas trabajo de preparacion.

¿Hay modelos que hagan manos mejor que otros?

Si, y la diferencia es notable. Las arquitecturas mas recientes con mayor resolucion nativa manejan la anatomia mejor. Dentro de una misma familia, los checkpoints muy ajustados a un estilo concreto suelen empeorar las manos respecto al modelo base.

¿Cuando conviene rendirse y cambiar la pose?

Cuando tras dos o tres pasadas de inpainting con ajustes distintos la mano sigue saliendo mal. Eso indica que la configuracion pedida (dedos entrelazados, manipulacion fina de objetos, manos que interactuan) esta fuera de lo que el modelo resuelve con fiabilidad. Cambiar la postura es mas rapido que insistir.