TR ▾
NSFW Video Generator

Yetişkin video iş akışları için sansürsüz API

NSFW Video Script LLM API: Metin Odaklı İş Akışı

NSFW video senaryosu LLM API'si bir projenin metin tarafını yazar: taslaklar, sahne listeleri, diyaloglar ve diğer araçlar için istemler. Video üretmez ve bu sayfa nereye oturacağını gösterir.

güncellendi

Terminalden boş film karelerine akan senaryo sayfalarının illüstrasyonu, metin tabanlı LLM video iş akışını gösterir

Temel noktalar

  1. API sadece metin içerir. Senaryolar, çekim listeleri ve istemler üretir; resim, ses veya video üretmez.
  2. İşlemenizin ayrıştırabileceği bir sahne listesi almak için JSON modunu kullanın; tonu ve kuralları belirleyen bir sistem istemi ile.
  3. 100.000 token'lık bağlam penceresi, tüm hikaye ansiklopedisini her istekte tutmanızı sağlar.
  4. Karakterler yetişkin olmalıdır ve reşit olmayanların yer aldığı cinsel içerik asla izin verilmez.

Video iş akışında bir LLM ne yapar

Bir nsfw video senaryosu llm api iş akışı oluşturuyorsanız, çözülmesi gereken ilk şey iş bölümüdür. Bir dil modeli yazar. Ayrı bir video modeli, bir editör veya bir çekim, görüntüyü oluşturur. Bu hizmet yalnızca ilk kısmı sunar: yasal yetişkin kullanım için içerik reddi olmadan cevap vermeye ayarlanmış tek bir açık ağırlıklı metin modeli, OpenAI uyumlu bir uç nokta arkasında. Bir kareyi render etmez, ses sentezlemez veya görüntü oluşturmaz; gömme veya ince ayar da sunmaz.

Bu, yetişkin kitleler için hazırlanan bir proje etrafındaki birçok işi kapsar; kurgu, rol yapma ve eşlik eden anlatı tarzı gibi. Model bir uyarlama taslağı hazırlayabilir, bunu sahnelere ayırabilir, diyalog ve anlatı yazabilir, kare kare bir liste oluşturabilir ve aşağı akışta kullandığınız herhangi bir video aracı için istemleri ifade edebilir. NSFW iş akışları sayfası, bu met aşamasının bir yığınının geri kalanına nasıl bağlandığını açıklar.

Her istek için geçerli olan sabit bir kural vardır: reşit olmayanların dahil olduğu cinsel içerik yok. Sistem isteminizi her karakterin yetişkin olacağı şekilde kurgulayın ve bunu bir sonradan düşünce değil, projenin bir gerekliliği olarak ele alın.

Dört aşamalı bir pipeline

Bir senaryo iş akışı, her çağrının tek bir işi yapması ve yapılandırılmış çıktıyı sonrakine vermesi durumunda en iyi şekilde çalışır. Pratik bir düzen şöyledir:

  1. Hikaye ansiklopedisi. Karakterler (hepsi yetişkin), mekan, ton ve tekrarlayan detaylar içeren tek bir belge. Bunu bir kez yazarsınız ve her çağrıda gönderirsiniz.
  2. Taslak. Tek bir çağrı, bir konsepti 8 ile 15 arasında vuruş özetine dönüştürür.
  3. Sahne senaryoları. Her vuruş için bir çağrı, ansiklopedi ve önceki sahneyi süreklilik için kullanarak diyalog, aksiyon çizgileri ve anlatı üretir.
  4. Çekim listesi ve istemler. Her sahne için son çağrı JSON döndürür: çekimler, süreler, kamera notları ve video aracınız için bir istem dizisi.

Böylece bölmek, çıktıları kısa tutar; bu da her sonucu gözden geçirmeyi ve beğenmezseniz yeniden oluşturmayı daha ucuz hale getirir. Ayrıca başarısız bir çağrının sadece bir sahneye mal olması anlamına gelir, tüm senaryoya değil.

Kuralları belirleyen bir sistem istemi

Sistem istemi, tonun, formatın ve sınırların bulunduğu yerdir. Reddetme davranışı olmayan bir model bile talimatları takip eder, bu yüzden isteminizin kalitesi senaryonun kalitesini belirler. Tür, bakış açısı ve çıkarılacaklar konusunda öz olun. İşte yetişkin izleyicilere yönelik kurgu için profesyonel sınırlar içinde kalan bir başlangıç noktası:

SYSTEM = '''You are a screenwriter for adult-audience fiction videos.
All characters are adults aged 25 or older, and you state each age in the character sheet.
Write in present tense, third person, with short visual action lines.
Keep dialogue natural and under 25 words per line.
Build tension and character through setting, glances and subtext.
Never include minors in any role or reference.
Follow the story bible exactly; do not change names, ages or relationships.
When asked for JSON, return only the JSON object.'''

