mirror of
https://github.com/GayPizzaSpecifications/stable-diffusion-rpc.git
synced 2025-08-06 06:41:30 +00:00
Job management and preparation for multi-hosting.
This commit is contained in:
@ -6,13 +6,16 @@ find_package(gRPC CONFIG REQUIRED)
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||
|
||||
add_library(sdrpc StableDiffusion.proto)
|
||||
file(GLOB PROTO_FILES "proto/*.proto")
|
||||
|
||||
add_library(sdrpc ${PROTO_FILES})
|
||||
|
||||
get_target_property(grpc_cpp_plugin_location gRPC::grpc_cpp_plugin LOCATION)
|
||||
|
||||
protobuf_generate(TARGET sdrpc LANGUAGE cpp)
|
||||
protobuf_generate(TARGET sdrpc LANGUAGE cpp IMPORT_DIRS proto)
|
||||
protobuf_generate(TARGET sdrpc LANGUAGE grpc
|
||||
GENERATE_EXTENSIONS .grpc.pb.h .grpc.pb.cc
|
||||
IMPORT_DIRS proto
|
||||
PLUGIN "protoc-gen-grpc=${grpc_cpp_plugin_location}")
|
||||
target_include_directories(sdrpc PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
|
||||
target_link_libraries(sdrpc PUBLIC protobuf::libprotobuf gRPC::grpc gRPC::grpc++)
|
||||
|
@ -1 +0,0 @@
|
||||
../../Common/StableDiffusion.proto
|
1
Clients/Cpp/proto
Symbolic link
1
Clients/Cpp/proto
Symbolic link
@ -0,0 +1 @@
|
||||
../../Common
|
@ -1,10 +1,25 @@
|
||||
#include "StableDiffusion.pb.h"
|
||||
#include "StableDiffusion.grpc.pb.h"
|
||||
#include "host.grpc.pb.h"
|
||||
#include "image_generation.grpc.pb.h"
|
||||
|
||||
#include <grpc++/grpc++.h>
|
||||
|
||||
using namespace gay::pizza::stable::diffusion;
|
||||
|
||||
int CompareModelInfoByLoadedFirst(ModelInfo& left, ModelInfo& right) {
|
||||
if (left.is_loaded() && right.is_loaded()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (left.is_loaded()) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (right.is_loaded()) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main() {
|
||||
auto channel = grpc::CreateChannel("localhost:4546", grpc::InsecureChannelCredentials());
|
||||
auto modelService = ModelService::NewStub(channel);
|
||||
@ -19,5 +34,9 @@ int main() {
|
||||
for (const auto &item: models) {
|
||||
std::cout << "Model Name: " << item.name() << std::endl;
|
||||
}
|
||||
|
||||
std::sort(models.begin(), models.end(), CompareModelInfoByLoadedFirst);
|
||||
auto model = models.begin();
|
||||
std::cout << "Chosen Model: " << model->name() << std::endl;
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user