AI di perangkat — profesional dan privat.

Optimalkan GIF

Optimalkan GIF frame demi frame — animasi sama, bita lebih sedikit.

  • Tanpa unggah
  • Bawaan tanpa kehilangan
  • Tempo terjaga
  • Duplikat dihapus

Letakkan GIF di sini

GIF, WebP animasi, atau APNG

Struktur frame
Selisih antarframe
0

Seberapa berbeda sebuah piksel dari frame sebelumnya sebelum dikirim ulang. 0 berarti persis.

Mati akan menulis setiap frame utuh lagi — yang oleh alat lain disebut coalescing.

Frame ganda
Frame ganda

Waktu frame yang dihapus ditambahkan ke frame yang bertahan, jadi animasi tidak pernah mempercepat.

Deret lossy
0

Membiarkan sebuah piksel bergabung dengan deret warna di sebelahnya, yang dihargai kompresi.

Latar
Latar

Meratakan melepas latar transparan dan mengembalikan selisih antarframe.

Palet
128
Dithering

Cara mengoptimalkan GIF

Hilangkan pengulangan di antara frame sebuah GIF animasi tanpa mengubah ukuran, kecepatan, atau warnanya.

  1. 1

    Tambahkan GIF Anda

    Seret GIF animasi ke area unggah, atau klik untuk memilih. WebP animasi dan APNG juga bisa. Berkas dibaca di perangkat Anda dan tidak pernah diunggah.

  2. 2

    Biarkan pengaturan bawaan untuk satu proses tanpa kehilangan

    Selisih antarframe aktif dan frame ganda hanya dihapus bila identik bita per bita. Dengan pengaturan ini gambarnya tidak berubah: berkas hanya berhenti menyimpan apa yang sudah disimpannya.

  3. 3

    Gunakan penggeser hanya bila perlu lebih

    Toleransi selisih memaafkan piksel yang nyaris identik antarframe. Deret lossy menyatukan piksel yang nyaris identik di dalam satu frame. Keduanya menukar sedikit ketepatan dengan ukuran, dan keduanya menunjukkan persis berapa biayanya.

  4. 4

    Baca laporannya, lalu unduh

    Panel hasil menyebutkan frame yang dipertahankan, bagian kanvas yang ditutupi setiap frame tersimpan, serta durasi masuk dan keluar. Tekan Unduh ketika angkanya sesuai keinginan Anda.

Apa yang dihilangkan oleh pengoptimal GIF

Hampir setiap GIF yang beredar lebih besar dari yang seharusnya, karena alasan yang sama sekali tidak berkaitan dengan kualitas. Sejak 1989 format ini mengizinkan sebuah frame hanya menutup persegi panjang yang berubah dan menandai sisa pikselnya sebagai «yang sudah ada di layar di sini masih benar» — dan sebagian besar pengode tidak pernah memakai keduanya. Maka rekaman dua puluh frame dari halaman statis dengan kursor yang bergerak menyimpan halaman statis itu dua puluh kali. Mengoptimalkan menghapus pengulangan itu dan tidak menyentuh apa pun yang lain.

Simpan hanya piksel yang berubah antarframe, hapus frame yang berulang dan tambahkan waktunya ke frame yang bertahan, dan pakai satu tabel warna untuk seluruh animasi.

Membaca GIF, WebP animasi, dan APNG. Menulis GIF89a standar dengan dimensi sama, durasi sama, dan — bila palet muat — warna yang sama.

Berapa nilainya, terukur

  • Selisih antarframe. Pada animasi rujukan kami, 196.091 bita yang disimpan utuh menjadi 48.131 bita yang disimpan sebagai selisih. Pada versi seratus frame, 4.776.638 menjadi 1.172.755. Keduanya 4,07x dan keduanya tepat secara warna.
  • Frame ganda. Animasi dua belas frame berisi empat gambar berbeda keluar sebagai empat frame yang membawa waktu kedua belasnya. Animasi enam frame berisi satu gambar keluar sebagai satu frame yang menahan seluruh 600 ms.
  • Pemangkasan frame transparan. Stiker yang isi buramnya menempati seperlima kanvas disimpan sebagai seperlima kanvas: 191 bita dari 19.473, dengan transparansi utuh.
  • Tidak ada yang tidak Anda minta. Tanpa mengubah ukuran, tanpa menurunkan laju frame, tanpa mengurangi palet kecuali Anda menggeser sesuatu. Bila pengodean ulang tidak mengalahkan berkas Anda, Anda menerima berkas Anda kembali dan diberi tahu.

Selisih antarframe, dan mengapa hampir tidak ada GIF yang memakainya

GIF bukan tumpukan gambar. Ia adalah sebuah kanvas ditambah daftar instruksi, dan setiap instruksi boleh melukis persegi panjang di mana pun pada kanvas itu, dalam ukuran apa pun, dengan piksel mana pun ditandai tembus pandang sehingga yang di bawahnya terlihat. Frame yang mengubah bercak 30 piksel bisa disimpan sebagai bercak 30 piksel. Alasan begitu sedikit berkas melakukannya adalah karena menulisnya jauh lebih sulit: pengode harus memelihara model tentang apa yang sedang ditampilkan sebuah pendekode dan membandingkan terhadap itu, bukan terhadap frame sumber sebelumnya.

Apa yang terjadi pada setiap frame

  • Menyusun. Setiap frame digambar ke kanvas seukuran logis animasi, dengan menghormati offset, metode pembuangan, dan transparansinya, sehingga yang dibandingkan adalah gambar yang benar-benar dilihat penonton.
  • Memindai sekali. Satu lintasan menjawab semua yang dibutuhkan tahap pengodean: frame mana yang merupakan pengulangan, apakah ada transparansi di suatu tempat, berapa banyak warna berbeda, dan sampel yang dipakai membangun palet.
  • Memetakan ke satu tabel bersama. Bila warna sumber muat dalam satu tabel, daftar persis itulah paletnya. Bila tidak, satu palet diturunkan dari seluruh animasi, bukan dari frame pertama, sehingga warna tidak bergeser selama pemutaran.
  • Menyelisihkan, lalu memampatkan deret. Setiap frame dibandingkan dengan model berjalan dari kanvas terdekode, diperkecil ke persegi panjang yang berubah, dan piksel yang tak berubah di dalamnya ditandai tembus pandang. Baru setelah itu lintasan lossy berjalan, sehingga ia tidak pernah bisa merusak selisih.

Invarian yang hampir selalu dilanggar setiap implementasi

Ketika frame ganda dihapus, waktunya harus pergi ke suatu tempat. Hapus sepuluh frame dari animasi dua puluh frame berdurasi 100 ms dan lupa menggabungkan durasinya, maka tersisa sepuluh frame 100 ms: animasi dua detik yang diputar dalam satu detik, dua kali lebih cepat. Keluarannya GIF yang sah. Tidak ada yang gagal. Ia hanya bukan lagi animasi yang masuk tadi. Di sini durasi masuk dan durasi keluar dibandingkan pada setiap proses, dan selisihnya dilempar sebagai galat, bukan dikembalikan sebagai berkas yang lebih kecil.

Menghapus frame ganda tanpa mengubah animasi

Menghapus frame berdasarkan isi berbeda dari membuang satu frame setiap dua, dan perbedaan itulah intinya. Membuang setiap frame ke-N bersifat buta: ia menghapus frame yang menampilkan sesuatu yang baru bersama frame yang tidak, dan hasilnya langsung tersendat. Menghapus frame ganda hanya membuang frame yang tak mungkin dibedakan penonton dari frame sebelumnya, dan menggabungkan waktunya. Bila yang Anda inginkan justru laju frame lebih rendah, tuas itu ada di kompresor.

Dua mode dan ambang yang memisahkannya

  • Hanya identik. Pengulangan bita per bita, tidak lebih. Ini bawaan karena tidak mungkin mengubah apa yang dilihat siapa pun: frame yang dihapus memang sudah ada di layar, piksel demi piksel.
  • Nyaris identik. Ambang kemiripan dari 80% hingga 100%. Pada 98%, frame yang cocok setidaknya 98% dengan frame terakhir yang dipertahankan dianggap pengulangan. Berguna pada materi dengan derau samar.
  • Mati. Semua frame dipertahankan apa pun isinya. Layak dipilih ketika jumlah frame itu sendiri penting: sebagian editor dan alur sprite mengindeks frame berdasarkan nomor.

Mengapa pembandingan dilakukan terhadap frame terakhir yang dipertahankan

Bandingkan setiap frame dengan frame tepat sebelumnya, maka pemudaran perlahan melewati ambang pada setiap langkah, sehingga seluruh animasi runtuh menjadi frame pertamanya sementara setiap pembandingan tunggal tampak masuk akal. Membandingkan terhadap frame terakhir yang DIPERTAHANKAN justru membatasi galatnya: berapa pun ambangnya, itulah paling banyak yang bisa ditampilkan kepada penonton dan tidak ada dalam rekaman, dan itu tidak menumpuk. Lebih sedikit frame terhapus pada materi yang bergeser, dan itu pertukaran yang tepat, karena kegagalan yang dicegahnya senyap.

Hasil terukur

Setiap angka di bawah berasal dari rangkaian uji alat ini sendiri, pada berkas yang dibuat ulang oleh skrip alih-alih disimpan sebagai biner misterius. Setiap keluaran dibaca ulang oleh tiga implementasi independen: libvips untuk animasi yang dirender, gifsicle untuk struktur frame, dan pembaca struktural yang ditulis untuk rangkaian uji yang menelusuri blok berkas dan tidak pernah menjalankan dekompresi.

Tuas-tuasnya, menurut nilainya

  • Selisih antarframe 4,07x pada animasi rujukan baik pada 20 maupun 100 frame, dengan galat warna rata-rata terukur 0,000 dari 255.
  • Penghapusan frame ganda Dari 12 frame menjadi 4, dan dari 6 menjadi 1, pada dua berkas khusus — dengan 1.200 ms masuk dan 1.200 keluar, serta 600 ms masuk dan 600 keluar.
  • Toleransi selisih pada 40 Dari 1.172.755 bita menjadi 487.196 pada rujukan seratus frame. Tambahan 2,41x di atas lintasan tanpa kehilangan.
  • Deret lossy pada 60 Dari 1.172.755 bita menjadi 478.644 pada berkas yang sama. Sebanding dengan penggeser satunya dan terlihat dengan cara berbeda: di dalam frame, bukan antarframe.
  • Kecepatan Seratus frame pada 480x270, didekode, dipindai, diselisihkan, dan ditulis, dalam 252 hingga 380 ms pada perangkat rujukan.

Melawan gifsicle, mesin di balik sebagian besar pengoptimal daring

Persegi panjang frame yang dihasilkan alat ini identik dengan milik gifsicle -O3 pada setiap berkas yang diukur — offset sama, ukuran sama, tabel warna sama — yang berarti keputusan strukturalnya sepakat. Pada total ukuran kami menyamai atau mengungguli gifsicle -O3 pada delapan dari sepuluh kasus dan kalah pada dua, sebesar 0,03% dan 3,1%, sepenuhnya di dalam muatan terkompresi dan bukan pada strukturnya. Dua hal yang kami lakukan dan ia tidak: menghapus frame nyaris identik, dan memberi tahu ketika pengodean ulang justru memperbesar berkas.

Optimalkan atau kompres — mana yang sebenarnya Anda butuhkan

Ini dua pekerjaan berbeda dan memilih yang keliru membuang kualitas yang tidak perlu dibuang. Mengoptimalkan menghapus pengulangan: berkas mengecil dan animasi tidak berubah, jadi tidak ada alasan untuk tidak melakukannya. Mengompres membuang informasi: lebih sedikit piksel, lebih sedikit warna, lebih sedikit frame per detik, sampai ukuran berkas yang Anda sebutkan tercapai. Mulailah di sini. Bila hasilnya masih terlalu besar, kompresor melanjutkan dari titik ini.

Daftar keputusan singkat

  • Selalu mulai dari pengoptimal. Secara visual tidak ada biayanya dan sering kali sudah cukup. Tidak masuk akal membuang warna sebelum berhenti menyimpan piksel dua kali.
  • Pakai kompresor bila syaratnya berupa angka. «Di bawah 8 MB untuk Discord», «di bawah 256 KB untuk emoji khusus». Ia mencari lewat resolusi, palet, dan laju frame sampai angkanya tercapai.
  • Pakai pengubah ukuran bila dimensinya salah. Alat ini tidak pernah mengubahnya. Bila animasinya selebar 1920 dan kolomnya 700, itu pekerjaan ubah ukuran, dan melakukannya lebih dulu membuat sisanya lebih murah.
  • Kembalilah ke sini setelahnya. Mengoptimalkan keluaran dari ubah ukuran atau kompresi biasanya masih menemukan lebih banyak, karena alat-alat itu membangun ulang frame dan alat inilah yang menghapus pengulangan darinya.

Kompresor GIF · Ubah Ukuran GIF

Memanfaatkannya sebaik mungkin

