ComfyUI-zveroboy-photo:赋予 AI 图像“真实相机灵魂”的后处理套件

插件2天前发布 小马良
11 0

ComfyUI-zveroboy-photo 是一套专为 ComfyUI 设计的自定义节点库,通过模拟真实相机的传感器特性、噪声模式和元数据(EXIF),为 AI 生成的图像注入“物理真实感”。

  • GitHub:https://github.com/thezveroboy/ComfyUI-zveroboy-photo

这不仅是一个美学增强工具,更是一个研究性工具,用于探索当前 AI 图像检测器的边界。它证明了仅凭表面特征(如噪声分布、EXIF 缺失)不足以可靠地识别 AI 图像,从而推动检测技术向更深层的语义分析发展。

ComfyUI-zveroboy-photo:赋予 AI 图像“真实相机灵魂”的后处理套件

⚖️ 伦理声明:本工具旨在揭示检测算法的不完美性,促进更 robust 的防御技术发展,而非用于恶意欺骗或虚假信息传播。请负责任地使用。

主要目标:

  • 研究 AI 图像检测器的漏洞——证明简单的特征(噪声、EXIF)不足以实现可靠的检测
  • 模仿真实相机——添加真实的传感器特性、噪声和元数据
  • 保护作者身份——使自动图像分类复杂化
  • 增强照片真实感——添加美观的颗粒感和模拟胶片质感

节点描述

1. PhotoAddNoise(基础)

目的: 添加高斯噪声以保护 AI 检测器

参数:

  • noise_level(0.0-1.0)- 噪声强度

特性:

  • 减少蓝色通道中的噪声(x0.8)以模仿真实传感器
  • 所有通道均匀白噪声

使用场景:

  • 快速基本保护
  • 最小质量影响
  • 值为 0.01-0.02 以获得微妙效果

2. PhotoAddGrain(美学)

目的: 添加胶片颗粒以获得视觉效果

参数:

  • grain_strength - 颗粒强度
  • grain_size(1-10)- 颗粒大小

特性:

  • 单色颗粒(亮度)
  • 叠加混合算法
  • 颗粒缩放以模仿不同胶片

使用场景:

  • 艺术处理
  • 模拟胶片摄影
  • 不用于保护(太明显)

3. PhotoAddExif

目的: 嵌入相机元数据以模仿真实拍摄

参数:

  • preset - 相机选择(Canon/Sony/Nikon/Fujifilm/Leica/iPhone)
  • artistsoftwarecopyright - 作者数据
  • body_seriallens_serial - 序列号(自动生成)
  • focal_length_mmfnumberexposure_1_over_siso - 拍摄参数
  • datetime_original - 拍摄日期

特性:

  • 返回 Base64 格式的 EXIF 字符串,用于节点间传输
  • 使用 presets.py 中的预设
  • 自动生成随机序列号

使用场景:

  • 在保存为 JPG 之前始终使用
  • 用于模仿特定相机
  • 与 PhotoSaveJpg 结合使用

4. PhotoLoadRaw

目的: 加载 RAW 和 HEIC 图像并提取 EXIF

参数:

  • raw_file - 完整文件路径

支持的格式:

  • HEIC(iPhone,通过 pillow-heif)
  • DNG(Apple ProRAW、相机)
  • NEF(尼康)
  • ARW(索尼)
  • CR2/CR3(佳能)

特性:

  • 两阶段加载:先 Pillow,后 rawpy
  • 提取现有 EXIF 数据
  • 转换为 ComfyUI RGB 张量

使用场景:

  • 使用相机/iPhone 原始文件
  • 保持最大质量
  • 提取元数据以供后续修改

5. PhotoSaveJpg

目的: 保存为 JPEG 并嵌入 EXIF 数据

参数:

  • exif_data - Base64 格式的 EXIF 字符串(来自 PhotoAddExif)
  • filename_prefix - 文件名前缀
  • quality(1-100)- JPEG 质量

特性:

  • 保存到 ComfyUI 输出目录
  • 文件名中包含时间戳
  • 哈夫曼编码优化

使用场景:

  • 最终保存
  • 用于发布/分享
  • 需要 EXIF 元数据时

