菜单

图像输入/输出与后处理

相关源文件

目的与范围

图像 I/O 和后期处理系统负责 Stable Diffusion Web UI 中的图像文件操作、元数据管理和图像处理任务。该系统支持加载和保存带生成参数的图像、创建图像网格、调整图像尺寸以及处理图像透明度。

本文档涵盖了图像读取/写入、元数据提取/嵌入、文件名生成和图像处理实用程序的核心功能。有关图像生成处理参数的信息,请参阅处理参数

图像 I/O 操作

读取图像

该系统提供从文件或字节流读取图像的函数,同时确保正确的格式和透明度处理。

主要功能

  • read(fp, **kwargs):打开图像文件并应用修复
  • fix_image(image):应用 EXIF 转换和透明度修复
  • fix_png_transparency(image):确保正确处理 PNG 透明度

来源:modules/images.py852-877

保存图像

图像可以保存为各种格式(PNG、JPEG、WebP、AVIF、GIF),并将生成信息嵌入为元数据。

save_image 函数处理以下操作:

  • 根据模板生成文件名
  • 在需要时创建目录结构
  • 将带生成参数的图像保存为元数据
  • 在保存前后触发脚本回调
  • 处理大图像的自动降级

来源:modules/images.py565-767

元数据管理

嵌入元数据

该系统将生成参数嵌入到图像中以保留创建细节

  • PNG:使用 PngImagePlugin.PngInfo 存储在自定义 PNG 块中
  • JPG/JPEG/WebP:使用 piexif 存储在 EXIF 元数据中
  • AVIF:存储在 EXIF 元数据中
  • GIF:存储在注释字段中

来源:modules/images.py565-622

提取元数据

该系统可以从之前保存的图像中提取生成信息

read_info_from_image 函数

  • 从 PNG 信息中提取“parameters”字段
  • 读取 JPG/WebP 的 EXIF UserComment 字段
  • 解析 GIF 的注释
  • 处理 NovelAI 图像的特殊操作

来源:modules/images.py777-817 modules/extras.py16-36

文件名生成

该系统为保存图像提供了一个灵活的文件名模式系统。

FilenameGenerator

FilenameGenerator 类支持从模板动态创建文件名

可用的替换标记包括:

  • 基本属性:[seed][prompt][cfg][steps]
  • 图像尺寸:[width][height]
  • 模型详情:[model_name][model_hash]
  • 采样器信息:[sampler][sampler_scheduler][scheduler]
  • 时间戳:[datetime][date][job_timestamp]
  • 哈希:[prompt_hash][image_hash]

支持使用尖括号对标记进行自定义格式化:[token<format>]

来源:modules/images.py381-542

文件名清理和排序

该系统可确保文件名安全且有效

  • 通过替换无效字符来清理文件名
  • 强制执行最大长度限制
  • 为文件生成顺序号
  • 根据提示创建目录结构

来源:modules/images.py329-352 modules/images.py543-562

图像处理实用程序

图像缩放

resize_image 函数支持三种缩放模式

  1. 简单缩放:缩放到精确尺寸
  2. 缩放并裁剪:保持纵横比并裁剪多余部分
  3. 缩放并填充:保持纵横比并填充空白区域

该函数还支持使用可配置的放大器进行放大。

来源:modules/images.py252-326

网格创建

该系统提供了将多个图像排列成网格的功能

  • image_grid:从多个图像创建简单的网格
  • draw_grid_annotations:向网格图像添加文本注释
  • draw_prompt_matrix:用于提示矩阵输出的专用网格

来源:modules/images.py36-66 modules/images.py151-236 modules/images.py239-249

分割和合并网格

该系统提供将大图像分割成图块并在之后重新组合的功能

  • split_grid:将图像分割成重叠的图块
  • combine_grid:重新组合带有混合重叠区域的图块

此功能特别适用于处理因超出 GPU 内存限制的大图像,通过将其分解为更小、更易于管理的大小。

来源:modules/images.py69-141

PNG 信息查看器

Web UI 包含一个 PNG 信息选项卡,用于查看图像的元数据

  • run_pnginfo:从图像提取和格式化元数据
  • 以用户友好的格式显示生成参数和其他元数据

来源:modules/extras.py16-36

配置选项

该系统的行为由几个配置选项控制

选项描述默认
opts.save_images_add_number向文件名添加序号True
opts.samples_filename_pattern文件名的模式[seed]-[prompt_spaces]
opts.directories_filename_pattern目录的模式[prompt_words]
opts.save_to_dirs根据提示保存到子目录
opts.grid_save_to_dirs根据提示将网格保存到子目录
opts.save_txt保存带有生成参数的文本文件
opts.enable_pnginfo在 PNG 图像中保存生成信息True
opts.jpeg_qualityJPEG 图像的质量设置80
opts.webp_lossless对 WebP 使用无损压缩
opts.export_for_4chan缩小大图像以发布到有大小限制的网站

来源:modules/images.py323-334 modules/images.py565-767