
stable-diffusion.cpp 跑通 Chroma1-Radiance 文本生成图像实战指南【免费下载链接】stable-diffusion.cppDiffusion model(SD,Flux,Wan,Qwen Image,Z-Image,...) inference in pure C/C项目地址: https://gitcode.com/GitHub_Trending/st/stable-diffusion.cppChroma1-Radiance 是 stable-diffusion.cpp 支持的一款直接在像素空间做去噪的扩散模型命令行里不带 VAE也不用 CLIP跑完出来的就是最终图像。跟着这套流程走完你能独立复现 Radiance 的完整推理链路并说清它与标准 Flux 的结构差异。先分清 Radiance 在 Flux 家族中的位置标准 Chroma 是 Flux 架构上的蒸馏模型保留 Flux 的 DiT 主干和 VAE latent 空间只用蒸馏层替代了 guidance 输入。Chroma1-Radiance 在这条路线上再走一步去掉 VAE latent直接在像素域去噪再用 NeRF 解码器把 token 还原成像素。源码里它由VERSION_CHROMA_RADIANCE这个版本标识接入 Flux 推理管线结构参数加载时自动识别不需要你手工指定。跑之前备齐这两份权重你需要准备两类文件路径示例以官方文档 docs/chroma_radiance.md 为准扩散模型本体二选一预转换 GGUF从 silveroxides/Chroma1-Radiance-GGUF 仓库下载Chroma1-Radiance-v0.4-Q8_0.gguf放入models/diffusion_models/可直接运行原始 safetensors从 lodestones/Chroma1-Radiance 仓库下载之后用-M convert自行转换。文本编码器t5xxl_fp16.safetensors来自 comfyanonymous/flux_text_encoders 仓库放入models/clip/。注意 Radiance 不需要--vae。标准 Chroma 要靠 VAE 把 latent 解码回像素Radiance 的输入输出本身就是像素所以命令里少这一项。文本编码器的构建逻辑在 src/pipeline/model_builders.cpp#L137-L152检测到 Chroma 权重时conditioner 用T5CLIPEmbedder名字带 CLIP但在 Chroma 路径下只装载 t5xxl 的 T5 编码器不加载 CLIP 权重构造参数为false, 1, false即默认关闭 T5 注意力掩码、mask pad 取 1。你只备 t5xxl 一份就够了。一条命令跑通文本生成WindowsPowerShell.\bin\Release\sd-cli.exe --diffusion-model ..\models\diffusion_models\Chroma1-Radiance-v0.4-Q8_0.gguf --t5xxl ..\models\clip\t5xxl_fp16.safetensors -p a lovely cat holding a sign says chroma radiance cpp --cfg-scale 4.0 --sampling-method euler -vLinux / macOS./build/bin/sd-cli --diffusion-model models/diffusion_models/Chroma1-Radiance-v0.4-Q8_0.gguf --t5xxl models/clip/t5xxl_fp16.safetensors -p a lovely cat holding a sign says chroma radiance cpp --cfg-scale 4.0 --sampling-method euler -v逐参数拆解参数作用示例值备注--diffusion-model扩散模型权重路径Chroma1-Radiance-v0.4-Q8_0.gguf支持 GGUF / safetensors版本由权重内容自动识别--t5xxlT5-XXL 文本编码器权重路径t5xxl_fp16.safetensors漏传则提示词完全失效-p/--prompt文本提示词a lovely cat holding a sign...直接控制生成内容--cfg-scaleClassifier-Free Guidance 强度4.0Flux 系常用 1~4 区间--sampling-method采样器euler蒸馏模型步数需求少-v开启 verbose 日志—用来验证自动检测结果出图后用文档里那张assets/flux/chroma1-radiance.png示例图对照画面主体和标语牌文字一致说明推理链路正常。它内部在做什么前向链路五步走前向入口forward()检测到VERSION_CHROMA_RADIANCE时分发进forward_chroma_radiance整条链路五步像素输入。该版本的输入通道数固定为 3、patch 尺寸固定为 16输入x是像素张量而不是 latent。Patch 化可选半分辨率缩放。先补齐到 16 的整数倍再 patchify若权重里实际 patch 是 8会触发fake_patch_size_x2权重按一半 patch 训练时的兼容路径输入先双线性缩到一半卷积核也相应减半缩放后进img_in_patch卷积层见 src/model/diffusion/flux.hpp#L1184-L1268。Transformer 主干。调用forward_orig走与普通 Flux 相同的 double block / single block 注意力计算文本 context 在这里注入。NeRF 解码。Transformer 输出 token 与原始 patch 像素一起进入NeRF 解码器一组 MLP 块负责把 token 特征融合还原成像素块用 NeRF 的位置编码思路处理高频细节NerfEmbedder做 DCT 频域嵌入4 层NerfGLUBlock融合unpatchify拼回空间图经NerfFinalLayerConv输出。结构参数定义在ChromaRadianceConfighidden 64、depth 4、max_freqs 8见 src/model/diffusion/flux.hpp#L22-L29。x0 残差收尾。权重名中含__x0__时输出经过x0 预测模型直接预测干净图像而不是预测噪声的残差变换按 (noisy − predicted) / timesteps 还原采样器期望的目标。自动检测也发生在加载阶段权重含distilled_guidance_layer.in_proj.weight判定为 Chroma 系列含img_in_patch.weight时读出真实 patch 尺寸含__x0__时打开 x0 路径verbose 日志分别打印 using x0 prediction、actual radiance patch size、using fake x2 patch sizesrc/model/diffusion/flux.hpp#L22-L177。还能拧哪些旋钮采样与 model-argscfg-scale示例取 4.0。Flux 系蒸馏模型常用区间是 1~4调低画面更柔和但遵循度下降调高对比更强、容易过饱和。sampling-method示例用euler。Radiance 是蒸馏结构步数不需要很多采样器保持 euler 即可换其他采样器需要自己重新调步数。model-argsChroma 系的 T5 掩码参数通过--model-args keyvalue传入解析逻辑在 src/conditioning/conditioner.hpp#L1381-L1408。chroma_use_t5_mask走严格布尔解析只能填true/falsechroma_t5_mask_pad走严格整数解析。值类型不对会打印ignoring invalid Chroma T5 model arg警告并被忽略。标准 Chroma 的运行示例见 docs/chroma.md还带--model-args chroma_use_dit_maskfalse --clip-on-cpu。这套组合是为带 VAE 的 Chroma 流程设计的Radiance 不依赖 VAE迁移时只保留 T5 相关参数。跑不通时只看这三处你看到IMPORTANT NOTICE: No text encoders provided, cannot process prompts!大概率原因--t5xxl漏传或路径指向的文件里不含 t5xxl 权重。conditioner 以text_encoders.t5xxl前缀识别编码器src/conditioning/conditioner.hpp#L1381-L1408找不到就直接跳过提示词处理。 怎么修核对--t5xxl路径指向真实的t5xxl_fp16.safetensors。此时生成结果与文字无关。你看到-v日志里没有 using x0 prediction 或 actual radiance patch size大概率原因加载的不是 Radiance 蒸馏权重下错了文件或转换错了对象。 怎么修确认文件名是Chroma1-Radiance-v0.4-Q8_0.gguf重新从 silveroxides/Chroma1-Radiance-GGUF 下载自行转换的场景检查-M convert的输入输出是否对应。你看到ignoring invalid Chroma T5 model arg keyvalue大概率原因model-args 的值类型不合规例如给chroma_use_t5_mask传了0或yes。 怎么修布尔参数只写true/false整数参数只写十进制数字格式严格为keyvalue。收个尾两篇延伸阅读Chroma1-Radiance 的接入说明 Flux 管线对蒸馏变体的适配已经自动化备齐权重与 t5xxl一条命令即可出图。想继续深入看 docs/chroma.md标准 Chroma 的转换与运行和 docs/flux.mdFlux 全家族参数。【免费下载链接】stable-diffusion.cppDiffusion model(SD,Flux,Wan,Qwen Image,Z-Image,...) inference in pure C/C项目地址: https://gitcode.com/GitHub_Trending/st/stable-diffusion.cpp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考