目的:在谷歌的的colab上基于disco diffusion模型实现输入文本输出相应图片的功能
1、disco diffusion托管在谷歌的colab上,登录对应网址如下:
https://colab.research.google.com/github/alembics/disco-diffusion/blob/main/Disco_Diffusion.ipynb
2、保存副本文件
进入页面后,要先在云端硬盘中保存一份副本,在副本上进行接下来的操作。
点击“在新标签页中打开”后进入副本页面
点击确定:
点击“连接到google云端硬盘”
使用谷歌账户登录谷歌云盘
3、输入文本,输出图片
在第三部分的setting中,找到prompt模块,其中text_prompts 中输入文本,
将第四部分中的n_batches设置为1,这样生成的图片就只有一张,
点击全部运行,开始作图
在diffusion模块中 可以看到图片渲染的进度
渲染五分钟后:
4、常用参数
disco diffusion模型中还有诸多参数可以设置,作者整理了主要参数的含义及取值范围,如下表
序号分类字段描述取值1提示text_prompts对你希望机器生成的内容进行描述2image_prompts可以设置一些参考图片,以对其内容的更多描述(可选)3基本设置batch_nam该次创作图像的文件和文件夹名称4steps在创建一个图像时,去噪过程被细分为处理的步骤,50-10000,默认250,一般来说超过500步的时候,实际上的改善就不是特别明显了5width_height所需的最终图像大小,以像素为单位默认为[1280,768] 受显卡内存限制。每个边缘长度应设置为 64 像素的倍数,并且在默认 CLIP 模型设置上至少为 512 像素6clip_guidance_scale用于指示最终图像和描述文本(prompt)的相似度,是非常重要的参数之一。一般来说越高越好,但如果太大的话,它也会过度接近目标并扭曲图像默认5000,可选范围1500-1000007tv_scale总噪声方差,控制最终输出的 “平滑度”。如果使用,tv_scale将尝试平滑你的最终图像,以减少整体噪声默认为0,可选参数,范围为0-1000,设置为0即可关闭。8range_scale:用于调整颜色的对比度。较低的range_scale会增加对比度。非常低的值会产生更多鲜艳的或类似海报的图像。较高的range_scale会降低对比度,使图像更加柔和。默认150,可选参数,范围0-1000,0即关闭。9sat_scale过饱和调整。如果使用, sat_scale将有助于减轻过饱和度,如果你的图像过于饱和,可以增加 sat_scale来降低饱和度。可选参数,默认设置为0,即关闭,范围0-2000010cutn_batches每次迭代,AI 将图像切割为一个个小的图像块,称之为切片。并将每个切片与“提示”进行比较,以决定如何指导下一个扩散步骤。更多的切片通常可以产生更好的图像,因为 DD 在每个时间步有更多的机会微调图像精度。1-8,默认为411skip_augsDD 采用了“torchvision 增强”,在图像创建过程中引入随机图像缩放、透视和其他选择性调整。这些增强原本是想帮助提高图像质量,但可能对边缘产生您不想要的“平滑”效果。默认为否12init_image可选参数,作为AI生成图像的参考图像,也是起点图像,如果保持默认值(None),那么生成的结果就是一开始我们看到的噪声图像。用户上传13init_scale这控制了CLIP在多大程度上会试图匹配提供的init_image。这与上面的 clip_guidance_scale相互平衡。较大的值时,图像就不会在扩散过程中变化很大。而太多的clip_guidance_scale,初始图像可能会被丢失。默认值1000,可选范围10-20000,14skip_steps去噪的前几个步骤往往是非常戏剧性的,有些步骤 (可能占总数的10-15%) 可以被跳过而不而不影响最终的图像。但与此同时,这项值过大意味着跳过了太多的步骤,剩下的噪声可能不够产生新的内容,因此可能没有 "剩余时间 "来完成一幅满意的图像。必须可以整除steps,默认值10。如果有init_image,则需要跳过大约50%的steps来保证和init_image的相似15Models Settingsdiffusion_model提供9种可选的扩散模型16use_secondary_model是否选用次级模型默认为是17CLIP settings提供9种可选的clip模型VITB32、RN50等18OpenCLIP settings提供13种可选的OpenCLIP模型19切割安排cut_overview切割,设置越高,细节就越细节[12]*400+[4]*60020cut_innercut切割,值越大,主体越小,一般用来控制图片的视距[4]*400+[12]*60021cut_ic_pow画面精细程度,值越大,画面越精美清晰[1]*1000,取值范围0.5-100(方括号内)22高级设置perlin_init通常情况下,程序会使用一个充满随机噪声的图像作为扩散曲线的起点。如果选择了 perlin_init,程序将使用一个 Perlin 噪声模型作为初始状态。23perlin_mode设置 Perlin 噪声的类型:彩色、灰色或两者的混合,给你额外的噪声类型选择。24set_seed在扩散代码的深处,有一个随机数“种子”,它被用来作为确定扩散初始状态的基础。默认情况下,它是随机的,但你也可以指定你自己的种子。25eta是一个扩散模型变量,它在每个时间步长中混入随机量的比例噪声。0 是没有噪音,1.0 是更多的噪音。你可以把 eta 值调到 0 以下,但可能会给你带来不可预测的结果。0-1,默认值是 0.8,26clamp_gradclamp_grad 是一个内部限制器可以阻止程序产生极端的结果。如果在关闭 clamp_grad 的情况下,图像发生了巨大的变化,这可能意味着你的 clip_guidance_scale 太高,应该降低。默认开启27clamp_max为图像提供更平滑、更柔和的色彩,但设置更高的值 (0.15 - 0.3) 可以提供有趣的对比度和鲜度。0-0.3,默认值是 0.05,28运行设置n_batches此变量设置您希望 DD 创建的静止图像的数量。1-100,默认5029display_rate在DD运行期间,您可以使用此变量监控正在创建的每个图像的进度。如果 display_rate 设置为 50,DD 将在每 50 个迭代完成时显示一次进行中的图像。5-500,默认5030resume_run如果您的运行被中断(例如您自己终止了进程,或者因为断开连接),您可以使用此复选框从中断的地方恢复您的批处理运行。但是,您不得更改批处理中的设置,否则无法可靠地恢复。
4、查看和下载生成的图片
在谷歌云端硬盘的AI文件夹下的Disco_Diffusion下的images_out文件夹中存放了生成的图片。
版权归原作者 weixin_47930147 所有, 如有侵权,请联系我们删除。