这是一个基于Diffusers的推理(图像生成)脚本,支持SD 1.x和2.x模型、LoRA、ControlNet等。以下是该脚本的核心功能和用法:
核心功能:
- 支持SD 1.x和2.x模型:包括基础模型和v-parameterization模型。
- 多种生成模式:支持txt2img、img2img、inpainting等。
- 交互模式和批量生成:支持交互式输入提示词,也支持从文件中读取提示词进行批量生成。
- 高级选项:支持负面提示词、权重调整、多种采样器、CLIP skip、VAE加载等。
- 扩展功能:支持LoRA、ControlNet、Textual Inversion、Highres fix等。
- 性能优化:支持xformers加速、
fp16
和bf16
推理。
基本用法:
- 交互模式生成图像:
bash python gen_img_diffusers.py --ckpt <模型名称> --outdir <输出目录> --xformers --fp16 --interactive
--ckpt
:指定模型文件或Diffusers模型目录。--outdir
:指定输出图像的保存目录。--xformers
:启用xformers加速。--fp16
:使用半精度浮点数进行推理。-
--interactive
:进入交互模式,逐一输入提示词生成图像。 -
单条提示词批量生成:
bash python gen_img_diffusers.py --ckpt <模型名称> --outdir <输出目录> --xformers --fp16 --images_per_prompt <生成数量> --prompt "<提示词>"
-
--images_per_prompt
:指定每个提示词生成图像的数量。 -
从文件读取提示词批量生成:
bash python gen_img_diffusers.py --ckpt <模型名称> --outdir <输出目录> --xformers --fp16 --from_file <提示词文件>
--from_file
:指定包含提示词的文本文件,每行一个提示词。
主要选项:
- 模型相关:
--ckpt <模型名称>
:指定模型文件或Hugging Face模型ID。--v2
:使用Stable Diffusion 2.x模型时需要添加此选项。-
--v_parameterization
:使用v-parameterization模型时需要添加此选项。 -
图像生成与输出:
--W <宽度>
和--H <高度>
:设置生成图像的尺寸,默认512x512。--steps <步数>
:设置采样步数,默认50步。--scale <引导比例>
:设置无条件引导比例,默认7.5。-
--sampler <采样器名称>
:选择采样器,如ddim
、euler_a
等。 -
内存与性能优化:
--xformers
:启用xformers加速。-
--fp16
或--bf16
:使用较低精度进行推理以节省内存。 -
额外网络(LoRA等):
--network_module
:指定使用的额外网络模块,如LoRA。--network_weights
:指定LoRA权重文件。-
--network_mul
:调整LoRA权重的倍率。 -
ControlNet:
--control_net_models
:指定ControlNet模型文件。--guide_image_path
:指定ControlNet使用的参考图像。
提示词选项:
在提示词中可以通过--
加字母的方式指定特定参数,例如:
- --n
:指定负面提示词。
- --w
和 --h
:调整图像宽高。
- --s
:调整采样步数。
- --l
:调整引导比例。
例如:
1girl, beautiful --n lowres, bad anatomy --w 768 --h 512 --s 30
img2img和Inpainting:
- img2img:
--image_path
:指定用于img2img的输入图像。-
--strength
:设置img2img的强度,默认0.8。 -
Inpainting:
- 需要额外指定
--mask_image
来提供蒙版图像。
其他高级功能:
- Highres fix:通过两阶段生成提升图像分辨率。
--highres_fix_scale
:设置第一阶段生成的图像比例。- CLIP Guided Stable Diffusion:利用CLIP特征优化生成图像。
--clip_guidance_scale
:设置CLIP引导的强度。- VGG16 Guided Stable Diffusion:利用VGG16特征优化生成图像。
--vgg16_guidance_scale
:设置VGG16引导的强度。
适用场景:
- 该脚本适用于需要灵活控制图像生成过程的用户,例如调整参数、尝试不同模型、实现特定风格转换等。
- 支持多种扩展功能(如LoRA、ControlNet),可以用于更精细化的图像生成。
总的来说,这个脚本是一个功能强大且高度可定制的图像生成工具,适合用于研究和创意图像生成任务。