CommunityImagengithub.com

daniil-kzn/image-edit-fidelity

Reglas independientes del modelo para generar y editar imágenes de personas y escenas con cualquier modelo de imagen (Qwen-Image, Nano Banana/Gemini Image, GPT Image, Seedream, Flux/Kontext, Kling O3 image, Midjourney, Stable Diffusion y más recientes). Cubre anatomía humana intacta para cada persona (una cabeza, dos ojos, dos brazos, dos piernas, cinco dedos por mano, sin extremidades en la espalda o el pecho, sin cuerpos fusionados), fidelidad estricta a las referencias adjuntas (inventario de personas, objetos y entorno; cambiar solo lo solicitado, mantener el número de personas, el entorno y los objetos circundantes), transferencia de exactamente una parte de una referencia a otra (prenda, objeto, intercambio de cabeza: solo se reemplaza la cabeza, nada más), una diferencia de píxeles contra la referencia con reparación de pegado (`ref_diff.py`) y una verificación de defectos antes de mostrar.

¿Qué es image-edit-fidelity?

Este skill proporciona un conjunto de reglas universales para la generación y edición de imágenes con cualquier modelo de imagen, garantizando dos aspectos críticos: anatomía humana correcta (cada persona debe tener exactamente una cabeza, dos brazos, dos piernas, cinco dedos por mano, sin extremidades sobrantes ni cuerpos fusionados) y fidelidad absoluta a las imágenes de referencia adjuntas (solo se modifica lo que el usuario pidió explícitamente, manteniendo el conteo de personas, objetos, entorno, iluminación y composición). Es útil para desarrolladores y usuarios de agentes de IA que trabajan con modelos como Qwen-Image, GPT Image, Midjourney o Stable Diffusion, ya que elimina las alucinaciones anatómicas y las desviaciones no deseadas que estos modelos suelen introducir al 'mejorar' la escena. El skill instruye cómo redactar prompts de forma precisa (separando lo que debe cambiar de lo que debe permanecer igual), cómo usar listas de exclusión (prompts negativos o positivos) y cómo verificar el resultado mediante un script de diferencia de píxeles (`ref_diff.py`) que detecta cambios fuera del área editada y permite repararlos pegando la región modificada sobre la referencia original. También cubre casos especiales como la transferencia de una sola parte de una imagen a otra (intercambio de cabeza, prenda u objeto) y la verificación persona por persona en imágenes con múltiples sujetos.

Compatible con✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/daniil-kzn/qwen-image-2-skill/tree/HEAD/image-edit-fidelity

Installed? Explore more Imagen skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Fidelidad de edición de imagen y anatomía (cualquier modelo)

Estas reglas se aplican a todos los modelos de imagen. Describen cómo debe ser el resultado y cómo verificarlo; el skill específico del modelo (qwen-image-2, storyboard-keyframes, fal-runner para ejecución) proporciona endpoints, parámetros, límites y estilo de prompt. Cuando exista un skill específico del modelo, sigue ambos: sus parámetros y estas reglas de fidelidad. Las instrucciones de edición listas están en references/edit-patterns.md.

Cómo expresar las reglas para un modelo dado:

  • Campo de prompt negativo (Qwen, Seedream, Stable Diffusion, Kling): coloca las listas de anatomía y fidelidad de las secciones §1 y §2 allí.
  • Sin campo de prompt negativo (GPT Image, Nano Banana / Gemini, Flux Kontext y la mayoría de los modelos de edición por instrucciones): escríbelas como declaraciones positivas en el prompt ("cada persona tiene una cabeza, dos brazos y dos piernas", "la habitación, los muebles y los objetos permanecen exactamente como están") y una oración de exclusión corta al final ("No agregues ni elimines personas u objetos"). No pegues una larga lista de "no X, no Y" en el prompt: muchos modelos dibujan los objetos nombrados.
  • Reescritura de prompt (Qwen enable_prompt_expansion, Model Studio prompt_extend, opciones "magic prompt"): desactívala para ediciones; el reescritor añade accesorios y estilo que no están en la referencia.
  • Qué entrada establece el tamaño de salida varía según el modelo (Qwen: la última imagen; otros: la primera, o un campo de tamaño explícito). Verifica el esquema y haz que la salida tome la relación de aspecto y el tamaño de la referencia base.
  • Los límites de longitud difieren (Qwen fal editar 800 caracteres). Cuando la cláusula KEEP no quepa, conserva los elementos con mayor probabilidad de desviación (§2 paso 2).

