Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

Haz como yo hice

org.springframework.ai spring-ai-starter-model-openai

package com.ejemplo.imagenes;

import org.springframework.ai.image.ImageModel;
import org.springframework.ai.image.ImageOptionsBuilder;
import org.springframework.ai.image.ImagePrompt;
import org.springframework.ai.image.ImageResponse;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

@RestController
@RequestMapping("/imagenes")
public class GeneradorDeImagenesController {

private final ImageModel imageModel;

public GeneradorDeImagenesController(ImageModel imageModel) {
    this.imageModel = imageModel;
}

@GetMapping("/generar")
public Map<String, String> generarImagen(@RequestParam String prompt) {

    String promptMejorado = """
            Genera una imagen de alta calidad basada en la siguiente descripción.
            Mantén coherencia visual, buena composición, iluminación clara y detalles realistas.
            Descripción del usuario: %s
            """.formatted(prompt);

    ImageResponse response = imageModel.call(
            new ImagePrompt(
                    promptMejorado,
                    ImageOptionsBuilder.builder()
                            .width(1024)
                            .height(1024)
                            .build()
            )
    );

    String imageUrl = response.getResult().getOutput().getUrl();

    return Map.of(
            "prompt", prompt,
            "imageUrl", imageUrl
    );
}

}

package com.ejemplo.imagenes;

import org.springframework.ai.image.ImageModel;
import org.springframework.ai.image.ImagePrompt;
import org.springframework.ai.image.ImageResponse;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/imagenes")
public class GeneradorDeImagenesController {

private final ImageModel imageModel;

public GeneradorDeImagenesController(ImageModel imageModel) {
    this.imageModel = imageModel;
}

@GetMapping
public String generar(@RequestParam String prompt) {
    ImageResponse response = imageModel.call(new ImagePrompt(prompt));
    return response.getResult().getOutput().getUrl();
}

}