The toolset
Solving, layering, correcting and baking, for an agent.
FaceForge has no toolset of its own — confirmed by there being zero callable tools in the core. The sibling plugin exposes it.
| Plugin | Role | Licence | Version |
|---|---|---|---|
| FaceForge source | coreThe subsystem. Install this one. | Open | 0.2.2 |
| FaceForgeACE | providerA route to a generator — a vendor API, or a container on your own GPU. | Free | 0.2.2 |
| FaceForgeACEToolset source | toolsetThe same subsystem as typed MCP tools, for an agent. Adds nothing of its own. | Open | 0.1.1 |
| FaceForgeMetaHuman source | adapterBridges the core into a framework you already build on. | Open | 0.2.1 |
| FaceForgeToolset source | toolsetThe same subsystem as typed MCP tools, for an agent. Adds nothing of its own. | Open | 0.2.2 |
What is covered
Everything the panel does, grouped by what it is for.
| Group | Tools |
|---|---|
| Banks | CreateFaceBank, ConfigureFaceBank, ListFaceBanks, GetFaceBankStatus, SetFaceBankSource, CloneFaceBankForLanguage |
| Clips | UpsertFaceClips, EnsureFaceClip, SetFaceClipAudio, RemoveFaceClips, GetFaceClipAudio |
| Solving | SolveFaceBank, SolveFaceClipToLayer, EstimateFaceSolve, CancelFaceSolve |
| Layers | SnapshotFaceSolveToLayer, MergeFaceClipLayers, RemoveFaceClipLayer |
| Correction | CreateFaceCorrectionSequence, SnapshotFaceCorrection |
| Baking | BakeFaceBank |
| Vocabularies | DescribeFaceCoverage, CreateDefaultARKitMapping, CreateMappingFromPoseAsset |
| Lookups | GetFaceMontagesInBank, GetFaceMontagesForSpeechBank, GetFaceBankForSpeechBank, GetSpeechBankForFaceBank |
| Graduation | SetFaceClipOrigin |
| Providers and paths | ListFaceProviders, GetFaceProviderCapabilities, GetFaceOutputPaths, SetFaceOutputRoot |
| Navigation | OpenFaceBank, 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? —
DescribeFaceCoverageanswers 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.
RemoveFaceClipsremoves 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.