先說這個成品堪稱低劣,但我也只是想玩玩而已,懶得再精修了。
會想做這個只是最近剛好在玩AnimateDiff,然後也剛好我最近才後知後覺的把半年前流行的動畫「我推的孩子」看完。因為歌唱與戀愛主題的動畫通常不是我喜歡的題材,但畢竟很紅又想要見識一下,所以拖著拖著直到最近才下定決心一次看完,這部動畫確實是十分精采,但我這篇的重點不是動漫心得,所以我就不再多做介紹。
雖然動態感是有出來,但其實影片人物並沒有真正的在跳舞,那只是畫面瘋狂的抖動扭曲閃爍再加上快節奏的音樂所造成的錯覺。
正如我在上一篇文章中所說的,AI動畫還在發展中,目前檯面上的工具都還不實用,只能算是個玩具,較靜態的畫面尚且能看,較動態的畫面大多歪歪扭扭的面目全非,Moonvalley是如此,AnimateDiff亦是如此,如果只是玩玩那當然還是很有趣,但若認真想靠這些東西來做真正的動畫或電影那就還差的遠。
Moonvalley,一個簡單的AI影片生成工具。(文字生影片/動畫,txt to movie/anime)
但即使這些AI動畫工具都還有進步空間,你要想想,它可是光憑文字就能生出一段完整的動畫,光憑這點足夠厲害了,可玩性也很高。
這篇不是教學,單純是展示一下試玩的結果而已。
如果對AnimateDiff的使用有興趣的話,可以參考子不語大大寫過的教學:
這個影片的素材是利用Stable Diffusion web UI加上AnimateDiff外掛來產出動畫。繪圖模型使用了數種動漫風格的模型再配上星野愛的人物Lora。但內容我就沒再精修了,產出什麼就用什麼。
簡單列一下我使用AnimateDiff的心得:
雖然它依附在Stable Diffusion web UI之下,也能指定繪圖模型以及Lora,但生出來的動畫品質總是會比單純的AI繪圖還要差,常常有畫風崩壞、人物扭曲、顏色偏淡、線條模糊等狀況。
目前的AI繪圖技術已經能夠很輕鬆的畫出下面這種清晰且豐富的圖片了,不需要特別艱深的工具也能做到,也不需要精緻打磨(但手部爛掉是通病我就不再多說了):
上面這張圖我並沒有特別挑選,我主要只是想表達目前的AI繪圖已經達到隨便畫都有基本水準的地步了。
但同樣使用Stable Diffusion web UI並使用同樣的繪圖模型與Lora,從AnimateDiff產出的成品卻是下面這樣:
當然瘋狂重繪外加無數次的抽卡,肯定還是能挑出相對好看的成品,但要畫出好圖所要花的精力比起原生的AI繪圖困難多了。
舉個例,我生成單張512*768的的圖,並且不額外打磨與精修,總耗時大約在3秒,那麼生成一段16影格=16張圖的動畫照理來說大約一分鐘內也要完成,但實際上花了兩分多鐘。
拿單張AI繪圖耗時與AnimateDiff的繪圖耗時比較可能不算公平,畢竟背後的運作流程不同。
那就AnimateDiff自己比自己好了,以上面的例子來說,繪製16影格花了兩分多鐘,那麼我若想繪製280影格的動畫應該是差不多半個多小時就要畫好了,但實際上我卻是很誇張的畫了接近兩個小時才完成。
因此,若想產出較長的影片,比較建議拆成多個短影片再組合起來,短影片的生成耗時是比較划算的,產出10段28影格的影片與產出1段280影格的影片,對於AnimateDiff來說不是相同的事情。
AnimateDiff在整合prompt travel之後,能掌握的東西更多了,prompt travel能夠控制特定影格的內容,但實際上它是否聽話還是要點運氣,大部份的時候它是完全失控放飛自我的,不只飛的高還飛的歪。
比較靜態的指令表現較好,例如叫它笑或是不笑這種簡單的它可能辦的到。如果要有些動作就有困難了,例如我曾想試著做一段讓人物先坐後站的動畫,最後雖然坐與站的動作是有表現出來了,但畫面與人物也扭曲了。
如果想要更鮮明的動作,例如跑步,跳躍等等,它只會爛給你看,呈現出來的可能是一片歪歪扭扭的異形動畫。
以我這次的星野愛試做品來說,其實我無法明確的指定舞蹈動作,我只能隨性的用上一些類似dance、walking,singing的動詞增加畫面的動態,實際上它要怎麼動我是無法精細控制的。如果你覺得影片好像有跳舞的感覺,那也只是剛好畫面瘋狂亂抖外加閃爍造成的錯覺而已,如果改配上慢音樂你就會發現其實它是羊癲瘋發作。
但不要生氣,它還是個孩子,正如我一直強調的,AI動畫的技術還在發展中。
以一般觀念來說,一段流暢的畫面至少要每秒24影格,但你若真的想全靠AnimateDiff來產出所有需要的影格的話,首先就有我上述第2點提到的問題,單次直接產出大量影格的總耗時是非常驚人的。
第二個問題是影格數越多,影片內容就越容易失控,在影格數極多的情況下,只有前段幾十個影格還算切合主題,越到後面它越是瘋狂亂畫你已經不知道它要飛到哪裡去了,即使配合prompt travel可控性也仍然有限。
因此較理想的方式是先生出影格數較少的短影片,再靠補幀軟體潤飾使其更順暢,在這個情境之下,補幀軟體只負責影格之間的補幀,不會影響到原本的畫面主題,其次是單純的補幀會比AnimateDiff的產圖快上很多。以我的電腦來說,AnimateDiff要額外生出16個影格可能要耗時數分鐘,但若是靠補幀軟體補上16個影格只需要幾秒鐘的時間。
補幀軟體有很多選擇,我沒有深究太多,我使用的是Flowframes這套windows軟體,單純是因為它在google搜尋結果的前面並且是完全免費的軟體。
先說,我沒有愛,沒有時間,沒有體力,沒有毅力。
綜合上面所提到的所有優缺點,可以理解到,真的想靠AnimateDiff做出完善的動畫也不是不可能,比較可行的工作流程是先生出影格數較少的短影片,最後再將多段短影片組成一段長影片,並且配合補幀軟體使畫面流暢改善影格數少的頓挫感。
而每次只產出少量影格的話,更利於你對每個微小的片段監控與精修,可以一直重畫到滿意為止。
然後,不要貪心,你只能生出靜態緩慢的畫面,要跑要飛要打架什麼的超動態畫面基本上是不可能,除非你不介意它像我這次的成品一樣爛成一片,但若真的爛成這樣也稱不上是真正的動畫了。
但即使如此,即使降低要求,要生成一段順暢且不扭曲的畫面,也仍然是要有愛,有時間,有體力,有毅力,而最後嘔心瀝血的成品,看的最爽的還是自己而已,拿去跟檯面上的商業動畫比較只會傷心而已。
心得結束,
我的最後一個心得是:我的廢話比我想像的還要多。