Bunu proje başına ayarlayın. Bir noir gizemi ve bir romantik komedi farklı talimatlar gerektirir ve istemin içindeki tek satırlık bir stil örneği, bir paragraf sıfatından daha iyi bir model yönlendirmesi sağlar.

JSON modunda sahne listesi oluşturma

Çekim listesi aşaması için kodun okuyabileceği bir çıktıya ihtiyacınız var. JSON modu ayrıştırılabilir bir nesne zorlar. response_format={"type": "json_object"}'i geçin, anahtarları istemde adlandırın ve temperature'ı düşük tutun. Bu örnek, bu sitenin base URL'si ve uncensored model kimliği ile Python openai paketini kullanır.

import json, os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.nsfwvideogenerator.cc/v1",
    api_key=os.environ["NOTRACK_API_KEY"],
)

SYSTEM = open("system_prompt.txt").read()
BIBLE = open("story_bible.txt").read()

def shot_list(scene_text):
    resp = client.chat.completions.create(
        model="uncensored",
        messages=[
            {"role": "system", "content": SYSTEM},
            {"role": "user", "content": (
                "Story bible:\n" + BIBLE +
                "\n\nScene script:\n" + scene_text +
                "\n\nReturn a JSON object with key 'shots': a list of objects with "
                "'number', 'seconds', 'camera', 'action' and 'video_prompt'."
            )},
        ],
        response_format={"type": "json_object"},
        temperature=0.3,
        seed=7,
    )
    data = json.loads(resp.choices[0].message.content)
    return data["shots"]

for shot in shot_list(open("scene_03.txt").read()):
    print(shot["number"], shot["seconds"], shot["video_prompt"])

Devam etmeden önce sonucu doğrulayın. shots'ün var olduğundan, seconds'ün bir sayı olduğundan ve istem dizilerinin boş olmadığından emin olun. Ayrıştırma başarısız olursa bir kez yeniden deneyin. Başarısız veya reddedilen istekler ücretlendirilmez, bu yüzden bir hata için yeniden deneme ekstra maliyet yaratmaz.

Yaratıcı metinler için önemli ayarlar

Farklı aşamalar farklı ayarlar ister ve API genellikle şunları geçirir: temperature, top_p, stop, seed ve frekans ile varlık cezaları.

  • Taslaklar ve diyaloglar: Çeşitlilik için 0.8 ile 1.0 arasında temperature. İki veya üç varyant oluşturun ve birini seçin.
  • Çekim listeleri: 0.2 ile 0.3 arasında temperature ve aynı girdinin yeniden çalıştırılabilir olması için sabit bir seed.
  • Tekrar: Uzun sahneler bazen aynı ifadeyi döngüye sokar. 0.3 gibi küçük bir frekans cezası yardımcı olur.
  • Uzunluk kontrolü: max_tokens isteğe bağlıdır, ancak bir sahne için 800 token'lık bir üst sınır çıktıyı sıkı tutar. stop dizisi gibi "END SCENE", modelin yazmasını istediğiniz bir işarette bitirmenizi sağlar.
  • Akış (Streaming): Yazar çıktıyı canlı izliyorsa stream: true değerini etkinleştirin. Akış, sona erene kadar eşzamanlılık slotunu tutar.

Hızlı Başlangıç, desteklenen her parametreyi listeler ve uç noktalar POST /v1/chat/completions ile GET /v1/models'dir.

Süreklilik için 100k bağlam penceresinin kullanımı

Süreklilik, oluşturulan senaryolarda yaygın bir hatadır: bir isim değişir, bir yaş kayar, bir prop kaybolur. Bağlam penceresi 100.000 token'dır (istem ve tamamlama dahil) ve bu, tüm hikaye ansiklopedisini, taslağı ve birkaç tamamlanmış sahneyi her çağrıya sığdırmak için yeterince büyüktür. Bu ölçekteki bir proje için bir istem ve tamamlama sistemine ihtiyacınız yoktur. Gerçekleri yapıştırın ve modelin her seferinde bunları okumasını sağlayın.

Bağlam ücretsiz değildir ancak ucuzdur. Ansiklopediniz ve taslağınız toplam 20.000 token tutuyorsa ve 50 sahne yazıyorsanız, her çağrı yaklaşık 600 token döndürüyorsa:

  • Giriş: 50 x 20.000 = 1.000.000 token x 1M başına $0,15 = $0,15
  • Çıktı: 50 x 600 = 30.000 token x 1M başına $0,50 = $0,015
  • Toplam: 50 sahne için $0,165

Aynı 50 sahne için 3.000 token giriş ve 500 token çıkış ile bir sahte listesi geçişi ekleyin: 150.000 token giriş $0,0225'e mal olur ve 25.000 token çıkış $0,0125'e mal olur, bu da ek $0,035 eder. Tam senaryo ve sahte listeleri yaklaşık $0,20'ye mal olur; bu, API anahtarı sayfası üzerinden talep edebileceğiniz $0,50'lik deneme kredisinin altındadır.

