Skip to content
This repository was archived by the owner on Nov 27, 2024. It is now read-only.

Commit 719feb1

Browse files
authored
Merge pull request #117 from saddam213/Api
Major: API Refactor Part 2
2 parents bf4315f + 16ddf2a commit 719feb1

File tree

81 files changed

+1662
-2442
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+1662
-2442
lines changed

OnnxStack.Console/Examples/ControlNetExample.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public ControlNetExample(StableDiffusionConfig configuration)
3232
public async Task RunAsync()
3333
{
3434
// Load Control Image
35-
var controlImage = await InputImage.FromFileAsync("D:\\Repositories\\OnnxStack\\Assets\\Samples\\OpenPose.png");
35+
var controlImage = await OnnxImage.FromFileAsync("D:\\Repositories\\OnnxStack\\Assets\\Samples\\OpenPose.png");
3636

3737
// Create ControlNet
3838
var controlNet = ControlNetModel.Create("D:\\Repositories\\controlnet_onnx\\controlnet\\openpose.onnx");
@@ -54,11 +54,11 @@ public async Task RunAsync()
5454
var result = await pipeline.RunAsync(promptOptions, controlNet: controlNet, progressCallback: OutputHelpers.ProgressCallback);
5555

5656
// Create Image from Tensor result
57-
var image = result.ToImage();
57+
var image = new OnnxImage(result);
5858

5959
// Save Image File
6060
var outputFilename = Path.Combine(_outputDirectory, $"Output.png");
61-
await image.SaveAsPngAsync(outputFilename);
61+
await image.SaveAsync(outputFilename);
6262

6363
//Unload
6464
await controlNet.UnloadAsync();

OnnxStack.Console/Examples/ControlNetFeatureExample.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public ControlNetFeatureExample(StableDiffusionConfig configuration)
3232
public async Task RunAsync()
3333
{
3434
// Load Control Image
35-
var inputImage = await InputImage.FromFileAsync("D:\\Repositories\\OnnxStack\\Assets\\Samples\\Img2Img_Start.bmp");
35+
var inputImage = await OnnxImage.FromFileAsync("D:\\Repositories\\OnnxStack\\Assets\\Samples\\Img2Img_Start.bmp");
3636

3737
// Create Annotation pipeline
3838
var annotationPipeline = FeatureExtractorPipeline.CreatePipeline("D:\\Repositories\\controlnet_onnx\\annotators\\depth.onnx", true);
@@ -41,7 +41,7 @@ public async Task RunAsync()
4141
var controlImage = await annotationPipeline.RunAsync(inputImage);
4242

4343
// Save Depth Image (Debug Only)
44-
await controlImage.Image.SaveAsPngAsync(Path.Combine(_outputDirectory, $"Depth.png"));
44+
await controlImage.SaveAsync(Path.Combine(_outputDirectory, $"Depth.png"));
4545

4646
// Create ControlNet
4747
var controlNet = ControlNetModel.Create("D:\\Repositories\\controlnet_onnx\\controlnet\\depth.onnx");
@@ -61,11 +61,11 @@ public async Task RunAsync()
6161
var result = await pipeline.RunAsync(promptOptions, controlNet: controlNet, progressCallback: OutputHelpers.ProgressCallback);
6262

6363
// Create Image from Tensor result
64-
var image = result.ToImage();
64+
var image = new OnnxImage(result);
6565

6666
// Save Image File
6767
var outputFilename = Path.Combine(_outputDirectory, $"Output.png");
68-
await image.SaveAsPngAsync(outputFilename);
68+
await image.SaveAsync(outputFilename);
6969

7070
//Unload
7171
await annotationPipeline.UnloadAsync();

OnnxStack.Console/Examples/FeatureExtractorExample.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using OnnxStack.Core.Image;
2+
using OnnxStack.Core.Video;
23
using OnnxStack.FeatureExtractor.Pipelines;
34
using OnnxStack.StableDiffusion.Config;
45
using SixLabors.ImageSharp;
@@ -30,7 +31,7 @@ public FeatureExtractorExample(StableDiffusionConfig configuration)
3031
public async Task RunAsync()
3132
{
3233
// Load Control Image
33-
var inputImage = await InputImage.FromFileAsync("D:\\Repositories\\OnnxStack\\Assets\\Samples\\Img2Img_Start.bmp");
34+
var inputImage = await OnnxImage.FromFileAsync("D:\\Repositories\\OnnxStack\\Assets\\Samples\\Img2Img_Start.bmp");
3435

3536
var pipelines = new[]
3637
{
@@ -47,14 +48,13 @@ public async Task RunAsync()
4748
var timestamp = Stopwatch.GetTimestamp();
4849
OutputHelpers.WriteConsole($"Load pipeline`{pipeline.Name}`", ConsoleColor.Cyan);
4950

50-
// Run Pipeline
51+
// Run Image Pipeline
5152
var imageFeature = await pipeline.RunAsync(inputImage);
5253

5354
OutputHelpers.WriteConsole($"Generating image", ConsoleColor.Cyan);
5455

5556
// Save Image
56-
await imageFeature.Image.SaveAsPngAsync(Path.Combine(_outputDirectory, $"{pipeline.Name}.png"));
57-
57+
await imageFeature.SaveAsync(Path.Combine(_outputDirectory, $"{pipeline.Name}.png"));
5858

5959
OutputHelpers.WriteConsole($"Unload pipeline", ConsoleColor.Cyan);
6060

OnnxStack.Console/Examples/StableDebug.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,11 @@ public async Task RunAsync()
6969
var result = await pipeline.RunAsync(promptOptions, schedulerOptions, progressCallback: OutputHelpers.ProgressCallback);
7070

7171
// Create Image from Tensor result
72-
var image = result.ToImage();
72+
var image = new OnnxImage(result);
7373

7474
// Save Image File
7575
var outputFilename = Path.Combine(_outputDirectory, $"{modelSet.Name}_{schedulerOptions.SchedulerType}.png");
76-
await image.SaveAsPngAsync(outputFilename);
76+
await image.SaveAsync(outputFilename);
7777

7878
OutputHelpers.WriteConsole($"{schedulerOptions.SchedulerType} Image Created: {Path.GetFileName(outputFilename)}", ConsoleColor.Green);
7979
OutputHelpers.WriteConsole($"Elapsed: {Stopwatch.GetElapsedTime(timestamp)}ms", ConsoleColor.Yellow);

OnnxStack.Console/Examples/StableDiffusionBatch.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,11 @@ public async Task RunAsync()
6161
await foreach (var result in pipeline.RunBatchAsync(batchOptions, promptOptions, progressCallback: OutputHelpers.BatchProgressCallback))
6262
{
6363
// Create Image from Tensor result
64-
var image = result.ImageResult.ToImage();
64+
var image = new OnnxImage(result.Result);
6565

6666
// Save Image File
6767
var outputFilename = Path.Combine(_outputDirectory, $"{modelSet.Name}_{result.SchedulerOptions.Seed}.png");
68-
await image.SaveAsPngAsync(outputFilename);
68+
await image.SaveAsync(outputFilename);
6969

7070
OutputHelpers.WriteConsole($"Image Created: {Path.GetFileName(outputFilename)}, Elapsed: {Stopwatch.GetElapsedTime(timestamp)}ms", ConsoleColor.Green);
7171
timestamp = Stopwatch.GetTimestamp();

OnnxStack.Console/Examples/StableDiffusionExample.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,11 @@ public async Task RunAsync()
6767
OutputHelpers.WriteConsole($"Generating '{schedulerType}' Image...", ConsoleColor.Green);
6868

6969
// Run pipeline
70-
var result = await pipeline.RunAsync(promptOptions, schedulerOptions, progressCallback: OutputHelpers.ProgressCallback);
71-
72-
// Create Image from Tensor result
73-
var image = result.ToImage();
70+
var result = await pipeline.GenerateImageAsync(promptOptions, schedulerOptions, progressCallback: OutputHelpers.ProgressCallback);
7471

7572
// Save Image File
7673
var outputFilename = Path.Combine(_outputDirectory, $"{modelSet.Name}_{schedulerOptions.SchedulerType}.png");
77-
await image.SaveAsPngAsync(outputFilename);
74+
await result.SaveAsync(outputFilename);
7875

7976
OutputHelpers.WriteConsole($"Image Created: {Path.GetFileName(outputFilename)}, Elapsed: {Stopwatch.GetElapsedTime(timestamp)}ms", ConsoleColor.Green);
8077
}

OnnxStack.Console/Examples/StableDiffusionGenerator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,11 @@ public async Task RunAsync()
5858
var result = await pipeline.RunAsync(promptOptions, progressCallback: OutputHelpers.ProgressCallback);
5959

6060
// Create Image from Tensor result
61-
var image = result.ToImage();
61+
var image = new OnnxImage(result);
6262

6363
// Save Image File
6464
var outputFilename = Path.Combine(_outputDirectory, $"{modelSet.Name}_{generationPrompt.Key}.png");
65-
await image.SaveAsPngAsync(outputFilename);
65+
await image.SaveAsync(outputFilename);
6666

6767
OutputHelpers.WriteConsole($"Image Created: {Path.GetFileName(outputFilename)}, Elapsed: {Stopwatch.GetElapsedTime(timestamp)}ms", ConsoleColor.Green);
6868
}

OnnxStack.Console/Examples/UpscaleExample.cs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
11
using OnnxStack.Core.Image;
22
using OnnxStack.FeatureExtractor.Pipelines;
3-
using OnnxStack.ImageUpscaler.Config;
4-
using SixLabors.ImageSharp;
53

64
namespace OnnxStack.Console.Runner
75
{
86
public sealed class UpscaleExample : IExampleRunner
97
{
108
private readonly string _outputDirectory;
11-
private readonly ImageUpscalerConfig _configuration;
129

13-
public UpscaleExample(ImageUpscalerConfig configuration)
10+
public UpscaleExample()
1411
{
15-
_configuration = configuration;
1612
_outputDirectory = Path.Combine(Directory.GetCurrentDirectory(), "Examples", nameof(UpscaleExample));
1713
Directory.CreateDirectory(_outputDirectory);
1814
}
@@ -26,7 +22,7 @@ public UpscaleExample(ImageUpscalerConfig configuration)
2622
public async Task RunAsync()
2723
{
2824
// Load Input Image
29-
var inputImage = await InputImage.FromFileAsync("D:\\Repositories\\OnnxStack\\Assets\\Samples\\Img2Img_Start.bmp");
25+
var inputImage = await OnnxImage.FromFileAsync("D:\\Repositories\\OnnxStack\\Assets\\Samples\\Img2Img_Start.bmp");
3026

3127
// Create Pipeline
3228
var pipeline = ImageUpscalePipeline.CreatePipeline("D:\\Repositories\\upscaler\\SwinIR\\003_realSR_BSRGAN_DFO_s64w8_SwinIR-M_x4_GAN.onnx", 4);
@@ -35,11 +31,11 @@ public async Task RunAsync()
3531
var result = await pipeline.RunAsync(inputImage);
3632

3733
// Create Image from Tensor result
38-
var image = result.ToImage(ImageNormalizeType.ZeroToOne);
34+
var image = new OnnxImage(result, ImageNormalizeType.ZeroToOne);
3935

4036
// Save Image File
4137
var outputFilename = Path.Combine(_outputDirectory, $"Upscaled.png");
42-
await image.SaveAsPngAsync(outputFilename);
38+
await image.SaveAsync(outputFilename);
4339

4440
// Unload
4541
await pipeline.UnloadAsync();

OnnxStack.Console/Examples/VideoToVideoExample.cs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
using OnnxStack.Core.Services;
2-
using OnnxStack.Core.Video;
3-
using OnnxStack.StableDiffusion.Common;
1+
using OnnxStack.Core.Video;
42
using OnnxStack.StableDiffusion.Config;
53
using OnnxStack.StableDiffusion.Enums;
64
using OnnxStack.StableDiffusion.Pipelines;
@@ -11,12 +9,10 @@ public sealed class VideoToVideoExample : IExampleRunner
119
{
1210
private readonly string _outputDirectory;
1311
private readonly StableDiffusionConfig _configuration;
14-
private readonly IVideoService _videoService;
1512

16-
public VideoToVideoExample(StableDiffusionConfig configuration, IVideoService videoService)
13+
public VideoToVideoExample(StableDiffusionConfig configuration)
1714
{
1815
_configuration = configuration;
19-
_videoService = videoService;
2016
_outputDirectory = Path.Combine(Directory.GetCurrentDirectory(), "Examples", nameof(VideoToVideoExample));
2117
Directory.CreateDirectory(_outputDirectory);
2218
}
@@ -30,8 +26,7 @@ public VideoToVideoExample(StableDiffusionConfig configuration, IVideoService vi
3026
public async Task RunAsync()
3127
{
3228
// Load Video
33-
var targetFPS = 15;
34-
var videoInput = await VideoInput.FromFileAsync("C:\\Users\\Deven\\Pictures\\gidsgphy.gif", targetFPS);
29+
var videoInput = await OnnxVideo.FromFileAsync("C:\\Users\\Deven\\Pictures\\gidsgphy.gif");
3530

3631
// Loop though the appsettings.json model sets
3732
foreach (var modelSet in _configuration.ModelSets)
@@ -53,11 +48,10 @@ public async Task RunAsync()
5348
};
5449

5550
// Run pipeline
56-
var result = await pipeline.RunAsync(promptOptions, progressCallback: OutputHelpers.FrameProgressCallback);
51+
var result = await pipeline.GenerateVideoAsync(promptOptions, progressCallback: OutputHelpers.FrameProgressCallback);
5752

5853
// Save Video File
59-
var outputFilename = Path.Combine(_outputDirectory, $"{modelSet.Name}.mp4");
60-
await VideoInput.SaveFileAsync(result, outputFilename, targetFPS);
54+
await result.SaveAsync(Path.Combine(_outputDirectory, $"Result.mp4"));
6155
}
6256
}
6357
}

OnnxStack.Console/Program.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ static async Task Main(string[] _)
1919
// Add OnnxStack
2020
builder.Services.AddOnnxStack();
2121
builder.Services.AddOnnxStackConfig<StableDiffusionConfig>();
22-
builder.Services.AddOnnxStackImageUpscaler();
2322

2423
// Add AppService
2524
builder.Services.AddHostedService<AppService>();

0 commit comments

Comments
 (0)