初始提交

This commit is contained in:
史悦
2025-08-29 11:15:44 +08:00
commit 960210d961
8 changed files with 2523 additions and 0 deletions

185
README.md Normal file
View File

@@ -0,0 +1,185 @@
# OpenRouter Image Generator Web应用
这是一个基于OpenRouter API的图像生成Web应用实现了与原始Python代码相同的功能但提供了用户友好的Web界面。
## 功能特性
### 核心功能
- 🎨 **图像生成**: 通过OpenRouter API生成高质量图像
- 📤 **图像上传**: 支持拖拽上传参考图像
- 💬 **对话界面**: 直观的聊天式交互界面
- 🖼️ **图像画廊**: 展示和管理生成的图像
- ⚙️ **API配置**: 灵活的API设置和连接测试
### 技术特性
- 🌐 **响应式设计**: 适配各种设备屏幕
- 🎯 **实时预览**: 即时显示上传的图像
- 💾 **本地存储**: 自动保存用户设置
- 🔗 **连接状态**: 实时显示API连接状态
- 📱 **移动友好**: 支持触摸操作
## 快速开始
### 1. 获取OpenRouter API密钥
1. 访问 [OpenRouter官网](https://openrouter.ai/)
2. 注册账户并登录
3. 在控制台中生成API密钥
### 2. 配置应用
1. 打开 `index.html` 文件
2. 在"API设置"面板中输入您的API密钥
3. 点击"测试连接"按钮验证配置
### 3. 使用应用
#### 上传参考图像(可选)
- 拖拽图像文件到上传区域
- 或点击"选择图像"按钮
- 支持多种图像格式JPG、PNG、GIF等
#### 生成图像
1. 在对话输入框中输入您的图像生成请求
2. 点击"发送"按钮或按Enter键
3. 等待API处理并生成结果
#### 管理生成的图像
- 在图像画廊中查看所有生成的图像
- 悬停在图像上显示操作按钮
- 下载图像或复制图像URL
## 配置选项
### API设置
- **API Key**: 您的OpenRouter API密钥
- **Base URL**: OpenRouter API的基础URL默认https://openrouter.ai/api/v1
- **模型**: 选择使用的AI模型
- Google Gemini 2.5 Flash Image Preview (Free)
- OpenAI GPT-4 Vision Preview
- Anthropic Claude 3 Sonnet
- **超时时间**: 请求超时时间(秒)
- **代理**: 可选的代理服务器设置
### 支持的模型
- `google/gemini-2.5-flash-image-preview:free` - 免费的Google Gemini模型
- `openai/gpt-4-vision-preview` - OpenAI的GPT-4视觉预览版
- `anthropic/claude-3-sonnet-20240229` - Anthropic的Claude 3 Sonnet模型
## 使用示例
### 基本图像生成
```
请生成一张美丽的日落风景图像
```
### 基于参考图像的生成
1. 上传一张参考图像
2. 输入提示:`请根据上传的图像风格,生成一张类似的现代建筑图像`
### 复杂场景生成
```
请生成一张未来城市的图像,包含飞行汽车、玻璃建筑和绿色植物,风格要写实且具有科技感
```
## 技术实现
### 前端技术栈
- **HTML5**: 语义化标记和现代Web API
- **CSS3**: 响应式设计和动画效果
- **JavaScript**: 原生JS实现所有交互功能
- **Bootstrap 5**: UI组件和响应式布局
- **Font Awesome**: 图标库
### 核心功能实现
#### API调用
```javascript
async function generateImage(message) {
const payload = {
model: model,
messages: messages,
stream: false
};
const response = await fetch(`${baseUrl}/chat/completions`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(payload)
});
return await response.json();
}
```
#### 图像处理
- 支持Base64编码的图像数据
- 文件拖拽上传功能
- 图像预览和管理
- 图像下载和URL复制
#### 状态管理
- 本地存储用户设置
- 实时连接状态显示
- 加载状态指示器
- 错误处理和用户反馈
## 浏览器兼容性
- ✅ Chrome 80+
- ✅ Firefox 75+
- ✅ Safari 13+
- ✅ Edge 80+
## 注意事项
1. **API限制**: 请注意OpenRouter API的使用限制和费用
2. **图像大小**: 上传的图像文件大小建议不超过10MB
3. **网络要求**: 需要稳定的网络连接以访问OpenRouter API
4. **隐私安全**: API密钥存储在浏览器本地请勿在公共设备上使用
## 故障排除
### 常见问题
**Q: 连接测试失败**
- 检查API密钥是否正确
- 确认网络连接正常
- 验证Base URL设置
**Q: 图像生成失败**
- 检查输入的提示词是否合适
- 确认选择的模型支持图像生成
- 查看浏览器控制台错误信息
**Q: 图像上传失败**
- 检查图像格式是否支持
- 确认图像文件大小是否合理
- 尝试使用不同的浏览器
### 调试技巧
1. 打开浏览器开发者工具F12
2. 查看Console标签的错误信息
3. 检查Network标签的API请求状态
4. 验证API响应数据格式
## 许可证
本项目基于MIT许可证开源详见LICENSE文件。
## 贡献
欢迎提交Issue和Pull Request来改进这个项目
## 联系方式
如有问题或建议,请通过以下方式联系:
- GitHub Issues
- Email: [您的邮箱]
---
**注意**: 这是一个前端演示应用生产环境使用时请注意API密钥的安全性。