12 septiembre, 2026

GPT-6 ASTRA EN POWER APPS: GENERAR PROMPTS INTELIGENTES PARA UN MODELO DE CREACIÓN DE IMÁGENES

Hola a todos,

Desde que se anunció GPT-6 Astra, tenía ganas de incluir este modelo en un flujo de Power Automate para poder utilizarlo desde Power Apps.

Para hacerlo, he modificado una aplicación que ya tenía creada y que generaba imágenes mediante GPT Image 2, versión 2026-04-21, desplegado en Azure AI Foundry.

La diferencia ahora es que GPT-6 Astra no genera la imagen. Su función es interpretar la idea inicial del usuario y transformarla en un prompt mucho más completo.

Ese prompt generado por Astra se envía posteriormente a GPT Image 2, que es el modelo encargado de crear la imagen final.

De esta forma, el proceso queda dividido en dos partes diferenciadas: GPT-6 Astra razona y construye el prompt, mientras que GPT Image 2 genera la imagen.

El esquema sería: Power Apps → Power Automate → GPT-6 Astra → GPT Image 2 → Power Apps

Y como tenemos la app, vamos a mostrarla y vamos a escribir la palabra Grillo topo, que es un insecto y que quiero que la aplicación me genere una imagen. No le voy a poner prompt, eso lo va a hacer Astra:

En el momento que pulso el botón el flujo se activa y enviar el texto Grillo topo al modelo desplegado de Astra que va a generar un prompt sobre el que se va a basar la imagen:

Este es el prompt que ha generado y la imagen que muestra es de gran calidad y definición. es decir, Astra ha entendido que la imagen es un insecto y por lo tanto, debemos crear una macrofotografía y resto de detalles (además de identificar el espécimen).

Macrofotografía fotorrealista de un grillo topo (Gryllotalpidae) en la entrada de una pequeña galería excavada en tierra húmeda. El insecto es el protagonista absoluto, con cuerpo alargado de color marrón aterciopelado, pronoto robusto, antenas finas, ojos pequeños y patas delanteras anchas y dentadas, adaptadas para excavar. Vista lateral en tres cuartos, cámara a ras del suelo, mostrando claramente la cabeza y ambas patas excavadoras. Entorno natural con diminutos terrones, raíces finas y fragmentos de hojas, sin distraer del sujeto. Luz suave y difusa de primera hora de la mañana, sombras delicadas y tonos terrosos realistas. Gran detalle en el exoesqueleto, los pelos sensoriales y los granos de tierra adheridos al cuerpo. Profundidad de campo reducida, cabeza y tórax nítidos sobre un fondo suavemente desenfocado. Estética de fotografía científica de naturaleza, anatomía precisa, ambiente íntimo y subterráneo. Sin texto, letras, logotipos ni marcas de agua.

El flujo completo es este:

Para los códigos, os dejo aquí.

============================================================
1. POWER APPS (V2)
============================================================

Entrada: prompt
Valor recibido en Power Automate:
triggerBody()?['text']

============================================================
2. HTTP ASTRA
============================================================

Método: POST

Body:
{
  "model": "gpt-6-astra",
  "instructions": "Eres un experto en creación de prompts profesionales para modelos de generación de imágenes. Recibirás una descripción sencilla escrita por un usuario y debes transformarla en un prompt visual detallado y optimizado. Mantén fielmente la intención original del usuario. Define claramente el sujeto principal, entorno, composición, perspectiva, iluminación, estilo visual, nivel de detalle y ambiente. Evita elementos contradictorios. No incluyas texto, letras, logotipos ni marcas de agua dentro de la imagen salvo que el usuario lo solicite expresamente. Devuelve únicamente el prompt final que debe recibir el modelo de generación de imágenes. No añadas explicaciones, títulos, Markdown, comillas ni comentarios.",
  "input": "@{triggerBody()?['text']}",
  "reasoning": {
    "effort": "medium"
  },
  "max_output_tokens": 2000
}

Obtener prompt generado por Astra:
body('HTTP_ASTRA')?['output'][0]?['content'][0]?['text']

============================================================
3. HTTP
============================================================

Método: POST

Body:
{
  "model": "img-gpt-image-2-dev",
  "prompt": "@{body('HTTP_ASTRA')?['output'][0]?['content'][0]?['text']}",
  "size": "1024x1024",
  "quality": "medium",
  "n": 1
}

============================================================
4. ANÁLISIS_DEL_ARCHIVO_JSON
============================================================

Contenido:
body('HTTP')

Esquema:
{
  "type": "object",
  "properties": {
    "created": {
      "type": "integer"
    },
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "b64_json": {
            "type": "string"
          }
        },
        "required": [
          "b64_json"
        ]
      }
    }
  },
  "required": [
    "data"
  ]
}

Obtener imagen Base64:
first(body('Análisis_del_archivo_JSON')?['data'])?['b64_json']

============================================================
5. CREAR_ARCHIVO
============================================================

Nombre del archivo:
imagen_@{formatDateTime(utcNow(), 'yyyyMMdd_HHmmss')}.png

Contenido del archivo:
base64ToBinary(first(body('Análisis_del_archivo_JSON')?['data'])?['b64_json'])

============================================================
6. RESPOND_TO_A_POWER_APP_OR_FLOW
============================================================

imgbase64:
first(body('Análisis_del_archivo_JSON')?['data'])?['b64_json']

formato:
body('Análisis_del_archivo_JSON')?['output_format']

calidad:
body('Análisis_del_archivo_JSON')?['quality']

tamano:
body('Análisis_del_archivo_JSON')?['size']

tokenstotales:
string(body('Análisis_del_archivo_JSON')?['usage']?['total_tokens'])

tokensentrada:
string(body('Análisis_del_archivo_JSON')?['usage']?['input_tokens'])

tokenssalida:
string(body('Análisis_del_archivo_JSON')?['usage']?['output_tokens'])

promptastra:
body('HTTP_ASTRA')?['output'][0]?['content'][0]?['text']

Para que lo tengáis todo, en el botón de la App, vamos a colocar este código:

Set(
    varResultadoImagen;
    GENERARIMAGENGPTASTRA.Run(TextInput1_1.Text)
);;

Set(
    varImgBase64;
    varResultadoImagen.imgbase64
);;

Set(
    varImg;
    "data:image/png;base64," & varImgBase64
);;
Set(
    varPromptAstra;
    varResultadoImagen.promptastra
);;


Y esto es un ejemplo muy sencillo, podríamos hacerlo más interesante si usamos Astra para comparar procesos complejo, definir flujos, etc. Pero me gusta hacerlo con una aplicación visual.

Espero que os haya gustado.

Comparte este post

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies