mirror of
https://github.com/GayPizzaSpecifications/stable-diffusion-rpc.git
synced 2025-08-03 05:30:54 +00:00
40 lines
1.2 KiB
Swift
40 lines
1.2 KiB
Swift
import Foundation
|
|
import GRPC
|
|
import NIO
|
|
import StableDiffusionProtos
|
|
import System
|
|
|
|
let client = try StableDiffusionClient(connectionTarget: .host("127.0.0.1", port: 4546), transportSecurity: .plaintext)
|
|
|
|
Task { @MainActor in
|
|
do {
|
|
let modelListResponse = try await client.modelService.listModels(.init())
|
|
print("Loading random model...")
|
|
let modelInfo = modelListResponse.availableModels.randomElement()!
|
|
_ = try await client.hostModelService.loadModel(.with { request in
|
|
request.modelName = modelInfo.name
|
|
})
|
|
print("Loaded random model.")
|
|
|
|
print("Generating image...")
|
|
let request = SdGenerateImagesRequest.with {
|
|
$0.modelName = modelInfo.name
|
|
$0.outputImageFormat = .png
|
|
$0.prompt = "cat"
|
|
$0.batchCount = 1
|
|
$0.batchSize = 1
|
|
}
|
|
|
|
let response = try await client.imageGenerationService.generateImages(request)
|
|
let image = response.images.first!
|
|
try image.data.write(to: URL(filePath: "output.png"))
|
|
print("Generated image to output.png")
|
|
exit(0)
|
|
} catch {
|
|
print(error)
|
|
exit(1)
|
|
}
|
|
}
|
|
|
|
dispatchMain()
|