Skip to content

Commit d459a77

Browse files
committed
image generated
1 parent 047a43d commit d459a77

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

src/image_gen/http_image_gen_calculator.cc

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ using namespace ovms;
3131

3232
namespace mediapipe {
3333

34+
using ImageGenerationPipelinesMap = std::unordered_map<std::string, std::shared_ptr<ImageGenerationPipelines>>;
35+
3436
const std::string IMAGE_GEN_SESSION_SIDE_PACKET_TAG = "IMAGE_GEN_NODE_RESOURCES";
3537

3638
class ImageGenCalculator : public CalculatorBase {
@@ -42,7 +44,7 @@ class ImageGenCalculator : public CalculatorBase {
4244
RET_CHECK(!cc->Inputs().GetTags().empty());
4345
RET_CHECK(!cc->Outputs().GetTags().empty());
4446
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?
4648
cc->Outputs().Tag(OUTPUT_TAG_NAME).Set<std::string>();
4749
return absl::OkStatus();
4850
}
@@ -59,6 +61,21 @@ class ImageGenCalculator : public CalculatorBase {
5961

6062
absl::Status Process(CalculatorContext* cc) final {
6163
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+
6279
SPDLOG_LOGGER_DEBUG(llm_calculator_logger, "ImageGenCalculator [Node: {}] Process end", cc->NodeName());
6380
return absl::OkStatus();
6481
}

src/image_gen/pipelines.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
namespace ovms {
1919

2020
ImageGenerationPipelines::ImageGenerationPipelines(const std::string& models_path) :
21-
text2ImagePipeline(ov::genai::Text2ImagePipeline(models_path/*TODO Device*/)) {
21+
text2ImagePipeline(ov::genai::Text2ImagePipeline(models_path, "CPU"/*TODO Device*/)) {
2222
// TODO: Make other pipelines out of the basic one, with shared models, GenAI API supports that
2323
}
2424

0 commit comments

Comments
 (0)