AI વિડિયો જનરેટર્સ સેકન્ડોમાં મંત્રમુગ્ધ કરી દે તેવી ગતિ (motion) બનાવી શકે છે, છતાં તેમાંથી લગભગ કોઈ પણ લૂપિંગ (looping) સમજી શકતા નથી. મોડલ્સ દ્રશ્યને આગળ વધારવા માટે તાલીમ પામેલા હોય છે, તેને અંતથી ફરી શરૂઆતમાં જોડવા માટે નહીં. કોઈ સામાન્ય ટૂલને પ્રોમ્પ્ટ આપશો તો તમને એવો ક્લિપ મળશે જે પહેલી વાર જોવામાં ઠીક લાગે છે, પણ પછી અટકી-અટકીને ચાલે છે. બેકગ્રાઉન્ડ ધબકવા લાગે છે. વિષય (subject) અચાનક નવી સ્થિતિમાં આવી જાય છે. લાઇટિંગમાં એક નાનો, માંડ દેખાય તેવો ફેરફાર થાય છે, જે રીસ્ટાર્ટને સ્પષ્ટ બનાવે છે.

એક પરફેક્ટ લૂપ એ કોઈ અકસ્માત નથી. તે જનરેશન પહેલા તમે લાદેલા નિયમો (constraints) અને પછી તમે કરેલી ક્લીનઅપ પ્રક્રિયાનું પરિણામ છે. જો તમે AI ને સામાન્ય વિડિયો એન્જિનને બદલે સાયકલ-જાગૃત (cycle-aware) ભાગીદાર તરીકે ગણો, તો તમે એવા GIFs બનાવી શકો છો જે કોઈપણ દેખીતા જોડાણ (seam) વગર અનંતકાળ સુધી ચાલી શકે.

લૂપ કરવા ઈચ્છતી ગતિ (Motion) થી શરૂઆત કરો

સુધારવા માટે સૌથી મુશ્કેલ લૂપ્સ એ છે જે શરૂઆતથી જ લૂપ્સ હોવા જોઈએ નહીં. AI મોડલ્સ રેખીય ક્રમમાં (linear sequences) વિચારે છે. જો તમે તેને ગ્લાસમાં પાણી ભરવા કહેશો, તો તે ખૂબ જ વિશ્વાસપાત્ર રીતે રેડશે, પરંતુ પાણી કુદરતી રીતે ખાલી ગ્લાસમાં પાછું જઈ શકતું નથી. અંતિમ ફ્રેમમાં એવું પ્રવાહી હોય છે જે પ્રથમ ફ્રેમમાં હોતું નથી. જ્યારે ક્લિપ ફરી શરૂ થાય છે, ત્યારે આંખ તરત જ તે ફેરફાર (hard reset) પકડી લે છે.

તેના બદલે, એક સિંગલ ક્લોઝ્ડ સાયકલ (closed cycle) ની આસપાસ બનેલી ક્રિયા પસંદ કરો. એક બેજ જે એક જગ્યાએ ચમકે છે તે તેની સચોટ સ્થિતિમાં પાછું આવે છે. પાંપણ ઝપકતો પાત્ર (character) એ જ આંખો ખોલે અને બંધ કરે છે. કોઈ પ્રોડક્ટ એક ધીમો વળાંક લે છે અને ફરીથી તેની શરૂઆતની સ્થિતિમાં પાછી ફરે છે. કાગળનું વિમાન ઊડે છે, તરતું રહે છે અને બરાબર ત્યાં જ સ્થિર થાય છે જ્યાંથી તે શરૂ થયું હતું. ગતિ (motion) સ્વભાવિક રીતે પુનરાવર્તિત અથવા ઉલટાવી શકાય તેવી હોવી જોઈએ.

ટેમ્પો (Tempo) પણ મહત્વનો છે. જો તમે બે સેકન્ડમાં બહુ વધારે ફેરફારો કરી નાખશો, તો લૂપ અસ્વસ્થ (anxious) લાગશે. જો તમે સાયકલને દસ સેકન્ડ સુધી લંબાવશો, તો મોટાભાગના દર્શકો તેને પુનરાવર્તિત થતા જોતા પહેલા જ સ્ક્રોલ કરી દેશે. એવા 'સ્વીટ સ્પોટ' (sweet spot) નો લક્ષ્ય રાખો જ્યાં ગતિ તરત જ સમજાય અને તેનું પુનરાવર્તન અનિવાર્ય લાગે.

ટેકનિકલ બ્રીફની જેમ પ્રોમ્પ્ટ્સ લખો

