{"name":"Ginara Content Studio API","version":"2.0.0","agents_md_url":"/agents.md","auth":{"mode":"sso","agent_headers":["Authorization: Bearer cs_agent_...","X-Agent-Key: cs_agent_..."],"role_boundaries":{"agent":"Boleh membuat/update project, character, video, scene, revisi berdasarkan reviewer_note, dan memicu generate runs.","owner":"Satu-satunya peran yang boleh menyetujui/menolak gate (1-4), menandai pose canonical, mengubah budget, dan upload YouTube."}},"brainstorming_sop":["1. Rekomendasikan format terbaik (1 Video Short Utuh vs Cerita Panjang Ber-Part) lengkap dengan judul, sinopsis/sinopsis per Part, style_bible, dan rasio.","2. Diskusikan cerita bersama user hingga final (tanpa meminta user menentukan jumlah scene).","3. Ekstrak karakter dari cerita final -> buat 1 Project -> buat Character + generate-sheet -> minta owner kunci Pose Canonical di Web UI.","4. Breakdown otomatis setiap Part menjadi Video + daftar Scene (rata-rata 5-8 detik per scene) dengan visual_prompt, dialogue_text, audio_prompt, character_ids.","5. Jalankan Gate 1 -> Gate 2 (keyframe) -> Gate 3 (clip i2v/r2v) -> Gate 4 (subtitle + assemble) mengikuti approval owner."],"workflow_gates":["0. Character Setup: upload reference (opsional) -> character_sheet.generate -> owner tandai canonical poses.","1. Gate 1 (Script & Dialog): buat video + scenes (visual_prompt, dialogue_text, audio_prompt) -> tunggu owner approve Gate 1.","2. Gate 2 (Keyframe Visual): trigger keyframe.generate -> tunggu owner approve (atau regenerate seed / revise with note).","3. Gate 3 (Clip Video+Audio): trigger clip.generate untuk keyframe approved -> tunggu owner audit audio + trim_start/trim_end + approve.","4. Gate 4 (Final Render & Publish): trigger subtitle.generate & assemble.render -> owner approve Gate 4 (/gate4/approve) dan opsional publish ke YouTube (/gate4/approve-publish)."],"capabilities":{"character_sheet.generate":{"version":"v2-minimax-h3","runner_type":"comfyui","model_version":"minimax-h3-image-int8","license":"MiniMax H3 Model License","allowed_workers":["192.168.1.77"],"description":"Membuat 3 pose terpisah (face_front, face_angle, body_front) memakai image_minimax_h3_image_edit.json / t2i.json (6 steps, CFG 1)."},"keyframe.generate":{"version":"v2-minimax-h3","runner_type":"comfyui","model_version":"minimax-h3-image-int8","license":"MiniMax H3 Model License","allowed_workers":["192.168.1.77"],"description":"Menghasilkan keyframe scene via image_minimax_h3_image_edit.json (injeksi otomatis <Picture 1> pose canonical) atau t2i.json."},"clip.generate":{"version":"v2-minimax-h3","runner_type":"comfyui","model_version":"minimax-h3-fl2va-ref2va-int8","license":"MiniMax H3 Model License","allowed_workers":["192.168.1.77"],"description":"Menghasilkan klip video + native audio (VAEDecodeAudio) dengan pilihan mode I2V (8-step Turbo) atau R2V (4-step Turbo)."},"thumbnail.generate":{"version":"v2-minimax-h3","runner_type":"comfyui","model_version":"minimax-h3-image-int8","license":"MiniMax H3 Model License","allowed_workers":["192.168.1.77"],"description":"Menghasilkan thumbnail YouTube beresolusi tinggi via MiniMax H3 Image (satu keluarga VRAM dengan keyframe/character sheet)."},"subtitle.generate":{"version":"v1","runner_type":"ffmpeg_worker","model_version":"forced-align-srt-v1","license":"MIT","allowed_workers":["local"],"description":"Ekstraksi audio dari klip approved dan pembuatan subtitle .srt selaras dialogue_text."},"assemble.render":{"version":"v1","runner_type":"ffmpeg_worker","model_version":"ffmpeg-assemble-v1","license":"LGPL/GPL FFmpeg","allowed_workers":["local"],"description":"Menggabungkan klip approved (dengan trim_start/trim_end), auto-ducking BGM, watermark, dan subtitle."},"youtube.publish":{"version":"v1","runner_type":"youtube_worker","model_version":"youtube-data-api-v3","license":"Google API Terms of Service","allowed_workers":["local"],"description":"Mengunggah video final dan thumbnail ke channel YouTube milik user terkait setelah Gate 4 approved."}},"idempotency":"Kirim header Idempotency-Key pada endpoint generate/render agar retry jaringan tidak menggandakan job GPU."}