| 101 | } |
| 102 | |
| 103 | runtime::CapabilitySet advertised_capabilities() const override { |
| 104 | runtime::CapabilitySet out; |
| 105 | out.supported_tasks = { |
| 106 | {runtime::VoiceTaskKind::AudioGeneration, {runtime::RunMode::Offline}}, |
| 107 | }; |
| 108 | return out; |
| 109 | } |
| 110 | |
| 111 | bool can_load(const runtime::ModelLoadRequest & request) const override { |
| 112 | if (request.family_hint.has_value() && *request.family_hint != family()) { |
| 113 | return false; |
| 114 | } |
| 115 | try { |
| 116 | const auto package_spec = engine::model_spec::default_spec_path(family()); |
| 117 | (void) engine::model_spec::load_resource_bundle(request.model_path, package_spec); |
| 118 | return true; |
| 119 | } catch (...) { |
| 120 | return false; |
| 121 | } |
| 122 | } |
| 123 | |
| 124 | runtime::ModelInspection inspect(const runtime::ModelLoadRequest & request) const override { |
| 125 | const auto assets = load_ace_step_assets(request.model_path, selection_from_request(request)); |
| 126 | runtime::ModelInspection inspection; |
| 127 | inspection.model_root = assets->resources.model_root(); |
| 128 | inspection.metadata = metadata(*assets); |
| 129 | inspection.capabilities = capabilities(*assets); |
| 130 | inspection.cli = cli(*assets); |
| 131 | const auto package_spec = engine::model_spec::default_spec_path(family()); |
| 132 | inspection.discovered_configs = runtime::discover_named_assets_from_package_spec( |
| 133 | request.model_path, |
| 134 | package_spec, |
| 135 | engine::model_spec::ResourceKind::Files); |
| 136 | inspection.discovered_weights = runtime::discover_named_assets_from_package_spec( |
| 137 | request.model_path, |
| 138 | package_spec, |
| 139 | engine::model_spec::ResourceKind::Tensors); |
| 140 | return inspection; |
| 141 | } |
| 142 | |
| 143 | std::unique_ptr<runtime::ILoadedVoiceModel> load(const runtime::ModelLoadRequest & request) const override { |
| 144 | return load_ace_step_model(request.model_path, selection_from_request(request)); |
| 145 | } |
| 146 | }; |
| 147 | |
| 148 | } // namespace |
| 149 | |
| 150 | AceStepLoadedModel::AceStepLoadedModel( |
| 151 | runtime::ModelMetadata metadata, |
| 152 | runtime::CapabilitySet capabilities, |
| 153 | std::shared_ptr<const AceStepAssets> assets) |
| 154 | : metadata_(std::move(metadata)), |
| 155 | capabilities_(std::move(capabilities)), |
| 156 | assets_(std::move(assets)) {} |
| 157 | |
| 158 | const runtime::ModelMetadata & AceStepLoadedModel::metadata() const noexcept { |
| 159 | return metadata_; |
| 160 | } |
nothing calls this directly
no test coverage detected