Generado con Amazon Titan

Amazon Titan permite a los creadores generar, editar y refinar imágenes de alta calidad utilizando indicaciones de lenguaje natural. La versión V2 admite el condicionamiento de la imagen y la consistencia del sujeto.

Usarlo mediante Python es muy sencillo.

Requisitos: Debes instalar previamente Boto3 y tener establecidas tus credenciales de AWS en el sistema.

import base64
import boto3
import json
import os
import random

# Crear un ambiente de tiempo de ejecución para Bedrock
client = boto3.client("bedrock-runtime", region_name="us-east-1")

# Establecer el ID del modelo a usar, en este caso Titan Image Generator G1.
model_id = "amazon.titan-image-generator-v2:0"

# Definir el Prompt para el modelo.
prompt = "A sci fi scenario, in front of it the word AUTOMATION where each letter is a circuit, piles, cable or light."

# generar un valor aleatorio.
seed = random.randint(0, 2147483647)

# Formatear la petición en la estructura adecuada.
native_request = {
    "taskType": "TEXT_IMAGE",
    "textToImageParams": {"text": prompt},
    "imageGenerationConfig": {
        "numberOfImages": 1,
        "quality": "standard",
        "cfgScale": 8.0,
        "height": 512,
        "width": 512,
        "seed": seed,
    },
}

# Convertir la petición en JSON.
request = json.dumps(native_request)

# Invocar el modelo con la petición.
response = client.invoke_model(modelId=model_id, body=request)

# Decodificar la el cuerpo de la respuesta.
model_response = json.loads(response["body"].read())

# Extraer la información de la imagen.
base64_image_data = model_response["images"][0]

# Almacenar la imagen generada por el modelo en un directorio local.
i, output_dir = 1, "output"
if not os.path.exists(output_dir):
    os.makedirs(output_dir)
while os.path.exists(os.path.join(output_dir, f"steam_{i}.png")):
    i += 1

image_data = base64.b64decode(base64_image_data)

image_path = os.path.join(output_dir, f"steam{i}.png")
with open(image_path, "wb") as file:
    file.write(image_data)

print(f"La imagen generada se almacenó en: {image_path}")

Comentarios