mirror of
https://github.com/GayPizzaSpecifications/stable-diffusion-rpc.git
synced 2025-08-04 05:51:32 +00:00
31 lines
917 B
Swift
31 lines
917 B
Swift
|
import Foundation
|
||
|
import GRPC
|
||
|
import NIO
|
||
|
import StableDiffusionCore
|
||
|
import StableDiffusionProtos
|
||
|
|
||
|
struct StableDiffusionClient {
|
||
|
let group: EventLoopGroup
|
||
|
let channel: GRPCChannel
|
||
|
|
||
|
let modelService: SdModelServiceAsyncClient
|
||
|
let imageGenerationService: SdImageGenerationServiceAsyncClient
|
||
|
|
||
|
init(connectionTarget: ConnectionTarget, transportSecurity: GRPCChannelPool.Configuration.TransportSecurity) throws {
|
||
|
group = PlatformSupport.makeEventLoopGroup(loopCount: 1)
|
||
|
|
||
|
channel = try GRPCChannelPool.with(
|
||
|
target: connectionTarget,
|
||
|
transportSecurity: transportSecurity,
|
||
|
eventLoopGroup: group
|
||
|
)
|
||
|
|
||
|
modelService = SdModelServiceAsyncClient(channel: channel)
|
||
|
imageGenerationService = SdImageGenerationServiceAsyncClient(channel: channel)
|
||
|
}
|
||
|
|
||
|
func close() async throws {
|
||
|
try await group.shutdownGracefully()
|
||
|
}
|
||
|
}
|