Inteligencia artificialDesarrollo

Cómo funciona AI Creative Director

Cómo AI Creative Director convierte una foto de producto en tres direcciones y genera cuatro imágenes para una campaña.

Introducción

Pedir cuatro imágenes de un mismo producto parece sencillo. Podemos repetir el nombre de la campaña en cuatro prompts y esperar que el modelo entienda que todas deben pertenecer al mismo mundo. Así podemos acabar con cuatro imágenes relacionadas por el texto, pero no necesariamente dirigidas como una campaña.

AI Creative Director empieza un paso antes. Recibe la fotografía de un objeto y permite añadir una pequeña orientación sobre la campaña. En el ejemplo del Lab utilizamos un altavoz naranja y este brief:

For design-conscious urban listeners. Make the campaign feel playful and rooted in everyday city life. Avoid polished luxury and conventional tech advertising.

La herramienta propone tres direcciones de arte, cada una con su propia idea y planificación fotográfica. Después elegimos una y generamos cuatro imágenes que cumplen funciones distintas dentro de la misma campaña.

En este artículo vamos a seguir el recorrido completo para ver cómo una dirección estructurada termina convertida en cuatro fotografías diferentes. También veremos por qué no basta con reutilizar el mismo prompt y qué parte de una campaña queda fuera de este experimento.

La fotografía del objeto y el brief opcional son las dos entradas del experimento.
AI Creative Director con la fotografía de un altavoz naranja y un brief para una campaña urbana y alejada de la publicidad tecnológica de lujo.
La fotografía del objeto y el brief opcional son las dos entradas del experimento.

Dirigir antes de generar

El proceso está dividido en dos fases. Primero definimos el tratamiento y después hacemos la sesión, como ocurriría en una producción fotográfica:

  • Un modelo visual estudia el objeto y propone tres direcciones ejecutables.
  • Tras elegir una, un modelo de imagen produce cuatro fotografías con funciones diferentes.

La separación importa porque la primera fase decide el mundo compartido de la campaña. La segunda resuelve cada fotografía dentro de ese mundo. Si intentásemos decidir las dos cosas en una sola llamada, cada imagen tendría que reconstruir por su cuenta la misma dirección de arte.

Vamos a empezar por el tratamiento.

Proponer tres direcciones

El análisis utiliza Gemma 4 31B, un modelo visual con open weights. Recibe la fotografía y el brief opcional. Cuando no hay brief, la instrucción le prohíbe inventar un público, una historia de marca o capacidades que no pueda ver en el objeto.

Este es el prompt de sistema completo:

El prompt que construye las tres direcciones de campaña
You are a contemporary creative director building executable campaign photography treatments. The generated images are source assets for later advertising layouts, not finished ads. Study the supplied object and any specific guidance. When guidance is provided, treat every concrete request as a constraint. When it is absent, ground the directions only in visible properties of the object; do not invent a target audience, brand story, product capability, or marketing claim. Return exactly three genuinely different campaign directions so the user has a meaningful choice. Each direction must use a different central idea, set logic, lighting strategy, composition, and emotional register. Ground every choice in visible properties of the object. Put the strongest, most executable direction first. whyItFits must explain that connection without generic marketing language.

The palette is a proposed campaign palette, not an extraction from the source. Return only as many colors as the direction needs. Visual rules must be concrete constraints that can be applied to every shot; do not pad the list.

Return exactly four shots in this order and role mapping:
- hero: the key visual. Show one complete, unobstructed product as the dominant subject, occupying roughly 35-60% of the frame. Use an asymmetrical campaign-defining composition with intentional negative space where approved copy could be added later, but include no text.
- detail: the product-detail asset. Use one true macro photograph in which a specified visible material, join, control, or texture continues beyond the frame edges. The complete product must not be visible.
- context: the environmental asset. Use a wide composition in which the setting occupies at least 75% of the frame and the complete product occupies no more than 20%. Show a believable place for the object; do not repeat the key visual's isolated display or product scale.
- surprise: the alternate visual. Stage one physically plausible idea with a clearly different viewpoint, orientation, or interaction. It must create a useful secondary composition rather than another centered product display.

