2026-01-08 20:51:26 +08:00
|
|
|
|
## 团队成员与贡献
|
|
|
|
|
|
|
|
|
|
|
|
| 姓名 | 学号 | 主要贡献 |
|
|
|
|
|
|
|------|------|----------|
|
2026-01-08 23:19:39 +08:00
|
|
|
|
| 王斌 | 2411020213 | (组长) Prompt 工程优化及最终项目汇报 |
|
2026-01-08 20:51:26 +08:00
|
|
|
|
| 翟宇轩 | 2411020215 | 后端架构设计 |
|
2026-01-08 23:19:39 +08:00
|
|
|
|
| 吴磊 | 2411020211 | 项目的整理,检查和编写 |
|
2026-01-08 20:51:26 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 项目简介
|
|
|
|
|
|
|
2026-01-08 23:19:39 +08:00
|
|
|
|
本项目旨在打造一个**零门槛、开箱即用**的 AI 文生图创作平台,让每个人都能轻松实现纯文本创作专业级 AI 画作。
|
|
|
|
|
|
简单的一段文本就能轻松生成一幅画,让那些曾只存于想象或他人笔下的画面以图像的形式浮现眼前,或许会别有一番风味?
|
2026-01-08 20:51:26 +08:00
|
|
|
|
|
|
|
|
|
|
### 核心功能
|
|
|
|
|
|
- 🎨 **智能 Prompt 生成**:基于中文描述自动优化为专业英文提示词(PydanticAI 驱动结构化生成)
|
|
|
|
|
|
- 🖼️ **多风格支持**:写实、动漫、油画、水彩等 10+ 预设风格
|
|
|
|
|
|
- ⚡ **实时生成**:调用云端 API,无需本地显卡,秒级出图
|
|
|
|
|
|
- 💾 **历史记录**:自动保存生成历史,支持下载与对比
|
|
|
|
|
|
- 🎛️ **参数调优**:图像尺寸、采样步数、引导系数自定义
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 如何运行
|
|
|
|
|
|
|
|
|
|
|
|
### 环境要求
|
|
|
|
|
|
- Python 3.9+
|
|
|
|
|
|
- 互联网连接(用于调用 API)
|
|
|
|
|
|
|
|
|
|
|
|
### 快速开始
|
|
|
|
|
|
|
|
|
|
|
|
#### 1. 克隆仓库
|
|
|
|
|
|
```bash
|
2026-01-08 21:06:25 +08:00
|
|
|
|
git clone http://hblu.top:3000/Python2025-CourseDesign/manga_generate.git
|
|
|
|
|
|
cd manga_generate
|
2026-01-08 20:51:26 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 2. 安装依赖
|
|
|
|
|
|
使用 `uv`
|
|
|
|
|
|
```bash
|
|
|
|
|
|
uv sync
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 3. 配置 API Key
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 复制环境变量模板
|
|
|
|
|
|
cp .env.example .env
|
|
|
|
|
|
|
|
|
|
|
|
# 编辑 .env 文件,填入你的 API Key
|
|
|
|
|
|
# 支持:OpenAI DALL-E、Stability AI、Replicate 等
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
`.env` 文件示例:
|
|
|
|
|
|
```env
|
|
|
|
|
|
# 文生图 API 配置(三选一)
|
|
|
|
|
|
STABILITY_API_KEY=your_stability_ai_key_here
|
|
|
|
|
|
REPLICATE_API_TOKEN=your_replicate_token_here
|
|
|
|
|
|
OPENAI_API_KEY=your_openai_key_here
|
|
|
|
|
|
|
|
|
|
|
|
# 默认使用的 API 提供商
|
|
|
|
|
|
DEFAULT_PROVIDER=stability
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 4. 启动应用
|
|
|
|
|
|
```bash
|
|
|
|
|
|
python3 backend/app.py
|
|
|
|
|
|
```
|
|
|
|
|
|
打开另一个终端
|
|
|
|
|
|
```bash
|
|
|
|
|
|
uv run streamlit run frontend/main.py
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
浏览器自动打开 `http://localhost:8501`
|
|
|
|
|
|
|
2026-01-08 23:19:39 +08:00
|
|
|
|
#### 5. 开始体验
|
|
|
|
|
|
万事俱备后,便可输入相应的信息与需要生成图像的文本,最后点击生成后便可获取相应的图像了。
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-01-08 20:51:26 +08:00
|
|
|
|
---
|
|
|
|
|
|
|
2026-01-08 22:33:58 +08:00
|
|
|
|
## 开发心得
|
2026-01-09 00:06:24 +08:00
|
|
|
|
在生活中,我们常常遇到这样一个问题:有些想法的实现需要大量的技术,可大多数人往往不具备这个技术要求。所以这些想法的结果往往都是被人淡忘,直到AI的出现,这些
|
2026-01-09 00:12:56 +08:00
|
|
|
|
想法的实现开始有了转机,这也是我们做这个项目的契机之一。<br>
|
2026-01-09 00:06:24 +08:00
|
|
|
|
文本往往不是易于理解和感受的,即使是大作家的文章也需要读者逐字逐句地细细品鉴,相比较而言,图片总是更加直观且便于理解的。若是能将枯燥的文本以另外一种方式展示
|
|
|
|
|
|
给用户,岂不是大大增加了文本的可读性?可我们并未掌握实现这一目标的全部技术,但是AI具有这个能力啊,因此,为了实现这一目标,我们小组开始行动起来。<br>
|
|
|
|
|
|
我们首先和AI表达了我们的基本需求,而AI确实生成了一个相对应的界面,可是无法生成想要的图片、各式各样的报错以及界面杂乱不具备观赏性等等问题层出不穷。于是我们
|
|
|
|
|
|
将报错的信息告诉AI,这个问题可能确实修复了,又出现了另外一个问题,甚至这种情况多发生在AI表示已经理解了我们的需求之后,如此循环往复的过程耗费了大量的时间和
|
|
|
|
|
|
精力,也大大打击了我们的信心,甚至做到后面有一个不错的结果都没有太强的成就感。<br>
|
2026-01-09 00:12:56 +08:00
|
|
|
|
在不断报错然后debug的过程中,我们也明白了一个道理:做出来只是第一步,而优化成预想的模样总是任重而道远。同时,我们也不得不感叹AI的强大之处:让“普通人”借助它
|
2026-01-09 00:06:24 +08:00
|
|
|
|
的能力跨越技术的阻隔来实现所设想的目标。此外,在不断协作开发的过程中,也感叹,多角度思考对解决问题确实大有裨益。<br>
|
2026-01-08 22:33:58 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-01-08 20:51:26 +08:00
|
|
|
|
## 项目结构
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
Group-TextToImage/
|
|
|
|
|
|
├── app.py # Streamlit 主应用
|
|
|
|
|
|
├── backend/
|
|
|
|
|
|
│ ├── api_client.py # API 调用封装
|
|
|
|
|
|
│ ├── prompt_engineer.py # Prompt 优化引擎
|
|
|
|
|
|
│ ├── image_processor.py # 图像后处理
|
|
|
|
|
|
│ └── agent.py # PydanticAI 智能体定义
|
|
|
|
|
|
├── frontend/
|
|
|
|
|
|
│ ├── styles.css # 自定义样式
|
|
|
|
|
|
│ └── components.py # UI 组件库
|
|
|
|
|
|
├── .env.example # 环境变量模板
|
|
|
|
|
|
├── .gitignore # Git 忽略配置
|
|
|
|
|
|
├── requirements.txt # 依赖清单
|
|
|
|
|
|
└── README.md # 项目文档
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-01-08 21:06:25 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|