Implement a Java/Kotlin client.

This commit is contained in:
2023-04-22 23:24:36 -07:00
parent 0b5f5dae57
commit 9b0c174df4
10 changed files with 195 additions and 11 deletions

View File

@ -0,0 +1,37 @@
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 model...")
let modelInfo = modelListResponse.models.first { $0.name == "anything-4.5" }!
_ = try await client.modelService.loadModel(.with { request in
request.modelName = modelInfo.name
})
print("Loaded model.")
print("Generating image...")
let request = SdGenerateImagesRequest.with {
$0.modelName = modelInfo.name
$0.prompt = "cat"
$0.imageCount = 1
}
let response = try await client.imageGenerationService.generateImage(request)
let image = response.images.first!
try image.content.write(to: URL(filePath: "output.png"))
print("Generated image to output.png")
exit(0)
} catch {
print(error)
exit(1)
}
}
dispatchMain()