ComfyUI
什么是 ComfyUI
- 基于节点工作的用户界面
- 主要用于操作图像的生成技术
- 模块化设计,每个步骤是一个节点
核心模块
核心模块有:模型加载器、提示词管理器、采样器、解码器
模型加载器:Load Checkpoint
- 用于加载基础的模型文件,包含了 Model、CLIP、VAE 三部分
- CLIP 将文本输入转化为模型可理解的输入(latent space embedding)
- VAE 将 Latent space 中的 embedding 解码为像素级别的图像(解码器)
采样器:用于控制模型生成图像
- 不同的采样取值会影响最终输出图像的质量和多样性
- 采样器可以调节生成过程的速度和质量之间的平衡
这几个模块在 ComfyUI 的工作流程中的作用:
- 用户输入:
- 用户通过ComfyUI的界面输入或选择一个文本提示词,比如“一只可爱的蓝色小猫”。
- 提示词管理器:
- 解析用户输入的文本,提取关键信息。
- 将文本提示词转换为模型能够理解的嵌入向量。
- 模型加载器:
- 根据用户选择,加载相应的预训练模型,例如Stable Diffusion或GAN模型。
- 确保模型权重是最新的,并准备好进行推理。
- 采样器:
- 接收提示词管理器输出的嵌入向量。
- 在模型的潜在空间中迭代采样,根据提示词生成图像。
- 使用不同的采样策略,如DDIM、PLMS或Euler,以控制图像生成的过程。
- 解码器:
- 接收采样器生成的潜在表示。
- 将这些表示转换成RGB像素值,形成最终的图像。
- 输出图像到用户界面,供用户查看和进一步操作。
LoRA 微调
原理
LoRA 通过在预训练模型的关键层中添加低秩矩阵来实现。这些低秩矩阵通常被设计成具有较低维度的参数空间,这样它们就可以在不改变模型整体结构的情况下进行微调。在训练过程中,只有这些新增的低秩矩阵被更新,而原始模型的大部分权重保持不变。
参数调整
根据 baseline 中的微调代码,有以下几点可作调整:
- 调整 LoRA 的秩(lora_rank):
增加秩: 如果模型表现不足,可以尝试增加 lora_rank 的值来提高模型的表达能力。但这也将增加模型的计算需求和内存使用。
减少秩: 如果资源有限或过拟合,可以减少 lora_rank 的值。 - 调整 LoRA 的 alpha 值(lora_alpha):
增加 alpha: 增加这个值会加强 LoRA 对模型参数的调整,可能会带来更明显的效果,但也可能增加训练难度。
减少 alpha: 如果训练不稳定或输出质量不佳,可以尝试减少 alpha 值。 - 增加训练轮数(max_epochs):
提高训练轮数可以让模型学习更多细节,通常会导致更好的输出质量。但要注意过拟合的风险。 - 改进数据集:
使数据集是高质量的,并且足够多样化,这样模型才能学习到丰富的特征。
我的调整
LoRA 微调
增大 lora_rank, lora_alpha 和 max_epochs
cmd = """
python DiffSynth-Studio/examples/train/kolors/train_kolors_lora.py \
--pretrained_unet_path models/kolors/Kolors/unet/diffusion_pytorch_model.safetensors \
--pretrained_text_encoder_path models/kolors/Kolors/text_encoder \
--pretrained_fp16_vae_path models/sdxl-vae-fp16-fix/diffusion_pytorch_model.safetensors \
--lora_rank 32 \
--lora_alpha 8.0 \
--dataset_path data/lora_dataset_processed \
--output_path ./models \
--max_epochs 10 \
--learning_rate 5e-5 \
--batch_size 16 \
--center_crop \
--use_gradient_checkpointing \
--precision "16-mixed"
""".strip()
prompt 修改
主要在 task02 基础上,修改了图片中出现其他人的情况,将人物背景增加了更具体的描述:
prompt="古风,水墨画,黑色长发少女,眼神坚定,拔剑相助,上半身,轻便武侠服饰,背景为小镇街道混乱,四处可见惊慌失措的居民和嚣张的恶徒,侠女挺身而出,正义之举,维护秩序",
prompt="古风,水墨画,黑色长发少女,眼神敏锐,上半身,轻便武侠服饰,背景为客栈内的热闹酒桌,少女与几位江湖朋友围坐在一张桌子旁,少女坐于桌子左侧,和朋友共同举杯,谈笑风生",
prompt="古风,水墨画,黑色长发少女,温柔眼神,给受伤男孩施针,上半身,武侠服饰,男孩卧床,面露感激,背景为简陋小屋内",