🎉 限时特惠活动公告、获取优惠码、最高立减3200元
/draw.draw/*)| 接口路径 | 方法 | 功能 | 参数 |
|---|---|---|---|
/draw.draw/drawing | POST | 生成图片 | DrawFormData |
/draw.draw/config | GET | 获取绘画配置 | draw_api |
/draw.draw/translate | GET | 提示词翻译 | prompt |
/draw.draw/getSdModel | GET | SD模型列表 | category_id |
/draw.draw/getSdModelCategory | GET | SD模型分类 | - |
/draw.draw/getSdSamplers | GET | SD采样算法 | - |
/draw.draw/collect | POST | 收藏/取消收藏 | records_id |
/draw.draw/detail | GET | 绘画详情 | id |
/draw.draw/notifyMj | POST | MJ回调 | - |
/draw.draw/notifyMjAceData | POST | MJ AceData回调 | - |
/draw.draw_records/*)| 接口路径 | 方法 | 功能 | 参数 |
|---|---|---|---|
/draw.draw_records/records | GET | 绘图记录列表 | page, limit, type, status |
/draw.draw_records/delete | POST | 删除记录 | ids[] |
/draw.draw_records/detail | POST | 记录详情 | records_id[] |
/draw.draw_prompt/*)| 接口路径 | 方法 | 功能 | 参数 |
|---|---|---|---|
/draw.draw_prompt/category | GET | 提示词分类 | model |
/draw.draw_prompt/prompt | GET | 提示词列表 | model, category_id |
/draw.draw_prompt/example | GET | 绘画示例 | model |
/draw.draw_prompt/translate | GET | 提示词翻译 | prompt |
/draw.draw_square/*)| 接口路径 | 方法 | 功能 |
|---|---|---|
/draw.draw_square/lists | GET | 广场列表 |
/draw.draw_square/categoryLists | GET | 分类列表 |
/draw.draw_square/detail | GET | 广场详情 |
用户提交 → 参数验证 → 敏感词检测 → 提示词翻译
↓
创建记录 → 扣除电量 → 提交队列 → 调用引擎API
↓
等待回调 → 下载图片 → 生成缩略图 → 图片审核 → 更新状态server/app/api/controller/draw/DrawController.phpserver/app/api/logic/draw/DrawLogic.phpserver/app/common/service/draw/QueueService.phpserver/app/common/service/draw/DrawDriver.phppublic/uploads/draw/public/uploads/thumbnail/| 特性 | SD | DALL·E 3 | Midjourney | 豆包 |
|---|---|---|---|---|
| 文生图 | ✅ | ✅ | ✅ | ✅ |
| 图生图 | ✅ | ❌ | ✅ | ✅ |
| 局部重绘 | ✅ | ❌ | ✅ | ❌ |
| 图片放大 | ✅ | ❌ | ✅ | ❌ |
| 图片变换 | ✅ | ❌ | ✅ | ❌ |
| 自定义模型 | ✅ | ❌ | ❌ | ❌ |
| Lora支持 | ✅ | ❌ | ❌ | ❌ |
| 采样器选择 | ✅ | ❌ | ❌ | ❌ |
| 风格选择 | ❌ | ✅ | ✅ | ❌ |
| 版本选择 | ❌ | ❌ | ✅ | ❌ |
| 质量选择 | ❌ | ✅ | ✅ | ❌ |
| 提示词翻译 | ✅ | ✅ | ✅ | ✅ |
| 部署方式 | 本地 | API | API | API |
pc/src/pages/draw/)draw/
├── sd.vue # SD绘画页面
├── dalle.vue # DALL·E 3页面
├── mj.vue # Midjourney页面
├── doubao.vue # 豆包绘画页面
├── components/
│ ├── common/ # 通用组件
│ │ ├── draw-api.vue # 引擎选择
│ │ ├── draw-type.vue # 绘画类型
│ │ ├── prompt.vue # 提示词输入
│ │ ├── negative-prompt.vue # 反向提示词
│ │ ├── uploader.vue # 图片上传
│ │ ├── draw-result.vue # 结果展示
│ │ └── create-button.vue # 生成按钮
│ ├── sd/ # SD专用组件
│ │ ├── sd-model.vue # 模型选择
│ │ ├── sd-lora.vue # Lora选择
│ │ ├── sd-picture-size.vue # 尺寸选择
│ │ ├── sd-options.vue # 高级参数
│ │ └── sd-denoising-strength.vue # 重绘强度
│ ├── dalle/ # DALL·E 3组件
│ ├── mj/ # Midjourney组件
│ └── doubao/ # 豆包组件
├── hooks/
│ ├── useDrawEffect.ts # 绘画状态管理
│ ├── DrawingTool.ts # 绘画工具类
│ ├── useImageEditor.ts # 图片编辑
│ └── useImageSplit.ts # 图片分割
├── enums/
│ └── DrawEnum.ts # 枚举定义
└── types/
└── draw.d.ts # 类型定义admin/src/views/ai_application/)ai_application/
├── sd/ # SD管理
│ ├── model/ # 模型管理
│ ├── lora/ # Lora管理
│ ├── model_category/ # 模型分类
│ ├── prompt/ # 提示词管理
│ ├── prompt_category/# 提示词分类
│ ├── example/ # 示例管理
│ ├── record/ # 记录管理
│ └── setting/ # 配置管理
├── dalle/ # DALL·E 3管理
├── mj/ # Midjourney管理
├── doubao/ # 豆包管理
└── ai_square/ # 绘画广场SdQueueJob - SD绘画队列DalleQueueJob - DALL·E 3队列前端提交
↓
DrawController::drawing()
↓
DrawLogic::draw()
├→ 用户验证
├→ 敏感词检测
├→ 提示词翻译
├→ 创建记录 (DrawRecords)
├→ 扣除电量
└→ 提交队列
↓
QueueService::push*()
↓
DrawDriver::imagine()
├→ DrawSd (本地SD)
├→ DrawDalle3 (OpenAI)
├→ DrawMj (Midjourney)
└→ DrawDoubao (豆包)
↓
等待回调/轮询
↓
DrawLogic::notify*()
├→ 下载图片
├→ 生成缩略图
├→ 图片审核
└→ 更新记录状态
↓
前端轮询获取结果