1- using System ;
2- using System . Linq ;
3- using System . Threading ;
4- using System . Threading . Tasks ;
5- using CommunityToolkit . Mvvm . ComponentModel ;
6- using DynamicData ;
7- using DynamicData . Binding ;
8- using StabilityMatrix . Avalonia . Models ;
1+ using DynamicData ;
2+ using Microsoft . Extensions . Logging ;
3+ using StabilityMatrix . Avalonia . Models . TagCompletion ;
94using StabilityMatrix . Avalonia . Services ;
10- using StabilityMatrix . Core . Inference ;
5+ using StabilityMatrix . Core . Api ;
116using StabilityMatrix . Core . Models ;
12- using StabilityMatrix . Core . Models . Api . Comfy ;
13- using StabilityMatrix . Core . Models . FileInterfaces ;
7+ using StabilityMatrix . Core . Services ;
148
159namespace StabilityMatrix . Avalonia . DesignData ;
1610
17- public partial class MockInferenceClientManager : ObservableObject , IInferenceClientManager
11+ public class MockInferenceClientManager : InferenceClientManager
1812{
19- public ComfyClient ? Client { get ; set ; }
20-
21- public IObservableCollection < HybridModelFile > Models { get ; } =
22- new ObservableCollectionExtended < HybridModelFile > ( ) ;
23-
24- public IObservableCollection < HybridModelFile > VaeModels { get ; } =
25- new ObservableCollectionExtended < HybridModelFile > ( ) ;
26-
27- public IObservableCollection < HybridModelFile > ControlNetModels { get ; } =
28- new ObservableCollectionExtended < HybridModelFile > ( ) ;
29-
30- public IObservableCollection < HybridModelFile > LoraModels { get ; } =
31- new ObservableCollectionExtended < HybridModelFile > ( ) ;
32-
33- public IObservable < IChangeSet < HybridModelFile , string > > LoraModelsChangeSet { get ; }
34-
35- public IObservableCollection < HybridModelFile > PromptExpansionModels { get ; } =
36- new ObservableCollectionExtended < HybridModelFile > ( ) ;
37-
38- public IObservableCollection < ComfySampler > Samplers { get ; } =
39- new ObservableCollectionExtended < ComfySampler > ( ComfySampler . Defaults ) ;
40-
41- public IObservableCollection < ComfyUpscaler > Upscalers { get ; } =
42- new ObservableCollectionExtended < ComfyUpscaler > (
43- ComfyUpscaler . Defaults . Concat ( ComfyUpscaler . DefaultDownloadableModels )
44- ) ;
45-
46- public IObservableCollection < ComfyScheduler > Schedulers { get ; } =
47- new ObservableCollectionExtended < ComfyScheduler > ( ComfyScheduler . Defaults ) ;
48-
49- public IObservableCollection < ComfyAuxPreprocessor > Preprocessors { get ; } =
50- new ObservableCollectionExtended < ComfyAuxPreprocessor > ( ComfyAuxPreprocessor . Defaults ) ;
51-
52- public IObservableCollection < HybridModelFile > UltralyticsModels { get ; } =
53- new ObservableCollectionExtended < HybridModelFile > ( ) ;
54-
55- public IObservableCollection < HybridModelFile > SamModels { get ; } =
56- new ObservableCollectionExtended < HybridModelFile > ( ) ;
57-
58- public IObservableCollection < HybridModelFile > UnetModels { get ; } =
59- new ObservableCollectionExtended < HybridModelFile > ( ) ;
60-
61- public IObservableCollection < HybridModelFile > ClipModels { get ; } =
62- new ObservableCollectionExtended < HybridModelFile > ( ) ;
63-
64- public IObservableCollection < HybridModelFile > ClipVisionModels { get ; } =
65- new ObservableCollectionExtended < HybridModelFile > ( ) ;
66-
67- [ ObservableProperty ]
68- [ NotifyPropertyChangedFor ( nameof ( CanUserConnect ) ) ]
69- private bool isConnected ;
70-
71- [ ObservableProperty ]
72- [ NotifyPropertyChangedFor ( nameof ( CanUserConnect ) ) ]
73- private bool isConnecting ;
74-
75- /// <inheritdoc />
76- public bool CanUserConnect => ! IsConnected && ! IsConnecting ;
77-
78- /// <inheritdoc />
79- public bool CanUserDisconnect => IsConnected && ! IsConnecting ;
80-
81- public MockInferenceClientManager ( )
13+ public MockInferenceClientManager (
14+ ILogger < InferenceClientManager > logger ,
15+ IApiFactory apiFactory ,
16+ IModelIndexService modelIndexService ,
17+ ISettingsManager settingsManager ,
18+ ICompletionProvider completionProvider
19+ )
20+ : base ( logger , apiFactory , modelIndexService , settingsManager , completionProvider )
8221 {
83- Models . AddRange (
84- new [ ]
85- {
86- HybridModelFile . FromRemote ( "v1-5-pruned-emaonly.safetensors" ) ,
87- HybridModelFile . FromRemote ( "artshaper1.safetensors" ) ,
88- }
89- ) ;
22+ // Load our initial models
23+ ResetSharedProperties ( ) ;
9024 }
9125
92- /// <inheritdoc />
93- public Task CopyImageToInputAsync ( FilePath imageFile , CancellationToken cancellationToken = default )
94- {
95- return Task . CompletedTask ;
96- }
26+ public new bool IsConnected { get ; set ; }
9727
98- /// <inheritdoc />
99- public Task UploadInputImageAsync ( ImageSource image , CancellationToken cancellationToken = default )
28+ protected override Task LoadSharedPropertiesAsync ( )
10029 {
101- return Task . CompletedTask ;
102- }
30+ if ( Models . Any ( m => m . IsRemote ) )
31+ {
32+ return Task . CompletedTask ;
33+ }
34+
35+ Models . Add (
36+ [
37+ HybridModelFile . FromRemote ( "v1-5-pruned-emaonly.safetensors" ) ,
38+ HybridModelFile . FromRemote ( "art-shaper1.safetensors" ) ,
39+ ]
40+ ) ;
10341
104- /// <inheritdoc />
105- public Task WriteImageToInputAsync ( ImageSource imageSource , CancellationToken cancellationToken = default )
106- {
10742 return Task . CompletedTask ;
10843 }
10944
110- public async Task ConnectAsync ( CancellationToken cancellationToken = default )
45+ public override async Task ConnectAsync ( CancellationToken cancellationToken = default )
11146 {
11247 IsConnecting = true ;
11348 await Task . Delay ( 5000 , cancellationToken ) ;
@@ -116,20 +51,11 @@ public async Task ConnectAsync(CancellationToken cancellationToken = default)
11651 IsConnected = true ;
11752 }
11853
119- /// <inheritdoc />
120- public Task ConnectAsync ( PackagePair packagePair , CancellationToken cancellationToken = default )
121- {
122- return Task . CompletedTask ;
123- }
124-
125- public Task CloseAsync ( )
126- {
127- IsConnected = false ;
128- return Task . CompletedTask ;
129- }
130-
131- public void Dispose ( )
54+ public override async Task ConnectAsync (
55+ PackagePair packagePair ,
56+ CancellationToken cancellationToken = default
57+ )
13258 {
133- GC . SuppressFinalize ( this ) ;
59+ await ConnectAsync ( cancellationToken ) ;
13460 }
13561}
0 commit comments