#pragma once #include "engine/framework/assets/resource_bundle.h" #include "engine/framework/assets/tensor_source.h" #include #include #include namespace engine::models::controlfoley { struct ControlFoleyConfig { int64_t sample_rate = 44100; int64_t spec_frame_frequency = 512; int64_t latent_reduction_factor = 2; int64_t latent_dim = 40; int64_t clip_dim = 1024; int64_t visual_dim = 768; int64_t sync_dim = 768; int64_t text_dim = 1024; int64_t audio_dim = 512; int64_t timbre_dim = 1536; int64_t text_seq_len = 77; int64_t audio_seq_len = 1; int64_t timbre_seq_len = 1; }; struct ControlFoleyAssets { std::filesystem::path model_root; std::filesystem::path gguf_path; ControlFoleyConfig config; engine::assets::ResourceBundle resources; std::shared_ptr weights; std::shared_ptr flow_weights; std::shared_ptr vae_weights; std::shared_ptr bigvgan_weights; std::shared_ptr open_clip_weights; std::shared_ptr cav_mae_weights; std::shared_ptr synchformer_weights; std::shared_ptr clap_weights; std::shared_ptr mert_weights; std::shared_ptr musicgen_style_weights; }; std::shared_ptr load_controlfoley_assets( const std::filesystem::path & model_path); } // namespace engine::models::controlfoley