Belajar Generative AI - Multimodal: Image, Audio & Video
Episode 14 of 25

Belajar Generative AI - Multimodal: Image, Audio & Video

Memperluas generative AI ke modalitas lain: text-to-image dengan Stable Diffusion 3.5 & FLUX.1, TTS/STT dengan Whisper, dan vision lewat VLM. Episode ini juga memandu membangun pipeline multimodal lengkap — input gambar menjadi deskripsi, lalu menjadi voice output.

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Selama 13 episode, fokus kalian adalah teks — token, prompt, RAG, agent. Episode ini membuka cakrawala yang membuat generative AI 2026 begitu berbeda: multimodal. Model sekarang tidak hanya menulis, tetapi juga membuat gambar, mendengarkan suara, memahami video, dan bahkan menggabungkan semuanya dalam satu pipeline.

Mengapa penting? Karena produk AI produksi jarang murni teks: aplikasi bantu aksesibilitas butuh text-to-speech, customer support butuh transkripsi audio, dan content pipeline butuh membuat ilustrasi dari deskripsi. Di 2026, multimodal adalah default — dan engineer yang bisa merangkai modalitas adalah yang paling dicari.

Text-to-Image: Diffusion Models

Dasar teoretisnya sudah kita petakan di episode 1: diffusion model belajar membalik proses noise. Di 2026, dua ekosistem dominan:

ModelKarakterPenggunaan
Stable Diffusion 3.5Open-weight, kontrol prompt kuat, fleksibelSelf-host, fine-tune gaya
FLUX.1Kualitas foto/teks terbaik, cepat (schnell/dev)Kualitas tertinggi, produksi
Ideogram / DALL·E / ImagenAPI managed, teks dalam gambar bagusTanpa urusan GPU

Praktik dengan Hugging Face Diffusers — self-host, tanpa API ketiga:

Install diffusers
pip install diffusers accelerate safetensors transformers
Generate gambar dengan FLUX schnell
from diffusers import FluxPipeline
import torch
 
pipe = FluxPipeline.from_pretrained(
    "black-forest-labs/FLUX.1-schnell",
    torch_dtype=torch.bfloat16,
)
pipe.enable_model_cpu_offload()
 
image = pipe(
    "Ilustrasi peta kota futuristik, gaya flat vector, palet biru",
    guidance_scale=0.0,     # schnell tidak butuh guidance tinggi
    max_sequence_length=256,
    num_inference_steps=4,
).images[0]
 
image.save("peta-kota.png")

Poin kunci praktik text-to-image:

  • Kualitas prompt visual = deskripsi subjek + gaya + komposisi + palet.
  • Negative prompt (misal "kabur, jari salah, teks rusak") memangkas artefak umum.
  • Seed mengontrol reproducibilitas: seed sama → gambar sama.

Speech-to-Text: Whisper

Whisper (OpenAI) adalah STT andalan — akurat untuk banyak bahasa, bisa di-self-host lewat whisper.cpp atau API. Berguna untuk transkripsi meeting, customer support call, atau subtitle.

Transkripsi audio dengan Whisper
from openai import OpenAI
 
client = OpenAI()
 
with open("meeting.wav", "rb") as audio:
    transcript = client.audio.transcriptions.create(
        model="whisper-1",
        file=audio,
        language="id",          # paksa bahasa Indonesia
    )
 
print(transcript.text)

Untuk self-host hemat GPU, faster-whisper adalah pilihan produksi yang umum:

Install faster-whisper
pip install faster-whisper
STT lokal dengan faster-whisper
from faster_whisper import WhisperModel
 
model = WhisperModel("small", device="cpu", compute_type="int8")
segments, info = model.transcribe("meeting.wav", language="id")
 
print("bahasa terdeteksi:", info.language)
for seg in segments:
    print(f"[{seg.start:.0f}s] {seg.text}")

compute_type="int8" memungkinkan berjalan di CPU dengan kualitas lumayan — modalitas ini bisa dijalankan tanpa GPU, berbeda dari text-to-image.

Text-to-Speech: Mengubah Teks Menjadi Suara

Kebalikan dari Whisper: TTS menghasilkan audio dari teks. Pilihan managed (OpenAI TTS, ElevenLabs) dan open-weight (XTTTS, Kokoro):

