1 puntos por GN⁺ 2 시간 전 | 1 comentarios | Compartir por WhatsApp
  • underdrawing es un método que primero crea una imagen de boceto base con una herramienta determinista donde ya están ubicados los números y el texto, y luego un modelo de generación de imágenes aplica encima el estilo visual para mejorar la precisión
  • En una tarea de colocar 50 piedras de apoyo en espiral y numerarlas del 1 al 50, Gemini 3 Pro y ChatGPT Images 2 no lograron mantener de forma estable los números ni el orden sin underdrawing
  • En la misma tarea, Gemini 3.0 Pro usando underdrawing sí produjo un resultado correcto en numeración, cantidad y orden de botones, y forma espiral
  • La implementación puede hacerse con herramientas como SVG/HTML: se colocan números y texto en la posición y orientación deseadas, se exporta como imagen, y luego esa imagen se envía junto con un prompt de texto a un modelo de imagen multimodal
  • Este enfoque no es perfecto siempre, pero en la generación de imágenes donde importa la ubicación de texto y números, permite dividir el trabajo entre la colocación determinista y la capacidad de representación visual del modelo generativo

Contexto clave y forma de implementación

  • Es un patrón surgido al intentar crear una imagen de tablero de aventura de 100 pasos, y se resume como “dar el contorno y luego hacer que pinte encima”
  • Capa determinista

    • SVG/HTML puede verse seco en lo visual, pero es muy fuerte en distribución matemática y precisión
    • Basta con colocar números y texto en la posición y orientación deseadas y exportarlo como una imagen que contenga esos píxeles
    • Se puede usar el formato o herramienta que se prefiera, como SVG, Python o Mermaid
  • Capa generativa

    • Los modelos de generación de imágenes producen resultados visualmente sobresalientes, pero son poco confiables en matemáticas y texto
    • En un modelo de imagen multimodal como Gemini 3.0 Pro, que puede recibir imagen y texto como entrada y devolver una imagen, se envían juntos la imagen de underdrawing y el prompt de texto
    • El prompt de ejemplo del paso 1 pide crear un SVG con 50 piedras de apoyo colocadas en una espiral interior en sentido antihorario y con numeración consecutiva del 1 al 50 en cada piedra
    • El prompt de ejemplo del paso 2 pide transformar esa imagen en un diorama estilo claymation con apariencia fotográfica, en ángulo bajo e inclinado, donde chocolates artesanales y caramelos forman un camino en espiral
  • Automatización y límites

    • Claude Code o Codex pueden encargarse de cada paso
    • Los resultados son buenos, pero no siempre perfectos, y en el resultado final tampoco se ve “71”