1. Anatomía humana: siempre intacta

Cada persona en cada salida tiene anatomía humana normal: exactamente una cabeza, dos ojos, una nariz, una boca, dos orejas, un cuello, dos brazos unidos a los hombros, dos manos con cinco dedos cada una, dos piernas unidas a las caderas, dos pies. Sin cabezas, extremidades, manos o dedos adicionales o faltantes; sin extremidades que crezcan de la espalda, el pecho, el vientre o de otra persona; sin cuerpos fusionados; sin articulaciones que se doblen en la dirección incorrecta. Esto se aplica a texto a imagen y ediciones, a personas de fondo y a imágenes estilizadas (dibujos animados, cómics, pinturas) a menos que el usuario solicite explícitamente una criatura no humana. Una imagen con un cuerpo roto es un defecto, por bueno que sea el resto.

Por qué se rompe: los modelos de difusión pierden la noción de qué extremidad pertenece a quién donde los cuerpos se superponen (abrazos, manos entrelazadas, multitudes, una persona cargando a un niño), donde las manos son pequeñas o están ocultas, y en poses complejas. Prevéngelo en el prompt y captúralo en la verificación.

  1. Prompt. Para cada persona, di dónde está cada brazo y mano y qué hace ("su mano derecha sostiene una taza a la altura del pecho, su brazo izquierdo cuelga relajado a su costado"), y dónde están las piernas ("de pie, con el peso en la pierna izquierda", "sentado con las piernas cruzadas"). Menciona el número de cuerpos cuando haya varias personas ("exactamente tres personas, cada una con una cabeza, dos brazos y dos piernas"). Escribe anatomía natural en la oración de estilo: "cuerpos humanos anatómicamente correctos, proporciones naturales". Describe el contacto con precisión: la mano de quién descansa sobre el hombro de quién.
  2. Composición que mantiene los cuerpos legibles. Prefiere poses donde ambas manos sean visibles o estén claramente ocultas (en bolsillos, detrás de la espalda, fuera del encuadre); evita enredos de brazos entrelazados, personas de pie directamente detrás de otras, y extremidades cortadas de forma ambigua por el encuadre. Más personas significa cuerpos más pequeños y más errores: mantén el número tan bajo como lo permita la solicitud; en multitudes, mantén a las personas de fondo pequeñas, simples y parcialmente ocultas por objetos claros.
  3. Lista de exclusión de anatomía (prompt negativo, o una oración positiva donde no haya campo negativo): extremidades adicionales, brazos adicionales, piernas adicionales, manos adicionales, dedos adicionales, dedos faltantes, dos cabezas, cabeza adicional, ojos adicionales, cuerpos fusionados, extremidades del torso, manos deformadas, anatomía malformada.
  4. Ediciones. Cambiar una pose, ropa o agregar una persona no debe agregar ni perder partes del cuerpo: coloca "misma anatomía: una cabeza, dos brazos, dos piernas para cada persona" en la cláusula KEEP (§2). Una edición de pose es la edición de mayor riesgo; verifica a cada persona en el encuadre, no solo a la editada.
  5. Verifica a cada persona antes de mostrar (recorta y amplía cada cuerpo a tamaño completo; figuras de fondo pequeñas incluidas): cuenta cabezas, ojos, brazos, manos, piernas, pies; cuenta dedos en cada mano visible; traza cada extremidad hasta su hombro o cadera y confirma que pertenece al cuerpo correcto; busca extremidades que crezcan de la espalda, el pecho o el cuello, manos fusionadas, una tercera pierna entre dos personas, articulaciones torcidas. Escribe el recuento por persona en las notas de verificación ("P1: 1 cabeza, 2 brazos, 2 manos 5+5, 2 piernas: OK").
  6. Reparación. Un error pequeño de mano o dedo: una pasada de edición en un recorte alrededor de esa mano ("corrige la mano izquierda: cinco dedos, pose natural, sosteniendo la taza"), luego pega el recorte hacia atrás (ref_diff.py --paste-back). Una extremidad o cabeza adicional o faltante: regenera con una pose más simple, menos superposiciones y la descripción de la extremidad del paso 1. Nunca muestres una imagen con un cuerpo roto como resultado final; si el usuario quiere ver un borrador de todos modos, nombra el defecto.

