Una app de avatares que es tuya, y una llave que no sale de tu máquina
Higgsfield ya vive dentro de Claude por su conector, y eso alcanza mientras el trabajo pase por un chat. Avatar App Kit es la otra mitad: el código en tus manos — una aplicación de Next.js que corre en tu máquina, le habla directo a la API con tu propia llave, y te enseña el precio antes de cobrarte.
El recorrido · de un vistazo
Cuatro líneas y localhost
Clonar, instalar, correr, pegar la llave. Comprobar que la llave sirve no cuesta un solo crédito.
Teleport, Try-on y Duo
Una foto y un lugar. Tu foto y una prenda que no tienes. Tu foto y la de alguien más, en un cuadro.
El precio antes del cobro
No hay endpoint de saldo, así que la estimación gratis es lo único que se interpone entre tú y una sorpresa.
Colores, recetas y marca
Los colores en un bloque y las recetas como datos: se cambia lo que se ve sin tocar un solo componente.
Guía comunidad · verificada a agosto de 2026
En este repositorio no viaja ninguna llave.
Pegas la tuya una vez y se guarda en una cookie httpOnly que solo llega a tu propio servidor en localhost, que es el único que habla con Higgsfield. Nunca está en el paquete del navegador y nunca en un commit. Por eso puedes pasarle el repositorio a quien quieras: cada quien trae su llave y gasta sus créditos.
01 qué es y qué no es
Un estudio de avatares que corre en tu máquina, con tu llave y tu código
Avatar App Kit es una aplicación que clonas y levantas en tu propia computadora. Desde ahí le habla directo a la API de Higgsfield con la llave que tú pones, y todo lo que ves en el navegador lo está sirviendo tu máquina. Es de código abierto con licencia MIT, así que puedes leerlo, cambiarlo y repartirlo sin pedirle permiso a nadie.
Por dentro no hay nada exótico: Next.js 16, React 19, TypeScript, Tailwind v4 y shadcn/ui. Lo único que vale la pena señalar es lo que no está. No usa ningún SDK de Higgsfield; en su lugar hay un cliente tipado de unas 200 líneas hecho con fetch. Eso importa por una razón práctica: cuando quieras cambiar cómo se arma una petición, tienes que entender un archivo, no una dependencia.
El repositorio es Hainrixz/avater-appkit, y sí: se escribe «avater», con la errata. Así se llama la carpeta cuando la clonas y así es como el enlace funciona.
El proyecto · de un vistazo
Qué es, exactamente
- Qué es
- Un estudio local y de código abierto para la API de Higgsfield: la interfaz para generar y el cliente que habla con la API, en un mismo repositorio.
- Licencia
- MIT, con una excepción en las tipografías que trae incluidas. La letra chica de eso está al final de la guía.
- Lenguaje
- TypeScript de punta a punta, interfaz y cliente incluidos.
- Dónde corre
- En tu máquina. No hay un servidor de nadie más entre tú y Higgsfield.
- Quién pone la llave
- Tú. En el repositorio no viaja ninguna llave y nada tuyo se queda escrito ahí.
- Con qué se construyó
- Next.js 16, React 19, TypeScript, Tailwind v4 y shadcn/ui. Cero SDKs: un cliente tipado de unas 200 líneas hecho con fetch.
- De quién es
- No está afiliado a Higgsfield: es un cliente de su API hecho por fuera. Construido con Claude Code.
Vale la pena decir las dos mitades, porque la primera suena a producto y no lo es.
Lo que es
Una app tuya, con el código a la mano
- Una aplicación que clonas y corres en local: lo que abres en el navegador lo sirve tu propia máquina.
- Código abierto con licencia MIT. Se lee, se modifica y se reparte.
- Un cliente tipado de unas 200 líneas hecho con fetch, sin ningún SDK de por medio.
- Tu llave y tus créditos de Higgsfield, gastados desde tu computadora.
Lo que no es
Ni servicio, ni cuenta, ni afiliación
- No es un servicio. Nadie lo hospeda por ti y no hay nada que contratar.
- No hay cuenta que abrir ni sesión que iniciar: la aplicación no tiene usuarios.
- No archiva nada tuyo fuera de tu máquina. En el repositorio no hay ninguna llave quemada, y lo que pegas en la aplicación se queda en tu computadora.
- No está afiliado a Higgsfield. La cuenta, el plan y los créditos siguen siendo un trato entre tú y ellos.
En la bóveda ya hay dos guías que llegan a este mismo motor por otra puerta, y conviene saber cuál te sirve hoy. No compiten: resuelven momentos distintos del mismo trabajo.
| Camino | Dónde vive | Cuándo te sirve |
|---|---|---|
| El conector de Higgsfield | Dentro del chat de Claude | Cuando quieres generar sin salir de la conversación y no te interesa tocar código. Es el camino más corto: se conecta en tres pasos y no instalas nada. |
| El método de dirección de arte | Dentro de claude.ai, con el conector ya puesto | Cuando lo que falla no es la herramienta sino lo que le pides. Es producción con método: qué escribir para que la imagen salga como la tenías en la cabeza. |
| Avatar App Kit | En tu máquina, hablándole a la API | Cuando quieres la interfaz que tú decidas, cambiar lo que hace por dentro y que el código quede en tus manos. Es la API dentro de código que es tuyo. |
Si nunca has conectado Higgsfield a Claude, ese es el arranque más barato y no pide instalar nada: la guía del conector lo deja funcionando en tres pasos. Esta página va por la otra puerta, la que pasa por la API.
El prompting tampoco se re-enseña aquí, y no por falta de espacio: ya está escrito. El método de dirección de arte tiene su propia guía, y lo que aprendas ahí se escribe igual en el campo de texto de esta aplicación. Aquí el tema es la herramienta, no lo que le dices.
Los tres caminos terminan en el mismo motor. Este es el único donde puedes abrir el archivo que arma la petición y cambiarlo.
02 ponerlo a correr
De una carpeta vacía a la aplicación abierta en tu navegador
Hay dos caminos para ponerla a correr y los dos terminan en el mismo lugar: la aplicación abierta en tu navegador, esperando una llave. El primero es pedírselo a Claude Code y no tocar la terminal en ningún momento. El segundo son cuatro líneas, si la terminal ya es tu casa.
Lo único que necesitas antes de empezar es una carpeta vacía donde vivir. El código es abierto y la licencia es MIT: se baja, se queda en tu disco y es tuyo para modificarlo. Aquí no hay cuenta que crear ni servicio al que registrarse.

