这是一个基于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),可以用于更精细化的图像生成。
总的来说,这个脚本是一个功能强大且高度可定制的图像生成工具,适合用于研究和创意图像生成任务。