例如,文章开头的视频使用的是 Jeremy Torman 练习的模型 。生成视频所用代码如下所示:
L=LucidSonicDream(song=raspberry.mp3,style=VisionaryArt.pkl)L.hallucinate(file_name=raspberry.mp4,pulse_react=1.2,motion_react=0.7,contrast_strength=0.5,flash_strength=0.5) 使用单独的音轨
这个包还可以用作音乐可视化工具,使用者可以上传单独的音轨,进而控制 Pulse、Motion、Class、Contrast 和 Flash 。假如你想使这些视觉组件与特定的乐器同步,使用这个包是不错的选择 。你还可以利用这些单独的音轨自定义特效 。
以下是示例代码:
L=LucidSonicDream(song=lucidsonicdreams_main.mp3,pulse_audio=lucidsonicdreams_pulse.mp3,class_audio=lucidsonicdreams_class.mp3,style=wikiart)L.hallucinate(lucidsonicdreams.mp4,pulse_react=0.25,motion_react=0,classes=[1,5,9,16,23,27,28,30,50,68,71,89],dominant_classes_first=True,class_shuffle_seconds=8,class_smooth_seconds=4,class_pitch_react=0.2,contrast_strength=0.3) 自定义特效
除了内置的「Contrast」和「Flash」特效外,Lucid Sonic Dreams 包还答应用户自定义创建特效 。用户只需创建一个包含至少以下 3 个参数的函数即可:array,表示应用特效的图像;strength,决定对音乐的反应强度;amplitude 表示在任意给定时间点的音量 。之后,将该自定义函数传输至 EffectsGenerator 对象 。
作者用以下代码进行了试验,其使用的是 scikit-image 的 swirl 特效:
importnumpyasnpfromskimage.transformimportswirlfromlucidsonicdreamsimportEffectsGeneratordefswirl_func(array,strength,amplitude):swirled_image=swirl(array,rotation=0,strength=100*strength*amplitude,radius=650)return(swirled_image*255).astype(np.uint8)swirl_effect=EffectsGenerator(swirl_func,audio=unfaith.mp3,strength=0.2,percussive=False)L=LucidSonicDream(unfaith.mp3,style=textures)L.hallucinate(unfaith.mp4,motion_react=0.15,speed_fpm=2,pulse_react=1.5,contrast_strength=1,flash_strength=1,custom_effects=[swirl_effect])files.download(unfaith.mp4) 使用其他 GAN 架构
你还可以使用其他 GAN 架构 。只需定义一个函数,该函数以一组噪声向量和类别向量(NumPy 数组)作为输入,输出一组 Pillow 图像 。事实上,该函数甚至不需要使用 GAN,它可以是能够将输入向量转换成图像的任意函数 。
下列代码使用 BigGAN 的 PyTorch 实现复现了 Deep Music Visualizer:
frompytorch_pretrained_bigganimportBigGAN,convert_to_imagesimporttorchbiggan=BigGAN.from_pretrained(biggan-deep-512)biggan.to(cuda:0)defbiggan_func(noise_batch,class_batch):noise_tensor=torch.from_numpy(noise_batch).cuda()class_tensor=torch.from_numpy(class_batch).cuda()withtorch.no_grad():output_tensor=biggan(noise_tensor.float(),class_tensor.float(),truncation=1)returnconvert_to_images(output_tensor.cpu())L=LucidSonicDream(sea_of_voices_inst.mp3,style=biggan_func,input_shape=128,num_possible_classes=1000)L.hallucinate(sea_of_voices.mp4,output_audio=sea_of_voices.mp3,speed_fpm=3,classes=[13,14,22,24,301,84,99,100,134,143,393,394],class_shuffle_seconds=10,class_shuffle_strength=0.1,class_complexity=0.5,class_smooth_seconds=4,motion_react=0.35,flash_strength=1,contrast_strength=1)
- 中国风水第一村 中国风水圣地在这个村庄
- 六爻断卦 六爻卦如何断卦?这个论述太精辟!
- 电商运营主要干什么 电商运营是做什么
- 这个夏天“西瓜很忙” 西瓜的功效与作用
- 伏特加什么味道好喝_伏特加什么味道
- 加油尾款人表情包
- qq下载的文件安装不了 qq为什么安装不了
- 挚友微信步数怎么回事 微信步数为什么总是
- 打工人表情包带字无水印
- 打工人是什么梗