Pencerenin hem istemi hem de cevabı tutması gerektiğini unutmayın. 20.000 token'lık bir ansiklopedi bolca yer bırakır, ancak 95.000 token'lık bir istek tamamlama için az yer bırakır.

Çıktıyı gözden geçirme ve düzeltme

Her oluşturulan sahneyi ilk taslak olarak değerlendirin. Üç kontrol, çoğu sorunu bir video aracına ulaşmadan yakalar. İlk olarak, tutarlılık kontrolü yapın: bitmiş senaryoyu hikaye ansiklopedisiyle birlikte modelin bir isim, yaş, konum veya kronolojide tutarsızlık olduğu yeri listelemesi için tekrar gönderin. Düşük bir sıcaklık ayarıyla yapılan ikinci çağrı ucuzdur ve gözle atladığınız sapmaları genellikle bulur. İkinci olarak, diyalogları yüksek sesle okuyun. Ekranda iyi görünen satırlar konuşulduğunda zorlanabilir ve bir seslendirme sanatçısı veya metinden konuşmaya aracı bunu hemen ortaya çıkarır. Üçüncü olarak, sahne sürelerinin planladığınız uzunluğa eşit olup olmadığını kontrol edin. Modeller aritmetik konusunda gevşek davranır, bu yüzden modelin yazdığı toplam sayıya güvenmek yerine seconds alanlarını kodda toplayın.

Bir sahne hedefi tutturamadığında, tüm sistem istemini yeniden yazmaya diren. Kullanıcı mesajına bir düzeltme talimatı ekle, örneğin "daha kısa eylem satırları" veya "daha fazla diyalog, daha az açıklama" ve yalnızca o sahneyi yeniden oluştur. Ansiklopediyi ve sistem istemini sabit tutarken bir talimatı tek tek değiştirmek, hangi değişikliğin işe yaradığını netleştirir. seed parametresi burada kullanışlıdır, çünkü küçük bir istem düzenlemesi ile sabit bir seed, düzenlemenin etkisini izole eder.

Sınırlar, dürüstlük ve sonraki adımlar

Yapmadan önce birkaç basit kısıtlama. Model sadece metin içerir, bu yüzden her video, görüntü ve ses parçası diğer araçlardan gelmelidir. Bağımsız bir sağlayıcı tarafından yürütülen tek bir açık ağırlıklı modeldir ve büyük bir satıcının resmi API'si değildir. Kalite isteme göre değişir, bu yüzden her senaryo için bir kişi tarafından bir inceleme aşaması planlayın; çıktıyı bir taslak olarak ele alın.

İşleyiş konusunda, tam anahtar 8 eşzamanlı istek ve dakikada 300 istek izni verir; deneme anahtarı ise 2 ve 60'a izin verir. Sahneleri eşzamanlı yazıyorsanız, işçi havuzunuzu buna göre ayarlayın. rate_limited veya concurrency içeren bir 429 hatası yavaşlamanız gerektiğini; Retry-After: 5 başlığı içeren bir hata servisin kısa süreli aşırı yüklendiğini ve beş saniye bekleyip tekrar denemeniz gerektiğini gösterir. İstemler eğitim için kullanılmaz.

Ödenmiş kredi, $20'lik bir yükleme ile başlar, $500'e kadar herhangi bir tam miktar, $50'den itibaren +%5, $100'den itibaren +%10 ve $200'den itibaren +%15. Ödeme yalnızca kripto ile yapılır, TRC20 üzerinde USDT veya Base üzerinde USDC ve kredi asla sona ermez. Güncel şartlar fiyatlandırma sayfasında bulunur. Yukarıdaki gibi bir proje için $20 düzinelerce tam senaryoyu karşılar.

Sorular ve cevaplar

API videoyu kendisi oluşturabilir mi?

Hayır. Bu metin tabanlı bir LLM API'sidir. Senaryolar, sahne listeleri ve istemler yazar; video üretimi için ayrı bir araç kullanırsınız.

Herhangi bir tür içerik yasak mı?

Evet. Reşit olmayanlarla ilgili cinsel içerik asla kabul edilmez. Model yasal yetişkin kullanımı için tasarlanmıştır ve projelerinizdeki tüm karakterler yetişkin olmalıdır.

Ayrıştırılabilir bir çekim listesini nasıl alırım?

response_format'i bir json_object olarak ayarlayın, isteminizdeki anahtarları adlandırın, temperature parametresini yaklaşık 0,3'e düşürün ve kullanmadan önce json.loads ile sonucu doğrulayın.

Tam bir senaryo ne kadar tutar?

20.000 token'lık bir hikaye ansiklopedisi ve her biri yaklaşık 600 token olan 50 sahne kullanarak, yazma aşaması 1M giriş başına $0,15 ve 1M çıktı token'ı başına $0,50 fiyatla yaklaşık $0,165 tutar.

Anahtarınız tek bir formun uzağında

Bir hesap oluşturun, anahtarı kopyalayın, temel URL'yi değiştirin. Kurulum bu kadar basit.