aduib-diffsynth

文生图功能实现总结

已完成的工作

1. 核心模块实现 (diffsynth/text_to_image.py)

创建了完整的文生图生成器类 TextToImageGenerator,包含以下功能:

2. API 接口实现 (controllers/text_to_image.py)

创建了完整的 FastAPI REST API 端点:

3. Gradio UI 集成 (gradio_app.py)

在现有的 Gradio 界面中添加了”文生图”标签页:

4. 路由注册 (controllers/route.py)

将文生图 API 端点注册到主路由中,使其可以通过 FastAPI 应用访问。

5. 模块导出 (diffsynth/__init__.py)

导出了文生图相关的类和函数,方便其他模块使用。

6. 文档

创建了完整的文档:

7. 测试脚本 (test/test_text_to_image.py)

创建了测试脚本,包含:

文件结构

aduib-diffsynth/
├── diffsynth/
│   ├── __init__.py              # ✅ 已更新:导出文生图功能
│   ├── text_to_image.py         # ✅ 新增:文生图核心实现
│   ├── diffsynth.py             # 已存在:PDF处理
│   ├── aduib_ai.py              # 已存在:AduibAI客户端
│   └── mineru.py                # 已存在:PDF解析
│
├── controllers/
│   ├── __init__.py
│   ├── route.py                 # ✅ 已更新:注册文生图路由
│   ├── text_to_image.py         # ✅ 新增:文生图API端点
│   └── auth/
│
├── gradio_app.py                # ✅ 已更新:添加文生图UI
│
├── docs/
│   └── TEXT_TO_IMAGE.md         # ✅ 新增:完整使用文档
│
├── test/
│   ├── test_text_to_image.py    # ✅ 新增:测试脚本
│   └── ...
│
└── outputs/
    └── text_to_image/           # 自动创建:图像输出目录

功能特性

参数控制

接口支持

高级功能

使用示例

1. Gradio UI

python gradio_app.py
# 访问 http://localhost:7860
# 选择"文生图"标签页

2. Python API

from diffsynths.text_to_image import generate_image

image_path = generate_image(
    prompt="a beautiful sunset over mountains",
    model_type="sd",
    width=512,
    height=512,
)

3. REST API

curl -X POST "http://localhost:8000/api/text-to-image/generate" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "a beautiful sunset", "model_type": "sd"}'

依赖要求

必需依赖

可选依赖

pyproject.toml 中已配置:

[project.optional-dependencies]
diffsynth=["diffsynth-engine"]
cuda=["torch==2.7.1","torchvision==0.22.1"]

安装命令:

uv sync --extra diffsynth --extra cuda

性能考虑

显存需求

生成速度

优化建议

  1. 使用合适的模型类型
  2. 调整图像尺寸
  3. 减少推理步数
  4. 批量生成时复用模型
  5. 生成完成后卸载模型

下一步扩展建议

可能的功能扩展

  1. 图生图 (Image-to-Image)
    • 基于输入图像生成新图像
    • 支持风格迁移
  2. 图像编辑 (Inpainting)
    • 局部修复/编辑图像
    • Mask 编辑功能
  3. ControlNet 支持
    • 边缘检测控制
    • 姿态控制
    • 深度图控制
  4. LoRA 支持
    • 加载自定义 LoRA 模型
    • 动态切换 LoRA
  5. 图像上传管理
    • 集成存储服务
    • 图像浏览和管理
  6. 队列系统
    • 支持异步生成
    • 任务队列管理
  7. 用户历史
    • 保存生成历史
    • 参数复用

测试清单

已知问题

  1. IDE 可能显示 router 导入警告,但运行时正常
  2. 首次加载模型时间较长
  3. 需要下载对应的模型文件

总结

✅ 文生图功能已完整实现并集成到项目中:

用户现在可以通过三种方式使用文生图功能:

  1. Web UI(最简单)
  2. Python API(最灵活)
  3. REST API(最通用)

所有代码都遵循项目现有的架构和编码规范。