AI_Art 板


LINE

今天查询Flux.1在reddit找到一篇觉得很棒的文章 [A detailled Flux.1 architecture diagram] 作者:TheLatentExplorer 看完後对Flux.1的Blocks结构(double & single)与作用有了一些概略的理解了 __________________ 底下内文使用chatgpt翻译 __________________ 一个月前,u/nrehiew_ 在 X 上发布了一张 Flux 架构的图, 後来这张图被 u/pppodong 转发到 Reddit 上。 这张图很棒,但对我来说有点乱,而且缺少了一些细节,让我无法更好地理解 Flux.1。 所以我决定自己做一张,并想分享在这里,也许有些人会感兴趣。 以这种方式展示完整的架构帮助我很大,尤其是因为这个模型没有真正的论文 (真可惜...)。 我必须做出几个表示上的选择,我很希望听听你们的批评,这样我可以改进, 并在未来做出更好的版本。 我计划使用 TikZ 制作一个更乾净的版本,并标注完整的张量形状, 但由於模型相当庞大,我需要先做个草稿,所以我在 draw.io 制作了这个版本。 我担心 Reddit 会把图片压缩得太厉害,所以我把它上传到 Github,请点击这里查看。 https://github.com/brayevalerien/Flux.1-Architecture-Diagram/ __________________ Flux.1 global architecture https://i.imgur.com/u9tNMu9.png
SingleStream block https://i.imgur.com/RyIXL5u.png
DoubleStream block https://i.imgur.com/DZ14PUR.png
MLP Emb./LastLayer/Modulation/QKNorm https://i.imgur.com/DIEiATa.png
__________________ [wh @nrehiew_] Flux's Architecture diagram :) https://x.com/nrehiew_/status/1820404554795802684 [TheLatentExplorer] A detailled Flux.1 architecture diagram https://reurl.cc/DKn2ed https://www.reddit.com/r/StableDiffusion/comments/1fds59s/ a_detailled_flux1_architecture_diagram/ __________________ 底下是zefy_zef将架构图喂给claude後的解释 https://reurl.cc/qnzR6D __________________ 感谢您提供这张图片。这个图示展示了 Flux.1 的global架构, 这似乎是一个影像生成模型。让我为您拆解关键组件和结构: 主要架构(上半部分): 该模型的左侧有一系列输入,包括「img」、「cond_emb」、「guidances」等。 这些输入经过各种处理步骤後,进入主流程。 架构的核心由 N=19 个 DoubleStream 区块组成,接着是 M=38 个 SingleStream 区块。 从 SingleStream 区块的输出到 DoubleStream 区块的输入之间有一个反馈循环。 SingleStream 区块(左下角): 这显示了 SingleStream 区块的内部结构。 它包括几个处理步骤,并包含跳跃连接和乘法操作。 DoubleStream 区块(右下角): 这显示了 DoubleStream 区块的较复杂结构。 它有两个主要的平行流程,并且有交叉连接和多个处理步骤。 附加组件(底部): - MLP Emb.: 用於嵌入的多层感知机。 - LastLayer: 模型的最终处理层。 - Modulation: 用於调制模型输出的组件。 - QKNorm: 可能是注意力机制中查询和键操作的正规化技术。 参考资料: 该图示引用了几个来源,包括 GitHub 仓库和研究论文, 表明这一架构是基於或受现有领域工作启发的。 这个架构似乎是一个复杂的影像生成模型,融合了来自各种先进技术的元素。 DoubleStream 和 SingleStream 区块可能允许在不同的尺度或 抽象层次上进行复杂的特徵处理和精炼。 __________________ zefy_zef继续将相关python程式给claude後的解释: __________________ 感谢您提供 model.py 的内容。这个档案确实给我们提供了对 Flux.1 架构的宝贵洞见。 让我为您详细解析: FluxParams 资料类别: 这定义了模型的超参数,包括输入维度、隐藏层大小、头数、 不同区块的深度以及其他配置选项。 Flux 类别: 这是主要的模型类别,实现了我们在图示中看到的架构。 Flux 类别的主要组件: a. 输入处理: - pe_embedder: 用於输入序列的位置信嵌入。 - img_in: 用於处理影像输入的线性层。 - time_in: 用於处理时间步骤信息的 MLP。 - vector_in: 用於处理向量输入的 MLP(可能是图示中的 'y')。 - guidance_in: 用於处理引导信息的可选 MLP。 - txt_in: 用於处理文本输入的线性层。 b. 主要架构: - double_blocks: 一组 DoubleStreamBlock 模组(图示中的 N=19)。 - single_blocks: 一组 SingleStreamBlock 模组(图示中的 M=38)。 - final_layer: 用於产生最终输出的 LastLayer 模组。 c. Forward 方法: - 处理输入(影像、文本、时间步骤、y、引导)。 - 应用位置编码。 - 将数据传递通过 DoubleStreamBlocks。 - 串接文本和影像特徵。 - 将结合的特徵传递通过 SingleStreamBlocks。 - 应用最终层来产生输出。 此实现与图示高度一致: 它展示了各种输入如何被处理和结合。 DoubleStreamBlocks 分别处理影像和文本,但有交互作用。 SingleStreamBlocks 处理结合後的特徵。该模型使用时间步骤嵌入, 这是扩散模型中常见的做法。 该架构表明这是一个多模态模型,能够处理影像和文本输入, 可能用於文本到影像生成或基於文本提示的影像编辑等任务。 __________________ 架构图TheLatentExplorer作者对claude见解的回覆: 这基本上是对的,虽然有点模糊! 不过要小心,单流区块(SingleStream block) 并没有回馈回路到双流区块(DoubleStream block)。 我对 Claude 的视觉能力印象深刻,也很佩服你做出的精彩总结! __________________ 底下是ChodaGreg询问single与double stream的区别 https://reurl.cc/36rn9V __________________ ChodaGreg: 单流(single stream)和双流(double stream)区块有什麽区别? 它们使用不同的 CLIP 吗? TheLatentExplorer: 双流区块会将影像和文本信息分开处理,并使用像是时间步骤、 CLIP 输出和位置嵌入(PE)等信息来调制它们。 而单流区块则将影像和文本流视为一体,允许两者之间有更灵活的信息交换 (例如文本可以关注影像,反之亦然)。 towelpluswater: 你的图示让我对这些资料集有很多想法。 与其用标题描述影像是什麽,或根本不标注, 或者使用触发词——那麽如果我们直接从 VAE 获得潜在表示, 并使用描述词作为每一层的转换,会怎样呢? 例如:“让它更红”搭配着影像逐步变红的进程, 但资料集本身(或许是其中的一部分)是影像,而每一阶段产生的嵌入表示。 这样每一个进程就与双流和单流区块中的潜在表示相对应,并且与 T5 转换文本搭配。 有人尝试过这个方法吗?这是普遍的知识吗?是一个坏主意还是好主意? 在昨晚读到这些之後我一直无法停止思考。 我在 flux-fp8-api 上写了一个简单的原型(嗯,是 Claude 按照我的规格写的), 由於这些都是程式码,对我来说比使用 Comfy 更简单—— 如果这是大家普遍知道的事情或是有人尝试过这个方法的话,我很希望能听听你的回馈。 TheLatentExplorer: 我不太确定理解你的意思——如果你有程式码可以分享,我很乐意阅读。 有一个用来训练 Flux.1 滑动 LoRA 的脚本,我没有尝试过, 但或许你可以达到类似的效果。 至於这个想法,我不太确定文本是与影像编辑模型互动的最佳方式。 谈到这个,我很少单纯使用 txt2img,通常都会搭配 ControlNet。 不过它可能会是一个有趣的工具,让影像编辑对更多人来说变得更容易。 __________________ Koke_Cacao进行比较後发现的一些内容 https://reurl.cc/d1z3ok __________________ Koke_Cacao: 查看架构程式码并将其与 SD3、PixArt 和原始的 DiT 进行比较, Flux 中有几个有趣或令人震惊的地方。 (1) 单流区块(single stream block) 是并行运行线性层和注意力机制(attention),而不是顺序运行。 (2) 双流区块(double stream block) 本质上是 T5 和影像 token 之间的标签串接,但每个 token 都是单独正规化的。 对於 (1),我无法找到一个好的解释, 除了在牺牲线性结构的情况下增加更多的并行性。 至於 (2),我个人认为,与交叉注意力(cross-attention)相比, token 串接有些浪费。 这两个设计选择似乎都是针对拥有更大显示记忆体的 GPU 进行优化的。 从程式码来看,双流区块与 SD3 论文中的 MMDiT 完全相同。 而单流区块则与原始 DiT 完全相同。 对於需要源程式码的人: https://github.com/black-forest-labs/flux/blob/main/src/flux/model.py 另外,感谢你指出单流区块来自 https://arxiv.org/pdf/2302.05442 __________________ 最後的这个是我觉得讲的不错的flux.1原始码解读文章: Stable Diffusion 3「精神续作」FLUX.1 原始码深度前瞻解读 https://zhouyifan.net/2024/09/03/20240809-flux1/ __________________ --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.129.21.173 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AI_Art/M.1731750338.A.C2D.html







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP