Kovati Docs

The toolset

Solving, layering, correcting and baking, for an agent.

Documented in depthFaceForgeToolset0.2.2Open sourceFaceForgeACEToolset0.1.1Open source

FaceForge has no toolset of its own — confirmed by there being zero callable tools in the core. The sibling plugin exposes it.

PluginRoleLicenceVersion
FaceForge sourcecoreThe subsystem. Install this one.Open0.2.2
FaceForgeACEproviderA route to a generator — a vendor API, or a container on your own GPU.Free0.2.2
FaceForgeACEToolset sourcetoolsetThe same subsystem as typed MCP tools, for an agent. Adds nothing of its own.Open0.1.1
FaceForgeMetaHuman sourceadapterBridges the core into a framework you already build on.Open0.2.1
FaceForgeToolset sourcetoolsetThe same subsystem as typed MCP tools, for an agent. Adds nothing of its own.Open0.2.2

What is covered

Everything the panel does, grouped by what it is for.

GroupTools
BanksCreateFaceBank, ConfigureFaceBank, ListFaceBanks, GetFaceBankStatus, SetFaceBankSource, CloneFaceBankForLanguage
ClipsUpsertFaceClips, EnsureFaceClip, SetFaceClipAudio, RemoveFaceClips, GetFaceClipAudio
SolvingSolveFaceBank, SolveFaceClipToLayer, EstimateFaceSolve, CancelFaceSolve
LayersSnapshotFaceSolveToLayer, MergeFaceClipLayers, RemoveFaceClipLayer
CorrectionCreateFaceCorrectionSequence, SnapshotFaceCorrection
BakingBakeFaceBank
VocabulariesDescribeFaceCoverage, CreateDefaultARKitMapping, CreateMappingFromPoseAsset
LookupsGetFaceMontagesInBank, GetFaceMontagesForSpeechBank, GetFaceBankForSpeechBank, GetSpeechBankForFaceBank
GraduationSetFaceClipOrigin
Providers and pathsListFaceProviders, GetFaceProviderCapabilities, GetFaceOutputPaths, SetFaceOutputRoot
NavigationOpenFaceBank, PrepareFaceBankForLines

The ACE toolset covers its provider's own surface — the container lifecycle and the emotion inputs — and deliberately does not expose solving, because a bank pointed at Audio2Face goes through the tools above like any other.

Use the scene-level lookup, not the per-bank one, whenever the subject is a scene. GetFaceMontagesForSpeechBank crosses every face bank that serves a speech bank; GetFaceMontagesInBank sees one. A scene with two character standards in it has two banks and neither one covers it.

It matches on language first and clip ids second, because a localised sibling shares every line id on purpose — matching on ids alone offers an English mouth for German words.

The useful agent jobs here

This set rewards agent work more than most, because the questions are countable:

  • Which clips in this bank are stale, and why?
  • Which clips have no solve at all?
  • Does this character's face actually support the curves this mapping drives?DescribeFaceCoverage answers it in one call instead of a manual comparison of two lists.
  • Re-bake every clip for a second character — a re-bake, not a re-solve, so it is milliseconds per clip.

That last one is the payoff of keeping solve and bake separate, and it is a loop nobody would run by hand.

What an agent may not do

  • Overwrite a clip whose origin is not Generated.
  • Write a credential.
  • Delete the assets a clip produced. RemoveFaceClips removes the entry, never the animations and montages — deleting generated animation is a human act, because an agent that can delete assets at this speed converts a small mistake into an irreversible one.

SetFaceClipOrigin back to Generated is the one call here that can throw away work nobody can regenerate. It hands a hand-tuned or captured clip back to the pipeline, which is the only way out of graduation — and the reason the tool's own description says to ask the user first.

One tool carries extra metadata

One tool is tagged both as callable and as a Speech Library action, which is how it appears as a button on SpeechForge's Perform page without either plugin linking against the other.

Worth knowing if you are counting tools with a regex: a strict pattern undercounts it.

Every version of FaceForgeToolset.

On this page