6. PhotoSaveRaw

目的: 保存为无损格式(TIFF/DNG)并包含色彩矩阵

参数:

  • format - TIFF 或 DNG
  • preset - 用于矩阵的相机选择
  • exif_data - 元数据

特性:

  • DNG:写入 ColorMatrix1/2、AsShotNeutral、CalibrationIlluminant
  • TIFF:带 EXIF 的标准无损格式
  • 使用 tifffile 确保正确的 DNG 结构
  • 无损保留所有数据

使用场景:

  • 最高质量存档
  • 传输到专业编辑器
  • 隐藏处理痕迹(TIFF 看起来像 RAW)

7. PhotoAdvancedNoise(传感器模拟)

目的: 高级相机传感器噪声模仿,用于绕过检测器

参数:

  • noise_strength(0.0-0.5)- 总体强度
  • color_correlation - 拜耳模式模仿(每通道不同噪声)
  • add_grain_layer - 额外颗粒层
  • grain_size - 颗粒大小
  • jpeg_compression - 最终压缩

特性:

  • 散粒噪声:取决于像素亮度(arr ** 0.5)
  • 读取噪声:恒定分量
  • 色彩相关性:R x1.2、G x0.9、B x1.4(类似真实传感器)
  • JPEG 伪影:掩盖 AI 平滑度

使用场景:

  • 替代 PhotoAddNoise 以获得更好的保护
  • 值为 0.005-0.008 以获得微妙效果
  • 禁用 add_grain_layer 以避免质量损失
  • jpeg_compression 95-98

8. Realism7NoiseExif(一体化)

目的: 综合“一站式”处理,快速获得结果

参数:

  • 所有 EXIF 参数(如 PhotoAddExif)
  • noise_level - 噪声
  • jpeg_quality_first/final - 双重压缩
  • random_color_jitter - 随机色彩校正
  • jitter_strength - 抖动强度(亮度/色彩/对比度)

特性:

  • 顺序:抖动 -> 噪声 -> JPEG(低质量)-> JPEG(高质量 + EXIF)
  • 双重 JPEG 产生压缩伪影
  • 色彩抖动模仿处理变化

使用场景:

  • 无需节点链的快速处理
  • 当需要一次性完成所有操作时
  • 用于批量生成“真实”图像

典型工作流

工作流 1:基本 AI 图像保护

Load Image -> PhotoAddNoise (0.012) -> PhotoAddExif -> PhotoSaveJpg (95)

工作流 2:最大真实感

Load Image -> PhotoAdvancedNoise (0.006, grain=False) -> PhotoAddExif -> PhotoSaveJpg (96)

工作流 3:RAW 处理

PhotoLoadRaw -> PhotoAdvancedNoise -> PhotoAddExif -> PhotoSaveRaw (DNG)

工作流 4:美学处理

Load Image -> PhotoAddGrain (0.08, size=3) -> PhotoAddExif -> PhotoSaveJpg

参数建议

任务噪声水平颗粒JPEG 质量EXIF
微妙保护0.005-0.00895-98必需
中等保护0.01-0.01592-95必需
强力保护0.02-0.03尺寸 2-388-92必需
美学效果00.08-0.12,尺寸 3-495+可选

技术特性

  • Base64 EXIF 传输 - 允许元数据在 ComfyUI 节点之间传输
  • 色彩矩阵 - 使用 Calibration Illuminant 正确写入 DNG
  • HEIC 支持 - 通过 pillow-heif 兼容 iPhone
  • RAW 加载 - 适用于所有格式的通用加载器
  • 相机预设 - 可扩展的 presets.py 文件

重要说明

  • 不要使用 >0.03 的噪声 - 肉眼可见
  • 始终添加 EXIF - 没有它保护就毫无意义
  • JPEG 压缩 95+ - 较低值会降低质量
  • PhotoAdvancedNoise 优于 PhotoAddNoise - 更真实的传感器噪声
  • 颗粒和噪声是不同的 - 颗粒用于美学,噪声用于保护
© 版权声明

相关文章

暂无评论

none
暂无评论...