
AllYouNeedIsNFT: verificación de unicidad de imágenes y un editor generativo de NFT
- Publicado el
- • 5 min de lectura•--- vistas
En 2021 y 2022 fui cofundador de AllYouNeedIsNFT, un marketplace de NFT. En las conversaciones con artistas aparecía siempre el mismo problema: las imágenes de una colección reaparecían en otras con nombres nuevos. El comprador no tenía forma rápida de distinguir una copia del original.
Por eso, junto al marketplace, construimos dos herramientas. La primera comprueba si una imagen NFT ya existe en otras colecciones. La segunda es un editor con el que un artista genera una colección completa a partir de recursos dibujados por él mismo. Este artículo cubre las dos.
Comparar una imagen con el mercado
Un desarrollador externo escribió el servicio de unicidad según una especificación que acordamos con él. Yo supervisé la entrega y lo integré en el sitio principal. El video de abajo muestra una versión temprana, todavía en depuración.
El servicio parte de las colecciones que ya existen. Extrae una colección, descarga todas sus imágenes y las indexa. La base de datos se recopiló de OpenSea y otros sitios.
El trabajo pesado ocurre en la indexación. Un algoritmo de análisis de imágenes procesa cada imagen y la vincula con las que ya están en el índice. Para cada par calcula una puntuación de similitud. El índice guarda las imágenes y las relaciones entre ellas, así que una búsqueda no tiene que recorrer píxeles en bruto.
Cuando llega una colección nueva, el servicio toma una muestra de las colecciones ya indexadas y compara con ellas cada imagen de la nueva. Cada imagen recibe un índice de unicidad, un solo número que dice qué tan cerca está de algo que ya existe en el mercado.
El mismo camino funciona con una sola imagen. Un visitante sube una imagen, el servicio la pasa por el índice y devuelve la coincidencia más cercana. La captura muestra el resultado para una imagen de una de las colecciones analizadas: el servicio determinó que no era única y señaló como original a comfy-apes-club #100 en blur.io.

Generar una colección con los recursos de un solo artista
La segunda herramienta es el editor de NFT. En esa época las colecciones generativas solían armarse con capas dibujadas por personas distintas, y el resultado rara vez se parecía al trabajo de alguien en concreto. El editor se construyó para que un solo artista pudiera definir toda la colección.
El artista empieza con un lienzo, de 800x600 en las capturas, y lo divide en áreas arbitrarias. Las áreas pueden anidarse dentro de otras áreas. Para cada área el artista sube su propio conjunto de imágenes, y un conjunto aparte para los fondos.

Cada área lleva coeficientes de distribución de probabilidad. Durante la generación el editor elige al azar una imagen para cada área, ponderada por esos coeficientes, dentro del conjunto que preparó el artista. Como todos los insumos vienen de la misma persona, cada elemento del recurso final está dibujado y elegido por un solo artista.

El resultado es un collage en el estilo que el artista definió al configurar el espacio de trabajo. El interruptor de vista previa muestra una muestra antes de guardar, y la casilla Published controla cuándo la colección se hace visible en el marketplace. La billetera de la cabecera está conectada a Fantom, que el marketplace soportaba en ese momento.

El editor también funcionaba en el teléfono. Los mismos controles se apilan en vertical y el lienzo conserva sus proporciones.

Dónde encontrar el resto
El servicio de unicidad salió en unique.allyouneedisnft.com y yo lo integré en el marketplace. La página del proyecto tiene el video de presentación que grabé para nuestra audiencia angloparlante y la especificación completa con la que se construyó el servicio.
Si hoy construyes un marketplace, la lección sigue vigente. Indexa el mercado con el que compites antes de aceptar subidas, y dale al comprador una puntuación de similitud en lugar de una promesa.
Relacionado
Proyectos

AllYouNeedIsNft: startup de marketplace de NFT
Antes: idea sobre el papel, 0 usuarios, 0 código. Después: marketplace de NFT en funcionamiento con autenticación por wallet, listados y flujo de compra. Resultado: MVP en 3 meses, primeros creadores incorporados en el pico del mercado Web3.
Artículos
Estructura de proyecto y pruebas en .NET Core 6 vs .NET Core 5: pruebas unitarias, GraphQL y fixtures de test server
Una comparación práctica de las estructuras de proyecto de .NET Core 5 y 6, con ejemplos reales de pruebas unitarias, integración con GraphQL y configuración de fixtures de test server.
Entrevista con Chainlink Labs
Pasé la primera etapa del proceso de selección de Chainlink Labs. Todo fue bien, pero el puesto exigía estar en Estados Unidos.
Pausable de OpenZeppelin: el interruptor de tu contrato inteligente
Si los mecanismos que pensaste para un contrato fallan, queda uno: el interruptor. OpenZeppelin trae Pausable para eso, y nunca hay que olvidarlo.
Disponible para colaboración por contrato
Estoy disponible para colaborar por contrato. Si tiene una idea de proyecto interesante, reserve una llamada por Calendly.
Agenda una llamada de 30 min