这是一个基于Diffusers的推理(图像生成)脚本,支持SD 1.x和2.x模型、LoRA、ControlNet等。以下是该脚本的核心功能和用法:

核心功能:

  1. 支持SD 1.x和2.x模型:包括基础模型和v-parameterization模型。
  2. 多种生成模式:支持txt2img、img2img、inpainting等。
  3. 交互模式和批量生成:支持交互式输入提示词,也支持从文件中读取提示词进行批量生成。
  4. 高级选项:支持负面提示词、权重调整、多种采样器、CLIP skip、VAE加载等。
  5. 扩展功能:支持LoRA、ControlNet、Textual Inversion、Highres fix等。
  6. 性能优化:支持xformers加速、fp16bf16推理。

基本用法:

  1. 交互模式生成图像bash python gen_img_diffusers.py --ckpt <模型名称> --outdir <输出目录> --xformers --fp16 --interactive
  2. --ckpt:指定模型文件或Diffusers模型目录。
  3. --outdir:指定输出图像的保存目录。
  4. --xformers:启用xformers加速。
  5. --fp16:使用半精度浮点数进行推理。
  6. --interactive:进入交互模式,逐一输入提示词生成图像。

  7. 单条提示词批量生成bash python gen_img_diffusers.py --ckpt <模型名称> --outdir <输出目录> --xformers --fp16 --images_per_prompt <生成数量> --prompt "<提示词>"

  8. --images_per_prompt:指定每个提示词生成图像的数量。

  9. 从文件读取提示词批量生成bash python gen_img_diffusers.py --ckpt <模型名称> --outdir <输出目录> --xformers --fp16 --from_file <提示词文件>

  10. --from_file:指定包含提示词的文本文件,每行一个提示词。

主要选项:

  1. 模型相关
  2. --ckpt <模型名称>:指定模型文件或Hugging Face模型ID。
  3. --v2:使用Stable Diffusion 2.x模型时需要添加此选项。
  4. --v_parameterization:使用v-parameterization模型时需要添加此选项。

  5. 图像生成与输出

  6. --W <宽度>--H <高度>:设置生成图像的尺寸,默认512x512。
  7. --steps <步数>:设置采样步数,默认50步。
  8. --scale <引导比例>:设置无条件引导比例,默认7.5。
  9. --sampler <采样器名称>:选择采样器,如ddimeuler_a等。

  10. 内存与性能优化

  11. --xformers:启用xformers加速。
  12. --fp16--bf16:使用较低精度进行推理以节省内存。

  13. 额外网络(LoRA等)

  14. --network_module:指定使用的额外网络模块,如LoRA。
  15. --network_weights:指定LoRA权重文件。
  16. --network_mul:调整LoRA权重的倍率。

  17. ControlNet

  18. --control_net_models:指定ControlNet模型文件。
  19. --guide_image_path:指定ControlNet使用的参考图像。

提示词选项:

在提示词中可以通过--加字母的方式指定特定参数,例如: - --n:指定负面提示词。 - --w--h:调整图像宽高。 - --s:调整采样步数。 - --l:调整引导比例。

例如:

1girl, beautiful --n lowres, bad anatomy --w 768 --h 512 --s 30

img2img和Inpainting:

  1. img2img
  2. --image_path:指定用于img2img的输入图像。
  3. --strength:设置img2img的强度,默认0.8。

  4. Inpainting

  5. 需要额外指定--mask_image来提供蒙版图像。

其他高级功能:

  1. Highres fix:通过两阶段生成提升图像分辨率。
  2. --highres_fix_scale:设置第一阶段生成的图像比例。
  3. CLIP Guided Stable Diffusion:利用CLIP特征优化生成图像。
  4. --clip_guidance_scale:设置CLIP引导的强度。
  5. VGG16 Guided Stable Diffusion:利用VGG16特征优化生成图像。
  6. --vgg16_guidance_scale:设置VGG16引导的强度。

适用场景:

  • 该脚本适用于需要灵活控制图像生成过程的用户,例如调整参数、尝试不同模型、实现特定风格转换等。
  • 支持多种扩展功能(如LoRA、ControlNet),可以用于更精细化的图像生成。

总的来说,这个脚本是一个功能强大且高度可定制的图像生成工具,适合用于研究和创意图像生成任务。