Pendahuluan
Membuat video dari foto seringkali memerlukan proses editing manual yang memakan waktu. Dengan bantuan AI, kita dapat otomatisasi storyboard, transisi, dan bahkan musik latar. Tutorial ini menggabungkan Midjourney untuk pembuatan gambar tambahan, Canva Pro dan Adobe Firefly untuk desain, serta ChatGPT Plus untuk menulis narasi. Hasil akhir adalah video 30‑60 detik yang siap dipublikasikan.
Prasyarat & Persiapan
| Item | Keterangan | Link |
|---|---|---|
| Akun Midjourney | Untuk menghasilkan gambar tambahan | https://tools.jartekindo.com/tool/midjourney/ |
| Akun Canva Pro | Untuk membuat slide dan transisi | https://tools.jartekindo.com/tool/canva-pro/ |
| Akun Adobe Firefly | Untuk mengedit foto dan menambahkan efek | https://tools.jartekindo.com/tool/adobe-firefly/ |
| Akun ChatGPT Plus | Untuk menulis narasi dan storyboard | https://tools.jartekindo.com/tool/chatgpt-plus/ |
| Python 3.10+ | Untuk skrip otomatisasi | https://www.python.org/downloads/ |
| FFmpeg | Untuk menggabungkan frame menjadi video | https://ffmpeg.org/download.html |
| Git | Untuk mengelola repositori | https://git-scm.com/downloads |
Catatan: Pastikan semua akun memiliki akses API jika tersedia, agar proses otomatisasi berjalan lancar.
Langkah‑Demi‑Langkah
1. Siapkan Folder Proyek
mkdir video-from-photos
cd video-from-photos
git init
2. Instal Dependensi Python
python -m venv venv
source venv/bin/activate
pip install openai pillow moviepy tqdm
3. Konfigurasi API Key
Buat file .env:
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxx
MIDJOURNEY_TOKEN=your_midjourney_token
CANVA_API_KEY=your_canva_api_key
ADOBE_FIRELY_API_KEY=your_firefly_api_key
Tip: Simpan file
.envdi.gitignore.
4. Generate Storyboard dengan ChatGPT Plus
# storyboard.py
import os
import openai
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
prompt = """
Buat storyboard 10 slide untuk video 30 detik tentang perjalanan ke pantai. Sertakan deskripsi gambar, transisi, dan narasi singkat.
"""
response = openai.ChatCompletion.create(
model="gpt-4o-mini",
messages=[{"role":"user","content":prompt}]
)
storyboard = response.choices[0].message.content
print(storyboard)
Jalankan:
python storyboard.py > storyboard.txt
5. Generate Gambar Tambahan dengan Midjourney
Buat file midjourney.sh:
#!/usr/bin/env bash
# Mengirim prompt ke Midjourney API (contoh fiktif)
PROMPT="A serene beach sunrise, cinematic lighting, hyper-realistic"
TOKEN=${MIDJOURNEY_TOKEN}
curl -H "Authorization: Bearer $TOKEN" \
-d "{\"prompt\":\"$PROMPT\"}" \
https://api.midjourney.com/v1/generate \
-o beach_sunrise.png
chmod +x midjourney.sh
./midjourney.sh
6. Edit Foto dengan Adobe Firefly
Gunakan API Firefly untuk menambahkan filter:
curl -H "Authorization: Bearer $ADOBE_FIRELY_API_KEY" \
-F "image=@beach_sunrise.png" \
-F "filter=warm" \
https://api.adobe.com/firefly/v1/filters \
-o beach_sunrise_filtered.png
7. Buat Slide di Canva Pro
Gunakan Canva API (contoh fiktif) untuk membuat slide:
curl -H "Authorization: Bearer $CANVA_API_KEY" \
-F "title=Slide 1" \
-F "image=@beach_sunrise_filtered.png" \
https://api.canva.com/v1/designs \
-o slide1.json
Ulangi untuk setiap slide sesuai storyboard.
8. Gabungkan Slide Menjadi Video
# compile_video.py
from moviepy.editor import ImageClip, concatenate_videoclips, AudioFileClip
import glob, os
# Load slide images
slides = sorted(glob.glob("slides/*.png"))
clips = [ImageClip(m).set_duration(3) for m in slides]
video = concatenate_videoclips(clips, method="compose")
video.write_videofile("output.mp4", fps=24)
python compile_video.py
9. Tambahkan Narasi
# Convert storyboard.txt ke audio menggunakan TTS (contoh fiktif)
tts-cli --text "$(cat storyboard.txt)" --output narration.mp3
# Merge audio
from moviepy.editor import VideoFileClip, AudioFileClip
video = VideoFileClip("output.mp4")
audio = AudioFileClip("narration.mp3")
final = video.set_audio(audio)
final.write_videofile("final_video.mp4", codec="libx264")
Tips Optimasi & Keamanan
- Batch API Calls: Gunakan batch request untuk Midjourney dan Firefly agar lebih hemat bandwidth.
- Cache Hasil: Simpan gambar hasil Midjourney di folder
cache/untuk menghindari regenerasi. - Rate Limiting: Tambahkan back‑off exponential pada skrip Python ketika mencapai limit API.
- Enkripsi API Key: Simpan key di vault (HashiCorp Vault, AWS Secrets Manager) bila di produksi.
- Gunakan FFmpeg: Untuk encoding video, gunakan
-crf 18untuk kualitas tinggi dengan ukuran file moderat.
Troubleshooting Error Umum
| Error | Penyebab | Solusi |
|---|---|---|
openai.error.RateLimitError |
Terlalu banyak request dalam waktu singkat | Tunggu 30 detik, gunakan back‑off |
curl: (7) Failed to connect to api.midjourney.com port 443 |
Koneksi internet terblokir | Periksa proxy, VPN |
moviepy.error.VideoFileClipError: Cannot read file |
Path tidak ditemukan | Pastikan folder slides/ berisi file PNG |
ffmpeg: command not found |
FFmpeg belum terinstall | Install via apt install ffmpeg atau brew |
Permission denied |
File tidak executable | chmod +x midjourney.sh |
Kesimpulan
Dengan menggabungkan kemampuan AI dari Midjourney, Adobe Firefly, Canva Pro, dan ChatGPT Plus, proses pembuatan video dari foto dapat dipercepat hingga 80%. Langkah-langkah di atas menyediakan kerangka kerja yang dapat disesuaikan untuk berbagai jenis konten. Selamat mencoba dan eksplorasi lebih lanjut!