图片编辑功能文档
概述
已在文生图(Text-to-Image)功能旁边添加了图片编辑(Image Editing)功能。该功能使用 Qwen-Image-Edit-2509 模型对已有图像进行编辑。
主要变更
1. diffsynths/text_to_image.py
添加了新的 edit_image() 函数,用于图片编辑:
def edit_image(
input_image_path: str,
prompt: str,
negative_prompt: str = "",
model_type: str = "Qwen-Image-Edit-2509",
lora_model: str = None,
offload_model: bool = False,
height: int = 1024,
width: int = 1024,
num_inference_steps: int = 50,
guidance_scale: float = 4.5,
seed: Optional[int] = None,
output_path: Optional[str] = None,
) -> str
功能特性:
- 支持上传原始图片
- 使用提示词描述期望的编辑效果
- 自动调整图像尺寸以匹配目标分辨率
- 支持 LoRA 模型微调
- 支持低显存模式(offload)
- 自动保存编辑后的图像
2. gradio_app.py
添加了新的 “图片编辑” Tab,提供完整的用户界面:
UI 组件:
- 模型管理区域
- 模型状态显示
- LoRA 状态显示
- 卸载模型按钮
- 卸载 LoRA 按钮
- 刷新状态按钮
- 输入区域
- 图片上传组件(支持上传和剪贴板粘贴)
- 编辑提示词输入框
- 负向提示词输入框
- 模型选择下拉菜单(Qwen-Image-Edit-2509)
- LoRA 模型选择(可选)
- 显存管理选项(Offload)
- 参数配置
- 宽度滑块(256-2048,默认 1024)
- 高度滑块(256-2048,默认 1024)
- 推理步数(1-100,默认 50)
- 引导系数(1.0-20.0,默认 4.5)
- 随机种子输入
- 输出区域
使用方法
- 切换到图片编辑 Tab
- 在 Gradio 界面中点击 “图片编辑” 标签页
- 上传原始图片
- 输入编辑提示词
- 在 “编辑提示词” 框中描述想要的编辑效果
- 例如:”把背景改成海滩” 或 “给人物添加眼镜”
- 调整参数(可选)
- 调整图像尺寸
- 修改推理步数和引导系数
- 选择 LoRA 模型进行风格微调
- 点击 “✨ 编辑图像” 按钮
模型支持
主模型
- Qwen-Image-Edit-2509:通义千问图像编辑模型,支持多种编辑场景
LoRA 模型(可选)
- 美学提升 LoRA(DiffSynth-Studio/Qwen-Image-LoRA-ArtAug-v1):提升图像美学质量
技术细节
模型加载
- 使用全局生成器实例共享模型
- 支持模型自动切换(文生图 ↔ 图片编辑)
- 卸载旧模型后再加载新模型,节省显存
图像处理流程
- 加载输入图像并转换为 RGB 格式
- 调整图像尺寸到目标分辨率
- 使用 DiffSynth Pipeline 进行编辑
- 保存编辑后的图像到输出目录
输出路径
- 默认输出目录:
outputs/image_edit/
- 文件名:UUID 格式(如
a1b2c3d4-e5f6-7890-abcd-ef1234567890.png)
默认参数推荐
- 分辨率:1024x1024(平衡质量和速度)
- 推理步数:50(适中的生成质量)
- 引导系数:4.5(适中的提示词遵循度)
- 负向提示词:模糊, 低分辨率, 低质量, 变形, 畸形, 错误的解剖学
注意事项
- 显存要求
- 标准模式:建议至少 12GB 显存
- Offload 模式:可在 8GB 显存上运行,但速度较慢
- 首次使用
- 首次加载模型会自动从 ModelScope 下载
- 下载时间取决于网络速度(约 10-20GB)
- 性能优化
- 降低分辨率可加快生成速度
- 减少推理步数可获得更快的结果(可能影响质量)
- 启用 Offload 模式可在低显存设备上运行
示例用例
场景 1:背景替换
- 提示词:将背景改成星空
- 负向提示词:模糊, 低质量
场景 2:添加物体
- 提示词:给人物添加一副眼镜
- 负向提示词:变形, 畸形
场景 3:风格转换
- 提示词:将图片转换为水彩画风格
- LoRA:美学提升 LoRA
更新日期
2025年1月