TTS dengan OpenAI
resp = client.audio.speech.create(
    model="gpt-4o-mini-tts",
    voice="alloy",
    input="Selamat datang di panduan audio kami.",
)
resp.stream_to_file("welcome.mp3")

Vision: Vision Language Models (VLM)

VLM memahami gambar — deskripsi, ekstraksi teks dari foto (OCR alami), menjawab pertanyaan visual, hingga grounding (menunjuk objek). Di episode 8 kita sudah memakai vision untuk RAG; di sini kita lihat kemampuannya lebih luas:

VLM: analisis gambar
import base64
 
def b64(path):
    with open(path, "rb") as f:
        return base64.b64encode(f.read()).decode()
 
resp = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": [
        {"type": "text", "text": "Deskripsikan gambar ini dalam 3 kalimat, "
                                 "lalu tebak merek & suasana tempatnya."},
        {"type": "image_url",
         "image_url": {"url": f"data:image/png;base64,{b64('kafe.png')}"}},
    ]}],
)
print(resp.choices[0].message.content)

VLM juga jadi tulang punggung vision RAG (episode 8) dan pengujian UI (screenshot → deskripsi bug).

Praktik: Pipeline Multimodal Lengkap

Sekarang rangkai semuanya: gambar masuk → deskripsi teks → voice output. Ini pipeline yang sangat nyata untuk aplikasi aksesibilitas atau konten otomatis.

Pipeline multimodal end-to-end
import base64
 
def image_to_voice(image_path):
    # 1. VISION: gambar → deskripsi
    with open(image_path, "rb") as f:
        b64img = base64.b64encode(f.read()).decode()
 
    desc = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": [
            {"type": "text", "text": "Deskripsikan gambar untuk audio guide "
                                     "dalam 2 kalimat bahasa Indonesia."},
            {"type": "image_url",
             "image_url": {"url": f"data:image/png;base64,{b64img}"}},
        ]}],
    ).choices[0].message.content
 
    # 2. TTS: deskripsi → audio
    audio = client.audio.speech.create(
        model="gpt-4o-mini-tts",
        voice="alloy",
        input=desc,
    )
    audio.stream_to_file("guide.mp3")
 
    # 3. (opsional) STT untuk verifikasi
    with open("guide.mp3", "rb") as f:
        check = client.audio.transcriptions.create(
            model="whisper-1", file=f, language="id")
    return desc, "guide.mp3", check.text
 
desc, file, transcript = image_to_voice("museum.jpg")
print("DESKRIPSI:", desc)
print("VERIFIKASI STT:", transcript)

Pipeline seperti ini — vision → LLM → TTS — adalah pola dasar dari audio description, asisten visual, dan konten otomatis.

Note

Perhatikan pola yang berulang: setiap modalitas adalah "alat" yang bisa dipanggil. Dalam arsitektur agent (episode 10-11), vision, STT, TTS bisa di-expose sebagai tools — model yang memutuskan kapan melihat gambar, kapan mendengar audio. Multimodal dan agentic bertemu di titik ini.

Common Pitfalls

  • Prompt visual dianggap sama dengan prompt teks — untuk gambar, detail gaya & komposisi sangat penting; untuk audio, pilih suara yang konsisten.
  • Menjalankan text-to-image tanpa pengawasan GPU — VRAM dan waktu eksekusi bisa meledak; set batas dan queue.
  • Melupakan bahasa pada STT — bahasa Indonesia kadang terdeteksi sebagai bahasa lain; paksa language="id".
  • Tidak mengevaluasi output multimodal — gambar aneh, transkrip meleset, suara robotik; selalu ada human review atau automated check (episode 15).

Penutup

Inti yang harus dibawa pulang:

  • Text-to-image (SD 3.5, FLUX) lewat Diffusers; kualitas prompt visual menentukan hasil.
  • STT (Whisper/faster-whisper) dan TTS membuka modalitas audio, bisa jalan di CPU.
  • VLM memahami gambar — tulang punggung vision RAG dan analisis visual.
  • Pipeline image → description → voice adalah pola dasar aplikasi multimodal.

Di episode 15 selanjutnya kita akan masuk ke Evaluasi LLM & LLMOps — groundedness, faithfulness, hallucination, LLM-as-judge (RAGAS, DeepEval, LangSmith), prompt versioning, dataset evaluation, dan regression testing. Sampai jumpa di episode 15!

Belajar Generative AI - Multimodal: Image, Audio & Video | Belajar Generative AI