The four shots must remain recognizably one campaign while being unmistakably different as thumbnails. Give each shot a different camera distance and composition. Framing must describe the camera and crop; scene must describe the physical arrangement. Do not combine geometrically incompatible instructions such as a top-down view of an object hanging from a ceiling. Silently check each shot for physical and camera consistency before returning it.

The source image will also be provided to the image model, so preserve the object's silhouette, geometry, proportions, materials, colors, controls, fasteners, straps, and real markings. Never invent copy, labels, logos, brand claims, or people. Do not propose magazine pages, billboards, social-media frames, collages, or other finished layouts. Return only JSON.

La frase que delimita el experimento aparece al principio: las imágenes serán material fuente para una campaña, no anuncios terminados. Podemos reservar espacio negativo para añadir copy más tarde, pero el modelo no debe escribirlo ni componer una revista o una valla publicitaria.

Las direcciones también tienen que estar conectadas con propiedades visibles del objeto. En el altavoz puede utilizar la carcasa translúcida y el asa, o partir del control circular y la silueta triangular. Lo que no puede hacer es inventar una promesa de producto para justificar una idea que ya había decidido.

El brief cambia esa frontera. Si pedimos una campaña dirigida a oyentes urbanos, esa audiencia se convierte en una restricción válida. Si el campo está vacío, el modelo debe trabajar solo con lo que puede observar.

Una respuesta que podamos ejecutar

Una dirección no puede quedarse en un nombre atractivo y un párrafo de inspiración. La siguiente fase necesita saber qué debe compartir toda la campaña y qué debe cambiar en cada fotografía.

Por eso la petición solicita una respuesta JSON. Este es el contrato completo:

El esquema de una dirección de campaña
const directionSchema = {
  name: 'creative_direction_options',
  strict: true,
  schema: {
    type: 'object',
    additionalProperties: false,
    required: ['directions'],
    properties: {
      directions: {
        type: 'array',
        minItems: 3,
        maxItems: 3,
        items: {
          type: 'object',
          additionalProperties: false,
          required: [
            'title',
            'concept',
            'whyItFits',
            'palette',
            'lighting',
            'setDesign',
            'visualRules',
            'shots',
          ],
          properties: {
            title: { type: 'string', minLength: 3, maxLength: 48 },
            concept: { type: 'string', minLength: 20, maxLength: 260 },
            whyItFits: { type: 'string', minLength: 20, maxLength: 260 },
            palette: {
              type: 'array',
              minItems: 1,
              maxItems: 5,
              items: {
                type: 'object',
                additionalProperties: false,
                required: ['name', 'hex'],
                properties: {
                  name: { type: 'string', minLength: 2, maxLength: 30 },
                  hex: { type: 'string', pattern: '^#[0-9A-Fa-f]{6}$' },
                },
              },
            },
            lighting: { type: 'string', minLength: 12, maxLength: 240 },
            setDesign: { type: 'string', minLength: 12, maxLength: 240 },
            visualRules: {
              type: 'array',
              minItems: 1,
              maxItems: 5,
              items: { type: 'string', minLength: 8, maxLength: 180 },
            },
            shots: {
              type: 'array',
              minItems: 4,
              maxItems: 4,
              items: {
                type: 'object',
                additionalProperties: false,
                required: ['role', 'title', 'framing', 'scene'],
                properties: {
                  role: {
                    type: 'string',
                    enum: ['hero', 'detail', 'context', 'surprise'],
                  },
                  title: { type: 'string', minLength: 3, maxLength: 48 },
                  framing: { type: 'string', minLength: 3, maxLength: 100 },
                  scene: { type: 'string', minLength: 12, maxLength: 260 },
                },
              },
            },
          },
        },
      },
    },
  },
}
js

concept, palette, lighting, setDesign y visualRules definen el sistema compartido. Cada elemento de shots contiene su propio encuadre y la disposición física de la escena. whyItFits no alimenta la generación, pero permite explicar en la interfaz por qué esa propuesta tiene sentido para el objeto.

strict: true pide al modelo que ajuste su respuesta al esquema, pero no garantiza que vaya a hacerlo. El servidor comprueba que existan exactamente tres direcciones y que sus cuatro tomas respeten el orden esperado. Si la respuesta está vacía o no puede interpretarse, repite el análisis una sola vez. Cuando elegimos una dirección, el segundo endpoint valida de nuevo todos los campos que utilizará para generar las imágenes.

