深入解析SDXL潜在空间以及如何改善其生成图像的方法
要点:
SDXL潜在空间包括4个通道,分别是亮度、青/红、绿/紫、图案/结构。
SDXL生成的颜色范围偏向黄色,原因是模型在生成过程中更偏向认知中的亮度、青/红、绿/紫,而相对较少使用蓝色。
通过实验性地探索SDXL潜在空间,作者提出了一些纠正SDXL输出的方法,包括去除异常值、平衡颜色、增加颜色范围等。
近日,Hugging Face社区成员Timothy Alexis Vass撰写了一篇名为《Explaining the SDXL latent space》的文章,重点解释了SDXL(可能是Super Diffusion XL)潜在空间的特性以及如何改善其生成图像的方法。
据了解,SDXL潜在空间的结构包括四个通道,分别对应图像的亮度、青/红、绿/紫、以及图案/结构。这为理解SDXL生成的图像提供了基础。
SDXL生成的图像往往存在颜色偏向黄色的问题,这是因为模型更倾向于使用亮度、青/红、绿/紫这几个主要颜色,而相对较少使用蓝色。通过对SDXL潜在空间的实验性探索,Timothy Alexis Vass提供了一种直接将SDXL潜在空间转换为RGB图像的线性逼近方法。此方法允许在生成图像之前对颜色范围进行调整,从而避免在后处理阶段进行矫正。
我们可以创建一个近似函数,直接将潜在变量转换为 RGB:
deflatents_to_rgb(latents):
在实际操作中,Timothy Alexis Vass提出了一些纠正SDXL输出的方法,包括去除异常值、平衡颜色、增加颜色范围等。通过一系列的代码实现,他展示了如何在生成图像的过程中应用这些方法,从而改善图像的质量。这些方法包括对潜在空间进行软裁剪、颜色平衡和范围增加等。
SDXL 颜色范围偏向黄色的可能原因
自然界中相对较少的东西是蓝色或白色的。在愉快的条件下,这些颜色在天空中最为突出。因此,该模型通过图像了解现实,以亮度(通道0)青色/红色(通道1)和石灰/中紫色(通道2)进行思考,其中红色和绿色是主要的,蓝色是次要的。这就是为什么 SDXL 世代通常偏向黄色(红色 绿色)。
在推理过程中,张量中的值将从min < -30和开始max >30,解码时的最小/最大边界大约-4为4。guidance_scale值越高,min和之间的差异就越大max。
理解边界的关键之一是查看解码过程中发生的情况:
decoded=vae.decode(latents/vae.scaling_factor).sample#(SDXLvae.scaling_factor=0.13025)decoded=decoded.div(2).add(0.5).clamp(0,1)#Thedynamicsoutsideof0to1atthispointwillbelost
如果此时的值超出0到1的范围,则钳位中的一些信息将会丢失。因此,如果我们能够在去噪过程中进行修正,以满足 VAE 的预期,我们可能会得到更好的结果。
需要纠正什么?
如何锐化模糊图像、白平衡、改善细节、增加对比度或增加颜色范围?最好的方法是从清晰的图像开始,该图像具有正确的白平衡、良好的对比度、清晰的细节和高范围。
模糊清晰的图像、改变色彩平衡、降低对比度、获取无意义的细节以及限制色彩范围比改善图像要容易得多。
SDXL 具有非常明显的颜色偏差倾向,并将值置于实际边界之外(左图)。通过将值居中并将它们置于边界内(右图)可以轻松解决这个问题:

defcenter_tensor(input_tensor,per_channel_shift=1,full_tensor_shift=1,channels=[0,1,2,3]):forchannelinchannels:
让我们以 SDXL 的输出为例
seed:77777777
请注意,我特意选择了较高的指导尺度。
我们如何修复这个图像?一半是绘画,一半是照片。颜色范围偏向黄色。右侧是具有完全相同设置的固定一代。

但在合理guidance_scale设置为7.5的情况下,我们仍然可以得出结论,固定输出更好,没有无意义的细节和正确的白平衡。