અસ્પષ્ટતા એ લૂપિંગનો દુશ્મન છે. "make it loop" અથવા "seamless repeat" જેવા શબ્દસમૂહો મોડલ દ્વારા તમે ઈચ્છો છો તે રીતે ભાગ્યે જ સમજી લેવામાં આવે છે. તમારે લૂપ કઈ ચોક્કસ પરિસ્થિતિઓમાં હોઈ શકે છે તેનું વર્ણન કરવાની જરૂર છે.

કેમેરાને લોક (lock) કરીને શરૂઆત કરો. કોઈપણ પેન (pan), ઝૂમ અથવા ઓર્બિટ પેરાલેક્સ (parallax) લાવે છે જે પ્રથમ અને અંતિમ ફ્રેમને ભૌમિતિક રીતે અસંગત બનાવે છે. લોક-ઓફ ટ્રાયપોડ વ્યુ, સ્ટેટિક ફ્રેમિંગ અથવા ઝીરો કેમેરા મૂવમેન્ટનો સ્પષ્ટ ઉલ્લેખ કરો. ત્યારબાદ, સતત લાઇટિંગની માંગ કરો. જનરેટિવ વિડિયોમાં ઘણીવાર સમય જતાં એક્સપોઝર અથવા પડછાયાના ખૂણામાં ફેરફાર થાય છે. એક સમાન પ્રકાશ (uniform illumination) માટે આગ્રહ રાખતો પ્રોમ્પ્ટ બેકગ્રાઉન્ડને ક્લિપ દરમિયાન અંધારું થતું અટકાવે છે.

મોડલને કહો કે કોઈ નવી વસ્તુઓ ઉમેરવી નહીં. લૂપિંગ સીનમાં વચ્ચેથી કોઈ પ્રોપ્સ (props) ઉમેરાવા જોઈએ નહીં કે ઓછા થવા જોઈએ નહીં. કદાચ સૌથી મહત્વનું એ છે કે, પ્રથમ અને અંતિમ ફ્રેમ મેચ થાય તે માટે સ્પષ્ટ વિનંતી કરો. કેટલાક મોડલ્સ આને સીધી સૂચના તરીકે સ્વીકારે છે.

સોર્સ ઈમેજનો ઉપયોગ કરવાથી મોડલને એક એન્કર (anchor) મળે છે. એક સ્ટેટિક ફ્રેમ અપલોડ કરો જેમાં તમે શરૂઆતમાં જે બેકગ્રાઉન્ડ અને સબ્જેક્ટ પોઝ ઈચ્છો છો તે હોય. કેટલાક વર્કફ્લો તમને છેલ્લી ફ્રેમની ઈમેજને ડેસ્ટિનેશન ટાર્ગેટ તરીકે અપલોડ કરવાની પણ મંજૂરી આપે છે. જ્યારે AI ને ખબર હોય કે તેણે ક્યાં પહોંચવું છે, ત્યારે તે વધુ સારી રીતે ક્લીન ટ્રાન્ઝિશન બનાવી શકે છે.

ffmpeg સાથે કન્વર્ટ કરો, માત્ર MP4 થી સંતોષ ન માનો

લગભગ દરેક AI વિડિયો ટૂલ MP4 એક્સપોર્ટ કરે છે. તે જોવા માટે ઠીક છે, પરંતુ સાચો GIF અલગ ફાઇલ ફોર્મેટ છે જેના નિયમો અલગ છે. GIF કમ્પ્રેશન કાચું હોય છે. તે પ્રતિ ફ્રેમ માત્ર 256 રંગોને સપોર્ટ કરે છે, ગ્રેડિયન્ટ્સને ખરાબ રીતે હેન્ડલ કરે છે, અને ફ્રેમ-બાય-ફ્રેમ સ્ટોરેજ પર આધાર રાખે છે. વિડિયોને કોઈ ફ્રી ઓનલાઇન કન્વર્ટર દ્વારા કન્વર્ટ કરવાથી સામાન્ય રીતે એક મોટું અને ખરાબ દેખાતું ફાઇલ પરિણામ મળે છે.

વાસ્તવિક નિયંત્રણ માટે, ffmpeg નો ઉપયોગ કરો. તે મફત છે, કમાન્ડ-લાઇન આધારિત છે, અને તમને વેબ ડિલિવરી માટે મહત્વપૂર્ણ દરેક પેરામીટરને ટ્યુન કરવાની મંજૂરી આપે છે. મોટાભાગના AI-જનરેટેડ લૂપ્સને હેન્ડલ કરતો ચોક્કસ કમાન્ડ અહીં છે:

ffmpeg -i loop.mp4 -vf "fps=15,scale=720:-1:flags=lanczos,split[s0][s1];[s0]palettegen=max_colors=128[p];[s1][p]paletteuse=dither=bayer" -loop 0 loop.gif

