# 李宏毅_生成式導論 2024_第17講:有關影像的生成式AI (上) — AI 如何產生圖片和影片 (Sora 背後可能用的原理) ###### tags: `Hung-yi Lee` `NTU` `生成式導論 2024` [課程撥放清單](https://www.youtube.com/watch?v=AVIKFXLCPY8&list=PLJV_el3uVTsPz6CTopeRp2L2t4aL_KgiI) ## 第17講:有關影像的生成式AI (上) — AI 如何產生圖片和影片 (Sora 背後可能用的原理) [課程連結](https://www.youtube.com/watch?v=5H2bVEmYDNg&list=PLJV_el3uVTsPz6CTopeRp2L2t4aL_KgiI&index=18) ### 與影像有關的生成式AI  影像相關的生成式AI大致有兩種,一種就是給定影像或是影片,然後由生成式AI生成文字說明。另一種則是給定條件,然後由生成式AI生成影像或是影片。 ### 與影像有關的生成式AI  簡報上的範例就是給定照片,然後讓生成式AI生成文字描述。 ### 與影像有關的生成式AI  如果你真的要模型回答誰帥的話,它還是會說,而且說話技巧很不錯,好人卡,發。 ### 生成影像的生成式AI - 文字生影像  課程會關注在給定條件的情況下讓模型生成影像或是影片。 目前最火熱的大概就是OpenAI發佈出來的Sora,不過目前並沒有真的開放使用就是。 ### 生成影像的生成式AI - 文字生影像(Sora)   這是Sora生成的範例,看課程中放出來的影片真的蠻驚人的,雖然細節上還是有點小問題就是。 ### 生成影像的生成式AI - 影像生影像  除了文字生成影像之外,也可以用影像來生影像,大致幾種: 1. 給定幾個frame,讓模型補完影片 2. style transfer 3. 畫質提升 ### 生成影像的生成式AI - 其他輸入生影像  [參考論文_AniPortrait: Audio-Driven Synthesis of Photorealistic Portrait Animation](https://arxiv.org/abs/2403.17694) 另一種目前常見的方式就是使用Talking Head,在給定一段語音跟照片之後,模型會讓你的照片嘴巴動起來,就像照片中的人物在唸這段話的樣子。 ### 生成影像的生成式AI - 其他輸入生影像 [參考論文_Adding Conditional Control to Text-to-Image Diffusion Models](https://arxiv.org/abs/2302.05543) 這邊說明的是,給定一個草稿,讓模型幫忙補完。照片的第一個row是草稿,然後向下就是各草稿由模型補完的狀況。 這模型就是知名的ControlNet。 ### 圖片是由像素所構成  繼續說下去之前,先來複習一下功課。 圖片是由像素所構成,像素愈多圖片愈清晰。簡報中左右圖很明顯的看的出差異。 ### 影片是由一張一張圖片所構成  像素構成圖片,多張圖片再構成影片,影片中的每一張圖片又稱為frame,中文為幀,fps指的就是每秒幀數。 ### 今日的人工智慧如何看影像  [參考論文_Masked Autoencoders Are Scalable Vision Learners](https://arxiv.org/abs/2111.06377) 最開始的作法也許是直接以像素提供給予機器,但這樣的作法真的太不行了,所以後來的作法會將照片經過編碼,可能會將一個64x64的照片先切割成4x4,然後經過編碼器之後再展開變成一個一維向量。 切割成4x4的每一個區域又稱為patch。 解碼器的部份則是以編碼展開後的一維向量做為輸入再還原回64x64的照片。 ### 今日的人工智慧如何看影像  [參考論文_ViViT: A Video Vision Transformer](https://arxiv.org/abs/2103.15691) 影片的概念是差不多,差別在於,影像的部份單純的考慮長寬,而影片的部份則是多了一個時間維度。 所以在作法上可以將相鄰的frame合成一組,然後再做一次編碼再縮壓一次,最後再展平成一個一維向量。 ### 今日的人工智慧如何看影像 雖然openai沒有明著說,不過sora也許也是用著類似的技術。 ### 以文字生圖為例  以文字生圖為例,我們就是希望模型可以看到一段文字然後生成對應的圖片。 ### 以文字生圖為例  [開源資料集](https://laion.ai/blog/laion-5b) 目前來說已經有不少開源資料集可以提供我們做這類的模型訓練。 教授特別提到,laion特別說明,他們只有搜集資料,但這些資料他們是沒有所有權的,所以拿去訓練之後的法律風險就是自負的概念? ### 以文字生圖為例  我們已經知道,圖片會被編碼器編碼成patch,然後展開變成一維向量。 也許搭配transformer的作法就是讓模型像文字接龍一樣把patch一個一個接出來。不過文字生圖很少用這種方式來處理就是。 這種文字接龍的作法也稱為Auto-Regressive。 ### 以文字生圖為例  先前的課程中提過,文字生圖的部份一般我們會採用Non Auto-Regressive將所有的patch一次生成。 這是個概念說明圖,後面說明實際處理方式。 ### 以文字生圖為例  實務上,如果我們要生成16個patch,那我們會讓transformer一開始就知道就是要生成16個patch,讓模型可以一次性的生成這16個patch。 這樣的作法多多少少還是可以利用到transformer內的attention,不至於讓各patch之間的生成毫無關聯。 不過即使如此還是無法完全避掉腦補問題就是,這下一堂課會有說明。 ### 如何評量影像生成的好壞  [參考論文_Learning Transferable Visual Models From Natural Language Supervision](https://arxiv.org/abs/2103.00020) 評量影像生成的好壞,雖然人才是最好的評分老師,不過人的時間實在有限,這種事還是交給機器來做。 大致作法就是,讓模型CLIP學習文字與影像的pair,當這個pair是正確的情況下就是給予高分,然後再讓影像跟其它的文字配對,給予低分。 ### 如何評量影像生成的好壞  基本上CLIP是開源模型,所以現在不少生成模型都是拿CLIP來做為衡量工具,稱為CLIK Score。 ### 一張圖勝過千言萬語   這邊是教授感概,很多圖是文字難以描述,圖右是教授家的鐘,希望利用文字描述讓模型生成一樣的,不過,人生好難。 生命總是會自己找到出路。 ### 個人化的圖像生成  [參考論文_An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion](https://arxiv.org/abs/2208.01618) [參考論文_DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generationn](https://arxiv.org/abs/2208.12242) 如果我們真的希望可以個人化一些影像生成,我們可以拿一些平常沒有在用的符號,簡報範例為『S*』,來做為你希望個人化的影象。 接著讓文字生圖模型知道,只要你提到『S*』就是要生成你的個人化影像。 ### 個人化的圖像生成  [參考論文_An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion](https://arxiv.org/abs/2208.01618) 根據參考論文中所述,只需要三到五張的各種不同角度的照片來微調模型,讓模型知道『S*』就是這個人化的照片,然後可以利用『S*』這個關鍵字來做各種生成。 ### 文字生影片的挑戰  本質上文字生影片跟文字生圖是差不多的,只是生成的是一大塊的patch。 生成影片的困難點在於簡報上所說明的那樣,每一分鐘要生成的patch大約有600萬個,而因為transformer中的self-attention,這兩兩之間的注意力計算就有600萬平方,也就是大約36兆次的計算。 ### 文字生影片的挑戰   也因為計算量真的太大了,所以目前的研究都是在於怎麼減化計算量。 上面簡報給的三種是不同的計算邏輯: * 3D:各patch、frame一起考慮 * 2D:不管前後frame,只自己frame的patch * 1D:只考慮時間維度的資訊,沒有空間維度的資訊 很明顯的,每一種都有它的缺點,最好的作法就是通通喇在一起。 ### 文字生影片的挑戰  喇在一起之後的計算量很明顯的相差千倍。 ### 文字生影片的挑戰  減少計算的方式還有一種,就是逐步的生成。 ### 文字生影片的挑戰  [論文參考_Imagen Video: High Definition Video Generation with Diffusion Models](http://arxiv.org/abs/2210.02303) Imagen Video就是採用類似的作法。其中框框內的文字16x40x24表示,16個frames,40x24的長寬,然後3fps。 模型從一個很小很簡單的生成開始然後逐步的放大。 ### 延伸閱讀   [論文參考_An Introduction to Vision-Language Modeling](http://arxiv.org/abs/2405.17247) [論文參考_Video Diffusion Models: A Survey](http://arxiv.org/abs/2405.03150)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.