name: hunyuan-video description: 騰訊混元生影片API - 支援文生影片、圖生影片、影片風格化 homepage: https://cloud.tencent.com/document/product/1616/107795 metadata: {"clawdbot":{"emoji":"🎬","requires":{"bins":["python"],"packages":["tencentcloud-sdk-python"],"env":["TENCENT_SECRET_ID","TENCENT_SECRET_KEY"]},"primaryEnv":"TENCENT_SECRET_ID"}}
基於騰訊混元大模型的影片生成服務,支援文生影片、圖生影片、影片風格化三大核心功能。
| 功能 | 命令 | 說明 |
|---|---|---|
| 🎬 文生影片 | text2video |
文本描述生成影片 |
| 🖼️ 圖生影片 | image2video |
圖片生成影片(支援URL或本地檔案) |
| 🎨 影片風格化 | stylization |
影片轉2D動漫/3D卡通等風格 |
pip install tencentcloud-sdk-python
需要的環境變數:
- TENCENT_SECRET_ID - 騰訊雲SecretId
- TENCENT_SECRET_KEY - 騰訊雲SecretKey
# Windows PowerShell - 永久設定
[Environment]::SetEnvironmentVariable("TENCENT_SECRET_ID", "your-secret-id", "User")
[Environment]::SetEnvironmentVariable("TENCENT_SECRET_KEY", "your-secret-key", "User")
# 或臨時設定(當前會話)
$env:TENCENT_SECRET_ID = "your-secret-id"
$env:TENCENT_SECRET_KEY = "your-secret-key"
獲取金鑰步驟: 1. 訪問 https://console.cloud.tencent.com/cam/capi 2. 點選「新建金鑰」 3. 複製 SecretId 和 SecretKey 4. ⚠️ 注意:SecretKey 只顯示一次,請妥善儲存
# 檢查環境變數
Write-Host "SecretId: $env:TENCENT_SECRET_ID"
Write-Host "SecretKey: $($env:TENCENT_SECRET_KEY.Substring(0,10))..."
# 測試生成
python scripts/generate.py text2video "一隻小貓"
python scripts/generate.py text2video "一隻可愛的小豬在草地上奔跑"
# 指定解析度
python scripts/generate.py text2video "小豬" --resolution 1080p
引數:
- prompt: 文本描述(必填)
- --resolution: 解析度(720p, 1080p,預設720p)
# 使用圖片URL
python scripts/generate.py image2video "https://example.com/pig.jpg"
# 使用本地圖片
python scripts/generate.py image2video "./pig.png"
# 新增輔助描述
python scripts/generate.py image2video "./pig.png" --prompt "小豬在奔跑"
引數:
- image: 圖片URL或本地路徑(必填)
- --prompt: 輔助描述(可選)
支援格式:
- URL: http:// 或 https:// 開頭
- 本地檔案: 相對路徑或絕對路徑
# 轉為2D動漫風格
python scripts/generate.py stylization "https://example.com/video.mp4" --style 2d_anime
# 轉為3D卡通風格
python scripts/generate.py stylization "https://example.com/video.mp4" --style 3d_cartoon
風格選項:
- 2d_anime: 2D動漫
- 3d_cartoon: 3D卡通
- 3d_china: 3D國潮
- pixel_art: 畫素風
輸入影片要求: - 格式:mp4、mov - 時長:1~60秒 - 解析度:540P~2056P - 大小:不超過200M - FPS:15~60fps
生成的影片儲存在 {output}/{date}/{job_id}/ 目錄下:
- {command}_result.mp4 - 生成的影片
- info.json - 任務資訊
問題:不同介面返回的狀態欄位和成功值不一致!
| 介面 | 狀態欄位 | 成功值 |
|---|---|---|
| 文生影片 | Status |
DONE |
| 圖生影片 | Status |
DONE |
| 影片風格化 | JobStatusCode |
4 或 5+ResultDetails:Success |
解決方案:
# 統一處理多種狀態
success_statuses = ["JobSuccess", "SUCCESS", "DONE"]
if status in success_statuses:
print("✅ 生成完成!")
問題:Image 引數不是字串,而是物件型別!
錯誤程式碼:
# ❌ 錯誤
req.Image = image_url # 直接賦值字串
# ✅ 正確
image = models.Image()
image.Url = image_url # 或 image.Base64 = base64_data
req.Image = image
經驗:SDK中物件型別的引數需要建立對應的物件例項。
實現方式:讀取本地檔案轉為base64編碼
if image_input.startswith('http'):
image.Url = image_input
elif os.path.exists(image_input):
with open(image_input, 'rb') as f:
image.Base64 = base64.b64encode(f.read()).decode('utf-8')
好處:使用者可以直接使用本地圖片,無需先上傳。
觀察: - 文生影片:約1-3分鐘 - 圖生影片:約1-3分鐘 - 影片風格化:約2-5分鐘
建議:設定合理的超時時間(預設600秒),並顯示進度點讓使用者知道正在處理。
問題:風格化介面返回 JobStatusCode: 5 但實際可能是成功!
原因:StatusCode: 5 + ResultDetails: ["Success"] = 實際成功
解決方案:
if status == "4" or (status == "5" and result.get("ResultDetails") == ["Success"]):
print("✅ 實際生成成功!")
問題:下載影片時可能遇到SSL驗證錯誤
解決方案:臨時停用SSL驗證(僅用於下載)
ssl_context = ssl.create_default_context()
ssl_context.check_hostname = False
ssl_context.verify_mode = ssl.CERT_NONE
限制: - 影片風格化:預設1個併發 - 其他功能:預設3個併發
建議:順序執行,等待前一個任務完成再提交下一個。
注意:任務結果URL有效期為48小時,請及時下載。
# 示例1:文生影片
python scripts/generate.py text2video "一隻可愛的小豬在草地上奔跑,陽光明媚"
# 示例2:圖生影片(本地圖片)
python scripts/generate.py image2video "./my_pig.png" --prompt "小豬在奔跑"
# 示例3:影片風格化
python scripts/generate.py stylization "https://example.com/video.mp4" --style 2d_anime
ap-guangzhou7w4.net提供免費和付費技能下載。
如果遇到問題:
1. 檢查環境變數:echo $env:TENCENT_SECRET_ID
2. 確認服務已開通:訪問控制台檢視
3. 檢視詳細錯誤:使用 RequestId 聯絡客服
4. 測試API連線:先用簡單prompt測試
開發經驗:在實現過程中發現SDK引數型別和文件描述可能存在差異,建議通過實際測試驗證引數格式。圖生影片的Image引數是一個典型的物件型別引數陷阱,需要特別注意。
這個 Skill 質量很好,操作簡單易上手。文件寫得特別詳細,新手按照步驟配置環境就能使用,還貼心地記錄了常見問題和解決辦法。程式碼執行穩定,生成影片時會顯示進度條,任務完成後會自動下載儲存。唯一的小遺憾是影片風格化目前只能輸入連結,不支援直接上傳本地影片檔案。總體來說,是一個值得信賴的影片生成工具。