Empecemos por el camino que no pide terminal. Abre Claude Code —la versión de Claude que trabaja dentro de una carpeta de tu computadora y sí puede bajar, instalar y arrancar cosas— dentro de una carpeta vacía, y pégale el encargo de abajo. Él clona el repositorio, instala lo que haga falta, lo arranca y te dice en qué dirección abrirlo.
Lo importante de ese prompt está en el final: le pide explícitamente que arregle él lo que truene —que te falte Node, que el puerto esté ocupado, que la instalación se caiga a la mitad— y que te lo explique en una línea, en vez de devolverte un error para que lo resuelvas tú. Y le pide que no te pida ninguna llave todavía, porque ese paso no pasa por la terminal.
Si es la primera vez que lo oyes nombrar, se instala una sola vez y vive en tu terminal: así se consigue Claude Code. El resto de esta guía asume que ya lo tienes abierto.
Ponerlo a correr sin escribir una línea
Pega esto en Claude Code, dentro de una carpeta vacía. Clona, instala, arranca, y te dice qué abrir.
Clona el repositorio https://github.com/Hainrixz/avater-appkit en esta carpeta, instala sus dependencias y arráncalo en modo de desarrollo. Cuando esté corriendo, dime exactamente en qué dirección lo abro y qué voy a ver en la primera pantalla. Si algo falla —que me falte Node, que el puerto esté ocupado, que la instalación truene— arréglalo tú y explícame en una línea qué pasó. No me pidas que edite archivos. No me pidas ninguna llave de API todavía: eso se pega después, dentro de la propia aplicación.
El camino corto, si prefieres escribirlo tú
Son cuatro líneas y están tal cual en el README: bajarlo, entrar a la carpeta, instalar, arrancarlo. Ninguna pide configurar nada antes.
Ojo con el nombre, porque muerde: el repositorio se llama avater-appkit, con esa errata. Es el nombre real y así hay que escribirlo; corregido a «avatar» el enlace simplemente no existe.
1. Bájalo
git clone https://github.com/Hainrixz/avater-appkit2. Entra a la carpeta
cd avater-appkit3. Instala
npm install4. Arráncalo
npm run devTermines por donde termines, lo que sigue es idéntico: se abre en http://localhost:3000. La primera pantalla te pide tu llave de Higgsfield, la pegas ahí dentro de la aplicación, y ya está lista para generar.
No hay un paso intermedio entre arrancarla y verla funcionando: la llave entra por la interfaz, no por un archivo que haya que editar. De dónde sale esa llave, dónde queda guardada y por qué no se mueve de tu máquina es lo que viene enseguida.
Antes de que te dé miedo el gasto
Comprobar que la llave sirve no cuesta un solo crédito
Cuando pegas tu llave, la aplicación verifica que funcione sin cobrarte nada. Esa comprobación es gratis.
O sea que todo lo de esta sección —clonar, instalar, arrancar, pegar la llave y ver la aplicación de pie— sale en cero. El gasto empieza cuando tú aprietas generar, y hasta entonces no se toca un crédito tuyo.
03 la llave
La llave la traes tú, y no sale de tu computadora
Hay una sola cosa que la aplicación te pide de fuera, y es la llave de tu cuenta de Higgsfield. Vale la pena saber exactamente de dónde sale, dónde se queda y hasta dónde llega, porque de eso depende lo que puedes hacer con el repositorio después.
Empecemos por lo que no hay. En este repositorio no viaja ninguna llave: nada está quemado en el código y nada se guarda ahí. Lo clonas y te llega una aplicación sin credenciales, esperando la tuya.
La llave sale de la consola de Higgsfield, en cloud.higgsfield.ai, que es la misma cuenta de la que se descuentan tus créditos. Copiarla de ahí y pegarla en la aplicación es todo el trámite. Lo interesante es lo que pasa después de que le das pegar.
De dónde sale: tu propia cuenta
La copias de tu consola de Higgsfield y la pegas en la aplicación. Es la única credencial que conoce: mientras no pegues una, no tiene con qué llamar a la API.
Dónde se queda: una cookie httpOnly de tu navegador
Al pegarla, la llave se guarda en una cookie httpOnly que dura treinta días. No entra al paquete que el navegador descarga, así que no queda a la vista en el código que corre en la página, y no toca ningún archivo del repositorio, así que no hay forma de que se te cuele en un commit. Eso sí: treinta días es un mes, así que en una máquina que no es tuya, ciérrala tú.
Hasta dónde llega: tu servidor, y ahí se acaba
De esa cookie viaja a tu propio servidor en localhost, que es el único que habla con Higgsfield. No se manda a ningún otro lado: no hay un servidor de terceros de por medio ni una base de datos donde quede registrada. El recorrido completo es tu navegador, tu máquina y la API.
Lo que eso te habilita
Por eso le puedes pasar el repositorio a quien quieras
Como adentro no hay ninguna llave, mandarle el repositorio a alguien no le entrega nada tuyo. Recibe la aplicación vacía y pone la suya.
Y como la llave que se usa es siempre la de quien la está corriendo, cada quien gasta sus propios créditos. Tú no pagas por lo que genere nadie más, no tienes accesos que repartir y no hay nada que revocar cuando alguien deja de usarla. Puedes subirlo a tu GitHub, mandárselo a un cliente o dejarlo en un grupo: el costo se queda con cada quien.
Por qué no va directo
El navegador no puede llamar a la API, y no es un capricho del repositorio
Ese paso por tu propio servidor parece de más hasta que lees la documentación de Higgsfield, que prohíbe llamar a su API directamente desde el código del navegador. Si la aplicación lo intentara, la llave tendría que llegar hasta la página, y una llave que llega a la página la puede leer cualquiera que abra las herramientas de desarrollo.
Así que la aplicación hace lo único que se puede hacer bien: guarda la llave donde el código de la página no la alcanza y deja que el servidor que corre en tu máquina sea el que reenvía cada petición. Es el mismo rodeo que haría cualquier aplicación seria que le hable a una API de pago. La diferencia es que aquí ese servidor es tuyo, y por eso el rodeo no te cuesta confianza en nadie.
Una última cosa de ese primer momento: pegar la llave no dispara ningún cobro, así que ahí mismo sabes si quedó bien puesta. Averiguarlo a la mitad de tu primera generación es peor.
04 las tres recetas
Tres recetas que se arman con tu foto y una cosa más
Una receta no es un filtro ni un estilo. Es un paquete de decisiones ya tomadas: cuántas fotos pide, para qué sirve cada una, qué instrucción se le manda al modelo y qué modelo la recibe. Tú llegas con las imágenes y lo demás ya está resuelto.
Primero eliges Fotos o Video, arriba. Después eliges la receta. Y entre las tres, lo único que cambia de verdad es qué sueltas en el segundo hueco: un lugar escrito, una prenda, o la foto de otra persona.
| Receta | Le das | Te da |
|---|---|---|
| Teleport | Una foto tuya y un lugar escrito: «Tokyo at night». El texto es obligatorio. | 1, 2 o 4 fotos verticales tuyas en ese lugar. |
| Try-on | Tu foto y la foto de una prenda, de plano sobre una mesa o puesta sobre alguien más. | Tú usándola. |
| Duo | Tu foto y la de otra persona. Nada más: el texto aquí es opcional. | Los dos en un mismo cuadro. |
El recorrido es el mismo sin importar cuál elijas, y son tres movimientos.
Fotos o Video
La elección de arriba no es la receta: es qué quieres que salga al final. Las tres existen en las dos modalidades. Qué cambia cuando eliges Video —y qué pasa con el precio— es la 05.
Teleport, Try-on o Duo
Cada receta declara cuántas fotos pide, y la zona de arrastre se dibuja para una o para dos. Teleport pide una imagen; Try-on y Duo, dos.
El texto, cuando la receta lo pide
Teleport no arranca sin él: el lugar es el ingrediente, no un adorno. En Try-on y en Duo el campo está ahí, pero es opcional, y lo único que hace es describir el escenario donde quieres que pase la escena.
Por debajo las tres son más parecidas de lo que aparentan. Cuatro cosas valen para todas:
- Las tres salen en vertical, 9:16.
- En cualquiera de las tres puedes pedir 1, 2 o 4 imágenes en la misma tanda.
- Cada receta llega con su par de modelos ya elegido, y en las tres es el mismo: popcorn/auto para la foto y kling-2.5-turbo-pro-i2v para animarla.
- Lo que escribes no llega solo al modelo. La aplicación le antepone su propia instrucción para orientarlo: en Teleport, esa instrucción pide que la cara y la complexión se mantengan idénticas a la foto de referencia, y que la escena se arme alrededor de la persona con su luz cayéndole encima.
Teleport es la única que exige texto, así que para que ese campo no sea una hoja en blanco ya viene con media docena de lugares escritos. Sirven tal cual, y sirven como molde: fíjate que ninguno es nada más un sitio. Todos traen hora del día y estado de la luz.
- Tokio de noche, con el neón reflejado en el asfalto mojado.
- Una escalera de Lisboa a la hora dorada.
- Un campo de nieve con luz nublada.
- Una terraza de café en París bajo la lluvia.
- El puente de Brooklyn a la hora azul.
- Una azotea en Ciudad de México al atardecer.
Si te ganó la curiosidad de ver cómo está escrita cada receta por dentro, viven todas en lib/recipes.ts. Ahí se lee palabra por palabra la instrucción que la aplicación le antepone a la tuya.
La decisión que costó créditos
Por qué Teleport no corre sobre el modelo que parecía el obvio
Para «ponte en otro lado» el candidato natural era el modelo de referencia de Soul: le entregas una foto y él la usa como guía. El problema es qué entiende por guía. Reproduce la composición entera de la referencia —encuadre, luz y fondo incluidos—, así que si le das un retrato de estudio te devuelve un retrato de estudio, por mucho que el prompt diga Tokio.
No era cosa de cómo estaba escrito el prompt. Se reescribió dos veces y las dos veces salió lo mismo: la persona bien, el lugar ignorado. Y cada intento fue una generación pagada, así que darse cuenta no costó una tarde de lectura, costó dinero.
popcorn/auto trabaja distinto: compone al sujeto dentro de un escenario nuevo en vez de calcar el de la foto que le diste. Por eso es el que quedó en las tres recetas, y por eso el lugar en Teleport es texto y no una segunda imagen.
Hasta aquí, qué le das a cada receta y qué te devuelve. Lo que la aplicación hace con eso por debajo —una llamada o dos, y con qué número enfrente antes de cobrarte— es la 05.
05 fotos o video
Un video son siempre dos llamadas, y ves el total antes de la primera
Antes de elegir receta, la aplicación te hace una pregunta de dos opciones: Fotos o Video. No es un interruptor de calidad ni de estilo. Cambia cuántas llamadas se hacen por debajo y, con eso, cuánto te cuesta apretar el botón.
Ninguno de los modelos de video que se verificaron para esta app va del texto directo al clip: todos necesitan una imagen que animar. Así que pedir un video son dos etapas —primero la foto, después la animación— y la aplicación las encadena sola, sin que tengas que guardar nada en medio ni volver a subir la imagen que acaba de salir.
Lo que hace tolerable pagar dos veces es ver la cuenta completa antes. El botón no dice «generar» a secas: trae el total y el desglose de las dos etapas, ya sumado.
El desglose, en el ejemplo del README
Generate video · $0.442 foto $0.092 + video $0.350
Esos tres números son el ejemplo que enseña el README, no una tarifa: cambian con el modelo que elijas y con lo que le cobre Higgsfield a tu cuenta. El que manda es el que aparece en tu pantalla, con tu llave, un segundo antes de que decidas.
De que el video sean dos etapas se desprenden cuatro cosas que se notan en la interfaz:
- Son dos catálogos distintos y no se cruzan: los modelos de imagen no hacen video y los de video no hacen imagen. En modo Video los dos selectores aparecen numerados, como las dos etapas que son.
- La proporción del video no se elige: la hereda de la foto que lo origina, porque ninguno de los modelos de video verificados acepta un campo de proporción. La aplicación lo dice en pantalla en vez de dejarte buscar un selector que no existe.
- Si eliges Fotos te quedas con imágenes que puedes descargar y usar tal cual. Nada te obliga a animarlas.
- Y si después quieres el clip, cualquiera de esas fotos se anima en su momento: ahí la imagen ya existe, y lo que vas a pagar es el precio que aparece junto al botón.
Lo que la app no se calla
Cuando algo se ajusta, te lo dice
Elige un clip de 5 segundos y después cambia de Kling a Hailuo, que solo hace 6 y 10. La duración se acomoda sola a 6 segundos, y aparece el aviso que lo explica: «Hailuo 2.3 doesn't do 5s clip length — using 6s».
La mitad que importa es la segunda. Un ajuste callado es lo que te hace mirar el resultado y dudar de si el error fue tuyo; este sale en pantalla al cambiar de modelo, no escondido en el video que ya pagaste.
El ajuste existe porque los cuerpos de petición de la API no son uniformes. Un mismo dato —cuántos segundos dura el clip— se pide de tres formas distintas según el modelo:
La misma duración · tres formas de pedirla
Por qué cada modelo trae su propia función
- Kling
- La duración viaja como número: 5 o 10 segundos.
- Hailuo 2.3
- También como número, pero de otro par: 6 o 10.
- Veo
- Como cadena de texto, no como número: «4», «6» u «8».
- Resolución
- Unos modelos la aceptan y otros ni siquiera traen el campo. Cuando no existe, se quita de la petición en lugar de mandarlo vacío.
- Quién lo resuelve
- Cada modelo del catálogo lleva su propia función: ajusta al valor más cercano que ese modelo sí acepta, borra los campos que no tiene, y devuelve el aviso que ves en pantalla.
Un catálogo así se rompe el día que se agrega un modelo más y su función queda a medias. Por eso hay una prueba que revisa todas de un golpe —que cada una acepte lo que dice aceptar y quite lo que no— sin salir a internet y sin gastar un solo crédito.
La prueba de contrato de los modelos — no toca la red ni gasta créditos
npm run check:modelsRegla corta: si vas a Video, el precio del botón ya trae las dos etapas. Si vas a Fotos, pagas una y decides después si quieres la segunda. En los dos casos el número que cuenta es el que ves tú, no el de este ejemplo.
06 el parecido
Teleport compone la escena; la cara que devuelve no es del todo la tuya
Todo lo de arriba se lee como si la aplicación cumpliera entera. Esta es la parte donde no. Subes tu selfie, pides una azotea en Ciudad de México al atardecer, y lo que baja es una foto vertical creíble: el lugar está, la luz cae sobre la persona, el encuadre se sostiene. Lo que no está del todo es tu cara.
Y la razón vive en el modelo, no en cómo lo pediste. Teleport corre sobre popcorn/auto, que el propio catálogo de Higgsfield clasifica como un modelo de texto a imagen. Recibe tu foto de referencia, sí. Pero no expone ni un solo parámetro de identidad: no hay nada que subir, ajustar ni pesar para decirle «esta cara, exactamente esta, en todas las tomas». Un control que el modelo no tiene no se inventa desde el texto.
El estado, sin adornos
Alguien que se te parece un poco, en otro lado
Esa es la frase honesta, y se queda así mientras el modelo no cambie. Teleport es un buen generador de escenas con una persona dentro. No es un generador de ti. Entre una toma y la siguiente la cara se mueve, y ninguna es exactamente la persona que subió la selfie.
Ponerlo aquí, en su propia sección, no es modestia. Es lo que evita que montes encima una promesa que la herramienta no puede sostener. Si lo que vas a hacer necesita que te reconozcan, hoy esta receta no es la pieza.
Lo que sí hace hoy
La escena llega completa
- Compone un lugar convincente alrededor de la persona: existe a su alrededor y la luz le cae encima, no queda pegada detrás.
- Pide explícitamente que la cara y la complexión se mantengan iguales a las de tu foto — esa instrucción va antepuesta a lo que tú escribas.
- Alcanza de sobra para todo lo que no depende de una cara exacta: ambientes, pruebas de estilo, la idea de una campaña antes de producirla.
- Deja pedir varias tomas del mismo encargo y quedarte con la que más se acerque.
Lo que todavía no
El parecido queda fuera
- Devolverte tu cara de forma confiable. A veces se acerca y a veces no, y eso no es un ajuste pendiente: es el estado.
- Darte una perilla de identidad. El modelo no tiene ese campo, así que no hay fuerza que subir ni referencia que amarrar.
- Sostener a la misma persona de una generación a la siguiente, que es justo lo que pide una cuenta con cara propia.
- Servir para algo donde te tengan que reconocer: una foto de perfil, un anuncio con tu cara, la prueba de que estuviste ahí.
El arreglo está identificado y no está construido, y esas dos mitades van juntas en la misma frase. Se sabe qué endpoints hay que tocar y en qué orden; nadie los ha cableado dentro de este repositorio. Va escrito como plan, con esa palabra.
Y antes de leerlo, una aclaración que evita el malentendido obvio: aquí vuelve a aparecer la palabra «referencia», pero no es la misma de la receta de Teleport. Aquella es la foto suelta que le entregas a la receta y que el modelo mira una sola vez, sin guardar nada de ella. Esta es un identificador que se entrena con varias fotos de la misma persona y se guarda con nombre propio, para pedirlo después en cada encargo. Se parecen en el nombre y en nada más.
Entrenar un identificador de persona
Higgsfield tiene un endpoint de referencias personalizadas: con él se entrena un identificador reutilizable a partir de fotos de una misma persona. Es un paso aparte y previo a generar, y su resultado se guarda para volver a usarlo en cada encargo, no se rehace cada vez.
Generar con el modelo de personaje de Soul
Ya no con uno de texto a imagen. A ese se le pasa el identificador entrenado y su fuerza — que es exactamente el control que hoy no existe en la ruta por la que va Teleport.
Y luego medirlo con caras reales
Cablearlo es la parte corta. Lo que decide si sirve es probarlo con selfies de gente distinta y comparar contra la foto de origen. Hasta que eso pase, esto es una dirección con nombre y apellido, no una función que puedas usar.
Antes de creerle a la portada
Las imágenes de demostración son una persona generada
Las que vienen en el repositorio son salida real de esta misma aplicación: nadie las maquetó ni las bajó de un banco de fotos. Pero la cara que aparece en ellas se sintetizó primero. No es la foto de nadie.
O sea que enseñan lo que la aplicación compone, y no enseñan lo único que a esta sección le importa: si el parecido de una selfie de verdad sobrevive el viaje. Cuando las cambies por las tuyas vas a tener esa respuesta de primera mano, y esa sí cuenta.
Y un detalle que conviene tener claro, sobre todo porque es fácil culparlo de lo que no es. Higgsfield tiene una mejora automática de prompt —reescribe tu texto en su propio servidor antes de generar— y viene encendida por defecto en varios de sus modelos. En los que usan estas tres recetas, no: ni el de foto ni el de video mandan ese campo. Así que si un Teleport ignoró lo que pediste, la explicación no es esa.
- Donde sí viene encendida es en el modelo de referencia de Soul y en los dos de DoP: están en el catálogo, pero ninguna receta los usa.
- O sea que te alcanza el día que salgas de las recetas y llames a esos modelos por tu cuenta. Ese día, lo que se manda a generar no es palabra por palabra lo que escribiste, sino la versión que el servidor reescribió.
- Para un resultado de Teleport, Try-on o Duo que no obedeció, el primer sospechoso sigue siendo el de arriba: el modelo no tiene con qué sostener una identidad.
Si lo que necesitas es tu cara y lo necesitas ahora, la ruta que sí funciona hoy es la manual, y está contada paso a paso en Video con IA con Higgsfield y Seedance 2.0: te clonas primero como personaje a partir de tus fotos y de ahí en adelante trabajas con ese personaje. Es más trabajo y no cabe dentro de esta aplicación, pero el parecido lo resuelve.
Nada de esto se arregla desde la interfaz, y por eso va junto en una sección en vez de repartido como notas al pie. El código es tuyo: si lo que quieres es construir el arreglo, el camino de arriba está descrito con detalle suficiente para intentarlo.
07 lo que tu llave puede correr
Tu llave decide qué modelos existen para ti, y la app lo averigua antes de que gastes
El catálogo no es el mismo para todos. Lo que puedes correr depende de la cuenta que hay detrás de la llave que pegaste, así que dos personas con el mismo código, la misma pantalla y la misma versión pueden abrir listas distintas. Eso no se arregla desde el repositorio porque no está del lado del repositorio.
Por eso la aplicación no trae la lista escrita a mano en ningún archivo. La pregunta cada vez que arranca: recorre el catálogo modelo por modelo preguntando el precio, y esa consulta no cuesta créditos. Lo que termina en pantalla son precios reales junto a disponibilidad real, medidos con tu llave y no con la de nadie más.
Así salió ese sondeo en la cuenta con la que se construyó la aplicación. Léelo como lo que es: una foto de una cuenta un día, no una lista oficial de lo que incluye tu plan.
El sondeo · una cuenta, un día
Qué contestó la API cuando se le preguntó por los 15 modelos
- Cuántos corrieron
- 11 de los 15 modelos del catálogo. En tu cuenta el número puede ser otro, para arriba o para abajo.
- Con qué llave
- La misma con la que se construyó la aplicación. El resultado es de esa cuenta y de su plan, no del producto.
- Qué devolvieron los otros
- Que el modelo no existe, que está bloqueado o que está deshabilitado. Tres respuestas distintas para el mismo resultado práctico: hoy no lo puedes usar.
- Cuándo se pregunta
- Al arrancar. La aplicación pide el precio de cada modelo antes de que tú elijas ninguno.
- Qué cuesta preguntar
- Nada. Consultar el precio es gratis; lo que se cobra es generar.
- De cuándo es el dato
- El conteo es del README del repositorio, leído el 31 de agosto de 2026; los cuatro nombres se comprobaron uno por uno contra el catálogo del propio código, que es donde el README se queda corto. El sondeo de tu cuenta lo corre la app sola en cada arranque.
Estos son los cuatro nombres que se quedaron en gris en esa cuenta. Están en el catálogo de la aplicación, aparecen en la lista y no se pueden elegir:
- Veo 3.1 (reference)
- Veo 3.1
- Sora 2 Pro
- Seedance Pro Fast
Ninguno de esos necesita que le hagas nada. Si tu plan los incluye, se encienden solos: no hay bandera que activar ni archivo de configuración que editar, porque la disponibilidad no la decide el código sino la respuesta de la API. El siguiente arranque los vuelve a preguntar y aparecen a color, con su precio al lado.
Lo que no se puede preguntar
No hay endpoint de saldo
La API no expone ninguna forma de consultar cuántos créditos te quedan. La aplicación no te lo enseña porque no hay dónde preguntarlo, no porque se le haya pasado. Es un hueco del proveedor y se hereda tal cual.
Consecuencia: quedarte sin créditos se descubre en un solo momento, y es cuando envías. No hay aviso previo, ni barra que baje, ni número que se ponga rojo. La estimación gratis es lo único que se interpone entre tú y esa sorpresa, así que vale la pena mirarla siempre, no solo la primera vez.
Esconder lo que no puedes correr saldría más limpio en pantalla y sería peor para ti. Un catálogo recortado en silencio te deja creyendo que eso es todo lo que existe, y cuando alguien menciona un modelo que tú nunca viste, no tienes forma de saber si te falta plan, si te falta versión o si te lo estás inventando.
En gris y con la razón al lado, la misma lista contesta dos preguntas de una: qué puedes hacer hoy y qué te estás perdiendo. Eso convierte una decisión de compra en un dato que ya tienes en la pantalla, en vez de una consulta a un soporte.
Lo que diga tu propio sondeo manda sobre cualquier número de esta guía, este incluido.
08 cuando falla
Tres fallos que no dicen lo que parece, y una fecha de caducidad
Un error bien etiquetado se arregla en un minuto. Uno mal etiquetado te manda a buscar donde no es: revisas la llave, cambias la foto, reescribes el texto y vuelves a enviar —y a pagar— por un problema que nunca estuvo ahí. En esta API hay tres respuestas que se presentan con la cara de otra cosa, y las tres tienen una lectura correcta que no es la primera que se te ocurre.
La aplicación ya trae esa traducción hecha, así que en pantalla vas a ver la lectura buena y no el mensaje crudo. Vale la pena saber qué hay detrás de cada una: es lo que te va a permitir reconocerlas si algún día le pides a Claude que toque esa parte del código.
Los tres se ven mal y solo uno lo es de verdad. Esta es la traducción, en el orden en que suelen aparecer.
| Lo que ves | Lo que parece | Lo que de verdad es |
|---|---|---|
| El trabajo se detiene por contenido no apto | Un error más de la lista, en rojo, con tus créditos ya quemados y nada que enseñar. | Un estado terminal aparte, no un error. Higgsfield lo reembolsa de forma automática, así que la aplicación lo pinta en gris neutro, con un escudo en vez de un triángulo: el título dice que no pasó el filtro de seguridad y el renglón de abajo abre con los créditos que volvieron a tu saldo. Se acabó ahí, pero no te costó. |
| Un 400 al enviar | Mandaste algo mal: falta un campo, la foto no sirve, el modelo no acepta lo que le diste. | Te quedaste sin cupos simultáneos. En esta API no existe el 429 que suele avisar de un límite, así que el límite llega disfrazado de petición inválida y solo se distingue por el mensaje. La aplicación sí lo distingue —le da su propia categoría en vez de archivarlo como petición mal armada—, pero la tarjeta se queda en fallo, con el texto tal como lo mandó Higgsfield. Nadie te encola: no cambies nada, espera un momento y dale a reintentar. |
| Un resultado que ya no abre | Se rompió algo del lado de la aplicación, o el archivo se perdió. | Caducó. Los resultados viven unos siete días del lado de Higgsfield y después dejan de existir. Cada uno trae su insignia de caducidad para que la cuenta esté a la vista desde el primer día y no la descubras cuando ya no hay nada que bajar. |
Siete días, y se van
Lo que generaste no se queda para siempre
La caducidad no es una política de la aplicación: los archivos viven del lado de Higgsfield y ahí tienen fecha de vencimiento, más o menos a la semana. Por eso cada resultado lleva su insignia encima. No es decoración, es un recordatorio de que esa imagen o ese clip son prestados hasta que los bajes.
El botón de descarga de cada resultado no apunta al archivo original: pasa por una ruta de la propia aplicación, que lo trae y te lo entrega. La razón es aburrida y no tiene vuelta. El atributo que le dice al navegador «guarda esto en vez de abrirlo» lo ignoran todos los navegadores cuando el archivo vive en otro dominio, así que un enlace directo no descargaría nada: te abriría una pestaña con la imagen y tú tendrías que guardarla a mano.
En la práctica se resume en una costumbre: lo que te gustó, bájalo el mismo día.
Falta una pieza que en cualquier servicio en la nube darías por hecha: aquí no hay webhooks. Higgsfield sí ofrece uno, pero para avisarte que tu trabajo terminó necesita poder tocar la puerta de tu aplicación, y eso pide una dirección pública con HTTPS. Tu localhost no lo es. Existe nada más dentro de tu máquina, y desde fuera no lo alcanza nadie.
Así que la aplicación hace lo contrario de esperar: pregunta. Desde el navegador consulta el estado del trabajo cada tanto, respetando la espera que documenta la propia API, hasta que hay resultado o hay error. No tienes que configurar nada para que funcione, y mientras la pestaña esté abierta la app se entera sola de cuándo terminó.
Los tres casos comparten la misma moraleja, y sirve mucho más allá de esta aplicación: lo que devuelve una API es una pista, no un diagnóstico. Cuando algo falle en tu copia, la primera pregunta no es cómo lo arreglo sino qué me está diciendo de verdad.
09 hazla tuya
El código ya es tuyo, y hay tres lugares donde se cambia casi todo
Hasta aquí la aplicación es la que armó alguien más: sus colores, sus tres recetas, sus fotos de ejemplo. La licencia es MIT y el código completo está en tu carpeta, así que nada de eso es definitivo. Cambiar cómo se ve, qué ofrece y qué enseña son tres movimientos distintos, y cada uno vive en un lugar concreto del repositorio.
Ninguno de los tres pide que sepas programar. Lo que sí ayuda es saber dónde está cada cosa antes de pedirla, porque así te das cuenta si la respuesta se fue por otro lado.
Los colores y la tipografía viven en un solo bloque
Todo el tema está declarado junto, en un solo archivo —app/globals.css—, y de ahí lee la aplicación entera. Eso vuelve el cambio de paleta un cambio de un solo lugar, en vez de una cacería por treinta archivos buscando dónde quedó el morado que ya no quieres. Quedan dos colores fuera, y conviene saberlo: el de la barra del navegador, que vive en los metadatos porque una etiqueta meta no puede leer una variable de CSS, y un degradado índigo en la pantalla de progreso.
La regla que conviene sostener es esa misma: si aparece un color quemado dentro de un componente, lo correcto es subirlo al tema, no volver a pintarlo ahí. El prompt de abajo se lo pide a Claude Code de forma explícita, para que la próxima vez que cambies de marca siga siendo un solo bloque.
No hace falta que lo abras para pedir el cambio, pero está a la vista: el tema vive en app/globals.css, junto y antes de cualquier regla de componente, no repartido por el archivo.
Ponerle tu marca
Los colores y la tipografía viven en un solo bloque al principio de una hoja de estilos, y ningún componente trae un color quemado.
Quiero que esta aplicación se vea como mi marca. Mis colores: [PEGA TUS HEX] Mi tipografía: [NOMBRE, o "deja la que trae"] El nombre del producto: [CÓMO SE VA A LLAMAR] Cambia el bloque de tema al principio de app/globals.css, el nombre y el texto de la portada, y deja listo el lugar donde voy a poner mis propias imágenes de ejemplo en public/demo/. No toques la lógica ni los componentes: todo lee del tema, así que no debería hacer falta. Si te topas con un color escrito a mano en algún componente, muévelo al tema y dímelo. Cuando acabes, arráncalo y dime qué revisar.
Las recetas son datos, no componentes
Teleport, Try-on y Duo no son tres pantallas distintas que alguien programó por separado. Son tres entradas en lib/recipes.ts, y cada una declara lo mismo: cuántas fotos pide, qué prompt base le antepone al texto que tú escribes, y con qué modelo genera la imagen y con cuál la anima. El selector, el texto y los modelos salen de ahí y de ningún otro lado.
Por eso una receta nueva no es un rediseño. Es una entrada más con la misma forma que las tres que ya están.
Cómo se nota la diferencia
Hasta dónde llega el «son datos»
Ese es el examen que separa un archivo de configuración de verdad de uno que solo lo parece, y aquí lo pasa a medias. El prompt base, los modelos, si el texto es obligatorio y cuántas imágenes devuelve: todo eso sale de la receta y no se toca en ningún componente. El número de fotos, no. La zona de arrastre está escrita para una o para dos, y a las dos las toma por su posición. Una receta que declare una tercera foto la declara para nadie: no aparece.
Y falla callado, que es lo peor que puede hacer. La tercera foto no se dibuja, así que nunca se llena; y como el botón de generar solo se habilita cuando todas las ranuras están llenas, se queda apagado sin decir por qué. Si vas a pedir una receta de tres fotos, eso es lo que hay que cambiar primero.
Agregar una receta nueva
Las recetas son datos: el prompt, los modelos y el texto salen de ahí. Las fotos son el límite — la zona de arrastre entiende una o dos, no más.
Quiero agregar una receta más a esta aplicación, junto a Teleport, Try-on y Duo. Se va a llamar [NOMBRE] y hace esto: [DESCRÍBELO EN UNA FRASE] Le voy a dar: [QUÉ FOTOS, cuántas y de qué] Me devuelve: [QUÉ] Agrégala en lib/recipes.ts siguiendo exactamente la forma de las tres que ya están: sus huecos de foto, su prompt base, su modelo de imagen y su modelo de video. Después comprueba que la zona de arrastre y el selector la tomen solos. Ojo con una cosa: ese componente está escrito para una o dos fotos y las toma por su posición, así que si mi receta pide tres, la tercera no se va a dibujar y el botón de generar se va a quedar apagado sin decir por qué. Si es mi caso, dime qué hay que cambiar antes de cambiarlo.
Las imágenes de ejemplo son salida real, y se cambian por las tuyas
Lo que ves en la portada y en el comparador no son maquetas armadas en una herramienta de diseño: son resultados que salieron de esta misma aplicación, y viven en la carpeta public/demo/. Cambias esos archivos por los tuyos y las dos pantallas se actualizan con ellos.
Y si vas a agregar piezas de interfaz que hoy no existen, el proyecto ya usa componentes de 21st.dev, que se agregan con el comando de shadcn. O sea que traer una tarjeta o un selector nuevos no obliga a inventarlos desde cero ni a romper el tema: llegan leyendo las mismas variables que todo lo demás.
Si tienes curiosidad de ver la forma antes de pedir la tuya —qué campos trae cada receta y cómo se ven las tres juntas—, lib/recipes.ts está abierto en el repositorio. Ahí están las tres declaradas, una debajo de la otra.
10 cambiar de proveedor
Higgsfield entra por una sola puerta, y esa puerta se puede cambiar de dueño
Debajo de todo lo que ves en pantalla hay una sola puerta. La aplicación no le habla a Higgsfield: le habla a una interfaz que un archivo declara y que una carpeta implementa. Higgsfield es esa carpeta. Es la única que viene incluida, pero no es la única que cabe.
La distinción suena a detalle de arquitectura y es justo lo contrario: decide cuánto cuesta el día que quieras generar con otra cosa. Si cada pantalla llamara a la API por su cuenta, cambiar de proveedor sería reescribir la aplicación entera. Así, es escribir esas seis operaciones una vez más contra la API nueva y registrarla.
La costura · de un vistazo
Las seis operaciones de generación que cualquier proveedor tiene que saber hacer
- Subir
- Recibe la foto que arrastraste y la deja donde el proveedor pueda leerla después. Todo lo que genera esta aplicación empieza con una imagen tuya, así que es la primera de la fila.
- Estimar
- Pregunta cuánto cuesta antes de gastar. De aquí sale el número que aparece junto al botón, y el desglose cuando un video son dos etapas. Preguntar no cobra.
- Enviar
- Manda el trabajo ya armado y devuelve con qué identificarlo. Esta es la que cobra: hasta aquí no se ha ido un solo crédito.
- Consultar
- Pregunta cómo va un trabajo: si sigue corriendo, si terminó y dónde quedó el resultado, o si falló y por qué.
- Cancelar
- Corta un trabajo que ya no quieres esperar, sin tener que cerrar la pestaña y confiar en que se muera solo.
- Sondear
- Repite la consulta con la espera que documenta esa API, hasta que hay resultado o hay error. Es lo que mantiene la pantalla al día mientras generas.
Además de esas seis, la interfaz pide dos cosas que no son parte de generar nada: entregar el catálogo de modelos que el proveedor nuevo sepa correr, y comprobar que las credenciales sirven sin gastar. Se escriben una vez y se olvidan, pero se escriben.
Lo que hay que escribir
Una implementación más, en su propia carpeta
- Las seis operaciones contra la API nueva: cómo sube un archivo, cómo cotiza, cómo recibe un trabajo, cómo reporta su estado, cómo lo cancela y cada cuánto acepta que le vuelvas a preguntar.
- El registro de esa implementación. Es el paso que la enciende: sin él la carpeta existe y nadie la llama.
- Y nada más. Si la API nueva no puede hacer algo que la interfaz pide, eso es una conversación —no un rodeo escondido dentro de un componente.
Lo que ni se entera
Todo lo que vive por encima de la costura
- Las recetas. Siguen declarando lo mismo que declaran hoy.
- La interfaz completa: la zona donde arrastras las fotos, los selectores, la galería de resultados.
- Las consultas de estado. Preguntan igual, solo que a otra implementación.
- Los precios. El número cambia porque lo cotiza otro; el lugar donde aparece, no.
Cambiar de proveedor de API
Toda la aplicación habla con una interfaz de seis operaciones. Cambiar de API es escribir esa interfaz una vez más, y nada por encima se entera.
Quiero que esta aplicación deje de usar Higgsfield y use [NOMBRE DE LA OTRA API] en su lugar. Lee lib/provider/provider.ts para ver qué operaciones hay que implementar, y lee lib/provider/higgsfield/ como ejemplo de una implementación completa. Después escribe la mía en su propia carpeta y regístrala. No cambies nada por encima de esa costura: ni las recetas, ni la interfaz, ni el sondeo de modelos, ni cómo se muestran los precios. Si la API nueva no puede hacer algo que la interfaz pide, dímelo en vez de inventar un rodeo. Su documentación está aquí: [PEGA EL LINK]
Lo más probable es que nunca escribas esa segunda implementación, y la costura sigue valiendo lo mismo. Un repositorio que le habla directo a un proveedor desde todos lados es un callejón: el día que ese proveedor suba precios, cierre, cambie su API o simplemente deje de servirte para lo que haces, se tira el proyecto y se empieza otra vez desde cero.
Con la costura ese día es una carpeta nueva. Lo que construiste encima —tus recetas, tu marca, la forma en que enseñas el precio antes de cobrar— sobrevive a una decisión que tomó alguien más. Y como se escribe una implementación más y se registra, no es necesariamente una sustitución: agregar no obliga a quitar lo que ya funciona.
El archivo que declara la costura es corto y se lee de una sentada aunque no programes, porque es la lista de lo que un proveedor tiene que saber hacer, sin nada de cómo lo hace: provider.ts, en el repositorio. La carpeta de al lado, la de Higgsfield, es el ejemplo completo de cómo se llena esa lista.
Nada de esto te pide aprender TypeScript. Te pide saber que la costura existe, para que el día que la necesites le pidas a Claude Code que la use en vez de dejar que reescriba la aplicación.
11 las cuatro que muerden
Cuatro trampas que costaron tiempo o dinero, y lo que falta para cobrar
El README del repositorio termina con cuatro apuntes que no son consejos generales. Son cosas que pasaron, en este código, y cada una costó horas o créditos antes de entenderse. Van aquí tal cual porque tres de las cuatro te van a morder también si construyes cualquier cosa contra una API de generación, uses esta aplicación o no.
La cuarta no tiene nada que ver con imágenes. Es un error de JavaScript de los que se ven obvios cuando alguien te los explica y no se ven nunca cuando los estás viviendo.
Que acepte una imagen no significa que preserve a la persona
popcorn/auto recibe imágenes de referencia y las usa. Lo que no tiene es un solo parámetro de identidad: ningún lugar donde decirle que esta cara de aquí es la que importa. Compone una escena convincente con alguien parecido, y eso no es lo mismo que devolverte a ti.
La lección es de proceso, no de ese modelo en particular: hay que revisar qué hace un modelo antes de colgarle una función. Ni el nombre del endpoint ni la lista de parámetros que acepta te lo dicen. Los dos se ven correctos hasta que miras las imágenes que salieron.
Un 403 que parece de credenciales y no lo es
Cloudflare bloquea las peticiones que no traen un identificador de navegador, y eso no está documentado en ningún lado. Desde un cliente HTTP pelón, todos los endpoints devuelven un 403 con código 1010. La petición idéntica, con ese encabezado puesto, devuelve 200.
Lo caro no es el arreglo, que es una línea. Es el rato que pasas revisando tu llave, regenerándola y releyendo la documentación de autenticación por un error que no tiene nada que ver con tus credenciales. En este repositorio el encabezado se pone en un solo lugar, así que si escribes otra integración contra esta API, cópialo de ahí.
La especificación publicada no es la API
Está mal en partes y le faltan familias enteras. Declara resoluciones que la API viva rechaza, y hay endpoints que sencillamente no aparecen: el de subir archivos, los de estimación, el de referencias personalizadas, el de estilos y el de movimientos.
Si generas un cliente a partir de la especificación y das por hecho que ya tienes toda la superficie, te quedas sin buena parte de lo interesante y ni te enteras. Verifica contra la API viva y lee el SDK oficial: lo que falta en el papel suele estar ahí.
Un centinela gigante que se truncó a menos uno
setTimeout recibe un entero de 32 bits. Un valor centinela enorme, de esos que se usan para decir que algo todavía no toca, llegó al temporizador, se truncó a menos uno y disparó de inmediato. El resultado fue un ciclo girando unas 250 veces por segundo mientras la pestaña siguiera viva.
Y como el centinela estaba guardado, volvía en cada recarga: cerrar la pestaña no lo curaba. Si usas un número de futuro lejano para marcar que algo nunca toca, que ese número nunca llegue a un temporizador.
Lo que falta para que esto cobre
Conviene decirlo sin rodeos: traer tu propia llave es exactamente lo que no aguanta un producto de pago. Funciona de maravilla para regalar la aplicación —cada quien pone su llave, cada quien gasta sus créditos y tú no pagas la fiesta de nadie— y por eso mismo no hay nada que cobrar. En el momento en que la llave es tuya y no del usuario, todo cambia de forma.
Lo de abajo no es una lista de mejoras: es la lista de lo que hoy no existe. Ninguno de los cinco puntos es imposible, y ninguno es un rato de tarde tampoco. El orden importa: sin la llave del lado del servidor y sin límites de uso, montar el cobro primero es abrirle tu cuenta a cualquiera. Cuando llegues a esa parte, la guía de PagoKit cubre checkout, webhooks y reembolsos. Aquí solo se nombra el hueco.
- Dónde vive la llave cuando es tuya y no del usuario: deja de ser una cookie en el navegador de cada quien y pasa a ser un secreto que tú custodias y que tú pagas.
- Qué límites de uso pones para que un solo usuario no te vacíe la cuenta en una tarde.
- Cuentas, sesiones y contraseñas: hoy no hay ninguna de las tres, porque no hacían falta cuando la aplicación corre en la máquina de quien la usa.
- Dónde entra el cobro y qué pasa cuando alguien cancela a mitad del ciclo.
- Qué pasa con los resultados que caducan si el usuario ya pagó por ellos: la caducidad la pone el proveedor, la promesa se la haces tú.
Qué le falta para que cobre
La auditoría honesta antes de intentar venderla. Traer tu propia llave es justo lo que no aguanta un producto de pago.
Esta aplicación está hecha para que cada quien traiga su propia llave de API y la corra en su máquina. Yo quiero cobrar por ella. Audítamela con ese objetivo y dame la lista de lo que falta, ordenada por lo que me bloquea primero: · dónde y cómo se guardaría la llave si ahora es mía y no del usuario · qué límites de uso hay que poner para que un solo usuario no me vacíe la cuenta · qué hace falta para tener cuentas, sesiones y contraseñas · dónde entraría el cobro y qué pasa si alguien cancela · qué pasa con los resultados cuando caducan, si el usuario ya pagó por ellos De cada punto dime qué tan grande es y qué se rompe si lo dejo para después. No construyas nada todavía.
Un dato más antes de intentar venderla: el código es MIT, pero las tipografías Satoshi y General Sans que vienen en la carpeta de fuentes van bajo la licencia gratuita de su fundidora. Si lo comercializas heredas esa licencia, y hay que conservar su archivo dentro del proyecto.
Guía de la comunidad
Esta guía es parte de la bóveda abierta de la comunidad de tododeia.
Las fuentes, para que verifiques tú
Lo que dice esta página se leyó del propio repositorio el 31 de agosto de 2026: su README, su licencia y sus recetas. El código es abierto, así que nada de esto hay que creérmelo.
El repositorio
MIT. El README trae los límites conocidos y las cuatro trampas escritas por quien las encontró.
La consola de Higgsfield
De aquí sale la llave que le pegas a la aplicación. Comprobar que sirve no cuesta créditos.
La documentación de la API
Útil, y con huecos: hay familias enteras de endpoints que no están ahí. La guía dice cuáles.
Lo que sigue en la bóveda
Director de arte con Higgsfield
La otra mitad: cómo se produce imagen y video con Higgsfield dentro de claude.ai, sin código. El método de prompting vive allá.
Agente PagoKit
Si de verdad vas a cobrar por esto, el cobro es la pieza que falta. Ese agente escribe el checkout y los webhooks dentro de tu proyecto.
Clonar anuncios
La otra guía de esta tanda: el mismo motor, pero desde el conector dentro de Claude y aplicado a multiplicar anuncios que ya funcionan.
Es un punto de partida, no un producto
Corre, se ve bien y te enseña el precio antes de cobrarte, pero está hecho para que cada quien traiga su llave y lo corra en su máquina. Eso es exactamente lo que no aguanta un producto de pago. La última sección dice qué falta, y no es poco.