Free, high-quality, pluggable, and open-source digital-human solution.
Project page: Chinese | English
VirtualMan is a free, high-quality, pluggable, open-source digital-human solution for producing high-quality talking-head videos from reference media and text or audio. It provides an Agent Skill, a stable Provider HTTP contract, manifest records, and a default Duix-compatible gateway so Codex, Claude, Gemini, and other agent environments can share the same generation workflow.
Built with DUIX.COM. The optional default backend uses Duix.Avatar under the DUIX.COM Community License. That license is separate from this repository's Apache-2.0 license and may require a commercial license above 1,000 monthly active users. Read THIRD_PARTY_NOTICES.md.
flowchart LR
Input["Script and media"] --> Skill["Agent Skill"]
Skill --> Contract["Provider HTTP contract"]
Contract --> Gateway["duix-gateway"]
Gateway --> Backend["TTS / ASR / Duix.Avatar"]
Backend --> Result["Rendered video"]
Result --> Validate["Technical validation"]
Validate --> Manifest["Manifest evidence"]
skills/create-digital-human-video: agent workflow, client, validation, and example project configuration.services/duix-gateway: authenticated FastAPI gateway and Docker Compose deployment for the default provider.contracts: stable provider OpenAPI contract.
Install directly with npx:
npx -y @infranic-org/virtualman-skill install codexThe npm installer can also target other agent CLIs:
npx -y @infranic-org/virtualman-skill install claude
npx -y @infranic-org/virtualman-skill install gemini
npx -y @infranic-org/virtualman-skill install allCodex and Claude receive the bundled SKILL.md skill directory. Gemini receives
a Gemini CLI extension wrapper plus the same workflow files. The npx
installer copies files into the target agent directory and does not require
cloning this repository first.
If you have cloned this repository, you can install the Codex target locally:
make install-skillThis local command creates a symlink in
${CODEX_SKILLS_DIR:-$HOME/.agents/skills}. If you prefer a copy instead of a
symlink, run make install-skill-copy.
For the Codex target, restart Codex if it is already running. Invoke the Skill
with $create-digital-human-video.
Requirements: Linux or WSL, NVIDIA GPU and driver, Docker, Docker Compose, NVIDIA Container Toolkit, FFmpeg, and enough storage for the upstream images.
cd services/duix-gateway
cp .env.example .env
# Replace GATEWAY_TOKEN and adjust occupied ports in .env.
./scripts/gpu-check.sh
./scripts/start.sh
./scripts/smoke-test.shstart.sh checks configured ports before pulling images or starting services.
It never terminates an existing process. Raw model service ports bind only to
localhost; the authenticated gateway defaults to port 8787.
Configure the Skill client:
export DUIX_GATEWAY_URL=http://127.0.0.1:8787
export DUIX_GATEWAY_TOKEN=your-tokenRender from text:
python3 skills/create-digital-human-video/scripts/render.py \
--video reference.mp4 \
--text "你好,这是一次数字人口播测试。" \
--output output/talking-head.mp4The command waits for completion, downloads the result, runs technical media validation, and saves a manifest record next to the video. Most users only need the MP4; the manifest is for troubleshooting and traceability. You can also run the bundled validator independently:
python3 skills/create-digital-human-video/scripts/validate_output.py \
output/talking-head.mp4python3 -m venv .venv
. .venv/bin/activate
python3 -m pip install -r requirements-dev.txt
make checkNo model weights, generated media, tokens, or runtime data belong in Git. The
gateway defaults to authenticated result access (PUBLIC_RESULTS=false). Only
use faces and voices you have rights to use, and disclose synthetic media where
viewers could mistake it for authentic footage.
Original code and documentation in this repository are licensed under Apache License 2.0. Third-party services, images, and models retain their own licenses.