2. Fidelidad a la referencia: cambia solo lo que se pidió

Cada vez que el usuario adjunta una imagen de referencia, la referencia es la verdad fundamental y la solicitud es una diferencia mínima sobre ella. Todo lo que el usuario no pidió cambiar permanece como está: número de personas y quiénes son, sus poses y lugares, ropa, la habitación o calle, muebles y objetos circundantes, su número y posiciones, encuadre y ángulo de cámara, dirección de la luz y color, estilo y textura, cualquier texto. Una edición que "se ve bien" pero añadió una persona, movió una silla o cambió la ventana es una edición fallida. La mayoría de los modelos vuelven a renderizar todo el encuadre y son libres de "mejorarlo", por lo que la fidelidad debe solicitarse explícitamente y luego verificarse.

  1. Haz un inventario de la referencia antes de escribir nada. Mírala a tamaño completo (recortes para áreas pequeñas) y escribe reference_inventory.md en la carpeta del proyecto:
    • encuadre: tamaño de plano, altura y ángulo de cámara, qué toca cada borde del encuadre, relación de aspecto, píxeles;
    • personas: número exacto; para cada una, posición en el encuadre (izquierda/centro/derecha, primer plano o fondo), pose, mirada, manos, ropa de pies a cabeza, cabello, edad, qué sostienen;
    • entorno: habitación o lugar, paredes, ventanas, puertas, suelo, muebles con posiciones;
    • objetos: cada elemento visible con número, color y dónde está (3 tazas en la mesa, no "tazas");
    • luz: dirección de la fuente, dureza, temperatura de color, sombras, hora del día;
    • estilo: foto o ilustración, grano, gradación de color, profundidad de campo;
    • texto y logotipos, palabra por palabra. Luego divide en dos listas: CHANGE (solo lo que el usuario pidió) y KEEP (todo lo demás). Si la solicitud es ambigua sobre el alcance ("hazlo más acogedor": ¿muebles? ¿luz? ¿ambos?), pregunta antes de generar en lugar de dejar que el modelo decida.
  2. Escribe el prompt de edición como cambio + mantener. Primera oración: el cambio solicitado, específico y local (qué, dónde, qué tan grande, qué lado del encuadre). Luego la cláusula de preservación construida a partir de KEEP, nombrando elementos concretos en lugar de "todo lo demás": "Mantén exactamente dos personas: el hombre a la izquierda con un suéter gris y la mujer a la derecha con un vestido azul, mismas caras, poses y posiciones. Mantén la mesa de madera con tres tazas blancas, la ventana a la izquierda, la estantería a la derecha, la luz cálida de la ventana, el encuadre y el ángulo de cámara sin cambios. No agregues ni elimines personas u objetos." Bajo un límite de longitud, conserva los elementos con mayor probabilidad de desviación: número e identidad de personas, objetos cerca del área editada, arquitectura de fondo, encuadre. Describe solo el cambio en detalle; no redescribas toda la escena con nuevas palabras, lo que invita al modelo a redibujarla.
  3. Configuraciones que protegen la referencia:
    • reescritura de prompt desactivada;
    • tamaño de salida = la relación de aspecto y el tamaño de la referencia; una relación de aspecto diferente obliga al modelo a inventar o recortar contenido;
    • la referencia base en la posición que establece el tamaño de salida, llamada por su número en el prompt; adjunta solo las referencias que el cambio necesita, cada imagen extra es otra fuente de desviación;
    • modo de máscara o inpainting donde el modelo lo ofrezca: enmascara solo el área a cambiar;
    • lista de exclusión de fidelidad: personas adicionales, personas faltantes, persona diferente, fondo cambiado, objetos añadidos, objetos eliminados, encuadre diferente, iluminación diferente, más la lista de anatomía de §1;
    • nivel económico para borradores; una salida por llamada hasta que la instrucción se mantenga, luego 2-3.
  4. Verifica contra la referencia, no por sí sola. Ejecuta python3 ~/.claude/skills/image-edit-fidelity/scripts/ref_diff.py <referencia> <salida> --allow x0,y0,x1,y1 (el cuadro donde se suponía que debía ocurrir el cambio, en píxeles de la referencia). Informa cuánto cambió fuera de ese cuadro por celda de cuadrícula y escribe una vista lado a lado y un mapa de calor. Luego revisa reference_inventory.md línea por línea en la salida: número e identidad de personas, cada objeto y su posición, fondo, luz, encuadre, texto. Cualquier elemento KEEP que haya cambiado es un defecto, incluso uno pequeño.
  5. Repara en lugar de regenerar todo el encuadre. Cuando el cambio es correcto pero el resto se desvió, pega solo la región cambiada de nuevo sobre el original: ref_diff.py <referencia> <salida> --allow <cuadro> --paste-back final.png (borde difuminado, el resto del encuadre proviene de la referencia píxel por píxel). Si el cambio en sí mismo está mal, ajusta la oración CHANGE y añade los elementos desviados a KEEP por nombre; cambia una cosa por reintento.
  6. Informa al usuario qué cambió y confirma qué se verificó como mantenido; nombra cualquier desviación aceptada.

3. Transferir una parte de una referencia a otra

Cuando el usuario pide tomar un elemento de una referencia fuente (una chaqueta, una lámpara, una cara, un logotipo, un cielo) y colocarlo en una referencia destino, ocurren exactamente dos cosas: el elemento nombrado se copia de la fuente, y el lugar nombrado en el destino es reemplazado por él. Nada más se mueve en ninguna dirección:

  • de la fuente, toma SOLO el elemento nombrado: no su fondo, otras personas u objetos, colores, iluminación, estilo o encuadre;
  • en el destino, cambia SOLO el lugar nombrado: personas, su número, caras, poses, ropa, objetos, entorno, luz, encuadre y texto permanecen como en el destino (lista KEEP de §2 construida a partir del inventario del destino);
  • no agregues nada "para que encaje" (accesorios extra, sombras de objetos que no existen, nuevas personas). La única adaptación permitida es que el elemento en sí mismo tome la perspectiva, escala y luz del destino para que se asiente naturalmente en el lugar reemplazado.

Cómo:

  1. Haz inventario del destino (§2) y describe el elemento en la fuente con precisión (qué, color, material, forma, detalles que deben sobrevivir: botones, estampado, logotipo).
  2. Recorta la fuente ajustadamente alrededor del elemento (respeta el lado mínimo del modelo, 384 px para Qwen) antes de subirla, para que el modelo no tenga nada más de qué tomar prestado. Coloca el destino en la posición que establece el tamaño de salida.
  3. Estructura del prompt: "Toma solo [elemento con características clave] de la imagen 1. En la imagen 2, reemplaza [lugar exacto: de quién, qué lado, qué objeto] con él, coincidiendo con la perspectiva, escala y luz de la imagen 2. No tomes nada más de la imagen 1: no su fondo, personas, colores o iluminación. Todo lo demás en la imagen 2 permanece exactamente como está: [elementos KEEP del inventario del destino, número de personas, caras, poses, objetos, entorno, encuadre]. No agregues ni elimines personas u objetos." Intercambia los números de imagen si el modelo quiere la base primero.
  4. Verifica con ref_diff.py <destino> <salida> --allow <cuadro del lugar reemplazado>: los cambios fuera del cuadro son defectos; repara con --paste-back. También compara el elemento transferido con el recorte de la fuente: forma, color, estampado y detalles deben coincidir.

Intercambio de cabeza

La cabeza de una persona de la imagen 1 sobre una persona en la imagen 2 es el caso más estricto de esta regla. En la persona destino SOLO se reemplaza la cabeza: el rostro, los rasgos faciales, la piel del rostro, el cabello y las orejas provienen de la imagen 1; el ángulo de la cabeza, la inclinación, la dirección de la mirada, la escala y la luz de la escena siguen al destino para que la cabeza se asiente sobre el cuello existente. Todo lo demás de la persona destino permanece como en la imagen 2: cuerpo, complexión, cuello y hombros, ropa, pose, manos, accesorios debajo de la cabeza; otras personas mantienen sus propias cabezas y todo lo demás; el entorno, los objetos y el encuadre no cambian. Nada de la imagen 1 además de la cabeza (su ropa, cuerpo, fondo, otras personas) aparece en la salida.

  • Antes de la llamada, resuelve las partes ambiguas con el usuario solo si existen: tocados, …

Skills relacionados