
文生图玩熟之后,多数人缺的不是模型,是控制力 :想要"保持这张图的构图,换一种质感",或者"按这张图的空间关系重新生成"。这就是 ControlNet 的主场。本篇实测 FLUX 系的两个 ControlNet 专用模型------Canny(线稿约束)和 Depth(深度约束) ------同一个工作流双分支并行,外加 Florence-2 自动反推提示词,12G 显存的 4070 Ti 上单分支 30 步 68 秒出图。
一、效果先看
五联图从左到右:输入原图(雨夜古镇)→ Canny 控制图(白线稿)→ Canny 重构结果 → Depth 控制图(近亮远暗)→ Depth 重构结果。两个控制器的性格差异一目了然:
- Canny 锁轮廓:灯笼、屋檐、石板路的边缘线条被严格保留,画面细节重新演绎------适合"同构图换风格/换材质"
- Depth 锁空间:街道的纵深关系保持,前景背景层次不动,主体形状自由度更大------适合"同场景换内容"
提示词我没写一个字------Florence-2-large 看图自动生成英文描述,拼接质量前缀后送进双通道文本编码,全自动。当然你也可以手动写死提示词,控制欲更强的玩法。
二、环境与模型
环境:官方便携版 ComfyUI(v0.39 内核)+ 4070 Ti 12G + 64G 内存。需要装两个自定义节点包(Manager 里搜名字装,或 git clone):
- ComfyUI-Florence2(Florence2ModelLoader/Run,反推提示词)
- comfyui_controlnet_aux(AIO_Preprocessor,Canny/Depth 预处理)
模型 8 件(Flux 老玩家大概率已有大半,每件都给了官方页 + 网盘备份双链接):
| 模型文件 | 大小 | 放置目录 | 官方下载 | 网盘备份 |
|---|---|---|---|---|
| flux1-canny-dev-fp8.safetensors | 11.9 GB | diffusion_models | 官方下载页 | 网盘下载 |
| flux1-Depth-Dev_FP8.safetensors | 11.9 GB | diffusion_models | 官方下载页 | 网盘下载 |
| Florence-2-large-PromptGen-v1.5(整目录) | 3.3 GB | models/LLM/ | 官方下载页 | 网盘下载(zip 解压到 LLM 目录) |
| depth_anything_v2_vitl.pth | 1.34 GB | controlnet_aux 自动下载* | 官方下载页 | 网盘下载 |
| t5xxl_fp8_e4m3fn.safetensors | 4.9 GB | text_encoders | 官方下载页 | 网盘下载 |
| clip_l.safetensors | 0.25 GB | text_encoders | 官方下载页 | 网盘下载 |
| ae.sft | 0.34 GB | vae | 官方下载页 | 网盘下载 |
| Flux Dev 4-step Lora.safetensors | 0.15 GB | loras | 官方下载页 | 网盘下载 |
*DepthAnythingV2 权重正常路径是首次运行时自动下载;国内网络容易失败,手动放置目录是 custom_nodes/comfyui_controlnet_aux/ckpts/depth-anything/Depth-Anything-V2-Large/。官方 HuggingFace 国内可把链接里的 huggingface.co 换成 hf-mirror.com 直连;网盘是同文件备份,点开自动带提取码。
三、工作流三步跑
第 1 步:按表放模型,装两个自定义节点包。
第 2 步:载入文末工作流,把你的图拖进 LoadImage(建议 1024 上下,横竖都行)。
第 3 步:点运行,看两个分支各出一张图。关键参数(原工作流配置,实测好使):
| 参数 | 值 | 说明 |
|---|---|---|
| 预处理分辨率 | 1024 | Canny/Depth 控制图的生成分辨率 |
| 采样 | euler / simple,30 步 | cfg=1(ControlNet 模型特性) |
| 4-step LoRA | 强度 0.6 | 官方加速 LoRA,30 步压到 68 秒的关键 |
| guidance | 30 | CLIPTextEncodeFlux 的引导值 |
| seed | 固定 | 两个分支同 seed 方便对比 |
想改风格:把 Florence 自动反推换成你自己的提示词(写进 clip_l 和 t5xxl 两个文本框)------比如输入图用古镇,提示词写"赛博朋克霓虹夜景",Canny 分支会给你一张轮廓不变、气质全变的图。这就是这套工作流最爽的玩法。
四、实测踩坑
1. DepthAnythingV2 权重下载失败是常态。 controlnet_aux 首跑要联网拉权重,国内直连 huggingface.co 基本失败且报错很隐晦(LocalEntryNotFoundError)。解法见上表的手动放置路径。
2. 自定义节点装完要重启。 Florence2 和 controlnet_aux 都是整包装载,热加载不生效。另外 Florence-2 需要 transformers 4.4x(新版 5.x 会报 BertModel 缺属性,降级 pip install transformers==4.46.3 可解)。
3. CLIPTextEncodeFlux 有两个文本框。 clip_l 和 t5xxl 各填一份(可以填一样的),只填一个另一个为空会导致提示词残缺。
4. 12G 显存跑双分支的姿势。 两个 11.9GB 的 fp8 模型是先后加载的(canny 分支跑完自动卸载再载 depth),不是同时驻留;单分支峰值显存 10G 左右。内存 32G 以下建议一次只跑一个分支。
五、下载汇总
工作流(城通网盘,点击自动带提取码):
模型见第二节双链表格。FLUX.1 Dev 系模型按 Black Forest Labs 非商用许可使用。
你手头有什么想"保结构换质感"的图?评论区丢上来,我挑几张跑 Canny/Depth 双版本给你看。