@@ -31,6 +31,8 @@ using namespace ovms;
31
31
32
32
namespace mediapipe {
33
33
34
+ using ImageGenerationPipelinesMap = std::unordered_map<std::string, std::shared_ptr<ImageGenerationPipelines>>;
35
+
34
36
const std::string IMAGE_GEN_SESSION_SIDE_PACKET_TAG = " IMAGE_GEN_NODE_RESOURCES" ;
35
37
36
38
class ImageGenCalculator : public CalculatorBase {
@@ -42,7 +44,7 @@ class ImageGenCalculator : public CalculatorBase {
42
44
RET_CHECK (!cc->Inputs ().GetTags ().empty ());
43
45
RET_CHECK (!cc->Outputs ().GetTags ().empty ());
44
46
cc->Inputs ().Tag (INPUT_TAG_NAME).Set <ovms::HttpPayload>();
45
- cc->InputSidePackets ().Tag (IMAGE_GEN_SESSION_SIDE_PACKET_TAG).Set <std::unordered_map<std::string, std::shared_ptr<ovms::ImageGenerationPipelines>> >(); // TODO: template?
47
+ cc->InputSidePackets ().Tag (IMAGE_GEN_SESSION_SIDE_PACKET_TAG).Set <ImageGenerationPipelinesMap >(); // TODO: template?
46
48
cc->Outputs ().Tag (OUTPUT_TAG_NAME).Set <std::string>();
47
49
return absl::OkStatus ();
48
50
}
@@ -59,6 +61,21 @@ class ImageGenCalculator : public CalculatorBase {
59
61
60
62
absl::Status Process (CalculatorContext* cc) final {
61
63
SPDLOG_LOGGER_DEBUG (llm_calculator_logger, " ImageGenCalculator [Node: {}] Process start" , cc->NodeName ());
64
+
65
+ ImageGenerationPipelinesMap pipelinesNap = cc->InputSidePackets ().Tag (IMAGE_GEN_SESSION_SIDE_PACKET_TAG).Get <ImageGenerationPipelinesMap>();
66
+ auto it = pipelinesNap.find (cc->NodeName ());
67
+ RET_CHECK (it != pipelinesNap.end ()) << " Could not find initialized Image Gen node named: " << cc->NodeName ();
68
+ auto pipe = it->second ;
69
+
70
+ // curl -X POST localhost:11338/v3/endpoint -d '{}'
71
+ ov::genai::Text2ImagePipeline::GenerationRequest request = pipe->text2ImagePipeline .create_generation_request ();
72
+ ov::Tensor image = request.generate (" a cat" , // TODO: get from payload
73
+ ov::AnyMap{
74
+ ov::genai::width (512 ),
75
+ ov::genai::height (512 ),
76
+ ov::genai::num_inference_steps (20 ),
77
+ ov::genai::num_images_per_prompt (1 )});
78
+
62
79
SPDLOG_LOGGER_DEBUG (llm_calculator_logger, " ImageGenCalculator [Node: {}] Process end" , cc->NodeName ());
63
80
return absl::OkStatus ();
64
81
}
0 commit comments