feat: 瀹屾暣閲嶆瀯椤圭洰锛屾坊鍔犲紑婧愰」鐩爣鍑嗘枃浠?
- 閲嶆柊璁捐SmartFolderManager鍜孲martImageSaver鑺傜偣 - 娣诲姞鐏垫椿鐨勬枃浠跺す灞傜骇鎺у埗 - 鏀硅繘鍏冩暟鎹幏鍙栭€昏緫锛屾敮鎸佸绉嶆暟鎹潵婧?- 娣诲姞寮€婧愰」鐩爣鍑嗘枃浠讹細requirements.txt, CONTRIBUTING.md, CHANGELOG.md - 鏇存柊README.md锛屾坊鍔犲畨瑁呰鏄庡拰寰界珷 - 鏀硅繘.gitignore鏂囦欢
This commit is contained in:
+71
-58
@@ -1,39 +1,9 @@
|
|||||||
# Byte-compiled / optimized / DLL files
|
# Python
|
||||||
__pycache__/
|
__pycache__/
|
||||||
*.py[cod]
|
*.py[cod]
|
||||||
*$py.class
|
*$py.class
|
||||||
|
|
||||||
# OSX useful to ignore
|
|
||||||
*.DS_Store
|
|
||||||
.AppleDouble
|
|
||||||
.LSOverride
|
|
||||||
|
|
||||||
# Thumbnails
|
|
||||||
._*
|
|
||||||
|
|
||||||
# Files that might appear in the root of a volume
|
|
||||||
.DocumentRevisions-V100
|
|
||||||
.fseventsd
|
|
||||||
.Spotlight-V100
|
|
||||||
.TemporaryItems
|
|
||||||
.Trashes
|
|
||||||
.VolumeIcon.icns
|
|
||||||
.com.apple.timemachine.donotpresent
|
|
||||||
|
|
||||||
# Directories potentially created on remote AFP share
|
|
||||||
.AppleDB
|
|
||||||
.AppleDesktop
|
|
||||||
Network Trash Folder
|
|
||||||
Temporary Items
|
|
||||||
.apdisk
|
|
||||||
|
|
||||||
# C extensions
|
|
||||||
*.so
|
*.so
|
||||||
|
|
||||||
# Distribution / packaging
|
|
||||||
.Python
|
.Python
|
||||||
env/
|
|
||||||
venv/
|
|
||||||
build/
|
build/
|
||||||
develop-eggs/
|
develop-eggs/
|
||||||
dist/
|
dist/
|
||||||
@@ -45,13 +15,13 @@ lib64/
|
|||||||
parts/
|
parts/
|
||||||
sdist/
|
sdist/
|
||||||
var/
|
var/
|
||||||
|
wheels/
|
||||||
*.egg-info/
|
*.egg-info/
|
||||||
.installed.cfg
|
.installed.cfg
|
||||||
*.egg
|
*.egg
|
||||||
|
MANIFEST
|
||||||
|
|
||||||
# PyInstaller
|
# PyInstaller
|
||||||
# Usually these files are written by a python script from a template
|
|
||||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
||||||
*.manifest
|
*.manifest
|
||||||
*.spec
|
*.spec
|
||||||
|
|
||||||
@@ -62,12 +32,13 @@ pip-delete-this-directory.txt
|
|||||||
# Unit test / coverage reports
|
# Unit test / coverage reports
|
||||||
htmlcov/
|
htmlcov/
|
||||||
.tox/
|
.tox/
|
||||||
|
.nox/
|
||||||
.coverage
|
.coverage
|
||||||
.coverage.*
|
.coverage.*
|
||||||
.cache
|
.cache
|
||||||
nosetests.xml
|
nosetests.xml
|
||||||
coverage.xml
|
coverage.xml
|
||||||
*,cover
|
*.cover
|
||||||
.hypothesis/
|
.hypothesis/
|
||||||
.pytest_cache/
|
.pytest_cache/
|
||||||
|
|
||||||
@@ -77,38 +48,80 @@ coverage.xml
|
|||||||
|
|
||||||
# Django stuff:
|
# Django stuff:
|
||||||
*.log
|
*.log
|
||||||
|
local_settings.py
|
||||||
|
db.sqlite3
|
||||||
|
|
||||||
|
# Flask stuff:
|
||||||
|
instance/
|
||||||
|
.webassets-cache
|
||||||
|
|
||||||
|
# Scrapy stuff:
|
||||||
|
.scrapy
|
||||||
|
|
||||||
# Sphinx documentation
|
# Sphinx documentation
|
||||||
docs/_build/
|
docs/_build/
|
||||||
|
|
||||||
# IntelliJ Idea
|
|
||||||
.idea
|
|
||||||
*.iml
|
|
||||||
*.ipr
|
|
||||||
*.iws
|
|
||||||
|
|
||||||
# PyBuilder
|
# PyBuilder
|
||||||
target/
|
target/
|
||||||
|
|
||||||
# Cookiecutter
|
# Jupyter Notebook
|
||||||
output/
|
.ipynb_checkpoints
|
||||||
python_boilerplate/
|
|
||||||
cookiecutter-pypackage-env/
|
|
||||||
|
|
||||||
# vscode settings
|
# IPython
|
||||||
.history/
|
profile_default/
|
||||||
*.code-workspace
|
ipython_config.py
|
||||||
|
|
||||||
# Frontend extension
|
# pyenv
|
||||||
node_modules/
|
.python-version
|
||||||
|
|
||||||
|
# celery beat schedule file
|
||||||
|
celerybeat-schedule
|
||||||
|
|
||||||
|
# SageMath parsed files
|
||||||
|
*.sage.py
|
||||||
|
|
||||||
|
# Environments
|
||||||
.env
|
.env
|
||||||
.env.local
|
.venv
|
||||||
.env.development.local
|
env/
|
||||||
.env.test.local
|
venv/
|
||||||
.env.production.local
|
ENV/
|
||||||
npm-debug.log*
|
env.bak/
|
||||||
yarn-debug.log*
|
venv.bak/
|
||||||
yarn-error.log*
|
|
||||||
node.zip
|
# Spyder project settings
|
||||||
|
.spyderproject
|
||||||
|
.spyproject
|
||||||
|
|
||||||
|
# Rope project settings
|
||||||
|
.ropeproject
|
||||||
|
|
||||||
|
# mkdocs documentation
|
||||||
|
/site
|
||||||
|
|
||||||
|
# mypy
|
||||||
|
.mypy_cache/
|
||||||
|
.dmypy.json
|
||||||
|
dmypy.json
|
||||||
|
|
||||||
|
# IDE
|
||||||
.vscode/
|
.vscode/
|
||||||
.claude/
|
.idea/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
|
||||||
|
# OS
|
||||||
|
.DS_Store
|
||||||
|
.DS_Store?
|
||||||
|
._*
|
||||||
|
.Spotlight-V100
|
||||||
|
.Trashes
|
||||||
|
ehthumbs.db
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# ComfyUI specific
|
||||||
|
temp/
|
||||||
|
output/
|
||||||
|
models/
|
||||||
|
input/
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
# 更新日志
|
||||||
|
|
||||||
|
所有重要的项目更改都将记录在此文件中。
|
||||||
|
|
||||||
|
格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/),
|
||||||
|
并且本项目遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
|
||||||
|
|
||||||
|
## [0.1.0] - 2025-11-15
|
||||||
|
|
||||||
|
### 新增
|
||||||
|
- 🎉 首次发布
|
||||||
|
- ✨ SmartFolderManager 节点 - 智能文件夹管理
|
||||||
|
- ✨ SmartImageSaver 节点 - 智能图片保存
|
||||||
|
- 🔧 灵活的文件夹层级控制
|
||||||
|
- 🔧 多种元数据来源支持
|
||||||
|
- 🔧 多种图片格式支持 (PNG, JPEG, WebP, BMP, TIFF)
|
||||||
|
- 🔧 元数据嵌入功能
|
||||||
|
- 📁 模块化代码架构
|
||||||
|
|
||||||
|
### 特性
|
||||||
|
- **文件夹管理**
|
||||||
|
- 日期文件夹(可自定义格式)
|
||||||
|
- 模型文件夹(自动提取或手动选择)
|
||||||
|
- 种子文件夹(手动输入或外部输入)
|
||||||
|
- 提示词文件夹(手动输入或外部输入)
|
||||||
|
- 自定义文件夹
|
||||||
|
|
||||||
|
- **图片保存**
|
||||||
|
- 多种格式支持
|
||||||
|
- 质量控制
|
||||||
|
- 元数据嵌入
|
||||||
|
- 预览模式
|
||||||
|
- 文件冲突处理
|
||||||
|
|
||||||
|
- **用户体验**
|
||||||
|
- 直观的开关控制
|
||||||
|
- 清晰的数据来源选择
|
||||||
|
- 详细的工具提示
|
||||||
|
- 错误处理和用户反馈
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
# 贡献指南
|
||||||
|
|
||||||
|
感谢您对 SmartSaveImage 项目的关注!我们欢迎各种形式的贡献。
|
||||||
|
|
||||||
|
## 🤝 如何贡献
|
||||||
|
|
||||||
|
### 报告问题
|
||||||
|
- 使用 [GitHub Issues](https://github.com/kjqwer/SmartSaveImage/issues) 报告bug
|
||||||
|
- 提供详细的复现步骤和环境信息
|
||||||
|
- 包含错误日志和截图(如果适用)
|
||||||
|
|
||||||
|
### 提出功能请求
|
||||||
|
- 在 Issues 中描述您希望的新功能
|
||||||
|
- 解释为什么这个功能对用户有用
|
||||||
|
- 提供具体的使用场景
|
||||||
|
|
||||||
|
### 提交代码
|
||||||
|
1. Fork 这个仓库
|
||||||
|
2. 创建您的功能分支 (`git checkout -b feature/AmazingFeature`)
|
||||||
|
3. 提交您的更改 (`git commit -m 'Add some AmazingFeature'`)
|
||||||
|
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
||||||
|
5. 打开一个 Pull Request
|
||||||
|
|
||||||
|
## 📝 代码规范
|
||||||
|
|
||||||
|
- 使用 Python 3.8+ 语法
|
||||||
|
- 遵循 PEP 8 代码风格
|
||||||
|
- 添加适当的注释和文档字符串
|
||||||
|
- 确保代码通过现有测试
|
||||||
|
|
||||||
|
## 🧪 测试
|
||||||
|
|
||||||
|
在提交 PR 之前,请确保:
|
||||||
|
- 代码在 ComfyUI 中正常工作
|
||||||
|
- 没有破坏现有功能
|
||||||
|
- 新功能有适当的测试覆盖
|
||||||
|
|
||||||
|
## 📄 许可证
|
||||||
|
|
||||||
|
通过贡献代码,您同意您的贡献将在 MIT 许可证下发布。
|
||||||
@@ -1,7 +1,31 @@
|
|||||||
# SmartSaveImage - 智能图片保存节点
|
# SmartSaveImage - 智能图片保存节点
|
||||||
|
|
||||||
|
[](https://opensource.org/licenses/MIT)
|
||||||
|
[](https://www.python.org/downloads/)
|
||||||
|
[](https://github.com/comfyanonymous/ComfyUI)
|
||||||
|
|
||||||
一个功能强大的ComfyUI自定义节点包,提供智能的文件夹管理和图片保存功能。
|
一个功能强大的ComfyUI自定义节点包,提供智能的文件夹管理和图片保存功能。
|
||||||
|
|
||||||
|
## 🚀 安装
|
||||||
|
|
||||||
|
### 方法一:通过ComfyUI Manager安装(推荐)
|
||||||
|
1. 打开ComfyUI Manager
|
||||||
|
2. 搜索 "SmartSaveImage"
|
||||||
|
3. 点击安装
|
||||||
|
|
||||||
|
### 方法二:手动安装
|
||||||
|
```bash
|
||||||
|
cd ComfyUI/custom_nodes
|
||||||
|
git clone https://github.com/kjqwer/SmartSaveImage.git
|
||||||
|
cd SmartSaveImage
|
||||||
|
pip install -r requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
### 方法三:下载ZIP
|
||||||
|
1. 下载本仓库的ZIP文件
|
||||||
|
2. 解压到 `ComfyUI/custom_nodes/` 目录
|
||||||
|
3. 重启ComfyUI
|
||||||
|
|
||||||
## 🌟 主要特性
|
## 🌟 主要特性
|
||||||
|
|
||||||
- **智能文件夹管理** - 自动创建有组织的文件夹结构
|
- **智能文件夹管理** - 自动创建有组织的文件夹结构
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
Pillow>=8.0.0
|
||||||
|
piexif>=1.1.3
|
||||||
|
numpy>=1.19.0
|
||||||
Reference in New Issue
Block a user