Skip to content

Repository files navigation

animoflow-api

HTTP API server for AnimoFlow, a text-to-motion generation platform. This is the source-available API layer; the hosted web app is a separate, closed component.

More documentation

What it does

POST /v1/jobs with a motion description → get an animated character as an FBX / GLB file. Orchestrates local model containers through ComfyUI, or proxies to a remote AnimoFlow backend.

Architecture

animoflow-api/
├── api/
│   ├── main.py           # FastAPI server (v1 router)
│   ├── proxy.py          # Reverse-proxy mode (ANIMOFLOW_BACKEND_URL set)
│   ├── pipeline.py       # Job queue (in-memory, async)
│   └── comfyui_client.py # Builds + submits ComfyUI workflow JSON; polls for result
├── scripts/
│   └── audit_api_docs.py # API-docs lockstep audit — must pass before any api/ commit
└── docker-compose.yml    # API container (joins the comfyui-animoflow stack)

API endpoints

Canonical reference at /redoc (Redoc, auto-generated from the FastAPI app — the same path works on any self-hosted instance). Try-it-out playground at /docs (Swagger UI). Spec JSON at /openapi.json. Highlights:

Method Path Description
POST /v1/jobs {input, model, character, ...} → {job_id}
GET /v1/jobs/{id} Job state (poll until status=done)
GET /v1/files/{id}.{ext} Download generated FBX/GLB
GET /v1/tasks Task + model catalog (live availability)
GET /v1/health Liveness probe (no auth)

Requirements

Local development uses ComfyUI as the orchestrator — clone and start comfyui-animoflow first.

When ANIMOFLOW_BACKEND_URL is set, this server runs in proxy mode and forwards /v1/* to the configured remote backend (typically the AnimoFlow HF Space) instead of orchestrating ComfyUI locally.

Run — one-command Docker stack

git clone git@github.com:AnimoFlow/animoflow-api.git
git clone git@github.com:AnimoFlow/comfyui-animoflow.git   # sibling checkout
cd animoflow-api && cp .env.example .env                   # add HF_TOKEN
docker compose up -d --build

Brings up MDM + MoMask + priorMDM model containers, ComfyUI as headless orchestrator (Blender baked in for the rig/GLB stages), and this API at http://localhost:8090. MDM weights auto-download into a volume on first start (weights-init; needs HF_TOKEN). Kimodo (GPU) and the retargeter come up under the gpu profile: docker compose --profile gpu up -d.

Serve a team of Blender seats (self-host)

The one-command stack above is also the studio/LAN setup — nothing extra to install. Every animator on the network opens the AnimoFlow Blender add-on's preferences, picks Own Server, and enters this machine's address (http://<hostname-or-ip>:8090). Jobs from all seats queue through this server; no cloud account, and nothing leaves your network once weights are downloaded. If you already run the comfyui-animoflow stack for your own ComfyUI work, this API simply sits in front of it.

Non-technical overview (who this is for, what it costs — spoiler: free under the commercial threshold): the self-hosting guide.

Run — native (dev)

For working on the server itself, run it straight from a Python 3.11+ venv:

OUTPUT_DIR=/tmp/animoflow-output \
  python -m uvicorn main:app \
    --host 0.0.0.0 --port 8090 --app-dir ./api

Open http://localhost:8090.

Serving the web UI

The API can serve a static site from WEB_DIR (skipped when unset or missing). The AnimoFlow web app itself is a closed component — self-hosted instances are typically driven by the Blender add-on or the REST API instead.

License

AnimoFlow Community License 1.0.0 — source-available, perpetual threshold license (see LICENSE). Free forever, including production and commercial use, for individuals, non-profits, schools/universities/public research organizations, and any organization under $5M USD (2026) total finances and 100 people (CPI-indexed, affiliates counted together). Larger commercial organizations get a 30-day evaluation grant, then need a commercial license: guy@animoflow.ai (not yet open — ask to join the waitlist).

This is a source-available license, not an open-source license. The open-source parts of AnimoFlow are the ComfyUI node pack (AGPL-3.0) and the Blender add-on (GPL-3.0). Full per-repo map, FAQ, and CLA: AnimoFlow/legal.

About

The AnimoFlow API server — one docker compose up serves text-to-motion to every Blender seat on your network.

Topics

Resources

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages