From 4ebff15e76d282e1c9f93feb6d5aa8f6d21e264b Mon Sep 17 00:00:00 2001 From: Ettore Di Giacinto Date: Tue, 13 Oct 2026 08:11:36 +0000 Subject: [PATCH] chore(motion): tidy proto, imports and usecase guess; add weights licence Remove a stray blank line in backend.proto and group the imports in pkg/motion/validation.go. Decide the motion usecase guess from the backend capability registry instead of a hardcoded backend name, so variant builds of the backend resolve too. Declare the weights licence in the gallery entry, as stated on the model card. Assisted-by: Claude Code:claude-sonnet-5-5 --- backend/backend.proto | 1 - core/config/model_config.go | 7 +++++-- gallery/index.yaml | 1 + pkg/motion/validation.go | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/backend/backend.proto b/backend/backend.proto index 8f1308f0f..beb24d212 100644 --- a/backend/backend.proto +++ b/backend/backend.proto @@ -7,7 +7,6 @@ option java_outer_classname = "LocalAIBackend"; package backend; - service Backend { rpc Health(HealthMessage) returns (Reply) {} rpc Free(HealthMessage) returns (Result) {} diff --git a/core/config/model_config.go b/core/config/model_config.go index 4eea3e0fe..a52618fd2 100644 --- a/core/config/model_config.go +++ b/core/config/model_config.go @@ -2359,8 +2359,11 @@ func (c *ModelConfig) GuessUsecases(u ModelConfigUsecase) bool { if u&FLAG_UPSCALE != 0 { return false } - if u&FLAG_MOTION != 0 && c.Backend != "gemxcpp" { - return false + if u&FLAG_MOTION != 0 { + // Motion is declared by the backend registry, never inferred from templates. + if cap := GetBackendCapability(c.Backend); cap == nil || !slices.Contains(cap.PossibleUsecases, UsecaseMotion) { + return false + } } // Backends that are clearly not text-generation nonTextGenBackends := []string{ diff --git a/gallery/index.yaml b/gallery/index.yaml index 8f418362f..b0857da4b 100644 --- a/gallery/index.yaml +++ b/gallery/index.yaml @@ -73402,6 +73402,7 @@ url: "github:mudler/LocalAI/gallery/virtual.yaml@master" urls: - https://huggingface.co/LocalAI-io/GEM-X-GGUF + license: nvidia-open-model-license description: | Live human motion capture with GEM-X on CPU/Vulkan. Streams SOMA-77 or SMPL-24 poses through /api/motion; no body mesh or SAM3D dependency. diff --git a/pkg/motion/validation.go b/pkg/motion/validation.go index 15f394fe8..271c3b086 100644 --- a/pkg/motion/validation.go +++ b/pkg/motion/validation.go @@ -3,8 +3,9 @@ package motion import ( "fmt" - motionpb "github.com/mudler/LocalAI/pkg/motion/proto" "math" + + motionpb "github.com/mudler/LocalAI/pkg/motion/proto" ) // ValidateFrame bounds allocation and rejects invalid subject boxes before a