1
+ #pragma warning disable CA2208
2
+
3
+ using System ;
4
+
5
+ namespace StableDiffusion . NET ;
6
+
7
+ public static class ParameterExtension
8
+ {
9
+ public static void Validate ( this StableDiffusionParameter parameter )
10
+ {
11
+ ArgumentNullException . ThrowIfNull ( parameter , nameof ( parameter ) ) ;
12
+ ArgumentNullException . ThrowIfNull ( parameter . ControlNet , nameof ( StableDiffusionParameter . ControlNet ) ) ;
13
+ ArgumentNullException . ThrowIfNull ( parameter . PhotoMaker , nameof ( StableDiffusionParameter . PhotoMaker ) ) ;
14
+ ArgumentNullException . ThrowIfNull ( parameter . NegativePrompt , nameof ( StableDiffusionParameter . NegativePrompt ) ) ;
15
+
16
+ ArgumentOutOfRangeException . ThrowIfNegativeOrZero ( parameter . Width , nameof ( StableDiffusionParameter . Width ) ) ;
17
+ ArgumentOutOfRangeException . ThrowIfNegativeOrZero ( parameter . Height , nameof ( StableDiffusionParameter . Height ) ) ;
18
+ ArgumentOutOfRangeException . ThrowIfNegativeOrZero ( parameter . SampleSteps , nameof ( StableDiffusionParameter . SampleSteps ) ) ;
19
+
20
+ ArgumentOutOfRangeException . ThrowIfNegative ( parameter . CfgScale , nameof ( StableDiffusionParameter . CfgScale ) ) ;
21
+ ArgumentOutOfRangeException . ThrowIfNegative ( parameter . Strength , nameof ( StableDiffusionParameter . Strength ) ) ;
22
+
23
+ if ( ! Enum . IsDefined ( parameter . SampleMethod ) ) throw new ArgumentOutOfRangeException ( nameof ( StableDiffusionParameter . SampleMethod ) ) ;
24
+
25
+ parameter . ControlNet . Validate ( ) ;
26
+ parameter . PhotoMaker . Validate ( ) ;
27
+ }
28
+
29
+ public static void Validate ( this StableDiffusionControlNetParameter parameter )
30
+ {
31
+ ArgumentNullException . ThrowIfNull ( parameter , nameof ( StableDiffusionParameter . ControlNet ) ) ;
32
+
33
+ ArgumentOutOfRangeException . ThrowIfNegative ( parameter . Strength , nameof ( StableDiffusionControlNetParameter . Strength ) ) ;
34
+ ArgumentOutOfRangeException . ThrowIfNegative ( parameter . CannyHighThreshold , nameof ( StableDiffusionControlNetParameter . CannyHighThreshold ) ) ;
35
+ ArgumentOutOfRangeException . ThrowIfNegative ( parameter . CannyLowThreshold , nameof ( StableDiffusionControlNetParameter . CannyLowThreshold ) ) ;
36
+ ArgumentOutOfRangeException . ThrowIfNegative ( parameter . CannyWeak , nameof ( StableDiffusionControlNetParameter . CannyWeak ) ) ;
37
+ ArgumentOutOfRangeException . ThrowIfNegative ( parameter . CannyStrong , nameof ( StableDiffusionControlNetParameter . CannyStrong ) ) ;
38
+ }
39
+
40
+ public static void Validate ( this PhotoMakerParameter parameter )
41
+ {
42
+ ArgumentNullException . ThrowIfNull ( parameter , nameof ( StableDiffusionParameter . PhotoMaker ) ) ;
43
+ ArgumentNullException . ThrowIfNull ( parameter . InputIdImageDirectory , nameof ( PhotoMakerParameter . InputIdImageDirectory ) ) ;
44
+
45
+ ArgumentOutOfRangeException . ThrowIfNegative ( parameter . StyleRatio , nameof ( PhotoMakerParameter . StyleRatio ) ) ;
46
+ }
47
+
48
+ public static void Validate ( this ModelParameter parameter )
49
+ {
50
+ ArgumentNullException . ThrowIfNull ( parameter , nameof ( parameter ) ) ;
51
+ ArgumentNullException . ThrowIfNull ( parameter . TaesdPath , nameof ( ModelParameter . TaesdPath ) ) ;
52
+ ArgumentNullException . ThrowIfNull ( parameter . LoraModelDir , nameof ( ModelParameter . LoraModelDir ) ) ;
53
+ ArgumentNullException . ThrowIfNull ( parameter . VaePath , nameof ( ModelParameter . VaePath ) ) ;
54
+ ArgumentNullException . ThrowIfNull ( parameter . ControlNetPath , nameof ( ModelParameter . ControlNetPath ) ) ;
55
+ ArgumentNullException . ThrowIfNull ( parameter . EmbeddingsDirectory , nameof ( ModelParameter . EmbeddingsDirectory ) ) ;
56
+ ArgumentNullException . ThrowIfNull ( parameter . StackedIdEmbeddingsDirectory , nameof ( ModelParameter . StackedIdEmbeddingsDirectory ) ) ;
57
+
58
+ if ( ! Enum . IsDefined ( parameter . RngType ) ) throw new ArgumentOutOfRangeException ( nameof ( ModelParameter . RngType ) ) ;
59
+ if ( ! Enum . IsDefined ( parameter . Quantization ) ) throw new ArgumentOutOfRangeException ( nameof ( ModelParameter . Quantization ) ) ;
60
+ if ( ! Enum . IsDefined ( parameter . Schedule ) ) throw new ArgumentOutOfRangeException ( nameof ( ModelParameter . Schedule ) ) ;
61
+ }
62
+
63
+ public static void Validate ( this UpscalerModelParameter parameter )
64
+ {
65
+ ArgumentNullException . ThrowIfNull ( parameter , nameof ( parameter ) ) ;
66
+ ArgumentNullException . ThrowIfNull ( parameter . ESRGANPath , nameof ( UpscalerModelParameter . ESRGANPath ) ) ;
67
+
68
+ if ( ! Enum . IsDefined ( parameter . Quantization ) ) throw new ArgumentOutOfRangeException ( nameof ( ModelParameter . Quantization ) ) ;
69
+ }
70
+ }
0 commit comments