我们可以在潜在空间中做很多事情来总体改进一代,并且我们可以做一些非常简单的事情来针对一代中的特定错误:
异常值去除
这将通过修剪距分布平均值最远的值来控制无意义细节的数量。它还有助于以更高的guidance_scale进行生成。
#Shrinkingtowardsthemean(willalsoremoveoutliers)defsoft_clamp_tensor(input_tensor,threshold=3.5,boundary=4):ifmax(abs(input_tensor.max()),abs(input_tensor.min()))<4:returninput_tensor
色彩平衡和增加范围
我有两种主要方法来实现这一目标。第一个是在标准化值的同时向平均值收缩(这也将消除异常值),第二个是在值偏向某种颜色时进行修复。这也有助于生成更高的guidance_scale。
#Centertensor(balancecolors)defcenter_tensor(input_tensor,channel_shift=1,full_shift=1,channels=[0,1,2,3]):forchannelinchannels:
张量最大化
这基本上是通过将张量乘以一个非常小的量(例如1e-5几个步骤)来完成的,并确保最终张量在转换为 RGB 之前使用完整的可能范围(接近 -4/4)。请记住,在像素空间中,在保持完整动态的情况下降低对比度、饱和度和清晰度比增加对比度、饱和度和清晰度更容易。
#Maximize/normalizetensordefmaximize_tensor(input_tensor,boundary=4,channels=[0,1,2]):
回调实现示例
defcallback(pipe,step_index,timestep,cbk):iftimestep>950:
最后,Timothy Alexis Vass展示了在高引导比例下使用长提示进行生成的图像,通过对颜色范围的调整,使得整个提示成为可能。通过这些方法,可以在生成图像的初步阶段就对输出进行改善,而不是在后期进行矫正。这为提高SDXL生成图像质量提供了一种新的思路。
赵明回应华为中低端5G手机回归:没压力 新机目前没对手
荣耀100系列新机发布后,荣耀CEO赵明在接受媒体采访时表示,荣耀并不害怕竞争,并欢迎竞争对手的到来。当被问及华为在中低端市场推出5G功能对荣耀的影响时,赵明认为这体现了手机市场的活力,并为市场带来了一位强大的竞争对手。站长网2023-11-24 09:31:120000苹果iOS 17.5 正式版发布:彩虹光辉墙纸上线
站长之家(ChinaZ.com)5月14日消息:苹果今日凌晨为iPhone和iPad用户带来了全新的iOS17.5和iPadOS17.5正式版更新。站长网2024-05-14 09:14:380000“穷鬼套餐”,卖爆抖音
买一送一、加1元送一个、9块9套餐……在小红书,声量比肩麦当劳、肯德基,塔斯汀正在成为年轻人“穷鬼攻略”的一员。图源:小红书用户今年8月,塔斯汀在北京西站开出北京首店,引起了小红书用户的强烈反馈。交通枢纽本就是快餐类热衷的选址,加上北京西站又是人员流动极大的地方,把门店设立在此,相当于立了一块广告牌。站长网2023-09-05 20:41:380001Mistral AI推出Mixtral 8x7B:一种改变机器学习的SMoE语言模型 效果堪比GPT-3.5
##划重点:1.🚀**创新模型介绍:**MistralAI的研究团队推出了基于SparseMixtureofExperts(SMoE)模型的Mixtral8x7B语言模型,采用开放权重。2.🌐**性能突出:**Mixtral8x7B在多语言数据(32k令牌上下文大小)的预训练中表现优异,与Llama270B和GPT-3.5相比,性能不逊色甚至更好。站长网2024-01-15 15:25:5600003年前花17亿美金收购Azar,Match Group如今失望了吗
2021年2月,MatchGroup宣布以17.3亿美金的价格收购了视频聊天应用Azar和直播产品Hakuna的母公司HyperConnect,这笔交易最终在当年6月顺利完成。这笔交易在当时引起了海外媒体的广泛讨论,一是收购价格为MatchGroup收购史上之最,要知道这家巨头在2017年曾想以4.5亿美元收购行业老二Bumble(后遭拒绝),可见这笔收购在其心中分量;站长网2024-01-30 09:23:230000