High Risk:This skill has significant security concerns. Review the findings below before installing.

talking-head-production

Caution·Scanned 2/18/2026

High-risk skill: installs and executes a remote installer via curl -fsSL https://cli.inference.sh | sh and invokes the infsh CLI. The skill instructs authenticating with infsh login and running infsh app run commands that contact https://inference.sh and operate on local files like portrait.png.

from clawhub.ai·v4a62e4b·7.5 KB·0 installs
Scanned from 0.1.0 at 4a62e4b · Transparency log ↗
$ vett add clawhub.ai/okaris/talking-head-productionReview security findings before installing

Talking Head Production

Create talking head videos with AI avatars and lipsync via inference.sh CLI.

Quick Start

curl -fsSL https://cli.inference.sh | sh && infsh login

# Generate dialogue audio
infsh app run falai/dia-tts --input '{
  "prompt": "[S1] Welcome to our product tour. Today I will show you three features that will save you hours every week."
}'

# Create talking head video with OmniHuman
infsh app run bytedance/omnihuman-1-5 --input '{
  "image": "path/to/portrait.png",
  "audio": "path/to/dialogue.mp3"
}'

Portrait Requirements

The source portrait image is critical. Poor portraits = poor video output.

Must Have

RequirementWhySpec
Center-framedAvatar needs face in predictable positionFace centered in frame
Head and shouldersBody visible for natural gesturesCrop below chest
Eyes to cameraCreates connection with viewerDirect frontal gaze
Neutral expressionStarting point for animationSlight smile OK, not laughing/frowning
Clear faceModel needs to detect featuresNo sunglasses, heavy shadows, or obstructions
High resolutionDetail preservationMin 512x512 face region, ideally 1024x1024+

Background

TypeWhen to Use
Solid colorProfessional, clean, easy to composite
Soft bokehNatural, lifestyle feel
Office/studioBusiness context
Transparent (via bg removal)Compositing into other scenes
# Generate a professional portrait background
infsh app run falai/flux-dev-lora --input '{
  "prompt": "professional headshot photograph of a friendly business person, soft studio lighting, clean grey background, head and shoulders, direct eye contact, neutral pleasant expression, high quality portrait photography"
}'

# Or remove background from existing portrait
infsh app run <bg-removal-app> --input '{
  "image": "path/to/portrait-with-background.png"
}'

Audio Quality

Audio quality directly impacts lipsync accuracy. Clean audio = accurate lip movement.

Requirements

ParameterTargetWhy
Background noiseNone/minimalNoise confuses lipsync timing
VolumeConsistent throughoutPrevents sync drift
Sample rate44.1kHz or 48kHzStandard quality
FormatMP3 128kbps+ or WAVCompatible with all tools

Generating Audio

# Simple narration
infsh app run falai/dia-tts --input '{
  "prompt": "[S1] Hi there! I am excited to share something with you today. We have been working on a feature that our users have been requesting for months... and it is finally here."
}'

# With emotion and pacing
infsh app run falai/dia-tts --input '{
  "prompt": "[S1] You know what is frustrating? Spending hours on tasks that should take minutes. (sighs) We have all been there. But what if I told you... there is a better way?"
}'

Model Selection

ModelApp IDBest ForMax Duration
OmniHuman 1.5bytedance/omnihuman-1-5Multi-character, gestures, high quality~30s per clip
OmniHuman 1.0bytedance/omnihuman-1-0Single character, simpler~30s per clip
PixVerse Lipsyncfalai/pixverse-lipsyncQuick lipsync on existing videoShort clips
Fabricfalai/fabric-1-0Cloth/fabric animation on portraitsShort clips

Production Workflows

Basic: Portrait + Audio -> Video

# 1. Generate or prepare audio
infsh app run falai/dia-tts --input '{
  "prompt": "[S1] Your narration script here."
}'

# 2. Generate talking head
infsh app run bytedance/omnihuman-1-5 --input '{
  "image": "portrait.png",
  "audio": "narration.mp3"
}'

With Captions

# 1-2. Same as above

# 3. Add captions to the talking head video
infsh app run infsh/caption-videos --input '{
  "video": "talking-head.mp4",
  "caption_file": "captions.srt"
}'

Long-Form (Stitched Clips)

For content longer than 30 seconds, split into segments:

# Generate audio segments
infsh app run falai/dia-tts --input '{"prompt": "[S1] Segment one script."}' --no-wait
infsh app run falai/dia-tts --input '{"prompt": "[S1] Segment two script."}' --no-wait
infsh app run falai/dia-tts --input '{"prompt": "[S1] Segment three script."}' --no-wait

# Generate talking head for each segment (same portrait for consistency)
infsh app run bytedance/omnihuman-1-5 --input '{"image": "portrait.png", "audio": "segment1.mp3"}' --no-wait
infsh app run bytedance/omnihuman-1-5 --input '{"image": "portrait.png", "audio": "segment2.mp3"}' --no-wait
infsh app run bytedance/omnihuman-1-5 --input '{"image": "portrait.png", "audio": "segment3.mp3"}' --no-wait

# Merge all segments
infsh app run infsh/media-merger --input '{
  "media": ["segment1.mp4", "segment2.mp4", "segment3.mp4"]
}'

Multi-Character Conversation

OmniHuman 1.5 supports up to 2 characters:

# 1. Generate dialogue with two speakers
infsh app run falai/dia-tts --input '{
  "prompt": "[S1] So tell me about the new feature. [S2] Sure! We built a dashboard that shows real-time analytics. [S1] That sounds great. How long did it take? [S2] About two weeks from concept to launch."
}'

# 2. Create video with two characters
infsh app run bytedance/omnihuman-1-5 --input '{
  "image": "two-person-portrait.png",
  "audio": "dialogue.mp3"
}'

Framing Guidelines

┌─────────────────────────────────┐
│          Headroom (minimal)     │
│  ┌───────────────────────────┐  │
│  │                           │  │
│  │     ● ─ ─ Eyes at 1/3 ─ ─│─ │ ← Eyes at top 1/3 line
│  │    /|\                    │  │
│  │     |   Head & shoulders  │  │
│  │    / \  visible           │  │
│  │                           │  │
│  └───────────────────────────┘  │
│       Crop below chest          │
└─────────────────────────────────┘

Common Mistakes

MistakeProblemFix
Low-res portraitBlurry face, poor lipsyncUse 1024x1024+ face region
Profile/side angleLipsync can't track mouth wellUse frontal or near-frontal
Noisy audioLipsync drifts, looks unnaturalRecord clean or use TTS
Too-long clipsQuality degrades after 30sSplit into segments, stitch
Sunglasses/obstructionFace features hiddenClear face required
Inconsistent lightingUncanny when animatedEven, soft lighting
No captionsLoses silent/mobile viewersAlways add captions

Related Skills

npx skills add inferencesh/skills@ai-avatar-video
npx skills add inferencesh/skills@ai-video-generation
npx skills add inferencesh/skills@text-to-speech

Browse all apps: infsh app list