usingvarclient=newHedraClient(apiKey);// 1. List available models to get a valid model IDvarmodels=awaitclient.ListModelsAsync();varmodel=models.First();varmodelId=Guid.Parse(model.Id);Console.WriteLine($"Using model: {modelId}");// 2. Create and upload an audio assetCreateAssetResponseaudioAsset=awaitclient.CreateAssetAsync(name:H.Resources.hello_wav.FileName,type:AssetType.Audio);AssetuploadedAudio=awaitclient.UploadAssetAsync(id:audioAsset.Id,file:Convert.ToBase64String(H.Resources.hello_wav.AsBytes()));// 3. Create and upload an image assetCreateAssetResponseimageAsset=awaitclient.CreateAssetAsync(name:H.Resources.girl_png.FileName,type:AssetType.Image);AssetuploadedImage=awaitclient.UploadAssetAsync(id:imageAsset.Id,file:Convert.ToBase64String(H.Resources.girl_png.AsBytes()));// 4. Generate a talking avatar videoGenerateAssetPublicGenerationsPostResponsegeneration=awaitclient.GenerateAssetAsync(request:newGenerateVideoRequestInput{AiModelId=modelId,StartKeyframeId=imageAsset.Id,AudioId=audioAsset.Id,GeneratedVideoInputs=newGeneratedVideoInputs{TextPrompt="A girl saying hello",},});GuidgenerationId=generation.Video!.Id;Console.WriteLine($"Generation ID: {generationId}");// 5. Poll for completionGenerationStatusResponsestatus;do{awaitTask.Delay(TimeSpan.FromSeconds(5));status=awaitclient.GetStatusAsync(generationId:generationId);}while(status.Statusisnot(GenerationStatus.CompleteorGenerationStatus.Error));if(status.ErrorMessage!=null){Console.WriteLine($"Error: {status.ErrorMessage}");}Console.WriteLine(status.Url);