આને લાઇન બાય લાઇન સમજવાથી ખબર પડશે કે તે કેમ કામ કરે છે.

15 fps ફાઇલને હળવી રાખે છે. ફ્રેમ રેટ એ ફાઇલ સાઈઝ પર સૌથી મોટો પ્રભાવ પાડે છે. એસેટનું કદ વધાર્યા વગર મોટાભાગની ગતિ સ્પષ્ટ રીતે જોવા માટે પ્રતિ સેકન્ડ પંદર ફ્રેમ પૂરતી છે. જો તમારું એનિમેશન ખૂબ જ સૂક્ષ્મ હોય, તો તમે બાર (12) સુધી નીચે જઈ શકો છો, પરંતુ તેનાથી નીચે ગતિ અટકી-અટકીને (choppy) લાગવા માંડશે.

720px પહોળાઈ સ્વીટ સ્પોટ છે. મોટાભાગની ચેટ એપ્સ, સોશિયલ ફીડ્સ અને ડોક્યુમેન્ટેશન પ્લેટફોર્મ્સ એનિમેટેડ મીડિયાને પહેલેથી જ નાની પહોળાઈમાં રિસાઇઝ કરે છે. ઓટોમેટિક હાઇટ પ્રિઝર્વેશન સાથે 720 પિક્સેલની પહોળાઈ તમને વધુ પડતા ડેટા વગર સ્પષ્ટ દેખાવ આપે છે.

Lanczos સ્કેલિંગ શાર્પ રહે છે. flags=lanczos સેટિંગ હાઇ-ક્વોલિટી રિસેમ્પલિંગ અલ્ગોરિધમનો ઉપયોગ કરે છે. તે બેઝિક બિલિનિયર સ્કેલિંગ કરતા એજ ડેફિનેશન (edge definition) ને વધુ સારી રીતે જાળવી રાખે છે, જે ત્યારે મહત્વનું છે જ્યારે તમારો પ્રોડક્ટ અથવા પાત્ર સપાટ બેકગ્રાઉન્ડ સામે હોય.

કસ્ટમ પેલેટ બેન્ડિંગને અટકાવે છે. સ્પ્લિટ અને પેલેટ જનરેશનના સ્ટેપ્સ તમારા ચોક્કસ ક્લિપનું વિશ્લેષણ કરે છે અને તેમાંથી કલર ટેબલ બનાવે છે, જે અહીં 128 રંગો સુધી મર્યાદિત છે. કોઈ સામાન્ય સ્ત્રોતમાંથી લેવામાં આવેલી ગ્લોબલ પેલેટ તમારા સીનમાં રહેલા ચોક્કસ ટોન ચૂકી શકે છે. બાયર અલ્ગોરિધમ (Bayer algorithm) સાથેનું ડિધરિંગ (Dithering) કઠોર કલર સ્ટેપ્સને એવા નોઈઝમાં તોડી નાખે છે જેને આંખ સ્મૂધ ગ્રેડિયન્ટ્સ તરીકે જુએ છે.

-loop 0 અનંતતાની ખાતરી આપે છે. આ ફ્લેગ વગર, કેટલાક GIF પ્લેયર્સ એક જ ચક્ર પછી અટકી જાય છે. તે એક આર્ગ્યુમેન્ટ ક્લિપને સાચા લૂપમાં ફેરવી દે છે.

એ ગ્લિચિસ (Glitches) સુધારો જે કટ (Cut) નો ખ્યાલ આપી દે છે

પરફેક્ટ પ્રોમ્પ્ટ એન્જિનિયરિંગ હોવા છતાં, જનરેટ થયેલ MP4 ને કન્વર્ઝન પહેલાં ચોકસાઈપૂર્વક એડિટિંગની જરૂર પડી શકે છે.

સીમ પોપ્સ (Seam pops) ત્યારે થાય છે જ્યારે છેલ્લો ફ્રેમ અને પહેલો ફ્રેમ નજીક હોય પરંતુ સમાન ન હોય. તમારા પ્રોમ્પ્ટમાં એક્શન ટૂંકાવી દો જેથી મોડેલ પાસે ડ્રિફ્ટ થવા માટે ઓછો સમય હોય. જનરેશન પછી, MP4 ને કડક રીતે ટ્રીમ કરો. જ્યાં સુધી મોશન અલાઈન ન થાય ત્યાં સુધી શરૂઆત અથવા અંતમાંથી એક કે બે ફ્રેમ કાપી નાખો. અહીં લોક્ડ કેમેરા (locked camera) અનિવાર્ય છે. જે ક્ષણે પરસ્પેક્ટિવ બદલાય છે, તે જોડાણ દેખાવા લાગે છે.

બેકગ્રાઉન્ડ ફ્લિકર (Background flicker) જનરેટિવ નોઈઝ અને ગ્રેડિયન્ટ ફેરફારોને કારણે આવે છે. જો તમારું બેકગ્રાઉન્ડ ફ્લેટ કલર હોય, તો ફ્લિકર અદૃશ્ય થઈ જાય છે. જો તમે સોલિડ બેકડ્રોપવાળી સોર્સ ઈમેજનો ઉપયોગ કર્યો હોય, તો મોડેલ પાસે સમય જતાં બદલાતી વિગતોનું હલ્યુસિનેશન (hallucinate) કરવા માટે ઓછી જગ્યા રહે છે.

ફાઈલ સાઈઝ વધવી (File size bloat) ત્યારે થાય છે જ્યારે તમે હાઈ રિઝોલ્યુશન અને ફૂલ કલરમાં એક્સપોર્ટ કરો છો. જો તમારો GIF હજુ પણ તમારા પ્લેટફોર્મ માટે ખૂબ ભારે હોય, તો પહોળાઈ ઘટાડીને 480 પિક્સેલ કરો, ફ્રેમ રેટ ઘટાડીને બાર કરો, અથવા પેલેટ ઘટાડીને ચોસઠ રંગો કરો. તમે લૂપની અવધિ (duration) પણ ટ્રીમ કરી શકો છો. છ સેકન્ડના ચક્ર કરતા બે સેકન્ડનું સંપૂર્ણ ક્લીન ચક્ર વધુ સારું છે જેને લોકો સ્કીપ ન કરે.

ટેક્સ્ટ મેલ્ટ (Text melts) બેવડી સમસ્યા છે. જનરેટિવ વિડિયો પહેલેથી જ વાંચી શકાય તેવા અક્ષરો સાથે સંઘર્ષ કરે છે, અને GIF કલર ક્વોન્ટાઈઝેશન તે ટેક્સ્ટને સ્મીયર્ડ આર્ટિફેક્ટ્સ (smeared artifacts) માં ફેરવી નાખે છે. સૌથી સરળ ઉપાય એ છે કે તમારા AI પ્રોમ્પ્ટમાંથી તમામ ટેક્સ્ટ દૂર કરો અને તેને પછીથી ઉમેરો. તમારા લેટરિંગને HTML, વિડિયો એડિટર, અથવા Canva કે Figma જેવા ડિઝાઇન ટૂલમાં ઓવરલે કરો. આનાથી મોશન જનરેટિવ રહેશે અને અક્ષરો સ્પષ્ટ રહેશે.

અંતિમ પરીક્ષણ

પબ્લિશ કરતા પહેલા, તમારા GIF ને સતત પાંચ પૂર્ણ ચક્ર સુધી જુઓ. પહેલી વાર જોતી વખતે ભૂલો દેખાતી નથી. તમારી આંખો તાજી હોય છે અને તમારું મગજ ખાલી જગ્યાઓ ભરી દે છે. ત્રીજા કે ચોથા પુનરાવર્તન સુધીમાં, નાની ભૂલો બહાર આવવા લાગે છે. કેમેરા ડ્રિફ્ટ તપાસો. તપાસો કે મોશનના દરેક અંતિમ બિંદુએ સબ્જેક્ટ ક્રોપની અંદર રહે છે કે નહીં. તમારા અંતરાત્માનું સાંભળો. જો ચોથા ચક્રમાં કંઈક ખોટું લાગે, તો વધુ એક ફ્રેમ ટ્રીમ કરો અથવા પેલેટ ઘટાડો. તમારો પ્રેક્ષકો નોંધશે, ભલે તેઓ તે ખામીનું નામ ન આપી શકે.

મુખ્ય વાત: લૂપિંગ GIF એ માત્ર વારંવાર ચાલતો વિડિયો નથી. તે એક બંધ પ્રણાલી છે જ્યાં અંતિમ સ્થિતિ અને શરૂઆતની સ્થિતિ એ એક જ ઘટના છે. તે મર્યાદાને ધ્યાનમાં રાખીને તમારો પ્રોમ્પ્ટ બનાવો, ચોકસાઈ સાથે કન્વર્ટ કરો અને કડક રીતે એડિટ કરો. એક ખરાબ ક્લિપ અને એક હિપ્નોટિક લૂપ વચ્ચેનો તફાવત સામાન્ય રીતે દસ મિનિટની તૈયારી અને બે ફ્રેમનું સાવચેતીપૂર્વકનું ટ્રીમિંગ છે.