From 28d5546d9dec9814e6b8ab4dcd6895b4c111170f Mon Sep 17 00:00:00 2001 From: MediaPipe Team Date: Thu, 14 Dec 2023 19:46:08 -0800 Subject: [PATCH] Internal change PiperOrigin-RevId: 591121815 --- .../diffuser/stable_diffusion_iterate_calculator.cc | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/mediapipe/tasks/cc/vision/image_generator/diffuser/stable_diffusion_iterate_calculator.cc b/mediapipe/tasks/cc/vision/image_generator/diffuser/stable_diffusion_iterate_calculator.cc index f7eb7c1b6..e0a4d18b3 100644 --- a/mediapipe/tasks/cc/vision/image_generator/diffuser/stable_diffusion_iterate_calculator.cc +++ b/mediapipe/tasks/cc/vision/image_generator/diffuser/stable_diffusion_iterate_calculator.cc @@ -121,6 +121,8 @@ class StableDiffusionIterateCalculator : public Node { if (handle_) dlclose(handle_); } + static absl::Status UpdateContract(CalculatorContract* cc); + absl::Status Open(CalculatorContext* cc) override; absl::Status Process(CalculatorContext* cc) override; @@ -188,6 +190,11 @@ class StableDiffusionIterateCalculator : public Node { bool emit_empty_packet_; }; +absl::Status StableDiffusionIterateCalculator::UpdateContract( + CalculatorContract* cc) { + return absl::OkStatus(); +} + absl::Status StableDiffusionIterateCalculator::Open(CalculatorContext* cc) { StableDiffusionIterateCalculatorOptions options; if (kOptionsIn(cc).IsEmpty()) { @@ -205,7 +212,11 @@ absl::Status StableDiffusionIterateCalculator::Open(CalculatorContext* cc) { if (options.file_folder().empty()) { std::strcpy(config.model_dir, "bins/"); // NOLINT } else { - std::strcpy(config.model_dir, options.file_folder().c_str()); // NOLINT + std::string file_folder = options.file_folder(); + if (!file_folder.empty() && file_folder.back() != '/') { + file_folder.push_back('/'); + } + std::strcpy(config.model_dir, file_folder.c_str()); // NOLINT } MP_RETURN_IF_ERROR(mediapipe::file::Exists(config.model_dir)) << config.model_dir;