import ai.sunra.client.*;
import ai.sunra.client.queue.*;
import java.util.Map;
import com.google.gson.JsonObject;
import java.util.function.Consumer;
ClientConfig config = ClientConfig.builder()
.withCredentials(CredentialsResolver.fromEnv())
.build();
SunraClient client = SunraClient.withConfig(config);
Map<String, Object> input = Map.of(
"prompt", "Un hamster mignon est allongé nonchalamment sur une bouée de sauvetage, portant des lunettes de soleil à la mode, et dérive avec les douces vagues sur la surface scintillante de la mer. Le hamster se prélasse confortablement, profitant d'un moment paisible et agréable. Style dessin animé, la caméra suit le sujet en mouvement, avec une qualité d'image réconfortante et élevée.",
"guidance_scale", 0.5,
"aspect_ratio", "16:9",
"duration", 5,
"start_image", "https://assets.sunra.ai/uploads/1748811753168-05ceab0d.png"
);
Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
String status = update.getStatus().toString();
String message = String.format("\nMise à jour du statut : %s, ID de la requête : %s",
status, update.getRequestId());
System.out.println(message);
};
SubscribeOptions<JsonObject> options = SubscribeOptions.<JsonObject>builder()
.input(input)
.resultType(JsonObject.class)
.onQueueUpdate(statusUpdateHandler)
.logs(true)
.build();
Output<JsonObject> response = client.subscribe("kling/kling-v2-master/image-to-video", options);
System.out.println("Terminé !");
System.out.println(response.getData());