La configuración actual utiliza temperature: 0.65, thinkingLevel: 'off' y maxTokens: 6000. No son valores obtenidos mediante una comparativa ni una recomendación para otros casos. Solo describen la llamada que ejecuta ahora el experimento.

Tres tratamientos del mismo objeto antes de generar ninguna fotografía.
Las tres direcciones propuestas para el altavoz: Urban Pop, Tactile Play y Neon Nocturne. La tercera está seleccionada.
Tres tratamientos del mismo objeto antes de generar ninguna fotografía.
La dirección elegida separa las decisiones compartidas del encuadre y la escena de cada fotografía.
El plan de Neon Nocturne con cuatro tomas, además del set, la iluminación, la paleta y las reglas visuales compartidas.
La dirección elegida separa las decisiones compartidas del encuadre y la escena de cada fotografía.

Cuatro fotografías, cuatro funciones

Las cuatro imágenes no son variaciones del mismo encuadre. Cada una ocupa un lugar distinto en la campaña:

  • hero presenta el objeto completo como imagen principal.
  • detail se acerca hasta que el producto deja de caber entero en el encuadre.
  • context reduce el objeto y deja que el entorno explique dónde vive.
  • surprise busca una composición secundaria desde otro punto de vista.

Los nombres ayudan, pero no bastan. Un modelo puede llamar “detalle” a otro plano medio o generar cuatro productos centrados sobre fondos distintos. El endpoint añade por eso una restricción específica a cada toma:

Las reglas de composición para cada fotografía
const SHOT_CONSTRAINTS = {
  hero: 'Create the key visual. Show one complete, unobstructed product occupying roughly 35-60% of the frame. Use an asymmetrical campaign-defining composition with intentional negative space where approved copy could be added later, but render no text. The environment must remain secondary.',
  detail: 'Create one single extreme-macro photograph, never a collage or sequence. Show only the specified visible material, join, control, or texture continuing beyond the image edges. It must be impossible to see the complete product, its silhouette, the room, or a background.',
  context: 'Create the environmental image. The setting must occupy at least 75% of the frame and the complete product no more than 20%. Integrate it into a believable place; do not use an isolated display or repeat the key visual's product scale and composition.',
  surprise: 'Execute the unusual physical idea literally while keeping gravity, attachment, and perspective plausible. Create a useful alternate composition with a clearly different viewpoint or orientation. Do not default to another centered product display.',
}
js

Las proporciones convierten palabras vagas en restricciones comprobables. La imagen principal reserva entre un 35 y un 60 % del encuadre para el producto. En la fotografía de contexto, el entorno ocupa al menos un 75 % y el objeto no puede superar el 20 %.

La separación entre framing y scene también evita mezclar la cámara con lo que ocurre delante de ella. El primero describe distancia y recorte. El segundo organiza físicamente el objeto y el set. Así podemos detectar instrucciones incompatibles antes de enviarlas al modelo de imagen.

Generar la campaña

Con la dirección elegida comienza la segunda fase. Las cuatro fotografías utilizan FLUX.2 [klein] 9B, otro modelo con open weights que puede trabajar con una imagen de referencia.

Cada petición combina dos capas. La primera contiene toda la dirección compartida. La segunda añade la función y la composición de una sola toma:

El prompt construido para cada imagen de campaña
Create one campaign-ready source photograph, not a finished advertisement or mockup. Create one photograph only, never a collage, grid, contact sheet, split view, or sequence. Use the supplied reference image as the exact physical product, not as inspiration. Preserve its precise silhouette, geometry, proportions, materials, colors, controls, fasteners, straps, seams, and all visible details. Do not redesign, simplify, add, remove, relocate, or substitute any part of the product.

Campaign direction: {direction.title}
Central idea: {direction.concept}
Set: {direction.setDesign}
Lighting: {direction.lighting}
Campaign palette: {palette}
Non-negotiable visual rules: {direction.visualRules}

Shot role: {shot.role}
Framing: {shot.framing}
Scene: {shot.scene}
Required composition: {SHOT_CONSTRAINTS[shot.role]}