Pengaturan bawaan dipilih agar tidak perlu dipikirkan siapa pun: selisih antarframe aktif, frame ganda dihapus hanya bila identik bita per bita, kedua penggeser lossy di nol, tanpa dithering. Kombinasi itu tidak mungkin mengubah apa yang dilihat siapa pun, dan karena itulah ia menjadi bawaan: pengoptimal yang diam-diam mengubah gambar sebenarnya kompresor dengan nama yang menyesatkan.

Menurut jenis materi

  • Rekaman layar dan demo antarmuka. Kasus terbaik yang mungkin. Latarnya statis, selisihnya kecil sekali, dan jeda dalam rekaman menghasilkan frame identik yang tidak berbiaya untuk dihapus. Biarkan bawaannya.
  • Materi yang berasal dari video. Tidak ada yang pernah identik bita per bita karena derau kompresi di bawahnya, jadi ubah penghapusan frame ganda ke nyaris identik pada 98% dan naikkan toleransi selisih.
  • Stiker dan logo berlatar transparan. Selisih antarframe tidak tersedia, tetapi frame tetap dipangkas ke isi buramnya, yang di sini biasanya lebih berharga.
  • GIF fotografis atau ber-dithering berat. Mungkin memang tidak ada yang bisa dihapus, dan alat ini akan mengatakannya alih-alih memberi Anda berkas yang lebih besar. Kurangi jumlah warna, atau pakai kompresor.

Apa yang dibuka pengoptimal dan apa yang ditulisnya

Daftar masukan bersifat tertutup dan diberlakukan pada dialog berkas, bukan pada mesinnya, sehingga berkas yang tidak bisa dibuka alat ini ditolak dalam hitungan milidetik disertai rute ke alat yang bisa — alih-alih diterima lalu gagal kemudian di balik indikator pemuatan.

  • GIF masuk. Beranimasi atau satu frame, terjalin atau tidak, dengan palet global atau palet lokal berbeda pada setiap frame. Frame parsial berposisi offset disusun ke kanvas penuh sebelum apa pun dibandingkan.
  • WebP animasi dan APNG masuk. Keduanya dibaca oleh demultiplekser kami sendiri di setiap peramban, jadi jumlah frame dan tempo identik di mana pun. Keduanya membawa jauh lebih dari 256 warna.
  • GIF keluar, selalu. GIF89a standar dengan satu tabel warna global, durasi per frame, frame parsial, metode pembuangan, dan ekstensi pengulangan Netscape.
  • Selain itu ditolak disertai rute. Video diarahkan ke Video ke GIF, gambar diam ke Pembuat GIF.

Apa yang dibaca alat ini

GIF didekode secara bawaan di tempat peramban memiliki pendekodenya dan oleh pembaca kami sendiri di tempat lain, sehingga sebuah animasi terbuka sama di mana pun alih-alih datang sebagai frame pertamanya tanpa peringatan apa pun. WebP animasi dan APNG selalu melewati pembaca kami, yang menjaga jumlah frame dan tempo tetap identik lintas mesin. Apa yang diakui sebuah berkas lewat namanya diabaikan: enam belas bita pertamalah yang menentukan.

Batas ukuran dan batch

  • Gratis. Satu berkas hingga 50 MB dan hingga 300 frame. Semua tuas struktural disertakan, karena itulah alat ini sesungguhnya. Tabel warna dibatasi 128 entri.
  • Pro. Hingga 50 berkas sekaligus, diunduh sebagai satu ZIP, tanpa batas ukuran atau frame di luar kemampuan perangkat Anda, dan tabel penuh 256 warna.
  • Tidak ada batas dimensi pada paket mana pun. Pengoptimal tidak pernah mengubah dimensi, jadi batas atas untuknya akan membatasi sesuatu yang tidak terjadi. Kedua paket mengembalikan animasi persis pada ukuran saat ia datang.
  • Batas yang dimiliki kedua paket. Setiap frame dibentangkan ke warna penuh selama dikerjakan, jadi anggaran memori membatasi pekerjaan sebelum dimulai alih-alih membiarkan tab berhenti merespons.

Bagaimana optimalisasi berjalan di perangkat Anda

Tidak ada yang diunggah. Berkas didekode frame demi frame di mesin Anda, dipindai sekali untuk pengulangan, transparansi, dan jumlah warna, dipetakan ke satu palet bersama, diselisihkan terhadap model berjalan tentang apa yang akan ditampilkan pendekode, lalu ditulis sebagai GIF89a standar. Semuanya berjalan di utas latar agar halaman terus menggambar, dan pemetaan palet — bagian per piksel, bagian yang mahal — berjalan di perangkat keras grafis Anda bila tersedia.

