/ Workflow produksi Shorts faceless dengan agen AI
Starter kit .zip
NOV 2026 · 15 LANGKAH · ±20 MENIT BACA

Workflow Shorts faceless: dari ide sampai video terjadwal

Workflow yang sudah kami jalankan setiap hari, ditulis ulang supaya bisa dipakai untuk channel apa pun: akun baru, niche lain, bahasa lain. Agen AI mengerjakan riset, naskah, aset, build, dan penjadwalan, sementara kamu cukup memeriksa di titik-titik penting. Tiap langkah punya prompt siap salin untuk Google Antigravity.

Disusun dari produksi nyata · Nov 2026
Studi kasus: channel sejarah bendaCONTOH HASIL WORKFLOW INI
Contoh frame: kolase lidah api Monas Contoh frame: insinyur di meja gambar dengan label tahun Contoh frame: tangan memegang HP dengan ikon polos Contoh frame: HP di meja kayu dengan ikon telepon Contoh frame: jam saku masuk kantong kecil jeans Contoh frame: tiga lapis kaca jendela pesawat
1video tayang per hari
2video diproduksi per malam
20–60detik per video
3platform sekaligus

Semua contoh di halaman ini diambil dari channel itu. Ganti niche, gaya, dan suaranya dengan milikmu di langkah 0.

00 · Persiapan

Sebelum mulai

Workflow ini punya dua "tangan": agen di editor yang mengerjakan file dan terminal (naskah, gambar, build, render), dan browser agent yang mengendalikan Chrome (cari stok, generate gambar, TTS, jadwal posting). Kami menjalankannya dengan Claude Code + Claude in Chrome. Di halaman ini semuanya ditulis untuk Google Antigravity, yang punya dua tangan yang sama.

Semua prompt memakai dua file sebagai sumber kebenaran: channel.md (siapa channel-mu) dan GEMINI.md (aturan produksi). Isi keduanya sekali di langkah 0, lalu setiap prompt otomatis mengikuti channel-mu.

Yang dibutuhkan

KebutuhanYang kami pakaiAlternatif lebih murah / mudahBiaya
Agen AIClaude Code + Claude in ChromeGoogle Antigravity (agen editor + browser agent)Antigravity gratis dengan batas pemakaian
Voice overElevenLabs, voice clone sendiriGemini TTS di Google AI Studio · Edge TTS · rekam sendiri + Adobe Podcast EnhanceElevenLabs berbayar; alternatif gratis
Foto & video stokPexelsPixabay, Unsplashgratis
Gambar AIGoogle Flow, model Nano BananaGemini app (Nano Banana), Whiskgratis dengan kuota akun
Cutoutrembg (lokal)remove.bg, Photoroom, CapCutrembg gratis
Edit / buildHyperFrames (HTML → video) + ffmpegCapCut Desktop (edit manual pakai storyboard yang sama)gratis
Subtitlefaster-whisper → words.jsonAuto caption CapCutgratis
Musik & SFXlibrary sendiriYouTube Audio Library, Pixabay Music & SFXgratis
PenjadwalanRepliz (banyak akun sekaligus)YouTube Studio, TikTok Studio, Meta Business Suite (jadwal bawaan)Repliz berbayar; bawaan gratis
Otomasi hariancron job → agen jalan di backgroundJalankan /produksi-harian tiap malam di Antigravitygratis

Harga dan kuota bisa berubah. Cek di situs masing-masing sebelum langganan.

Pasang di laptop

  • Google Antigravity, plus ekstensi browser-nya di Chrome supaya agen bisa klik & ketik di web.
  • Node.js 20+ (untuk HyperFrames), Python 3.11+, ffmpeg, Google Chrome.
  • Akun channel-mu di tiap platform, akun Google (Flow, AI Studio), dan tool jadwal pilihanmu.
ZIP shorts-playbook-starter-kit.zipGEMINI.md + channel.md (template), 17 workflow Antigravity, template storyboard, skrip build/finalize, watermark & tekstur kertas template. Unduh
Di Antigravity
  1. Buat folder proyek baru (satu folder per channel), buka sebagai workspace.
  2. Ekstrak starter kit ke folder itu. GEMINI.md dibaca agen setiap sesi. File di .agent/workflows/ muncul sebagai perintah /00-identitas, /01-ide, dst.
  3. Agen meminta izin sebelum menjalankan perintah terminal atau membuka situs. Izinkan yang rutin (python, ffmpeg, npx), tolak yang menghapus file di luar folder proyek.

Nama menu bisa sedikit beda tergantung versi Antigravity. Kalau workflow tidak muncul, salin isi prompt-nya langsung ke chat agen.

Struktur folder

channel-kamu/ GEMINI.md aturan produksi (dibaca agen tiap sesi) channel.md identitas channel: niche, pilar, gaya, suara .agent/workflows/ prompt tiap langkah (/00-identitas … /14-evaluasi) kalender.md 30 ide + tanggal tayang scripts/ prep_house.py, build_house.py, finalize_house.py, … _brand/ watermark.svg, textures/, fonts/ _library/sfx · _library/musik konten/HXX-slug/ 00-naskah/ naskah.md, storyboard.md 01-gambar/ stok/ (+ SOURCES.txt), ai/ 02-layer/ cutout PNG 03-audio/vo/ vo_final.mp3, words.json 04-hyperframes/ proyek build 05-render/ HXX_final.mp4 ← satu-satunya yang diunggah 06-qc/ contact sheet, cek cutout 07-skrip/ storyboard.py (SPEC build) meta.json judul, caption, tag, jadwal
Setup proyek→ /00-setup
Kamu asisten produksi untuk channel Shorts faceless yang dijelaskan di channel.md.
Workspace ini folder produksinya. Siapkan proyek:

