Video Modelsbytedance

معرفی و مستندات مدل هوش مصنوعی seedance-1.0-lite-text-to-video

مستندات مدل تولید ویدیو از متن seedance-1.0-lite-text-to-video، ارائه شده توسط ای آی کار (AI-KAR).

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

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

این مدل از زبان فارسی به صورت ضعیف پشتیبانی می‌کند. برای دریافت بهترین نتیجه، استفاده از prompt های انگلیسی توصیه می‌شود.

معرفی مدل seedance-1.0-lite-text-to-video

مدل seedance-1.0-lite-text-to-video یک مدل هوش مصنوعی است که توسط bytedance توسعه داده شده و برای تولید ویدیو از توضیحات متنی (prompt) طراحی شده است. این مدل به کاربران امکان می‌دهد تا به سادگی و در عرض چند دقیقه، محتوای ویدیویی حرفه‌ای تولید کنند. با استفاده از این مدل، دیگر نیازی به تجهیزات گران‌قیمت فیلم‌برداری یا تخصص فنی بالا نیست. کافی است یک متن توصیفی ارائه دهید و مدل، ویدیوی متناسب با آن را تولید خواهد کرد.

این مدل به ویژه برای تولیدکنندگان محتوا، بازاریابان، و هر کسی که به دنبال ایجاد ویدیوهای جذاب و سریع است، بسیار مناسب است. یکی از ویژگی‌های برجسته این مدل، امکان ثابت نگه داشتن دوربین در طول ویدیو است. این قابلیت به کاربر اجازه می‌دهد تا کنترل بیشتری بر سبک و ظاهر ویدیو داشته باشد. با این حال، باید توجه داشت که اعمال این تنظیمات همیشه نتیجه دلخواه را تضمین نمی‌کند و ممکن است نیاز به آزمایش و تنظیم دقیق‌تر prompt داشته باشد.

مدل seedance-1.0-lite-text-to-video از طریق API قابل دسترسی است و کاربران می‌توانند با ارسال درخواست‌های HTTP، ویدیوهای مورد نظر خود را تولید کنند. فرآیند تولید ویدیو شامل دو مرحله اصلی است: ابتدا یک درخواست برای ایجاد و ارسال وظیفه تولید ویدیو به سرور ارسال می‌شود که در پاسخ، یک شناسه (generation ID) دریافت می‌شود. سپس، با استفاده از این شناسه، می‌توان وضعیت وظیفه را بررسی کرده و پس از تکمیل، ویدیوی تولید شده را از سرور دریافت کرد.

این مدل پارامترهای مختلفی را برای سفارشی‌سازی ویدیو ارائه می‌دهد. از جمله این پارامترها می‌توان به رزولوشن ویدیو (480p یا 720p)، نسبت تصویر (16:9، 4:3، 1:1، 3:4، 9:16)، طول ویدیو (5 یا 10 ثانیه) و seed اشاره کرد. پارامتر seed به کاربر امکان می‌دهد تا با تغییر مقدار آن، نتایج متفاوتی برای یک prompt یکسان دریافت کند. همچنین، پارامتر camera_fixed امکان ثابت نگه داشتن دوربین را فراهم می‌کند.

در نهایت، لازم به ذکر است که استفاده از این مدل نیازمند داشتن یک کلید API است. کاربران می‌توانند با مراجعه به راهنمای شروع سریع، کلید API خود را دریافت کرده و از مدل seedance-1.0-lite-text-to-video برای تولید ویدیوهای خلاقانه و جذاب استفاده کنند. این مدل یک ابزار قدرتمند برای تولید محتوای ویدیویی است که به کاربران امکان می‌دهد تا ایده‌های خود را به سرعت و با کیفیت بالا به واقعیت تبدیل کنند.

با استفاده از این مدل در ای آی کار (AI-KAR)، کاربران می‌توانند به راحتی و با کمترین هزینه، ویدیوهای مورد نظر خود را تولید کرده و در پروژه‌های مختلف از آن استفاده کنند. این مدل یک راهکار ایده‌آل برای تولید محتوای ویدیویی در مقیاس بزرگ است و به کاربران امکان می‌دهد تا به سرعت و با کیفیت بالا، ویدیوهای مورد نظر خود را تولید کنند.

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

پارامترنوعتوضیحات و مقادیر
model
stringRequired
مدل مورد استفاده برای تولید ویدیو.
مقادیر مجاز (کلیک برای کپی):
prompt
stringRequired
توضیحات متنی صحنه، موضوع یا عملی که می‌خواهید در ویدیو تولید شود.
resolution
string
وضوح ویدیو. ضلع کوچکتر فریم ویدیو، وضوح را تعیین می‌کند.
مقادیر مجاز (کلیک برای کپی):
aspect_ratio
string
نسبت تصویر ویدیوی تولید شده.
مقادیر مجاز (کلیک برای کپی):
duration
integer
طول ویدیوی خروجی بر حسب ثانیه.
مقادیر مجاز (کلیک برای کپی):
seed
integer
تغییر مقدار seed باعث می‌شود نتایج متفاوتی برای پارامترهای درخواست یکسان بدست آید. استفاده از مقدار یکسان برای یک درخواست مشابه، نتایج مشابهی تولید می‌کند. اگر مشخص نشود، یک عدد تصادفی انتخاب می‌شود.
camera_fixed
boolean
تعیین می‌کند که آیا موقعیت دوربین ثابت باشد یا خیر. true: موقعیت دوربین را ثابت می‌کند. پلتفرم دستورالعمل‌هایی را برای ثابت کردن موقعیت دوربین در prompt کاربر اضافه می‌کند، اما اثر واقعی تضمین نمی‌شود. false: موقعیت دوربین را ثابت نمی‌کند.
watermark
boolean
منسوخ شده. تعیین می‌کند که آیا ویدیو حاوی واترمارک باشد یا خیر.

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

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

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

import requests
import time

# Insert your ای آی کار (AI-KAR) key instead of <YOUR_AI-KARAPI_KEY>:
api_key = "<YOUR_AI-KARAPI_KEY>"

# Creating and sending a video generation task to the server
def generate_video():
    url = "https://api.ai-kar.com/v1/v2/generate/video/bytedance/generation"
    headers = {
        "Authorization": f"Bearer {api_key}",
    }
    data = {
        "model": "bytedance/seedance-1-0-lite-t2v",
        "prompt": "A menacing evil dragon appears in a distance above the tallest mountain, then rushes toward the camera with its jaws open, revealing massive fangs. We see it's coming",
    }
    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 = "https://api.ai-kar.com/v1/v2/generate/video/bytedance/generation"
    params = {
        "generation_id": gen_id,
    }
    # Insert your AI-KAR API Key instead of <YOUR_AI-KARAPI_KEY>:
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }
    response = requests.get(url, params=params, headers=headers)
    return response.json()

def main():
    # Generate video
    gen_response = generate_video()
    gen_id = gen_response.get("id")
    print("Generation ID:  ", gen_id)

    # Try 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
    }
  }
}