> For the complete documentation index, see [llms.txt](https://docs.neuron-ai.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.neuron-ai.dev/neuron-v3-es/proveedores/image.md).

# Imagen

Normalmente, los servicios de audio de IA pura no admiten capacidades agénticas completas como herramientas y conversación. Por lo tanto, puedes usar estos componentes como servicios independientes en un flujo de trabajo agéntico, o usarlos dentro de un agente, ya que implementan la `AIProviderInterface` interfaz. En este caso puedes beneficiarte de funciones del flujo de trabajo agéntico como middleware y guardrails.

Estos componentes pueden ser útiles para automatizar la generación de imágenes basada en indicaciones textuales.

## Nano Banana (Google)

La API de Google Gemini ofrece una experiencia de multimodalidad completa, así que solo tienes que cambiar el modelo predeterminado en tu proveedor de Gemini para generar imágenes a partir de indicaciones. Neuron también admite la iteración sobre imágenes generadas con conversaciones de varios turnos gracias a su capa de mensajes multimodal y a la gestión del historial de chat.

Solo configura uno de los modelos de generación de imágenes en el proveedor de Google Gemini:

```php
namespace App\Neuron;

use NeuronAI\Agent\Agent;
use NeuronAI\Chat\Messages\UserMessage;
use NeuronAI\Providers\AIProviderInterface;
use NeuronAI\Providers\Gemini\Gemini;

class MyAgent extends Agent
{
    protected function provider(): AIProviderInterface
    {
        return new Gemini(
            key: 'GEMINI_API_KEY',
            model: 'gemini-2.5-flash-image',
        );
    }
}

// Ejecutar el agente
$message = MyAgent::make()
    ->chat(new UserMessage("¡Genera una imagen de un lugar que acoja la mejor conferencia de PHP!"))
    ->getMessage();

// Recupera la parte de imagen del mensaje (está en formato base64)
$imageBase64 = $message->getImage()->getContent();

// Guarda la imagen
file_put_contents(__DIR__.'/assets/cover.png', base64_decode($imageBase64));
```

## Imagen de OpenAI

### Como proveedor de agente

```php
namespace App\Neuron;

use NeuronAI\Agent\Agent;
use NeuronAI\Chat\Messages\UserMessage;
use NeuronAI\Providers\AIProviderInterface;
use NeuronAI\Providers\OpenAI\Image\OpenAIImage;

class MyAgent extends Agent
{
    protected function provider(): AIProviderInterface
    {
        return new OpenAIImage(
            key: 'OPENAI_API_KEY',
            model: 'gpt-image-1.5',
        );
    }
}

// Ejecutar el agente
$message = MyAgent::make()
    ->chat(new UserMessage("¡Genera una imagen de un lugar que acoja la mejor conferencia de PHP!"))
    ->getMessage();

// Recupera la parte de imagen del mensaje (está en formato base64)
$imageBase64 = $message->getImage()->getContent();

// Guarda la imagen
file_put_contents(__DIR__.'/assets/cover.png', base64_decode($imageBase64));
```

### Uso directo

```php
use NeuronAI\Providers\OpenAI\Image\OpenAIImage;

$provider = new OpenAIImage(
    key: 'OPENAI_API_KEY',
    model: 'gpt-image-1.5',
);

// Generar voz a partir de texto
$message = $provider->chat(new UserMessage("¡Genera una imagen de un lugar que acoja la mejor conferencia de PHP!"));

// Recupera la parte de imagen del mensaje (está en formato base64)
$imageBase64 = $message->getImage()->getContent();

// Guarda la imagen
file_put_contents(__DIR__.'/assets/cover.png', base64_decode($imageBase64));
```

## Imagen de ZAI

### Como proveedor de agente

```php
namespace App\Neuron;

use NeuronAI\Agent\Agent;
use NeuronAI\Chat\Messages\UserMessage;
use NeuronAI\Providers\AIProviderInterface;
use NeuronAI\Providers\ZAI\Image\ZAIImage;

class MyAgent extends Agent
{
    protected function provider(): AIProviderInterface
    {
        return new ZAIImage(
            key: 'ZAI_API_KEY',
            model: 'glm-image',
        );
    }
}

// Ejecutar el agente
$message = MyAgent::make()
    ->chat(new UserMessage("¡Genera una imagen de un lugar que acoja la mejor conferencia de PHP!"))
    ->getMessage();

// Imprime la URL de la imagen
echo $message->getImage()->getContent();

```

### Uso directo

```php
use NeuronAI\Providers\ZAI\Image\ZAIImage;

$provider = new ZAIImage(
    key: 'ZAI_API_KEY',
    model: 'glm-image',
);

// Generar voz a partir de texto
$message = $provider->chat(new UserMessage("¡Genera una imagen de un lugar que acoja la mejor conferencia de PHP!"));

// Imprime la URL de la imagen
echo $message->getImage()->getContent();
```