1. Cek dan laporkan versi: node (≥ 20), python (≥ 3.11), ffmpeg, Google Chrome.
   Kalau ada yang belum terpasang, tulis perintah instal untuk sistem operasiku, tapi JANGAN jalankan tanpa izinku.
2. Buat folder yang belum ada: konten/_template/, _library/sfx/, _library/musik/, _brand/fonts/, _brand/textures/, scripts/.
3. Pasang paket Python: pip install "rembg[cpu]" faster-whisper pillow numpy opencv-python edge-tts
4. Kalau channel.md masih berisi [placeholder], ingatkan aku untuk menjalankan /00-identitas dulu.
Jangan menghapus file apa pun.
0

Identitas channel

Sebelum membuat video pertama, kunci dulu siapa channel-mu: niche, siapa penontonnya, 4–5 pilar topik, panjang video, gaya visual, dan suara. Agen mewawancaraimu, lalu menulis channel.md dan menyesuaikan GEMINI.md. Setelah itu semua langkah lain otomatis memakai identitas ini.

NicheContoh pilarFormatGaya visual
contohSejarah benda (studi kasus)desain benda, brand lokal, tokoh & penemuan, kota, UIKilat 20–30 dtk + Cerita 50–60 dtkfoto realis hangat, kertas grain, highlight kuning
Sains sehari-haridapur, tubuh, cuaca, teknologi rumahKilat 25 dtkrender 3D bersih, latar putih, aksen biru
Kuliner & asal-usul makananjajanan, bumbu, restoran legendaris, daerahCerita 45–60 dtkfoto makanan close-up, latar kayu, aksen oranye
Keuangan pribadikebiasaan, mitos, sejarah uang, brandKilat 30 dtkkartu angka besar, grafik sederhana, aksen hijau
Wawancara identitas channel→ /00-identitas
Bantu aku menentukan identitas channel Shorts faceless baru. Wawancarai aku SATU pertanyaan per giliran (maksimal 10 pertanyaan), beri 2–3 opsi contoh di tiap pertanyaan:
1. Niche dan janji channel dalam satu kalimat ("Tiap hari, satu ... yang ...").
2. Penonton: usia, negara, bahasa, kenapa mereka menonton.
3. 4–5 pilar topik.
4. Format: durasi pendek & panjang (detik) dan perbandingannya per minggu.
5. Nada bicara VO (misal: teman yang penasaran, narator dokumenter, guru santai) dan pilihan suara (rekam sendiri / TTS).
6. Gaya visual: foto realis, render 3D, ilustrasi, atau campuran; latar terang/gelap; satu warna aksen.
7. Tipografi: font judul, font kalimat/subtitle, font label (sarankan dari Google Fonts, hindari script/italic yang sulit dibaca di HP).
8. Hal yang DILARANG di channel ini (efek, kata, topik sensitif).
9. Nama channel, handle, hashtag utama, jam tayang.
10. Platform tujuan dan akun-akunnya.

Setelah semua terjawab:
- Isi channel.md (ganti semua [placeholder]).
- Sesuaikan GEMINI.md: bagian Format dan Visual mengikuti jawabanku; bagian lain (fakta, audio, output, keamanan) biarkan.
- Tunjukkan ringkasan perubahan dan tunggu "oke" dariku sebelum menyimpan.
Template identitas channel→ channel.md
## Channel
- Nama: [NAMA CHANNEL] · handle: [@handle] · hashtag utama: [#hashtag]
- Janji channel: [Tiap hari, satu ... yang ...]
- Bahasa: [bahasa] · penonton: [usia, negara, kenapa mereka menonton]
- Platform & akun: [YouTube Shorts @..., TikTok @..., Instagram @...]
- Jam tayang: [19.00] [zona waktu], [1] video per hari

## Pilar topik
1. [pilar 1] — contoh: [...]
2. [pilar 2] — contoh: [...]
3. [pilar 3] — contoh: [...]
4. [pilar 4] — contoh: [...]

## Format
- Pendek ("Kilat"): [20–30] dtk, VO [55–60] kata
- Panjang ("Cerita"): [50–60] dtk, VO [105–115] kata · maksimal [2] per minggu
- Kecepatan baca suara: [2,1] kata/detik (ukur dari VO pertama)

## Suara
- Nada: [teman yang penasaran / narator dokumenter / ...]
- Sumber suara: [rekam sendiri / ElevenLabs voice ... / Gemini TTS suara ... / Edge TTS id-ID-...]
- CTA khas: [contoh: "Komen satu kata"]

## Gaya visual
- Gambar: [foto realis hangat / render 3D bersih / ilustrasi ...]
- Latar terang: [kertas putih grain / putih polos / ...] · latar gelap: [...]
- Font judul/kata kunci: [...] · font kalimat & subtitle: [...] · font label: [...]
- Warna aksen (highlight): [#HEX] · warna teks: [#HEX]
- Elemen tetap: [watermark kiri atas, sonic logo, label tahun/tempat, end card dengan pilihan jawaban]

## Dilarang
- [efek, font, kata, atau topik yang tidak boleh muncul]
Aturan produksi→ GEMINI.md
# Aturan produksi (selalu berlaku)

Identitas channel (niche, pilar, gaya, suara, akun) ada di channel.md. Baca channel.md di awal setiap tugas.
Bahasa naskah, caption, dan laporan: sesuai channel.md.

## Format
- Durasi & jumlah kata: sesuai channel.md (default: pendek 20–30 dtk / 55–60 kata, panjang 50–60 dtk / 105–115 kata).
- Kanvas 1080×1920, 30 fps. Area aman teks: x 60–960, y 300–1500. Subtitle VO di bawah, y 1380–1560.
- Struktur naskah: hook (0–2 dtk) → konteks → ketegangan → twist → payoff yang nyambung ke penonton → CTA satu interaksi gampang.
- Fakta: tiap klaim punya sumber (link). Klaim satu sumber / legenda diberi hedge ("konon", "disebut-sebut"). Jangan mengarang angka.

## Visual
- Tiga peran font saja: judul/kata kunci, kalimat/subtitle, label kecil (lihat channel.md). Hindari font script/italic yang sulit dibaca di HP.
- Penekanan = satu cara yang konsisten (default: blok highlight warna aksen di belakang teks), maksimal 1 per frame.
- Teks layar hanya kalau perlu (±30–40 % scene). Subtitle VO penuh di bawah.
- Gambar: stok dulu (Pexels, portrait). Generate hanya yang tidak ada. Footage video maks 1–2 shot (≤ 15 % durasi). Tanpa video AI kecuali diminta.
- Gerak tangan/orang/benda = stop-motion 3–6 PNG pose, bukan video AI. Cutout harus rapi (cek di latar magenta dan hitam).
- Tidak ada logo/merek asli atau tulisan palsu di gambar AI. Adegan sejarah/peristiwa buatan AI diberi label kecil "ILUSTRASI".

## Audio
- VO jelas di atas musik. Tanpa bed kresek/hiss sepanjang video; cukup musik + SFX aksen.
- Master: −14 LUFS, true peak ≤ −1.5 dBTP.

## Output & kebersihan
- File akhir: H.264 High, 1080×1920, 30 fps, ≤ 10 Mbps, AAC 192k 48 kHz, faststart → konten/HXX-slug/05-render/HXX_final.mp4.
- Setelah final jadi, hapus cache build (node_modules, .hyperframes, raw render, snapshots).
- Render satu video dalam satu waktu.

## Keamanan
- Jangan posting/menjadwalkan, membeli, login, mengisi password, atau menghapus apa pun di luar folder proyek tanpa izin.
Tahap 1 · Ide & naskah

Mulai dari pertanyaan, bukan dari gambar

Video yang paling jalan dimulai dari pertanyaan yang pernah terlintas di kepala penonton. Gambar baru dicari setelah naskah dan fakta beres.

01

Ide & kalender 30 hari

Agen menyusun 30 ide dari pilar di channel.md, lengkap dengan hook, format, dan sumber yang bisa dicek. Pilar diseimbangkan tiap minggu supaya feed tidak monoton.

contohDi studi kasus, ide terbaik berbentuk "kenapa X begini?": kenapa huruf F dan J ada tonjolannya, kenapa ikon telepon masih berbentuk gagang, kenapa semua air mineral disebut Aqua.

Buat kalender konten→ /01-ide
Baca channel.md, lalu susun kalender konten 30 hari untuk channel ini.

Untuk setiap ide beri:
- ID (H01…H30) dan tanggal tayang (mulai [TANGGAL], jumlah per hari dan jam sesuai channel.md)
- pilar (dari channel.md) dan format (pendek/panjang)
- judul ≤ 60 karakter, hook 0–2 dtk (kalimat pertama VO), dan kalimat CTA
- 2–3 sumber kredibel yang bisa dicek (link), plus risiko fakta: rendah / sedang / tinggi

Aturan:
- Seimbangkan pilar tiap minggu; batas format panjang per minggu sesuai channel.md.
- Topik harus terasa dekat dengan penonton di channel.md.
- Tandai ide yang faktanya cuma legenda atau satu sumber.
- Jangan ulang topik yang sudah ada di folder konten/.
Simpan sebagai kalender.md (tabel) di root workspace.
02

Naskah + tabel fakta

Batas kata itu kunci. Ukur dulu kecepatan bicara suaramu (kata per detik), lalu kunci jumlah kata per format. Setiap klaim masuk tabel fakta dengan link. Klaim yang cuma punya satu sumber boleh dipakai, asal diberi hedge.

1. HP-mu tidak punya gagang. Tapi ikon teleponnya masih begini. 2. Ini gagang telepon rumah zaman dulu. 3. Satu sisi buat telinga, satu sisi buat mulut. 4. Sekarang, cuma sekitar satu persen rumah tangga yang masih punya. 5. Ikonnya tetap, seperti ikon Save yang masih berbentuk disket. 6. Kita juga masih bilang angkat telepon. 7. Padahal tidak ada yang diangkat. 8. Kamu masih punya telepon rumah? Komen. → 59 kata ≈ 28 dtk

contohNaskah format pendek dari studi kasus. Hook di baris 1, twist di baris 7, CTA satu kata.

Tulis naskah + cek fakta→ /02-naskah
Tulis naskah VO untuk [HXX – judul] dari kalender.md. Ikuti channel.md (bahasa, nada, format, CTA khas).
Format: [pendek / panjang] — jumlah kata sesuai channel.md. Hitung kata dan perkiraan durasinya (pakai kecepatan baca di channel.md).

Struktur: hook (≤ 2 dtk, bikin penasaran) → konteks → ketegangan/kegagalan → twist → payoff yang nyambung ke hidup penonton → CTA satu interaksi.
Gaya: kalimat pendek, bahasa lisan, satu kalimat per baris.

Lalu buat tabel "Fakta yang harus dicek": klaim | status (terverifikasi / satu sumber / opini) | link sumber.
- Klaim satu sumber → beri hedge di naskah.
- Jangan mengarang angka; kalau ragu, bulatkan dan beri hedge.
Tambahkan "Catatan baca" untuk kata yang perlu ejaan fonetik (singkatan, nama asing, angka).
Simpan ke konten/[HXX-slug]/00-naskah/naskah.md.
Jangan dilewati

Baca tabel fakta sendiri sebelum lanjut. Agen bisa salah kutip angka atau tahun. Di studi kasus, satu hook diganti dari "hampir 100 tahun" ke "lebih dari seratus tahun" setelah tahunnya dihitung ulang.

03

Storyboard scene-by-scene

Storyboard adalah kontrak antara naskah dan build. Setiap 1,2–3 detik ada cut, dan tiap scene sudah jelas visualnya, gerak kameranya, teks layarnya, dan SFX-nya. Di sini juga ditulis kata kunci stok dan prompt cadangan untuk gambar AI.

#WaktuVOVisualTeks layar
S010,0–1,9"HP-mu tidak punya gagang."Kertas grain, kalimat diketik, kursor berlabelHP-mu tanpa…
S021,9–4,3"Tapi ikon teleponnya masih begini."HP di meja kayu, ikon hijau muncul di "begini"—
S034,3–5,7"Ini gagang telepon"Ikon membesar, label U+1F4DEgagang telepon

contohTiga baris pertama dari 13 scene, plus kolom kamera dan SFX di storyboard aslinya.

Buat storyboard→ /03-storyboard
Dari konten/[HXX-slug]/00-naskah/naskah.md, buat storyboard scene-by-scene di 00-naskah/storyboard.md.
Ikuti gaya visual di channel.md. Kalau channel punya lebih dari satu gaya, pilih satu dan jelaskan alasannya.

Tabel per scene: # | waktu (cut tiap 1,2–3 dtk) | potongan VO | visual | kamera/gerak | teks layar (kata kunci tebal = penekanan) | SFX/musik.
Setelah tabel:
- "Prompt gambar": per shot tulis dulu kata kunci stok (Pexels, portrait), lalu prompt cadangan bahasa Inggris untuk generator gambar
  (sesuai gaya di channel.md, selalu diakhiri "vertical 9:16, no text, no logos").
- Tandai shot stop-motion (3–6 pose) dan shot cutout.
- "Suara": cue musik (masuk/turun/berhenti) dan SFX per scene.
- "Meta posting": judul ≤ 60 karakter, caption 2–3 kalimat + pertanyaan, 6–7 hashtag (hashtag utama dari channel.md pertama).
Patuhi GEMINI.md: teks hanya di scene yang perlu, maks 1 penekanan per frame, semua teks di area aman.
Tahap 2 · Suara

Suara dulu, gambar ikut suara

Semua waktu di video dikunci ke VO. Jadi VO dibuat sebelum build, lalu tiap kata diberi timestamp. Timestamp ini yang menggerakkan cut, penekanan, dan subtitle.

04

Voice over

Pilih satu sumber suara dan pakai terus, karena suara yang konsisten jadi ciri channel. Mesin TTS sering salah baca singkatan dan angka, jadi teksnya disiapkan dulu dengan ejaan fonetik.

ElevenLabs Gemini TTS (AI Studio) gratisEdge TTS gratisRekam sendiri gratis
Ditulis di naskahDitulis di teks TTS
KRL · HP · ATMka-er-el · ha-pe · a-te-em
1925seribu sembilan ratus dua puluh lima
nama asing yang sering salahtulis seperti dibaca
Siapkan teks TTS→ /04-vo
Siapkan teks TTS untuk VO konten/[HXX-slug]. Sumber suara: lihat channel.md.
1. Ambil naskah VO dari 00-naskah/naskah.md, satu kalimat per baris.
2. Buat versi baca-mesin di file terpisah 03-audio/vo/tts.txt (naskah asli JANGAN diubah):
   - angka & tahun ditulis kata
   - singkatan dieja seperti diucapkan ("KRL" → "ka-er-el")
   - nama asing ditulis seperti dibaca
3. Beri baris kosong di tempat yang butuh jeda.
4. Tulis daftar kata yang harus kudengar ulang setelah VO jadi.

Kalau channel.md memakai Edge TTS, jalankan (ganti suara sesuai channel.md):
edge-tts --voice [id-ID-ArdiNeural] --rate=+4% --file 03-audio/vo/tts.txt --write-media 03-audio/vo/vo_raw.mp3
Paling gampang

Gemini TTS di Google AI Studio: tempel teks, pilih suara, lalu tambah instruksi gaya sesuai nada di channel.md (misal "narator hangat, tempo agak cepat, jelas").

Paling murah

Rekam sendiri di HP, di ruangan tertutup, lalu bersihkan di Adobe Podcast Enhance. Suara asli juga paling dipercaya penonton.

Di Antigravity

Browser agent bisa menempel teks ke situs TTS dan menekan Generate. Tetap dengarkan sendiri sekali sebelum lanjut. Di studi kasus, angka romawi "IV" terbaca "empat" dan ada satu gumaman yang harus dipotong.

05

Rapikan & sinkron VO

Jeda panjang dipangkas, tempo dinaikkan sedikit (maks 1,06×), lalu faster-whisper membuat words.json: waktu mulai & selesai tiap kata. Ejaan tetap diambil dari naskah, jadi salah dengar Whisper tidak muncul di subtitle.

ffmpeg -i vo_raw.mp3 -af "silenceremove=start_periods=1:start_threshold=-45dB:stop_periods=-1:stop_duration=0.22:stop_threshold=-42dB:stop_silence=0.22,atempo=1.04" vo_final.mp3
Rapikan VO + words.json→ /05-sinkron
Rapikan VO di konten/[HXX-slug]/03-audio/vo/.
1. Jalankan:
   ffmpeg -i vo_raw.mp3 -af "silenceremove=start_periods=1:start_threshold=-45dB:stop_periods=-1:stop_duration=0.22:stop_threshold=-42dB:stop_silence=0.22,atempo=1.04" vo_final.mp3
2. Cek durasi terhadap batas di channel.md. Kalau lebih, JANGAN naikkan atempo di atas 1.06 — usulkan kata yang bisa dibuang.
3. Buat words.json (timestamp per kata) dengan faster-whisper: model "small", bahasa sesuai channel.md, word_timestamps=True.
   Format: [{"w": "kata", "s": 0.00, "e": 0.31}, ...]. Pakai ejaan dari naskah asli, bukan hasil dengar Whisper.
4. Laporkan durasi, jumlah kata, dan kata yang timestamp-nya meragukan.
Tahap 3 · Visual

Stok dulu, generate belakangan

Foto asli lebih dipercaya dan gratis. Gambar AI hanya dipakai untuk yang memang tidak ada di stok: adegan masa lalu, benda yang harus sama di beberapa shot, atau komposisi yang dibutuhkan cerita.

06

Stok dulu

Untuk tiap shot, agen mencari kata kunci dari storyboard dengan filter Portrait, mengunduh 1–2 kandidat, dan mencatat sumbernya. Video stok boleh, tapi maksimal 1–2 shot supaya gaya tetap konsisten.

Lembar kandidat stok: 12 foto Monas dari berbagai sudut
contoh12 kandidat stok untuk satu shot. Agen mengumpulkan dan memberi nomor, lalu kamu memilih satu yang langit dan arahnya cocok.
Cari & unduh stok→ /06-stok
Cari stok gambar untuk konten/[HXX-slug] berdasarkan storyboard.md (bagian "Prompt gambar").
Untuk setiap shot yang punya kata kunci stok:
1. Buka pexels.com di browser, cari kata kuncinya dengan filter Orientation: Portrait (foto; atau video kalau shot-nya video).
2. Pilih 1–2 kandidat yang cocok isi & eranya, tanpa logo/merek terbaca, tanpa wajah yang menyesatkan.
3. Unduh ukuran besar (≥ 1800 px) ke 01-gambar/stok/ dengan nama [SHOT]_a.jpg / _b.jpg (video: .mp4, maks 1–2 shot).
4. Catat di 01-gambar/stok/SOURCES.txt: nama file | URL halaman | nama fotografer.
5. Buat contact sheet kandidat per shot di 06-qc/stok_sheets/ supaya aku bisa memilih.
Shot yang tidak ketemu → tulis daftar "perlu generate" untuk langkah berikutnya. Hanya unduh dari situs stok berlisensi bebas.
07

Generate yang kurang

Kami pakai Google Flow dengan model Nano Banana, rasio 9:16, dua hasil per prompt. Prompt-nya dalam bahasa Inggris, gayanya mengikuti channel, dan selalu diakhiri no text, no logos. Kalau satu benda atau tokoh muncul di beberapa shot, hasil pertama dipakai sebagai referensi supaya bentuknya konsisten.

Google Flow · Nano Banana kuotaGemini app kuota
Contact sheet gambar AI: pekerja, emas, tangan dengan kuas, dokumen
contohSemua gambar AI untuk satu video. Pose tangan dibuat berurutan (pose 1, 2, 3) dari referensi yang sama untuk stop-motion. Hasil _a dan _b dibandingkan, lalu dipilih satu.
Pola prompt gambarisi [..] sesuai gaya channel
[Photorealistic 3D render / Documentary photo / Flat illustration] of [subjek + detail penting], [tempat & era], [arah cahaya + suasana], [jarak kamera: close-up / medium / wide], shallow depth of field, [kata kunci gaya dari channel.md], vertical 9:16, no text, no numbers, no letters, no logos

Contoh (studi kasus): Photorealistic 3D render of a classic black glossy desk telephone from the mid twentieth century resting on a white lace doily on a wooden side table, the curved handset sitting in its cradle, coiled cord, warm late afternoon window light from the left, cosy home interior softly out of focus, shallow depth of field, cinematic, vertical 9:16, no text, no numbers, no letters, no logos
Generate gambar→ /07-generate
Generate gambar yang belum ada untuk konten/[HXX-slug] di Google Flow (labs.google/flow) atau generator di channel.md.
Daftar shot: "perlu generate" dari langkah stok; prompt-nya ada di storyboard.md.
Pengaturan: rasio 9:16, 2 hasil per prompt.
Aturan:
- Maksimal 3 prompt per putaran. Tunggu selesai baru lanjut. Kalau muncul pesan "terlalu banyak permintaan", tunggu 1–2 menit lalu ulangi.
- Benda/tokoh yang muncul di beberapa shot: tambahkan hasil pertama sebagai referensi supaya konsisten.
- Tolak hasil dengan tulisan palsu, logo, wajah aneh, tangan cacat, atau era yang salah — ulangi prompt-nya.
- Simpan ke 01-gambar/ai/[SHOT]_a.jpg dan _b.jpg; perbesar ke 1080×1920 (Lanczos) + grain tipis.
- Buat contact sheet 06-qc/ai_sheet.jpg.
Laporkan shot yang masih bermasalah.
Di Antigravity

Browser agent mengetik prompt, memilih rasio, dan menekan Generate. Kalau browser memblokir unduhan dari situs generator, minta agen berhenti setelah generate, lalu unduh sendiri dari hasilnya dan beri nama sesuai shot.

08

Cutout & stop-motion

Gerakan tangan, orang, atau benda tidak dibuat dengan video AI. Kami pakai 3–6 PNG pose yang diganti cepat (8–12 fps), seperti stop-motion. Hasilnya lebih rapi dan tidak "meleleh". Setiap cutout dicek di atas latar magenta dan hitam supaya tepi kasar atau lubang langsung kelihatan.

Lembar QC cutout: tangan dengan kunci pas, kuas, dokumen di latar magenta dan hitam
contohQC cutout. Tiap pose tampil di magenta (kiri) dan hitam (kanan). Kalau ada sisa latar di sela jari, cutout diulang.
Pola prompt pose stop-motionpakai pose 1 sebagai referensi
Same [hand / person / object], same clothes, same lighting, same framing as the reference image. Only one change: [gerakan kecil untuk pose ini]. [Gaya dari channel.md], plain light grey studio background, vertical 9:16, no text, no logos.
Cutout + cek stop-motion→ /08-cutout
Buat cutout dan siapkan stop-motion untuk konten/[HXX-slug].
1. Tiap gambar bertanda "cutout" di storyboard: hapus latar dengan rembg (model isnet-general-use), buang bercak kecil, isi lubang tertutup, kikis tepi 1 px, haluskan 1,2 px. Simpan PNG ke 02-layer/.
2. Buat 06-qc/cutout_qc.jpg: tiap cutout ditampilkan di atas latar magenta dan hitam, diberi label nama file.
3. Shot stop-motion: pastikan ada 3–6 pose dengan subjek, baju, cahaya, dan framing yang sama; hanya posisinya yang berubah. Kalau pose kurang, tulis prompt pose tambahan dengan pose 1 sebagai referensi.
4. Laporkan cutout yang tepinya kasar atau berlubang supaya aku cek manual.
Tahap 4 · Build & render

Satu gaya, dikunci di aturan

Supaya 30 video terasa satu channel, gaya visual ditulis sebagai aturan dan dicek tiap video. Build-nya pakai HyperFrames: video ditulis sebagai HTML lalu dirender jadi MP4. Agen bisa mengubah satu angka dan merender ulang tanpa membuka editor video.

09

Kunci gaya visual

Gaya yang kuat datang dari sedikit aturan yang konsisten, bukan dari banyak efek. Tentukan di channel.md:

  • Tiga peran font: judul/kata kunci, kalimat/subtitle, label kecil. Tidak lebih.
  • Satu cara penekanan (misal blok warna aksen di belakang teks), maksimal satu per frame.
  • Satu latar khas untuk kartu teks (tekstur kertas, warna polos, atau foto blur).
  • Elemen tetap: watermark, label tempat/tahun, end card dengan pilihan jawaban.
  • Daftar larangan yang ditulis eksplisit, supaya agen tidak "berkreasi" di luar gaya.
Lembar usulan pasangan font untuk channel
contohLembar font studi kasus: Newsreader untuk kata kunci, Inter untuk kalimat, IBM Plex Mono untuk label, highlight kuning #F7E733. Font italic dicoret karena sulit dibaca di HP.
Audit gaya sebelum render→ /09-cek-gaya
Periksa storyboard dan build konten/[HXX-slug] terhadap gaya visual di channel.md dan aturan di GEMINI.md.
Buat daftar pelanggaran per scene:
- font di luar tiga font channel, atau font yang dilarang
- lebih dari 1 penekanan dalam satu frame
- teks di luar area aman (x 60–960, y 300–1500) atau bertabrakan dengan subtitle (y 1380–1560)
- teks layar yang sebenarnya tidak perlu
- apa pun yang ada di daftar "Dilarang" di channel.md
- logo/merek asli atau tulisan palsu di gambar AI; adegan peristiwa buatan AI tanpa label "ILUSTRASI"
Untuk tiap pelanggaran usulkan perbaikan, lalu tunggu persetujuanku sebelum mengubah.
10

Build di HyperFrames

Storyboard diterjemahkan jadi 07-skrip/storyboard.py (SPEC: shot, gambar, caption, SFX, musik, subtitle). prep_house.py menyiapkan aset (grading, cutout, transisi, audio), lalu build_house.py menulis proyek HyperFrames. Sebelum render, ambil snapshot tiap scene dan lihat dulu.

python scripts/prep_house.py konten/H01-judul-video python scripts/build_house.py konten/H01-judul-video cd konten/H01-judul-video/04-hyperframes npx hyperframes check --json npx hyperframes render -q delivery -w 2 -o ../05-render/H01_raw.mp4
Sesuaikan dengan channel-mu

Skrip di starter kit sudah netral. Yang perlu kamu ganti hanya: warna di scripts/house_common.py (blok channel palette), _brand/watermark.svg, nama & handle di SPEC cta, dan sonic logo di _library/sfx/sonic_logo.wav (atau matikan dengan "sonic_logo": None).

Build video→ /10-build
Bangun video konten/[HXX-slug] dengan HyperFrames memakai skrip di scripts/.
1. Salin scripts/house_storyboard.example.py ke konten/[HXX-slug]/07-skrip/storyboard.py, lalu isi SPEC dari storyboard.md:
   gambar, shots (waktu dari 03-audio/vo/words.json), caption + penekanan, label, cta (mark/handle dari channel.md), sfx, musik,
   dan "subs": {"text": [kalimat-kalimat VO dari naskah]}.
   Kalau gaya di channel.md beda dengan contoh (font, warna), sesuaikan SPEC dan palet di scripts/house_common.py — tanyakan dulu sebelum mengubah skrip.
2. Jalankan:  python scripts/prep_house.py konten/[HXX-slug]   lalu   python scripts/build_house.py konten/[HXX-slug]
3. Lihat 06-qc/cutout_qc.jpg dulu. Di 04-hyperframes/: npx hyperframes check --json (perbaiki semua error),
   lalu snapshot satu frame per scene ke 06-qc/snaps/ dan tunjukkan padaku.
4. Render hanya setelah aku bilang OK:
   npx hyperframes render -q delivery -w 2 -o ../05-render/[HXX]_raw.mp4
Render satu video saja dalam satu waktu (boros RAM); tutup tab Chrome yang tidak dipakai saat render.
Tidak mau ngoding?

Pakai storyboard yang sama di CapCut Desktop: tarik VO ke timeline, potong gambar sesuai kolom waktu, tambah teks dengan font & warna channel, lalu nyalakan auto caption. Lebih lambat dan kurang presisi, tapi aturan gayanya tetap bisa diikuti.

Pelajaran

Render pernah dimatikan sistem karena RAM habis (Chrome + server preview lama). Render satu per satu. Kalau render mati, cek dulu apakah file raw-nya sebenarnya sudah utuh (jumlah frame = durasi × 30) sebelum mengulang dari awal.

11

QC & file final

Sebelum diunggah, setiap video lewat dua cek: visual lewat contact sheet 12 frame, dan audio lewat ukur loudness. Setelah itu baru di-encode ke spesifikasi Reels/Shorts/TikTok, dan semua cache build dihapus.

Contact sheet 12 frame dari satu video
contohContact sheet sebelum final. Semua scene ada, subtitle terbaca, end card punya pilihan jawaban. Cukup sekali lihat untuk menemukan frame hitam atau teks yang terpotong.
Spesifikasi finalNilai
VideoH.264 High L4.2 · 1080×1920 · 30 fps · CRF 18 · maks 10 Mbps · BT.709
AudioAAC 192 kbps · 48 kHz stereo · −14 LUFS · true peak ≤ −1.5 dBTP
File05-render/HXX_final.mp4 · faststart · durasi sesuai format di channel.md
QC + encode final→ /11-final
Finalkan konten/[HXX-slug]:
1. Buat contact sheet 12 frame dari 05-render/[HXX]_raw.mp4 → 06-qc/contact.jpg dan periksa:
   semua scene ada, subtitle terbaca, tidak ada frame hitam atau teks terpotong.
2. Ukur loudness (ffmpeg ebur128). Normalisasi dua tahap ke −14 LUFS (loudnorm linear), lalu limiter supaya true peak ≤ −1.5 dBTP.
3. Encode final: H.264 High L4.2, 1080×1920, 30 fps, CRF 18, -maxrate 10M -bufsize 20M, AAC 192k 48 kHz stereo,
   tag BT.709, -movflags +faststart → 05-render/[HXX]_final.mp4
   (atau jalankan: python scripts/finalize_house.py konten/[HXX-slug])
4. Verifikasi dengan ffprobe (resolusi, fps, durasi, true peak). Kalau lolos, hapus raw render, node_modules, .hyperframes, dan folder snapshot.
Laporkan loudness, true peak, durasi, dan ukuran file.
Tahap 5 · Tayang

Jadwalkan, lalu baca datanya

Produksi berjalan lebih cepat dari jadwal tayang. Di studi kasus, 2 video diproduksi tiap malam dan 1 tayang tiap hari, jadi stok selalu cukup untuk minimal seminggu ke depan.

12

Caption & meta.json

Semua data posting disimpan di meta.json, jadi penjadwalan tinggal membaca file tanpa mengetik ulang. Caption menjelaskan sedikit lebih banyak dari video, lalu ditutup pertanyaan yang sama dengan CTA.

{ "id": "H01", "title": "Judul ≤ 60 karakter", "caption": "2–3 kalimat yang menambah konteks … Pertanyaan yang sama dengan CTA?", "tags": ["#hashtagchannel", "#topik", "#pilar", "#faktaunik", "#shorts"], "publish_at": "2026-12-01T19:00:00+07:00", "platforms": ["youtube_shorts", "tiktok", "instagram"], "file": "05-render/H01_final.mp4" }
Tulis meta.json→ /12-meta
Tulis konten/[HXX-slug]/meta.json dari storyboard.md (bagian "Meta posting") dan channel.md:
- id, title (≤ 60 karakter, tanpa clickbait yang tidak dibuktikan video)
- caption (2–3 kalimat + 1 pertanyaan yang sama dengan CTA video), dalam bahasa channel
- tags (6–7; hashtag utama channel pertama, #shorts terakhir)
- publish_at: hari setelah publish_at terakhir di meta.json lain yang sudah terjadwal, jam tayang dari channel.md (dengan zona waktu)
- platforms: dari channel.md
- isAiGenerated: [true/false sesuai aturan label AI tim]
- sources: link dari tabel fakta
- file: "05-render/[HXX]_final.mp4"
Cek: caption tidak boleh mengklaim hal yang tidak ada di tabel fakta.
13

Jadwalkan posting

Di setup kami, agen browser mengisi form Repliz: unggah video, tempel caption, pilih akun channel, set jam tayang, lalu Save. Satu form untuk tiga platform. Di Antigravity alurnya sama. Bedanya, unggah file paling aman dilakukan manusia (drag file ke kotak upload) dan klik Save menunggu "oke" darimu.

Form jadwal di Repliz berisi judul, caption, dan panel Set all times
contohForm jadwal di Repliz. Judul YouTube = judul + "#shorts", caption + hashtag di deskripsi, lalu Set all times mengisi jam yang sama untuk semua akun.
Jadwalkan di Repliz→ /13-jadwal
Jadwalkan konten/[HXX-slug] di Repliz (repliz.com/user/schedule) memakai browser. Semua data dari meta.json; akun dari channel.md.
1. Pastikan sudah login. Kalau yang muncul halaman login: BERHENTI dan minta aku login — jangan pernah mengisi password.
2. New schedule → Create Schedule → tab Video.
3. Video: minta aku men-drag 05-render/[HXX]_final.mp4 ke kotak upload, lalu tunggu thumbnail muncul.
4. Deskripsi: caption + baris kosong + hashtag. Akun: HANYA akun yang tercantum di channel.md — jangan pilih akun lain.
   Title (khusus YouTube): title + " #shorts".
5. Set all times → Date & time = publish_at → Apply to all.
6. Cek sebelum Save: YouTube Public, Automation OFF, Post as Draft OFF, label AI sesuai isAiGenerated.
7. Tunjukkan ringkasan form padaku dan tunggu "oke" sebelum klik Save.
8. Setelah tersimpan, cek kalender: jumlah post di tanggal itu = jumlah akun. Lalu tulis "scheduled": true ke meta.json.
Kalau aku tidak pakai Repliz, lakukan hal yang sama di YouTube Studio, TikTok Studio, dan Meta Business Suite satu per satu.
Tanpa tool berbayar

Semua platform punya jadwal bawaan gratis: YouTube Studio (Upload → Visibility → Schedule), TikTok Studio di web, dan Meta Business Suite untuk Instagram & Facebook. Lebih banyak klik, tapi tanpa langganan.

Label AI

YouTube dan TikTok meminta penanda untuk konten realistis buatan AI. Tentukan aturan tim (simpan di isAiGenerated) dan baca kebijakan terbaru tiap platform.

Yang pernah bikin macet
  • Sesi tool penjadwal kedaluwarsa (logout sendiri). Agen tidak boleh login, jadi jadwal tertunda sampai ada orang yang login.
  • Tool upload agen biasanya dibatasi sekitar 10 MB per file, padahal video final 30–65 MB. Karena itu file diunggah manusia.
14

Ritme harian & evaluasi

Kami menjalankan produksi otomatis tiap malam: dua konten berikutnya dikerjakan dari langkah 06 sampai 12, lalu laporannya dikirim. Di Antigravity, cukup jalankan /produksi-harian tiap malam. Kalau mau benar-benar otomatis, pakai penjadwal sistem operasi (Task Scheduler / cron) untuk menjalankan agen versi CLI.

Aturan ritmeKenapa
Produksi lebih cepat dari tayang (misal 2/malam vs 1/hari)Stok bertambah, jadi satu malam gagal tidak bikin hari kosong.
Stok minimal 7 hariAda waktu memperbaiki video yang lolos QC tapi terasa kurang.
Baca laporan tiap pagiDi studi kasus, satu sesi agen menunggu jawaban selama 8 hari dan produksi berhenti diam-diam.
Evaluasi tiap ±2 mingguSetelah ±14 video, data cukup untuk memilih topik & hook berikutnya.
Produksi harian→ /produksi-harian
Produksi harian channel di channel.md.
Kerjakan 2 konten berikutnya yang sudah punya 03-audio/vo/vo_final.mp3 tapi belum punya 05-render/*_final.mp4 (urut ID).
Untuk tiap konten, jalankan berurutan: /06-stok → /07-generate → /08-cutout → /10-build → /09-cek-gaya → render → /11-final → /12-meta.
Aturan:
- Cek dulu apa yang sudah ada; kerjakan hanya langkah yang belum (run sebelumnya mungkin berhenti di tengah).
- Render satu per satu. Kalau satu langkah gagal, catat lalu lanjut ke konten berikutnya.
- Tanpa generator berbayar, tanpa VO baru, tanpa login ke situs mana pun.
Di akhir tulis laporan singkat: per konten final ok/gagal, durasi, loudness, hal yang perlu kucek, dan slot tayang berikutnya.
Penjadwalan pakai /13-jadwal setelah aku cek hasilnya.
Evaluasi data→ /14-evaluasi
Ini data performa [periode] dari YouTube Studio, TikTok Studio, dan Instagram Insights (CSV/screenshot terlampir).
1. Gabungkan per video (ID HXX dari judul): views, rata-rata durasi tonton / % ditonton, like, komentar, share, save, follower baru.
2. Hitung retensi 3 detik pertama (kalau tersedia), komentar per 1.000 views, dan peringkat per pilar & format (pendek vs panjang).
3. Cari pola: hook seperti apa yang menahan penonton, topik mana yang memancing komentar, gaya mana yang lebih kuat.
4. Rekomendasikan 10 ide berikutnya (format sama dengan kalender.md) + 3 hal yang perlu diubah di channel.md (naskah, gaya, atau jam tayang).
Tandai kesimpulan yang datanya masih tipis (video < 1.000 views).

Shorts Playbook · disusun dari produksi nyata sebuah channel Shorts faceless (Nov 2026). Ganti semua [placeholder] lewat langkah 0, dan sisanya mengikuti channel-mu.