• 海杰
    2023-08-12 来自新加坡
    老师我有几个问题。 1. 在SD里,CLIP的作用就是对prompt进行编码。文生图txt2img是用CLIP的文本编码器,图生图img2img用的是图像编码器,这样理解对吗? 2. 看到有些模型用CLIP skip 2,就是不用编码器的最后一层,这样设计的原理是什么?会得到更好的模型吗? 3. 外面下载的各种SD基础模型,它们用的都是同一个CLIP吗?下载的几个G的一个safetensors文件里,也包括CLIP的权重吗?

    作者回复: 你好。关于Q1,在SD中CLIP的作用是对prompt进行编码,文生图用CLIP文本编码器,这样的理解是准确的。图生图img2img并不会用到图像编码器,而是直接在图像中加入噪声然后按照SD流程进行去噪,去噪过程仍然使用CLIP文本编码器做引导。针对Q2,CLIP Skip设置为2这个知识点,在第16讲会展开讨论,本质上是使用CLIP文本编码器倒数第二层的特征而不是最后一层特征,这样做的原因是由于CLIP的训练方式导致最后一层特征更靠近训练的图像数据,从而对prompt的表达能力变弱。实操经验是使用倒数第二层特征能让模型更听话、文生图效果更好。针对Q3,我们下载的各种SD基础模型中,包含CLIP、VAE、UNet等模型的权重。不同SD中用到的CLIP可能不同,比如SD1.x和SD2.x、SDXL中用的CLIP就不一样。希望能帮助到你。

    共 2 条评论
    3
  • 恨%心~
    2023-09-06 来自北京
    老师好,请问下如何分别用CLIP 和OpenCLIP推断任意图片的prompt,有对应的代码示例吗?

    作者回复: 你好。CLIP和OpenCLIP模型无法推断图片的prompt,如果想得到图像prompt,需要使用BLIP这类文本生成模型,可以参考这个链接:https://huggingface.co/spaces/Salesforce/BLIP。希望能帮助到你。

    
    
  • peter
    2023-08-08 来自北京
    请教老师几个问题: Q1:动图是用什么做的? Q2:512纬度空间,这个512也是经验值吗? Q3:以4亿对图文数据集为例,硬件资源的需求量是个什么样子? 比如存储空间需要多少台机器,计算需要多少台机器等。 Q4:我的笔记本电脑是惠普电脑,16G内存,不知道是否有GPU(估计有但不知道多大),这样的配置能运行老师的例子吗?

    作者回复: 你好。针对Q1,动图是生成多张图片直接合成GIF图片,可以用一些工具或者python代码来实现。针对Q2,512维度是经验值,比如OpenCLIP一个较大的模型,这个数值可以是1280。针对Q3,4亿图文对不建议存储到个人电脑,当然OpenAI的数据也没有开源。如果需要复现CLIP论文可以使用LAION开源的400M数据。一张显卡无法训练CLIP,需要多机多卡并行来做。对于我们而言,更多需要关注CLIP的使用即可,可以根据课程中的Colab来操作。针对Q4,可以使用CPU模式运行CLIP的推理,这样便可以运行课程的例子。希望能够帮助到你。

    
    
  • yanyu-xin
    2023-08-07 来自广东
    按着老师的代码,一次性在Colab运行成功。 第二个作业: 第一个图片,用CLIP测试,结果是:“Predicted class: cat prob: cat 1.0, dog 0.0”; 用OpenCLIP测试结果是:“prob: a diagram 8.51679033075925e-06, a dog 1.5743193216621876e-05, a cat 0.9999756813049316” 第二个图片,用CLIP测试,结果是:“Predicted class: dog prob: cat 0.0, dog 1.0” 用OpenCLIP测试结果是:“prob: a diagram 8.806668120087124e-06, a dog 0.999969482421875, a cat 2.167693673982285e-05”

    编辑回复: 优秀,后面还有更多实战和作业,继续练习呀,参与越多收获越大,加油~

    
    