Mengapa berkas yang sama selalu dioptimalkan sama

  • Kuantiser deterministik. Median cut, bukan kuantiser neural acak yang dipakai kebanyakan pustaka GIF — dan tidak ada kuantiser sama sekali bila warna sumber muat. Masukan yang sama dengan pengaturan yang sama selalu menghasilkan bita yang sama.
  • Hasil identik di setiap jalur. Jalur berakselerasi perangkat keras dan jalur prosesor wajib menghasilkan bita yang sama, bukan sekadar mirip. Jalur yang memilih entri palet berbeda akan tampak sebagai kedipan warna antarframe.
  • Diperiksa oleh implementasi tanpa kode bersama. Animasi yang dirender dibaca libvips, struktur frame oleh gifsicle, dan blok berkas oleh pembaca yang ditulis untuk rangkaian uji. Berkas yang ditulis dan dibaca oleh kode kami sendiri tidak membuktikan apa pun.
  • Mengoptimalkan dua kali tidak mengubah apa pun. Menjalankan alat ini atas keluarannya sendiri mengembalikan berkas yang sama dan melaporkannya sudah optimal, yaitu sifat yang menyatakan lintasan pertama sudah menuntaskan pekerjaannya.

Pemetaan palet berakselerasi perangkat keras di tempat perangkat Anda mendukungnya, dan jalur berakselerasi maupun jalur cadangan terbukti menghasilkan bita yang identik. Struktur frame diperiksa dengan gifsicle dan animasi yang dirender dengan libvips, dan keduanya tidak berbagi kode dengan alat ini. Diukur pada perangkat rujukan: 100 frame pada 480x270 dioptimalkan dalam 252 ms, 4,07x lebih kecil, dengan galat warna rata-rata 0,000 dari 255. Semua berjalan di perangkat Anda, bukan di server kami.

Pertanyaan yang sering diajukan

Apa yang dilakukan pengoptimal GIF yang tidak dilakukan kompresor?

Kompresor membuat gambar lebih murah: lebih sedikit warna, lebih sedikit piksel, lebih sedikit frame per detik. Pengoptimal membuat berkas berhenti mengulang dirinya. Sebuah frame GIF boleh hanya menutup persegi panjang yang berubah dan menandai sisa pikselnya sebagai «yang sudah ada di layar di sini masih benar», dan sebagian besar GIF tidak melakukan keduanya. Diukur pada animasi uji kami: 196.091 bita bila frame disimpan utuh, melawan 48.131 bita bila disimpan sebagai selisih. Dua puluh frame yang sama, dimensi sama, warna sama.

Apakah ini tanpa kehilangan?

Dengan pengaturan bawaan dan GIF yang warnanya muat dalam satu tabel, ya — dan itu terukur. Alat ini menghitung warna berbeda pada sumber dan, bila muat, memakai daftar persis itu sebagai palet alih-alih menurunkan yang baru. Dibandingkan frame demi frame dengan pustaka gambar independen, galat warna rata-rata pada berkas uji GIF kami adalah 0,000 dari 255. Dua hal yang mematahkannya, keduanya ditampilkan di layar: sumber dengan warna lebih banyak daripada muatan satu tabel, dan salah satu dari dua penggeser lossy yang digeser dari nol.

Apakah menghapus frame ganda mempercepat animasi?

Tidak, dan inilah satu-satunya hal yang layak diperiksa pada alat mana pun yang menawarkannya. Ketika sebuah frame dihapus, waktu tampilnya ditambahkan ke frame yang bertahan, jadi total durasi identik sebelum dan sesudah. Alat ini menolak mengembalikan hasil bila tidak demikian: durasi masuk dan durasi keluar dibandingkan, dan selisih adalah galat, bukan berkas yang lebih kecil.

Apa beda menghapus frame identik dan nyaris identik?

Identik berarti bita per bita: salinan persis dari frame sebelumnya. Ini lazim pada rekaman layar, ketika kursor berhenti, dan menghapusnya gratis. Nyaris identik memakai ambang kemiripan: pada 98%, frame yang cocok setidaknya 98% dengan frame terakhir yang dipertahankan dianggap pengulangan. Pembandingan selalu terhadap frame terakhir yang DIPERTAHANKAN, yang mencegah pergeseran perlahan meruntuhkan seluruh animasi selangkah demi selangkah.

