Usar “boceto base” para obtener texto y números precisos
(samcollins.blog)- 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
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
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
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
Expresiones como rustic, homemade o amateur quizá encajen mejor con el etiquetado
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
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
Llevo un tiempo usando la misma técnica pero con SVG como imagen base, y funciona bien
Parece el tipo de cosa que los laboratorios de generación de imágenes adoptarán pronto
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
Esto no es más que un img2img en el que la primera imagen con la estructura correcta fue creada con código
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
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
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?
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
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
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