kimodo-motion-diffusion 是做什麼的?
使用 Kimodo 生成高品質的 3D 人類與人形機器人動作,透過文字提示與運動學約束進行控制。
概述
Kimodo 是一種創新的運動學運動擴散模型,專為生成細緻且物理合理的 3D 動作而設計。它接受文字提示作為輸入,並可結合額外的運動學約束(例如關鍵幀位置、關節限制或接觸點),以產生符合指定需求的動作序列。
支援平台
- Linux
- macOS
- Windows
快速開始
安裝
pip install kimodo-motion-diffusion
基本使用
from kimodo import Kimodo
# 初始化模型
model = Kimodo()
# 使用文字提示生成動作
motion = model.generate("一個角色正在步行,然後跳躍")
# 儲存動作序列
motion.save("output.bvh")
進階功能
運動學約束
您可以指定額外的約束條件來引導動作生成:
constraints = {
"foot_contacts": [1, 1, 0, 0], # 左腳、右腳接觸地面
"joint_positions": {
"head": [0.0, 1.7, 0.0],
"right_hand": [0.3, 1.2, 0.1]
}
}
motion = model.generate("揮手姿勢", constraints=constraints)
模型架構
Kimodo 採用擴散模型架構,從雜訊逐步還原出清晰的動作序列。其核心創新在於將運動學約束直接整合至擴散過程中,確保生成的動作不僅符合文字描述,還能滿足特定物理或機械限制。
輸出格式
支援的輸出格式包括:
- BVH (Biovision Hierarchy)
- FBX
- 自訂的關鍵幀 JSON 格式
常見問題
我需要 GPU 嗎?
雖然 Kimodo 可以在 CPU 上運行,但建議使用支援 CUDA 的 GPU 以獲得最佳效能。
如何調整動作長度?
可以透過設定 duration 參數來控制動作長度(以秒為單位):
motion = model.generate("奔跑動作", duration=3.0)
貢獻指南
歡迎提交問題報告與功能請求。若想貢獻程式碼,請先參閱我們的貢獻指南。
授權條款
本專案採用 MIT 授權條款。詳情請見 LICENSE 檔案。