1 comentarios

 
GN⁺ 2 시간 전
Comentarios en Hacker News
  • Me alegra ver que se está profundizando en entender mejor qué cosas los LLM hacen bien por naturaleza y cuáles no, no en el sentido de que sean imposibles, sino de que tienen limitaciones fundamentales que hacen menos probable el éxito
    Se parece a ese enfoque donde una persona define la arquitectura del software y deja la implementación de las funciones al LLM, o a pedirle que escriba consultas SQL en vez de hacer directamente el análisis de datos
    Ojalá hubiera una taxonomía de tareas e investigación más clara sobre qué unidades de trabajo encajan bien con los LLM y cuáles no; la intuición va apareciendo poco a poco, pero todavía veo a mucha gente tropezar seguido con esto

    • Ese enfoque de “la arquitectura la define una persona y las funciones las escribe el LLM” era, hasta hace poco, una de las recomendaciones de los primeros usuarios de las herramientas de asistencia de programación con LLM
      La idea era hacer primero un esquema general y luego implementar cada función por separado, y en HN ya habían aparecido varias veces posts de blog que mostraban este enfoque con una metáfora tomada del trabajo de animación
    • En torno a los LLM se habla mucho de limitaciones fundamentales, pero todavía no existe ni una sola demostración rigurosa de que esas limitaciones realmente existan
      Hace apenas 2 años, tareas como contar caracteres o procesar fonemas se consideraban imposibles por esas “limitaciones fundamentales”, y hoy en muchos casos ya no presentan mayor problema ni siquiera sin herramientas
  • Cada vez que leo prompts para generar imágenes, noto detalles muy específicos que el modelo claramente ignoró
    Aquí también, los chocolates/dulces de las últimas dos imágenes están lejos de verse artesanales; parecen demasiado productos masivos y esterilizados, y además la perspectiva no es correcta
    Si el modelo ignora la mayor parte, uno se pregunta por qué escribir prompts tan largos

    • Me gustó el ejemplo donde al pedir “iluminación de estudio” terminó metiendo un montón de equipo de iluminación de estudio dentro de la foto
    • En realidad, los dulces no están tratando de parecer artesanales, sino de parecerse a imágenes del conjunto de entrenamiento que las empresas promocionaban y etiquetaban como artisanal
      Expresiones como rustic, homemade o amateur quizá encajen mejor con el etiquetado
    • Cuando usé generación de imágenes unas cuantas veces, seguí viendo exactamente este mismo tipo de fallo
      Al principio pensé que era por mi falta de habilidad para escribir prompts, pero una vez que empiezas a mirar conscientemente estas discrepancias, aparecen con bastante frecuencia
    • Creo que la mayoría de los prompts detallados están generados por IA
    • Me da curiosidad cuánto tiempo le habría tomado pensar todo esto
      Si lo que quería era una imagen como la última, con pequeños “botones” acomodados en espiral, aunque no se pareciera realmente a dulces, incluso alguien no muy bueno con Blender probablemente podría haberla hecho en una tarde
  • Encontré una técnica sencilla para obtener de forma confiable texto y números en imágenes generadas por IA
    Me sorprendió que los modelos de imagen no hicieran ya algo así, y como me ha resultado bastante útil, quería compartirla

    • En cierto sentido se parece a usar ControlNet
      Llevo un tiempo usando la misma técnica pero con SVG como imagen base, y funciona bien
    • Es muy impresionante, simple y estable
      Parece el tipo de cosa que los laboratorios de generación de imágenes adoptarán pronto
    • Me pregunto si esto no es una especie de chain of thought, algo parecido a https://arxiv.org/abs/2201.11903
      En vez de dejar que el usuario obligue al modelo a resolverlo en 0-shot, la estructura ayuda a llegar a la solución en 1-shot o k-shot
      He usado técnicas parecidas con muy buenos resultados, y como este campo es tan nuevo y se mueve tan rápido, da la impresión de que todavía faltan términos compartidos; por eso el blog y los ejemplos son muy útiles
      Aun así, también parece posible que este fenómeno ya se haya observado y entendido en comunidades más pequeñas o bajo otros nombres
    • En resumen, la idea es crear primero un contorno correcto en SVG y luego enviar esa imagen junto con el prompt de texto a Gemini 3.0 Pro para que la renderice con los números y el texto correctos
  • Esto no es más que un img2img en el que la primera imagen con la estructura correcta fue creada con código

    • Sí, es exactamente eso
      Si vienes usando modelos generativos desde los primeros días de Stable Diffusion, esta es una técnica bastante común y útil: usar un boceto (SVG, dibujo a mano, etc.) como un ControlNet provisional para guiar la salida del modelo generativo
      Antes se usaba un enfoque parecido para armar visualizaciones arquitectónicas
      Si querías poner un sofá, sillas u otros muebles en posiciones específicas, podías crear una escena simple con herramientas como Poser para fijar más o menos la ubicación de las principales “piezas del set”, generar a partir de ahí un mapa de profundidad y pasárselo a un modelo generativo de esa época como SDXL para guiar la colocación de los objetos
    • En general, es básicamente lo mismo que dijo el autor, solo que con un poco más de contexto para principiantes
    • Sí, pero al crear ese código puedes usar otro modelo de generación de código
  • Este hack definitivamente es de esos trucos que te hacen pensar “ah, ¿por qué no se me ocurrió antes?”
    Me da gusto tenerlo a mano para la próxima vez que la generación de imágenes no esté a la altura de lo esperado

    • Las apps originales de Stable Diffusion ya tenían image-to-image
      Solo que el rendimiento no era tan bueno como ahora, así que no me queda claro por qué esto se considera nuevo
  • La objeción estándar es esta: si el LLM fuera realmente inteligente, ¿por qué no descubre por sí solo que este proceso de dos pasos da mejores resultados?

    • En el nivel más básico, un modelo de imagen no es más que una estructura que recibe tokens de texto y entrega tokens de imagen
      Para planear una estrategia, revisar el resultado y volver a intentarlo, necesitas encima un proceso de tipo agente
      Parece que Nano Banana y gpt-image-2 traen algo de eso, pero es parecido a la diferencia entre pedirle al modelo que escriba código de una sola vez y dejar que lo resuelva un arnés de agente con herramientas
      Incluso un agente muy básico puede producir mejor código que ChatGPT por sí solo
    • Porque los LLM suelen estar hardcodeados para pulir un poco los prompts del tipo “hacer una imagen” y luego pasárselos a un modelo aparte
    • Lo que no sabe, no lo sabe
    • Porque en realidad no es inteligente
    • Porque nadie le pidió que lo hiciera así
  • Este tipo de enfoque se viene usando desde hace mucho tiempo, y se parece a controlar la silueta con un mapa de profundidad o line art

  • Me gustó esa sensación del cierre de “funciona, pero en realidad no tanto”
    Muy en la línea del furor por los LLM y la IA generativa: todo el texto muestra un esfuerzo complejo para acertar con un ejemplo extremadamente estrecho, algo que parece casi funcionar pero al final no termina de salir bien

    • Si aunque sea funciona en parte, ya es útil
      Para una persona es fácil revisar si los números están bien, y si no, basta con generar la imagen otra vez
      Es varios órdenes de magnitud más fácil que crear la imagen desde cero sin modelo
  • Pensé que para la tarea típica de “un SVG de un pelícano en bicicleta” podría intentarse el enfoque inverso
    Si le pides que escupa directamente el SVG, es natural que la calidad probablemente sea mala
    Pero como la generación de imágenes puede crear con facilidad una imagen realista muy buena, podría servir generar primero la imagen y luego hacer que el modelo la trace para convertirla en SVG, y así obtener un buen SVG de un pelícano en bicicleta
    Al final, incluso los humanos rara vez crean arte SVG escribiendo solo números en un bloc de notas; la parte esencial sigue siendo verlo y pensarlo como imagen

  • También se parece a la forma en que una persona intentaría hacerlo con precisión
    Si le pidieras a un artista que, sin correcciones ni bocetos, dibuje de una sola vez una gran disposición circular de piedras y además las numere en orden, no sería raro que aparecieran errores de colocación