--- title: Color Palette Visualization emoji: 🔥 colorFrom: purple colorTo: purple sdk: gradio sdk_version: 5.47.2 app_file: app.py pinned: false license: mit short_description: 快速提取图片调色板并使用UI可视化 --- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference # Palette Explorer 一款交互式 Gradio 应用,可从任意图片中提取主色调,通过带复制按钮的排版卡片展示结果,并在 RGB 三维空间中可视化 k-means 聚类分布。 ## 功能特点 - 使用可配置数量的 k-means 聚类提取主色调,并支持随机种子复现结果。 - 生成平滑的渐变带与排版预览卡片,提供一键复制 HEX 颜色码。 - 在交互式 Plotly 三维散点图中查看采样像素与聚类中心的 RGB 分布。 - 以结构化 JSON 展示调色板数据,便于二次处理。 - 提供命令行模式,无需启动界面即可快速导出调色信息。 ## 快速上手 ### 1. 本地(Conda 环境) ``` conda activate pytorch python palette_app.py --ui ``` Gradio 会在终端输出访问地址(默认 `http://127.0.0.1:7860`)。 ### 2. 命令行调色板提取 ``` python palette_app.py -n 8 path/to/image.jpg ``` 终端将输出颜色的 HEX、RGB 值及占比信息。 ### 3. Docker 手动构建(GitHub Action 在 `main` 分支上会自动构建): ``` docker build -t palette-app . docker run -p 7860:7860 palette-app ``` 浏览器访问 `http://localhost:7860` 查看应用。 ## 项目结构 ``` . ├─ palette_app.py # Gradio / CLI 主入口 ├─ requirements.txt # 运行时依赖 ├─ Dockerfile # 部署用容器定义 ├─ .dockerignore # Docker 构建忽略列表 └─ .github/workflows/ └─ deploy.yml # 构建并推送镜像到 GHCR 的 GitHub Action ``` ## GitHub Actions 部署 工作流 `.github/workflows/deploy.yml` 会在推送到 `main`(或手动触发)时执行: 1. 安装依赖并运行烟雾测试(`python -m compileall palette_app.py`)。 2. 构建 Docker 镜像。 3. 推送镜像到 `ghcr.io//palette-app:latest`(需启用 GitHub Packages 权限)。 在其他环境拉取已发布镜像: ``` docker login ghcr.io docker pull ghcr.io//palette-app:latest ``` ## 开发提示 - 若不使用 Conda,可执行 `pip install -r requirements.txt` 安装依赖。 - 三维散点依赖 Plotly,若在无图形界面的服务器运行,可考虑导出静态文件或使用具备浏览器的环境。 - 若需本地化或自定义文案,可修改 `palette_app.py` 中 `_typography_html` 的短句与复制按钮行为。 ## 许可证 请在此填写项目适用的许可证(如 MIT、Apache-2.0 等)。