Files
stable-diffusion-rpc/Sources/StableDiffusionServer/ModelService.swift

26 lines
911 B
Swift
Raw Normal View History

2023-04-22 14:52:27 -07:00
import Foundation
import GRPC
import StableDiffusionCore
2023-04-22 14:52:27 -07:00
import StableDiffusionProtos
class ModelServiceProvider: SdModelServiceAsyncProvider {
private let modelManager: ModelManager
2023-04-22 14:52:27 -07:00
init(modelManager: ModelManager) {
self.modelManager = modelManager
}
func listModels(request _: SdListModelsRequest, context _: GRPCAsyncServerCallContext) async throws -> SdListModelsResponse {
let models = try await modelManager.listAvailableModels()
2023-04-22 14:52:27 -07:00
var response = SdListModelsResponse()
response.availableModels.append(contentsOf: models)
2023-04-22 14:52:27 -07:00
return response
}
func loadModel(request: SdLoadModelRequest, context _: GRPCAsyncServerCallContext) async throws -> SdLoadModelResponse {
2023-04-22 16:32:54 -07:00
let state = try await modelManager.createModelState(name: request.modelName)
try await state.load(request: request)
2023-04-22 14:52:27 -07:00
return SdLoadModelResponse()
}
}