aduib-diffsynth

图片编辑功能实现说明

📝 概述

已成功为 Text-to-Image API 添加图片编辑功能。该功能允许用户上传图片或指定图片路径,并使用 AI 模型根据文本提示词对图片进行编辑。

✨ 新增功能

1. API 接口

controllers/text_to_image.py 中新增了以下接口:

/text-to-image/edit (POST)

/text-to-image/edit-by-path (POST)

2. 数据模型

新增了以下 Pydantic 模型:

3. 核心功能

📁 文件变更

修改的文件

新增的文件

🚀 使用方法

方法1: 使用 Python requests

import requests

# 上传图片编辑
url = "http://localhost:8000/text-to-image/edit"
files = {'input_image': open('image.jpg', 'rb')}
data = {
    'prompt': '把天空变成日落的颜色',
    'width': 1024,
    'height': 1024,
    'num_inference_steps': 50
}
response = requests.post(url, files=files, data=data)
result = response.json()
print(f"编辑后的图片: {result['image_path']}")

方法2: 使用 cURL

curl -X POST "http://localhost:8000/text-to-image/edit" \
  -H "Content-Type: multipart/form-data" \
  -F "input_image=@image.jpg" \
  -F "prompt=把天空变成日落的颜色" \
  -F "width=1024" \
  -F "height=1024"

方法3: 通过路径编辑

import requests

url = "http://localhost:8000/text-to-image/edit-by-path"
payload = {
    "input_image_path": "/path/to/image.jpg",
    "prompt": "添加梦幻光斑效果",
    "width": 1024,
    "height": 1024
}
response = requests.post(url, json=payload)
result = response.json()

方法4: 运行测试脚本

# 准备测试图片
cp your_image.jpg test_image.jpg

# 运行测试
python test/test_image_editing_api.py

🔧 技术细节

依赖关系

图片编辑功能依赖于:

工作流程

  1. 接收请求: API 接收上传的图片或图片路径
  2. 临时存储: 上传的图片保存到临时文件
  3. 模型加载: 如需要,加载或切换图像编辑模型
  4. 图像处理: 调整图片尺寸至目标分辨率
  5. AI编辑: 使用模型和提示词编辑图片
  6. 保存结果: 将编辑后的图片保存到输出目录
  7. 清理资源: 删除临时文件
  8. 返回结果: 返回编辑后图片的路径

输出目录

📚 文档

🧪 测试

运行测试脚本验证功能:

# 确保API服务正在运行
python app.py &

# 运行测试
python test/test_image_editing_api.py

⚙️ 配置建议

显存优化

速度与质量平衡

引导系数调整

🔄 与现有功能的集成

图片编辑功能完全集成到现有的 Text-to-Image API 中:

⚠️ 注意事项

  1. 首次运行: 首次使用会自动下载模型,可能需要较长时间和足够的磁盘空间
  2. 显存需求: 图片编辑通常比文生图需要更多显存,建议至少 8GB
  3. 图片格式: 输入支持多种格式,输出固定为 PNG 格式
  4. 文件大小: 上传的图片会被调整为指定尺寸,建议不超过 10MB
  5. 安全性: 生产环境建议添加文件类型验证和大小限制

🎯 下一步

可以考虑的扩展功能:

📞 支持

如有问题或建议,请查看:


更新时间: 2025-12-10 版本: v1.0.0