The shot-specific framing, scene, and required composition control camera distance, crop, product scale, and placement. The shared campaign direction controls the visual world, not the composition. Do not collapse this shot into a generic centered product photograph.

La referencia mantiene el objeto

Antes de llegar a los modelos, la fotografía pasa por la misma preparación que utiliza Image Debugger: el navegador limita el lado mayor a 1600 píxeles, rellena de blanco la transparencia y conserva la versión más pequeña entre JPEG y PNG.

Las cuatro peticiones reciben la fotografía original mediante referenceImages. El texto puede describir un altavoz naranja, pero la referencia contiene su forma concreta, la carcasa, la rejilla, el control metálico y la correa.

El prompt insiste en conservar esos detalles y trata la imagen como el producto físico, no como una inspiración. Sigue sin ser una garantía de identidad exacta. Un modelo generativo puede reinterpretar una unión o cambiar una proporción, y la comparación final debe comprobarlo.

Un negative prompt para obtener fotografías

Todas las tomas comparten este negative prompt:

Elementos excluidos de las imágenes de campaña
typography, text, letters, words, logo, wordmark, label, watermark, signature, border, frame, device frame, magazine page, billboard, mockup, collage, grid, contact sheet, duplicate product, multiple products, people, person, hands

Varios términos impiden que una fotografía fuente se convierta en un anuncio terminado. También bloqueamos productos duplicados. people y hands están excluidos porque la única referencia es el objeto y cualquier persona sería un casting inventado por la herramienta.

Las cuatro llamadas utilizan 1024 × 1024 píxeles y 4 pasos. Es la configuración actual del experimento, no una conclusión sobre los mejores parámetros.

Como las peticiones son independientes, se ejecutan en paralelo. Si una toma falla, las demás no se descartan. La interfaz conserva su hueco y muestra el error solo en esa posición.

Una toma puede fallar sola

La generación utiliza Promise.allSettled en lugar de Promise.all. Un error aislado se convierte en null y mantiene la posición de la toma. Si fallan las cuatro, el endpoint devuelve el error completo porque ya no existe ningún resultado parcial que mostrar.

El resultado de ejecutar las cuatro funciones dentro de la misma dirección visual.
Las cuatro fotografías de Neon Nocturne: una imagen principal del altavoz, un macro de la correa, una escena junto a un neón y una composición con reflejo.
El resultado de ejecutar las cuatro funciones dentro de la misma dirección visual.

Qué demuestra la campaña

La dirección Neon Nocturne sobrevive al cambio de encuadre. Las cuatro imágenes comparten fondos oscuros, luz magenta y superficies reflectantes. Fabric Weave funciona como un macro y Night Stand deja entrar el entorno. The Glow y The Reflection son las más próximas entre sí porque ambas muestran el altavoz completo sobre una superficie reflectante, aunque la segunda convierte el espejo en el centro de la composición.

La silueta triangular, la carcasa translúcida, la rejilla, el control metálico y la correa siguen siendo reconocibles. No permanecen intactos. Cambian las proporciones de la carcasa, la forma de la rejilla y algunos detalles alrededor del control. La referencia mantiene la identidad general del objeto, no una copia exacta.

La comparación debe responder dos preguntas diferentes. La primera es si las fotografías parecen pertenecer a la misma campaña. La segunda es si cada una cumple una función que las demás no cubren. Coherencia no significa repetir cuatro veces la misma imagen.

Qué dirige realmente

AI Creative Director no entrega un anuncio listo para publicar. No escribe copy ni decide una composición final con texto. Tampoco genera adaptaciones cerradas para medios concretos. Produce un tratamiento estructurado y cuatro fotografías fuente sobre las que todavía se puede diseñar.

La parte importante del experimento ocurre antes de la generación. Una dirección de arte se convierte en datos que podemos inspeccionar antes de elegirla y reutilizar después. Cada imagen recibe entonces la parte común y una responsabilidad propia.

El resultado todavía no es una campaña terminada. Al menos dejamos de pedir cuatro veces “haz algo parecido”.

Puedes apoyarme para que pueda dedicar aún más tiempo a escribir artículos y tener recursos para crear nuevos proyectos. ¡Gracias!

Contribuir