9
9
10
10
#include " image_generation/stable_diffusion_pipeline.hpp"
11
11
#include " image_generation/stable_diffusion_xl_pipeline.hpp"
12
+ #include " image_generation/flux_pipeline.hpp"
12
13
13
14
#include " utils.hpp"
14
15
@@ -22,6 +23,8 @@ Image2ImagePipeline::Image2ImagePipeline(const std::filesystem::path& root_dir)
22
23
m_impl = std::make_shared<StableDiffusionPipeline>(PipelineType::IMAGE_2_IMAGE, root_dir);
23
24
} else if (class_name == " StableDiffusionXLPipeline" ) {
24
25
m_impl = std::make_shared<StableDiffusionXLPipeline>(PipelineType::IMAGE_2_IMAGE, root_dir);
26
+ } else if (class_name == " FluxPipeline" ) {
27
+ m_impl = std::make_shared<FluxPipeline>(PipelineType::IMAGE_2_IMAGE, root_dir);
25
28
} else {
26
29
OPENVINO_THROW (" Unsupported image to image generation pipeline '" , class_name, " '" );
27
30
}
@@ -34,6 +37,8 @@ Image2ImagePipeline::Image2ImagePipeline(const std::filesystem::path& root_dir,
34
37
m_impl = std::make_shared<StableDiffusionPipeline>(PipelineType::IMAGE_2_IMAGE, root_dir, device, properties);
35
38
} else if (class_name == " StableDiffusionXLPipeline" ) {
36
39
m_impl = std::make_shared<StableDiffusionXLPipeline>(PipelineType::IMAGE_2_IMAGE, root_dir, device, properties);
40
+ } else if (class_name == " FluxPipeline" ) {
41
+ m_impl = std::make_shared<FluxPipeline>(PipelineType::IMAGE_2_IMAGE, root_dir, device, properties);
37
42
} else {
38
43
OPENVINO_THROW (" Unsupported image to image generation pipeline '" , class_name, " '" );
39
44
}
@@ -44,6 +49,8 @@ Image2ImagePipeline::Image2ImagePipeline(const InpaintingPipeline& pipe) {
44
49
m_impl = std::make_shared<StableDiffusionXLPipeline>(PipelineType::IMAGE_2_IMAGE, *stable_diffusion_xl);
45
50
} else if (auto stable_diffusion = std::dynamic_pointer_cast<StableDiffusionPipeline>(pipe .m_impl ); stable_diffusion != nullptr ) {
46
51
m_impl = std::make_shared<StableDiffusionPipeline>(PipelineType::IMAGE_2_IMAGE, *stable_diffusion);
52
+ } else if (auto flux = std::dynamic_pointer_cast<FluxPipeline>(pipe .m_impl ); flux != nullptr ) {
53
+ m_impl = std::make_shared<FluxPipeline>(PipelineType::IMAGE_2_IMAGE, *flux);
47
54
} else {
48
55
OPENVINO_ASSERT (" Cannot convert specified InpaintingPipeline to Image2ImagePipeline" );
49
56
}
@@ -94,6 +101,20 @@ Image2ImagePipeline Image2ImagePipeline::stable_diffusion_xl(
94
101
return Image2ImagePipeline (impl);
95
102
}
96
103
104
+ Image2ImagePipeline Image2ImagePipeline::flux (
105
+ const std::shared_ptr<Scheduler>& scheduler,
106
+ const CLIPTextModel& clip_text_model,
107
+ const T5EncoderModel t5_encoder_model,
108
+ const FluxTransformer2DModel& transformer,
109
+ const AutoencoderKL& vae){
110
+ auto impl = std::make_shared<FluxPipeline>(PipelineType::IMAGE_2_IMAGE, clip_text_model, t5_encoder_model, transformer, vae);
111
+
112
+ assert (scheduler != nullptr );
113
+ impl->set_scheduler (scheduler);
114
+
115
+ return Image2ImagePipeline (impl);
116
+ }
117
+
97
118
ImageGenerationConfig Image2ImagePipeline::get_generation_config () const {
98
119
return m_impl->get_generation_config ();
99
120
}
0 commit comments