GenerateImage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using var client = new LumaClient(apiKey);
using var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromMinutes(5));
var cancellationToken = cancellationTokenSource.Token;

Generation generation = await client.Generations.GenerateImageAsync(
    prompt: "The beautiful woman just smiles",
    aspectRatio: AspectRatio.x4_3,
    cancellationToken: cancellationToken);

if (generation.Id == null)
{
    throw new InvalidOperationException("Generation Id is null.");
}

while (generation.State != State.Failed && generation.State != State.Completed)
{
    await Task.Delay(TimeSpan.FromSeconds(5), cancellationToken);

    generation = await client.Generations.GetGenerationAsync(
        id: generation.Id!.Value.ToString(),
        cancellationToken: cancellationToken);
}

Console.WriteLine($"Id: {generation.Id}");
Console.WriteLine($"FailureReason: {generation.FailureReason}");
Console.WriteLine($"Image URL: {generation.Assets?.Image}");
Console.WriteLine($"State: {generation.State}");