Video Modelsbytedance

معرفی و مستندات مدل هوش مصنوعی omnihuman

مستندات مدل تولید ویدیو از تصویر و صدا omnihuman، ارائه شده توسط ای ای کار (AI-KAR)

معرفی و بررسی فنی

⚡ وضعیت پشتیبانی از زبان فارسی

این مدل از زبان فارسی به صورت متوسط پشتیبانی می‌کند. درک متن فارسی در سطح قابل قبولی است اما ممکن است در تولید ویدیو با تلفظ دقیق کلمات فارسی مشکلاتی وجود داشته باشد.

مدل omnihuman یک فریم‌ورک هوش مصنوعی پیشرفته از ByteDance است که ویدیوهای واقع‌گرایانه lip-sync را از یک تصویر و سیگنال‌های حرکتی (صدا) تولید می‌کند. این مدل از سبک‌های بصری و صوتی متعددی پشتیبانی می‌کند و ویدیوها را با هر تناسب بدنی تولید می‌کند، با واقعیتی که توسط حرکت، نورپردازی و جزئیات بافت افزایش می‌یابد. این مدل با استفاده از تکنیک‌های پیشرفته یادگیری عمیق، قادر است حرکات لب و صورت را به طور دقیق با صدای ورودی هماهنگ کند و نتایجی بسیار طبیعی و باورپذیر ارائه دهد. یکی از ویژگی‌های برجسته omnihuman، توانایی آن در تولید ویدیوهایی با کیفیت بالا و جزئیات دقیق است. این مدل قادر است جزئیات کوچکی مانند چین و چروک‌های صورت، حرکات چشم و ابرو و تغییرات نورپردازی را به طور واقع‌گرایانه شبیه‌سازی کند. این امر باعث می‌شود ویدیوهای تولید شده توسط omnihuman بسیار طبیعی‌تر و جذاب‌تر به نظر برسند. علاوه بر این، omnihuman از سبک‌های بصری و صوتی متعددی پشتیبانی می‌کند. این بدان معناست که کاربران می‌توانند ویدیوهایی با سبک‌های مختلف، از جمله سبک‌های واقع‌گرایانه، کارتونی و فانتزی تولید کنند. همچنین، omnihuman قادر است صداهای مختلف، از جمله صداهای مردانه، زنانه و کودکانه را پردازش کند و حرکات لب و صورت را به طور دقیق با آنها هماهنگ کند. یکی دیگر از ویژگی‌های مهم omnihuman، توانایی آن در تولید ویدیوها با هر تناسب بدنی است. این بدان معناست که کاربران می‌توانند ویدیوهایی از شخصیت‌هایی با اندازه‌ها و شکل‌های مختلف تولید کنند. این امر باعث می‌شود omnihuman ابزاری بسیار انعطاف‌پذیر و قدرتمند برای تولید ویدیوهای سفارشی باشد. در مجموع، omnihuman یک مدل هوش مصنوعی پیشرفته و قدرتمند است که می‌تواند ویدیوهای واقع‌گرایانه lip-sync را از یک تصویر و صدا تولید کند. این مدل از سبک‌های بصری و صوتی متعددی پشتیبانی می‌کند و ویدیوها را با هر تناسب بدنی تولید می‌کند. omnihuman ابزاری ارزشمند برای تولیدکنندگان محتوا، بازاریابان و هر کسی است که به دنبال تولید ویدیوهای جذاب و با کیفیت بالا است. با استفاده از این مدل، کاربران می‌توانند به راحتی ویدیوهایی با کیفیت استودیویی تولید کنند و مخاطبان خود را تحت تاثیر قرار دهند. این مدل با در نظر گرفتن جزئیات دقیق و ارائه نتایج واقع‌گرایانه، تجربه بصری بی‌نظیری را برای کاربران فراهم می‌کند.

مشخصات فنی (API References)

پارامترنوعتوضیحات و مقادیر
model
stringRequired
نام مدل مورد استفاده برای تولید ویدیو. مقدار آن باید `bytedance/omnihuman` باشد.
مقادیر مجاز (کلیک برای کپی):
image_url
stringRequired
یک لینک مستقیم به یک تصویر آنلاین یا یک تصویر محلی که به صورت Base64 کدگذاری شده است. این تصویر به عنوان پایه بصری یا اولین فریم برای ویدیو استفاده خواهد شد.
audio_url
stringRequired
یک لینک مستقیم به فایل صوتی که قرار است در ویدیو استفاده شود. شخصیت موجود در تصویر، صدا را با lip-sync کامل و حرکات طبیعی بیان خواهد کرد.

نمونه کدهای درخواست

نکته مهم برای توسعه‌دهندگان:

برای احراز هویت، حتما کلید API خود را جایگزین YOUR_API_KEY کنید. هدر Authorization الزامی است.

import requests
import time

# replace <YOUR_AI-KARAPI_KEY> with your actual ای آی کار (AI-KAR) key
api_key = "<YOUR_AI-KARAPI_KEY>"
base_url = "https://api.ai-kar.com/v1"

# Creating and sending a video generation task to the server
def generate_video():
    url = f"{base_url}/video/generations"
    headers = {
        "Authorization": f"Bearer {api_key}",
    }
    data = {
        "model": "bytedance/omnihuman",
        "image_url": "https://s2-111386.kwimgs.com/bs2/mmu-aiplatform-temp/kling/20240620/1.jpeg",
        "audio_url": "https://storage.googleapis.com/falserverless/example_inputs/omnihuman_audio.mp3",
    }
    response = requests.post(url, json=data, headers=headers)
    if response.status_code >= 400:
        print(f"Error: {response.status_code} - {response.text}")
    else:
        response_data = response.json()
        print(response_data)
        return response_data

# Requesting the result of the task from the server using the generation_id
def get_video(gen_id):
    url = f"{base_url}/video/generations"
    params = {
        "generation_id": gen_id,
    }
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }
    response = requests.get(url, params=params, headers=headers)
    return response.json()

def main():
    # Running video generation and getting a task id
    gen_response = generate_video()
    gen_id = gen_response.get("id")
    print("Generation ID:  ", gen_id)

    # Trying to retrieve the video from the server every 10 sec
    if gen_id:
        start_time = time.time()
        timeout = 600
        while time.time() - start_time < timeout:
            response_data = get_video(gen_id)
            if response_data is None:
                print("Error: No response from API")
                break
            status = response_data.get("status")
            print("Status:", status)
            if status == "waiting" or status == "active" or  status == "queued" or status == "generating":
                print("Still waiting... Checking again in 10 seconds.")
                time.sleep(10)
            else:
                print("Processing complete:/n", response_data)
                return response_data
        print("Timeout reached. Stopping.")
        return None

if __name__ == "__main__":
    main()

نمونه پاسخ موفق (JSON)

RESPONSE (200 OK)
{
  "id": "60ac7c34-3224-4b14-8e7d-0aa0db708325",
  "status": "completed",
  "video": {
    "url": "#",
    "duration": 8
  },
  "duration": 8,
  "error": null,
  "meta": {
    "usage": {
      "tokens_used": 120000
    }
  }
}