ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

flux Gradio 演示中 image2image strength(Noising strength)如何控制图生图强度

2026/9/13 4:46:46 拓冰建站 浏览量
flux Gradio 演示中 image2image strength(Noising strength)如何控制图生图强度 flux Gradio 演示中 image2image strengthNoising strength如何控制图生图强度【免费下载链接】fluxOfficial inference repo for FLUX.1 models项目地址: https://gitcode.com/GitHub_Trending/flux49/flux在 FLUX 官方推理仓库的 Gradio 交互界面demo_gr.py里做图生图时界面中的 “Noising strength” 滑块就是image2image_strength参数。它决定输入图被加噪后重新去噪的程度数值越高输出偏离原图越多数值越低输出越接近输入图。本文基于 demo_gr.py 的实际实现说明如何在 Gradio 演示中启用该功能、如何调节强度以及如何确认生成结果确实走了图生图路径。前提是需要一个可用的模型其中图生图只对flux-dev开放。准备与启动 Gradio 演示按照 README 的本地安装步骤在仓库目录下完成环境搭建python3.10 -m venv .venv source .venv/bin/activate pip install -e .[all]模型权重不需要单独准备docs/text-to-image.md 说明权重会在启动任意 demo 时自动从 HuggingFace 下载到checkpoints/目录也可以手动将权重放入checkpoints/或通过环境变量指定路径export FLUX_MODELyour model path here export FLUX_AEyour autoencoder path here启动 Gradio 演示。由于图生图只对flux-dev开放见下文说明这里用flux-devpython demo_gr.py --name flux-dev --device cuda可选参数来自 docs/text-to-image.md 的说明与demo_gr.py的命令行定义--offload模型不用时卸载到 CPU适合显存不足的场景--share生成演示的公开链接--device默认在有 CUDA 时用cuda否则用cpu。在界面中启用 Noising strength 滑块Gradio 界面里图生图相关控件默认是隐藏的需要先勾选 “Image to Image” 复选框勾选 “Image to Image” 后update_img2img回调会把 “Input Image” 上传框和 “Noising strength” 滑块一并显示出来见demo_gr.py中do_img2img.change(update_img2img, ...)的绑定。在 “Input Image” 中上传一张图片在 “Prompt” 中输入提示词。“Noising strength” 滑块的取值范围是0.0到1.0步长0.1默认值0.8对应gr.Slider(0.0, 1.0, 0.8, step0.1, labelNoising strength, ...)。点击 “Generate” 生成。注意两点勾选框的定义是gr.Checkbox(labelImage to Image, valueFalse, interactivenot is_schnell)即使用flux-schnell时该复选框不可交互也就无法使用图生图。Streamlit 版 demo_st.py 对同一功能的帮助文案写得更直白“Partially noise an image and denoise again to get variations. Only works for flux-dev”。未勾选 “Image to Image” 时generate_image收到的init_image为空整个流程就是普通的文生图此时滑块不显示也不生效。Noising strength 如何作用于采样过程启用图生图后generate_image中与强度相关的逻辑按顺序是init_image torch.nn.functional.interpolate(init_image, (opts.height, opts.width)) ... init_image self.ae.encode(init_image.to()) ... t_idx int((1 - image2image_strength) * num_steps) t timesteps[t_idx] timesteps timesteps[t_idx:] x t * x (1.0 - t) * init_image.to(x.dtype)逐行看它的含义输入图先被插值到输出的width×height默认 1360 × 768可在 “Advanced Options” 里调整再用 AutoEncoder 编码成 latent。也就是说输出比例由界面的 Width/Height 决定而不是由输入图的原始比例决定。用 seed 生成一份全图尺寸的纯噪声x并取num_steps对应的 timestep 调度表flux-dev默认 50 步。t_idx int((1 - strength) * num_steps)强度越高1 - strength越小t_idx越靠近调度表开头。调度表从t 1递减到0get_schedule基于torch.linspace(1, 0, num_steps 1)。timesteps timesteps[t_idx:]从t_idx处截断调度表后面的去噪只执行剩余部分。x t * x (1.0 - t) * init_image把纯噪声与输入图 latent 按当前 timestep 的比例混合作为去噪起点。两条路径由同一个strength值共同控制效果可以这样理解strength 1.0t_idx 0t 1混合结果就是纯噪声并执行完整的 50 步调度等同于一次完整重新生成输出与原图关系最弱、受 prompt 影响最大。strength 0.0t_idx num_stepst 0调度表只剩最后一个点denoise循环一步都不执行输出基本就是重新编码后的输入图本身。中间值如默认 0.8t_idx int(0.2 * 50) 10即跳过前 10 个 timestep从调度表第 10 位开始去噪混合比例也是0.2左右的噪声权重加0.8左右的图像权重以调度表第 10 位的实际t值为准。同时可以确认一点Number of steps会影响强度到起始位置的换算因为t_idx是按num_steps的整数比例取的。步数不同同一个 strength 值跳过的实际 timestep 数不同。验证生成结果生成过程中有以下几个可核对的点均来自demo_gr.py的实际输出逻辑终端会先打印Generating prompt with seed seed结束后打印Done in 秒数s.。seed 为-1时表示随机取值界面 “Used Seed” 一栏会给出本次实际使用的 seed方便复现同一输入图与同一强度的结果做对比。界面右侧 “Generated Image” 面板显示结果图并出现 “Download full-resolution” 下载按钮通过 “Add sampling parameters to metadata?” 勾选可把 prompt 写入 EXIF。本地会保存到output/gradio/uuid.jpg。该文件的 EXIF 中Software标签为AI generated;img2img;flux未提供输入图时是AI generated;txt2img;flux。查看这个标签是最直接的判断方式确认这次生成确实走了图生图路径而不是文生图。输出图会经过 NSFW 分类器若 nsfw 分数不低于 0.85常量NSFW_THRESHOLD 0.85界面 Warning 栏会显示Your generated image may contain NSFW content.且不会返回图片和下载文件。限制与边界图生图仅限flux-devflux-schnell下 “Image to Image” 复选框不可勾选“Noising strength” 滑块始终隐藏。滑块默认隐藏只有勾选 “Image to Image” 后才可见不勾选时init_image为空image2image_strength不参与任何计算。输入图会被强制 resize 到输出尺寸输入图与输出比例不一致时画面会被拉伸变形这不是强度参数的问题。本文所有滑块取值、步数、默认值均对应flux-dev的界面默认配置Width 1360、Height 768、Number of steps 50、Guidance 3.5、Noising strength 0.8。如果想用无界面的方式生成单张样本可以继续参考 docs/text-to-image.md 中的命令行用法python -m flux t2i --name name --prompt prompt不过 CLI 的 t2i 命令不包含图生图入口图生图需要走demo_gr.py或 demo_st.py 这两个交互演示。【免费下载链接】fluxOfficial inference repo for FLUX.1 models项目地址: https://gitcode.com/GitHub_Trending/flux49/flux创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考