Apa yang dilakukan LLM dalam pipa video
Jika Anda membuat alur kerja llm api video nsfw dengan skrip, hal pertama yang harus diselesaikan adalah pembagian tugas. Model bahasa menulis. Model video terpisah, editor, atau proses syuting menghasilkan rekaman. Layanan ini hanya menyediakan bagian pertama: satu model teks bobot terbuka, yang disesuaikan untuk menjawab tanpa penolakan konten untuk penggunaan dewasa yang sah, di balik endpoint yang kompatibel dengan OpenAI. Layanan ini tidak akan merender frame, mensintesis suara, atau membuat gambar, dan tidak menawarkan embedding atau fine-tuning.
Hal itu masih mencakup banyak pekerjaan seputar proyek yang ditujukan untuk audiens dewasa, seperti fiksi, roleplay, dan storytelling gaya teman. Model dapat membuat draf treatment, membaginya menjadi adegan, menulis dialog dan narasi, menghasilkan daftar shot-by-shot, dan merumuskan prompt untuk alat video apa pun yang Anda gunakan di tahap selanjutnya. Halaman NSFW pipelines menjelaskan bagaimana tahap teks ini terhubung dengan sisa tumpukan teknologi Anda.
Satu aturan tetap berlaku untuk setiap permintaan: tidak ada konten seksual yang melibatkan anak di bawah umur. Buat sistem prompt Anda sehingga setiap karakter adalah orang dewasa, dan perlakukan itu sebagai persyaratan proyek, bukan pertimbangan akhir.
Alur kerja dalam empat tahap
Alur kerja naskah bekerja paling baik ketika setiap panggilan melakukan satu pekerjaan dan menyerahkan output terstruktur ke tahap berikutnya. Tata letak praktis terlihat seperti ini:
- Ensiklopedia cerita. Satu dokumen dengan karakter (semua orang dewasa), pengaturan, nada, dan detail berulang. Anda menulisnya sekali dan mengirimkannya dengan setiap panggilan.
- Garis besar. Satu panggilan mengubah premis menjadi 8 hingga 15 ringkaran.
- Naskah adegan. Satu panggilan per beat menghasilkan dialog, baris aksi, dan narasi, menggunakan ensiklopedia dan adegan sebelumnya untuk kontinuitas.
- Daftar shot dan prompt. Satu panggilan terakhir per adegan mengembalikan JSON: shot, durasi, catatan kamera, dan string prompt untuk alat video Anda.
Memecahnya dengan cara ini menjaga output tetap pendek, yang membuat setiap hasil lebih mudah ditinjau dan lebih murah untuk dibuat ulang jika Anda tidak menyukainya. Ini juga berarti panggilan yang gagal hanya memakan satu adegan, bukan seluruh naskah.
Prompt sistem yang menetapkan aturan
Prompt sistem adalah tempat nada, format, dan batas hidup. Model tanpa perilaku penolakan masih mengikuti instruksi, sehingga kualitas prompt Anda menentukan kualitas naskah. Jadilah spesifik tentang genre, sudut pandang, dan apa yang harus dihilangkan. Berikut adalah titik awal untuk fiksi yang ditujukan untuk penonton dewasa, ditulis untuk tetap berada di sisi profesional halaman:
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.'''
Sesuaikan per proyek. Misteri noir dan komedi romansa membutuhkan instruksi yang berbeda, dan contoh gaya satu baris di dalam prompt sering mengarahkan model lebih baik daripada paragraf kata sifat.
Menghasilkan daftar adegan dalam mode JSON
Untuk tahap daftar bidikan, Anda menginginkan output yang dapat dibaca kode. Mode JSON memaksakan objek yang dapat diuraikan. Kirimkan response_format={"type": "json_object"}, beri nama kunci dalam prompt dan pertahankan temperature rendah. Contoh ini menggunakan paket Python openai dengan URL dasar situs ini dan ID model uncensored.
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"])
Validasi hasilnya sebelum Anda meneruskannya. Periksa bahwa shots ada, bahwa seconds adalah angka, dan bahwa string prompt tidak kosong. Jika penguraian gagal, coba lagi sekali. Permintaan yang gagal atau ditolak tidak dikenakan biaya, sehingga percobaan ulang tidak menambah biaya untuk panggilan yang error.
Pengaturan yang penting untuk teks kreatif
Tahap yang berbeda menginginkan pengaturan yang berbeda, dan API meneruskan pengaturan biasa melalui: temperature, top_p, stop, seed dan frekuensi serta penalti kehadiran.
- Garis besar dan dialog: suhu 0,8 hingga 1,0 untuk variasi. Hasilkan dua atau tiga varian dan pilih satu.
- Daftar bidikan: suhu 0,2 hingga 0,3, ditambah
seedtetap sehingga menjalankan ulang input yang sama dapat dibandingkan. - Pengulangan: adegan panjang terkadang mengulang frasa yang sama. Penalti frekuensi kecil, seperti 0,3, membantu.
- Kontrol panjang:
max_tokensbersifat opsional, tetapi batas 800 untuk satu adegan menjaga output tetap ketat. Urutanstopseperti"END SCENE"memungkinkan Anda berakhir pada penanda yang Anda minta model untuk ditulis. - Streaming: aktifkan
stream: truejika seorang penulis menonton output secara langsung. Ingat bahwa stream memegang slot konkurensinya hingga berakhir.
quickstart mencantumkan setiap parameter yang didukung, dan endpointnya adalah POST /v1/chat/completions dan GET /v1/models.
Menggunakan jendela konteks 100k untuk kontinuitas
Kontinuitas adalah kegagalan umum dalam naskah yang dihasilkan: nama berubah, usia bergeser, properti menghilang. Jendela konteksnya adalah 100.000 token, prompt ditambah penyelesaian, dan itu cukup besar untuk menempatkan seluruh ensiklopedia cerita, garis besar, dan beberapa adegan yang selesai dalam setiap panggilan. Anda tidak memerlukan sistem pengambilan untuk proyek pada skala ini. Tempelkan fakta dan biarkan model membacanya setiap kali.
Konteks tidak gratis, tetapi murah. Misalkan ensiklopedia dan garis besar Anda berjumlah 20.000 token dan Anda menulis 50 adegan, setiap panggilan mengembalikan sekitar 600 token:
- Input: 50 x 20.000 = 1.000.000 token x $0,15 per 1 juta = $0,15
- Output: 50 x 600 = 30.000 token x $0,50 per 1 juta = $0,015
- Total: $0,165 untuk semua 50 adegan
Tambahkan tahap daftar bidikan di atas 50 adegan yang sama dengan 3.000 token masuk dan 500 token keluar masing-masing: input 150.000 token biaya $0,0225 dan output 25.000 token biaya $0,0125, tambahan $0,035. Naskah lengkap dan daftar bidikan biaya sekitar $0,20, yang kurang dari kredit uji coba $0,50 yang dapat Anda klaim dari halaman kunci API.
Perhatikan bahwa jendela harus memegang prompt dan jawaban. Ensiklopedia 20.000 token menyisakan banyak ruang, tetapi prompt 95.000 token menyisakan sedikit untuk penyelesaian.
Meninjau dan memperbaiki output
Perlakukan setiap adegan yang dihasilkan sebagai draf pertama. Tiga pemeriksaan menangkap sebagian besar masalah sebelum mencapai alat video. Pertama, jalankan pass konsistensi: kirim naskah yang selesai kembali dengan ensiklopedia cerita dan minta model untuk mencantumkan setiap tempat di mana nama, usia, lokasi, atau garis waktu berbeda. Panggilan kedua dengan suhu rendah murah dan sering menemukan pergeseran yang Anda lewatkan dengan mata. Kedua, baca dialognya dengan lantang. Baris yang tampak bagus di layar bisa canggung ketika diucapkan, dan aktor pengisi suara atau alat teks-ke-suara akan mengeksposnya segera. Ketiga, periksa apakah durasi bidikan berjumlah panjang yang Anda rencanakan. Model longgar dengan aritmatika, jadi tambahkan bidang seconds dalam kode daripada mempercayai total yang ditulis model.
Ketika sebuah adegan melewatkan target, tahan keinginan untuk menulis ulang seluruh prompt sistem. Tambahkan satu instruksi korektif ke pesan pengguna, seperti "baris aksi lebih pendek" atau "lebih banyak dialog, lebih sedikit deskripsi", dan buat ulang adegan itu saja. Menjaga ensiklopedia dan prompt sistem tetap saat Anda memvariasikan satu instruksi pada satu waktu membuatnya jelas perubahan mana yang membantu. Parameter seed berguna di sini, karena seed tetap dengan pengeditan prompt kecil mengisolasi efek edit.
Batas, kejujuran, dan langkah selanjutnya
Beberapa batasan sederhana sebelum Anda membangun. Model ini hanya teks, jadi setiap video, gambar, dan trek suara harus berasal dari alat lain. Ini adalah satu model bobot terbuka yang dijalankan oleh penyedia independen, dan ini bukan API resmi dari vendor besar mana pun. Kualitas bervariasi dengan prompt, jadi rencanakan satu tahap peninjauan oleh orang pada setiap naskah; perlakukan output sebagai draf.
Pada throughput, kunci penuh memungkinkan 8 permintaan konkuren dan 300 per menit, sementara kunci uji coba memungkinkan 2 dan 60. Jika Anda menulis adegan secara paralel, sesuaikan ukuran kumpulan pekerja Anda. 429 dengan rate_limited atau concurrency berarti perlambat; satu dengan header Retry-After: 5 berarti layanan kelebihan beban sebentar, jadi tunggu lima detik dan coba lagi. Prompt tidak digunakan untuk pelatihan.
Kredit berbayar mulai dari top-up $20, jumlah bulat apa pun hingga $500, dengan tambahan +5% dari $50, +10% dari $100, dan +15% dari $200. Pembayaran hanya menggunakan kripto, USDT di TRC20 atau USDC di Base, dan kredit tidak pernah kedaluwarsa. Ketentuan saat ini ada di halaman harga. Untuk proyek seperti di atas, $20 mencakup puluhan naskah lengkap.
