kabut di atas perbukitan hijau
piring pecah di rumput
cinta dan perhatian kosmik
seorang penjelajah waktu di tengah keramaian
hidup selama wabah
kedamaian meditatif di hutan yang diterangi matahari
seorang pria melukis gambar yang seluruhnya berwarna merah
pengalaman psikedelik di LSD
Alat baris perintah sederhana untuk pembuatan teks ke gambar menggunakan CLIP dan Sirene OpenAI. Penghargaan diberikan kepada Ryan Murdock atas penemuan teknik ini (dan atas nama besarnya)!
Buku catatan asli
Buku catatan baru yang disederhanakan
Ini mengharuskan Anda memiliki GPU Nvidia atau GPU AMD
$ pip install deep-daze
Menganggap Python diinstal:
pip install deep-daze
$ imagine " a house in the forest "
Untuk Windows:
imagine " a house in the forest "
Itu saja.
Jika Anda memiliki cukup memori, Anda bisa mendapatkan kualitas yang lebih baik dengan menambahkan tanda --deeper
$ imagine " shattered plates on the ground " --deeper
Dengan cara pembelajaran mendalam yang sebenarnya, lebih banyak lapisan akan memberikan hasil yang lebih baik. Defaultnya adalah 16
, tetapi dapat ditingkatkan menjadi 32
tergantung pada sumber daya Anda.
$ imagine " stranger in strange lands " --num-layers 32
NAME
imagine
SYNOPSIS
imagine TEXT < flags >
POSITIONAL ARGUMENTS
TEXT
(required) A phrase less than 77 tokens which you would like to visualize.
FLAGS
--img=IMAGE_PATH
Default: None
Path to png/jpg image or PIL image to optimize on
--encoding=ENCODING
Default: None
User-created custom CLIP encoding. If used, replaces any text or image that was used.
--create_story=CREATE_STORY
Default: False
Creates a story by optimizing each epoch on a new sliding-window of the input words. If this is enabled, much longer texts than 77 tokens can be used. Requires save_progress to visualize the transitions of the story.
--story_start_words=STORY_START_WORDS
Default: 5
Only used if create_story is True. How many words to optimize on for the first epoch.
--story_words_per_epoch=STORY_WORDS_PER_EPOCH
Default: 5
Only used if create_story is True. How many words to add to the optimization goal per epoch after the first one.
--story_separator:
Default: None
Only used if create_story is True. Defines a separator like ' . ' that splits the text into groups for each epoch. Separator needs to be in the text otherwise it will be ignored
--lower_bound_cutout=LOWER_BOUND_CUTOUT
Default: 0.1
Lower bound of the sampling of the size of the random cut-out of the SIREN image per batch. Should be smaller than 0.8.
--upper_bound_cutout=UPPER_BOUND_CUTOUT
Default: 1.0
Upper bound of the sampling of the size of the random cut-out of the SIREN image per batch. Should probably stay at 1.0.
--saturate_bound=SATURATE_BOUND
Default: False
If True, the LOWER_BOUND_CUTOUT is linearly increased to 0.75 during training.
--learning_rate=LEARNING_RATE
Default: 1e-05
The learning rate of the neural net.
--num_layers=NUM_LAYERS
Default: 16
The number of hidden layers to use in the Siren neural net.
--batch_size=BATCH_SIZE
Default: 4
The number of generated images to pass into Siren before calculating loss. Decreasing this can lower memory and accuracy.
--gradient_accumulate_every=GRADIENT_ACCUMULATE_EVERY
Default: 4
Calculate a weighted loss of n samples for each iteration. Increasing this can help increase accuracy with lower batch sizes.
--epochs=EPOCHS
Default: 20
The number of epochs to run.
--iterations=ITERATIONS
Default: 1050
The number of times to calculate and backpropagate loss in a given epoch.
--save_every=SAVE_EVERY
Default: 100
Generate an image every time iterations is a multiple of this number.
--image_width=IMAGE_WIDTH
Default: 512
The desired resolution of the image.
--deeper=DEEPER
Default: False
Uses a Siren neural net with 32 hidden layers.
--overwrite=OVERWRITE
Default: False
Whether or not to overwrite existing generated images of the same name.
--save_progress=SAVE_PROGRESS
Default: False
Whether or not to save images generated before training Siren is complete.
--seed=SEED
Type: Optional[]
Default: None
A seed to be used for deterministic runs.
--open_folder=OPEN_FOLDER
Default: True
Whether or not to open a folder showing your generated images.
--save_date_time=SAVE_DATE_TIME
Default: False
Save files with a timestamp prepended e.g. ` %y%m%d-%H%M%S-my_phrase_here `
--start_image_path=START_IMAGE_PATH
Default: None
The generator is trained first on a starting image before steered towards the textual input
--start_image_train_iters=START_IMAGE_TRAIN_ITERS
Default: 50
The number of steps for the initial training on the starting image
--theta_initial=THETA_INITIAL
Default: 30.0
Hyperparameter describing the frequency of the color space. Only applies to the first layer of the network.
--theta_hidden=THETA_INITIAL
Default: 30.0
Hyperparameter describing the frequency of the color space. Only applies to the hidden layers of the network.
--save_gif=SAVE_GIF
Default: False
Whether or not to save a GIF animation of the generation procedure. Only works if save_progress is set to True.
Teknik yang pertama kali dirancang dan dibagikan oleh Mario Klingemann, memungkinkan Anda melakukan prime jaringan generator dengan gambar awal, sebelum diarahkan ke teks.
Cukup tentukan jalur ke gambar yang ingin Anda gunakan, dan opsional jumlah langkah pelatihan awal.
$ imagine ' a clear night sky filled with stars ' --start_image_path ./cloudy-night-sky.jpg
Gambar awal prima
Kemudian dilatih dengan perintah A pizza with green pepper.
Kita juga dapat memasukkan gambar sebagai tujuan pengoptimalan, alih-alih hanya melakukan priming pada jaringan generator. Deepdaze kemudian akan memberikan interpretasinya sendiri terhadap gambar itu:
$ imagine --img samples/Autumn_1875_Frederic_Edwin_Church.jpg
Gambar asli:
Interpretasi jaringan:
Gambar asli:
Interpretasi jaringan:
$ imagine " A psychedelic experience. " --img samples/hot-dog.jpg
Interpretasi jaringan:
Mode reguler untuk teks hanya mengizinkan 77 token. Jika Anda ingin memvisualisasikan cerita/paragraf/lagu/puisi lengkap, setel create_story
ke True
.
Mengingat puisi “Berhenti di Hutan Pada Malam Bersalju” oleh Robert Frost - "Hutan milik siapa ini, saya rasa saya tahu. Rumahnya ada di desa; Dia tidak akan melihat saya berhenti di sini Untuk melihat hutannya dipenuhi salju. Kuda kecilku pasti menganggapnya aneh Berhenti tanpa rumah pertanian di dekatnya Antara hutan dan danau beku Malam paling gelap tahun ini. Dia menggoyangkan lonceng pengamannya Untuk menanyakan apakah ada kesalahan. Satu-satunya suara yang lain hanyalah sapuan angin sepoi-sepoi Dan serpihan berbulu halus. Hutannya indah, gelap dan dalam, Tapi aku punya janji yang harus kutepati, Dan bermil-mil lagi sebelum aku tidur, Dan bermil-mil lagi sebelum aku tidur.".
Kami mendapatkan:
deep_daze.Imagine
dengan Python from deep_daze import Imagine
imagine = Imagine (
text = 'cosmic love and attention' ,
num_layers = 24 ,
)
imagine ()
Simpan gambar dalam format insert_text_here.00001.png, insert_text_here.00002.png, ...hingga (total_iterations % save_every)
imagine = Imagine (
text = text ,
save_every = 4 ,
save_progress = True
)
Membuat file dengan stempel waktu dan nomor urut.
misalnya 210129-043928_328751_insert_text_here.00001.png, 210129-043928_512351_insert_text_here.00002.png, ...
imagine = Imagine (
text = text ,
save_every = 4 ,
save_progress = True ,
save_date_time = True ,
)
Jika Anda memiliki setidaknya 16 GiB vram yang tersedia, Anda seharusnya dapat menjalankan pengaturan ini dengan sedikit ruang gerak.
imagine = Imagine (
text = text ,
num_layers = 42 ,
batch_size = 64 ,
gradient_accumulate_every = 1 ,
)
imagine = Imagine (
text = text ,
num_layers = 24 ,
batch_size = 16 ,
gradient_accumulate_every = 2
)
Jika Anda sangat ingin menjalankan ini pada kartu dengan vram kurang dari 8 GiB, Anda dapat menurunkan image_width.
imagine = Imagine (
text = text ,
image_width = 256 ,
num_layers = 16 ,
batch_size = 1 ,
gradient_accumulate_every = 16 # Increase gradient_accumulate_every to correct for loss in low batch sizes
)
Eksperimen ini dilakukan dengan Super RTX 2060 dan 3700X Ryzen 5. Pertama-tama kami menyebutkan parameternya (bs = ukuran batch), lalu penggunaan memori, dan dalam beberapa kasus, iterasi pelatihan per detik:
Untuk resolusi gambar 512:
Untuk resolusi gambar 256:
@NotNANtoN merekomendasikan ukuran batch 32 dengan 44 lapisan dan pelatihan 1-8 epoch.
Ini hanya penggoda. Kami akan dapat menghasilkan gambar, suara, apa pun sesuka hati, dengan bahasa alami. Holodeck akan menjadi nyata dalam hidup kita.
Silakan bergabung dalam upaya replikasi DALL-E untuk Pytorch atau Mesh Tensorflow jika Anda tertarik untuk memajukan teknologi ini.
Big Sleep - CLIP dan generator dari Big GAN
@misc { unpublished2021clip ,
title = { CLIP: Connecting Text and Images } ,
author = { Alec Radford, Ilya Sutskever, Jong Wook Kim, Gretchen Krueger, Sandhini Agarwal } ,
year = { 2021 }
}
@misc { sitzmann2020implicit ,
title = { Implicit Neural Representations with Periodic Activation Functions } ,
author = { Vincent Sitzmann and Julien N. P. Martel and Alexander W. Bergman and David B. Lindell and Gordon Wetzstein } ,
year = { 2020 } ,
eprint = { 2006.09661 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.CV }
}