#pragma once #include "engine/framework/assets/tensor_source.h" #include "engine/framework/core/execution_context.h" #include "engine/framework/runtime/session.h" #include "engine/models/controlfoley/assets.h" #include "engine/models/controlfoley/conditioning.h" #include #include #include #include namespace engine::models::controlfoley { struct ControlFoleyOptions { float duration_sec = 8.0F; int64_t num_inference_steps = 25; float guidance_scale = 4.5F; uint32_t seed = 42; std::string negative_prompt; std::optional video; bool mask_away_clip = false; }; ControlFoleyOptions parse_controlfoley_options( const std::unordered_map & options); class ControlFoleyPipelineRuntime { public: ControlFoleyPipelineRuntime( std::shared_ptr assets, engine::core::ExecutionContext & execution, engine::assets::TensorStorageType weight_type); ~ControlFoleyPipelineRuntime(); engine::runtime::AudioBuffer run(const engine::runtime::TaskRequest & request); private: struct Impl; std::unique_ptr impl_; }; } // namespace engine::models::controlfoley