Mengapa alat ini bilang GIF saya sudah optimal?

Karena hasil pengodean ulang tidak lebih kecil daripada berkas yang Anda berikan, jadi Anda menerima kembali berkas Anda sendiri alih-alih yang sedikit lebih besar. Ini terjadi pada materi tanpa pengulangan: derau fotografis yang berubah di seluruh kanvas pada setiap frame, atau GIF yang sudah pernah melewati pengoptimal. Itu jawaban yang jujur dan bukan yang biasa: sebagian besar alat mengembalikan berkas yang lebih besar dengan tanda centang hijau.

Apa fungsi dua penggeser lossy itu, dan mana yang digeser lebih dulu?

Keduanya bekerja ke arah berbeda. Toleransi selisih bersifat temporal: ia menentukan seberapa berbeda sebuah piksel dari frame sebelumnya sebelum layak dikirim lagi. Deret lossy bersifat spasial: ia membiarkan sebuah piksel bergabung dengan deret warna di sebelahnya, yang justru dihargai oleh kompresi. Geser toleransi lebih dulu: pada rujukan seratus frame kami, pada nilai 40 ia membawa berkas dari 1.172.755 bita ke 487.196.

Apakah latar transparan saya bertahan?

Ya, dan itu dideteksi, bukan diandaikan. GIF tidak punya kanal alfa: satu indeks palet ditetapkan sebagai tembus pandang. Masalahnya, selisih antarframe membutuhkan indeks yang sama untuk berarti «tidak berubah», jadi keduanya tidak bisa dipakai bersamaan. Di sini setiap frame diperiksa untuk piksel tembus pandang, dan bila ada, latar yang menang: frame ditulis utuh dan panel menjelaskan alasannya. Utuh bukan berarti seukuran penuh: setiap frame tetap dipangkas ke isi buramnya, yang pada animasi uji kami menghasilkan 191 bita dari 19.473.

Bisakah saya membatalkan optimalisasi dan kembali ke frame utuh?

Bisa. Matikan selisih antarframe dan setiap frame ditulis utuh lagi, yang oleh alat lain disebut coalescing dan biasanya ditawarkan di halaman terpisah. Kadang ini perlu: beberapa editor lama dan sejumlah platform kurang baik menangani frame parsial. Perkirakan berkas membesar kira-kira sebanyak yang tadinya dihemat oleh selisih.

Bagaimana perbandingannya dengan gifsicle?

Gifsicle adalah mesin di balik sebagian besar pengoptimal GIF daring, jadi ia patokan yang tepat. Pada berkas uji kami, PERSEGI PANJANG frame yang dihasilkan kedua alat identik — offset sama, ukuran sama, tabel warna sama — dan pada total ukuran kami menyamai atau mengungguli gifsicle -O3 pada delapan dari sepuluh kasus. Kami kalah pada dua, sebesar 0,03% dan 3,1%, sepenuhnya di dalam muatan terkompresi. Kami juga menghapus frame nyaris identik dan memberi tahu bila pengodean ulang justru memperbesar berkas.

Apakah pengoptimal mengubah dimensi?

Tidak pernah. Tidak ada kendali skala dan tidak ada batas keluaran pada paket mana pun, dan panel hasil menampilkan dimensi sumber dan keluaran berdampingan agar pernyataan itu bisa diperiksa. Bila Anda memang ingin ukuran lain, itu tugas alat Ubah Ukuran GIF, yang mempertahankan tempo dengan cara yang sama.

Mengapa palet hanya memuat 256 warna, dan bagaimana bila GIF saya lebih?

Itu formatnya, bukan alatnya: tabel warna GIF paling banyak 256 entri. Sebuah animasi bisa melampauinya dengan membawa tabel lokal berbeda pada setiap frame — dan justru itulah yang tidak bisa dipakai oleh selisih antarframe, karena ia membandingkan indeks palet dan indeks hanya bermakna sama dalam satu tabel bersama. Karena itu satu tabel global selalu ditulis.

Bisakah saya mengoptimalkan beberapa GIF sekaligus?

Dengan Pro, bisa — hingga 50 berkas sekaligus, diunduh bersama dalam satu ZIP, dengan pengaturan yang sama untuk semuanya. Itulah pekerjaan nyata yang diselesaikan: satu folder klip dokumentasi atau satu set emoji khusus. Paket gratis memproses satu berkas pada satu waktu, dengan optimalisasi penuh, hingga 50 MB dan 300 frame.