Extensions/comfyui-pixiv-node
ComfyUI Extension

comfyui-pixiv-node

ComfyUI node for browsing Pixiv directly within ComfyUI, supporting recommendations, rankings, bookmarks, artist browsing, and batch image export. (Description by CC)

By wrt122311·Created 4 months ago·Updated 4 months ago· 1
wrt122311/comfyui-pixiv-node
Nodes
On cloudLocal install
Stars1
Updated4 months ago
Readme

ComfyUI Pixiv Browser Node

在 ComfyUI 中直接浏览 Pixiv,选图后输出为 IMAGE 张量,接入任意下游节点。


功能

| 功能 | 说明 | |------|------| | 📌 推荐作品 | 浏览 Pixiv 为你推荐的插画 | | 🏆 排行榜 | 日榜/周榜/月榜等多种排行 | | ⭐ 收藏作品 | 查看你收藏的所有插画 | | 👥 收藏画师 | 左栏列出收藏画师,点击右栏展示其全部作品 | | 🖼 多选输出 | 可框选多张图片,批量输出 IMAGE batch | | ♾ 无限滚动 | 所有页面均支持滚动到底部自动加载下一页 | | 🔒 OAuth 登录 | 使用 pixivpy3 官方 PKCE 流程,token 本地保存,重启免登录 |


安装

1. 克隆到 ComfyUI custom_nodes

cd ComfyUI/custom_nodes
git clone https://github.com/wrt122311/comfyui-pixiv-node.git

2. 安装依赖

在 ComfyUI 的 Python 环境中执行:

pip install pixivpy3 Pillow

如果使用 ComfyUI 便携版,请用便携版自带的 python_embeded\python.exe -m pip install pixivpy3 Pillow

3. 重启 ComfyUI

控制台出现以下提示说明加载成功:

[PixivBrowser] Loaded successfully

首次登录

节点首次使用时需要完成登录,之后 token 自动保存,重启无需重新登录。

弹窗提供两种登录方式:

方式一:Refresh Token(推荐)

  1. 在 ComfyUI 的 Python 环境中安装工具:
    pip install gppt
    
  2. 运行登录命令(将邮箱和密码替换为你的账号):
    gppt login-headless -u 你的邮箱 -p 你的密码
    
  3. 复制终端输出中的 refresh_token
  4. 在 ComfyUI 画布中添加 Pixiv Browser 节点,点击 🖼 浏览 Pixiv 按钮
  5. 弹窗默认显示"🔑 Refresh Token(推荐)"标签,将 token 粘贴到输入框,点击 "保存并登录"
  6. 弹窗自动切换到图片浏览界面,登录完成

方式二:OAuth 授权(备选)

适用于无法使用命令行工具的情况。

  1. 点击节点上的 🖼 浏览 Pixiv 按钮,弹出弹窗
  2. 切换到 "🌐 OAuth 授权" 标签
  3. 点击 "① 用浏览器登录 Pixiv",在新标签页完成 Pixiv 账号登录
  4. 登录后查看浏览器地址栏,若出现以下格式的 URL:
    pixiv://account/login?code=XXXXXXXXXXXXXXXX&via=login
    
    将其完整复制,粘贴到弹窗输入框,点击 "② 确认登录"
  5. 若地址栏始终未出现 pixiv:// 开头的 URL(部分浏览器/系统不支持),请改用方式一

Token 保存在节点目录下的 config.json,请勿将此文件提交到 git(已自动加入 .gitignore


使用方法

浏览与选图

弹窗顶部有四个 Tab:

  • 推荐 — Pixiv 为你推荐的最新插画
  • 排行榜 — 每日排行榜(日榜)
  • 收藏 — 你收藏的插画
  • 画师 — 左侧列出你收藏的画师,点击画师名在右侧显示其全部作品

点击图片卡片即可选中(紫色边框 + 右上角序号角标),再次点击取消选中。
支持跨 Tab 多选,底部显示已选张数。

输出图片

选好图片后点击 ✓ 确认选择,关闭弹窗。
点击 ComfyUI 的 Queue Prompt,节点将下载所选图片的原图并以 IMAGE batch 形式输出。


节点参数

| 参数 | 类型 | 说明 | |------|------|------| | artwork_ids | STRING(隐藏) | 由弹窗写入的 artwork ID 列表,逗号分隔,通常无需手动填写 |

| 输出 | 类型 | 说明 | |------|------|------| | images | IMAGE | 形状 [B, H, W, 3],float32,范围 [0, 1],B 为选中图片数量 |


示例工作流

示例 1:预览 Pixiv 图片

最简单的工作流,浏览 Pixiv 后直接在 ComfyUI 中预览。

[Pixiv Browser] ──images──▶ [Preview Image]

步骤:

  1. 添加 Pixiv Browser 节点
  2. 添加 PreviewImage 节点
  3. 将 Pixiv Browser 的 images 输出连接到 PreviewImage 的 images 输入
  4. 点击节点上的按钮选好图片
  5. Queue Prompt

示例 2:以 Pixiv 图为参考做图生图(img2img)

用 Pixiv 收藏的插画作为参考图,通过 img2img 生成新的图像。

[Pixiv Browser] ──images──▶ [VAE Encode] ──latent──▶ [KSampler] ──latent──▶ [VAE Decode] ──▶ [Preview Image]
                                                           ▲
                                           [CLIP Text Encode (prompt)]
                                           [Load Checkpoint] ──model / clip / vae──▶ 各节点

步骤:

  1. 加载模型:Load Checkpoint → model、clip、vae
  2. 添加 Pixiv Browser 节点,选好参考图
  3. 添加 VAE Encode,将 Pixiv Browser 的 images 连接到 pixels,vae 连接到 vae
  4. 添加 CLIP Text Encode,填写提示词
  5. 添加 KSampler,连接 model、positive prompt、latent_image(来自 VAE Encode)
    • 建议 denoise 设为 0.6~0.8(值越低越接近原图)
  6. 添加 VAE DecodePreview Image
  7. Queue Prompt

示例 3:批量保存 Pixiv 图片到本地

[Pixiv Browser] ──images──▶ [Save Image]

步骤:

  1. 添加 Pixiv Browser 节点,选多张图
  2. 添加 Save Image 节点,设置保存路径前缀
  3. Queue Prompt,所有选中的图片会按序号保存到 ComfyUI/output/ 目录

工作流 JSON(示例 1)

将以下 JSON 保存为 .json 文件,在 ComfyUI 中通过 Load 导入即可:

{
  "last_node_id": 3,
  "last_link_id": 2,
  "nodes": [
    {
      "id": 1,
      "type": "PixivBrowser",
      "pos": [100, 200],
      "size": [210, 80],
      "flags": {},
      "order": 0,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {"name": "images", "type": "IMAGE", "links": [1], "slot_index": 0}
      ],
      "properties": {},
      "widgets_values": [""]
    },
    {
      "id": 2,
      "type": "PreviewImage",
      "pos": [380, 200],
      "size": [210, 246],
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [
        {"name": "images", "type": "IMAGE", "link": 1}
      ],
      "outputs": [],
      "properties": {}
    }
  ],
  "links": [
    [1, 1, 0, 2, 0, "IMAGE"]
  ],
  "groups": [],
  "config": {},
  "extra": {},
  "version": 0.4
}

常见问题

Q: gppt login-headless 报错或找不到命令?
A: 确认在 ComfyUI 所用的 Python 环境中安装了 gppt:pip install gppt。便携版用户请用 python_embeded\python.exe -m pip install gppt

Q: OAuth 登录后地址栏没有出现 pixiv:// 开头的 URL?
A: 部分浏览器(如 Chrome/Edge)在未安装 Pixiv 客户端时不会显示 pixiv:// 协议地址。请改用方式一(Refresh Token)登录。

Q: 登录后弹窗没有自动刷新?
A: 检查粘贴的 URL 是否完整,OAuth 方式要求以 pixiv://account/login?code= 开头。

Q: 图片加载不出来?
A: Pixiv 图片需要通过代理加载以绕过防盗链限制,代理由节点自动处理。若仍失败,检查网络是否能访问 Pixiv(可能需要代理工具)。

Q: 选好图片后 Queue Prompt 报错"所有图片下载失败"?
A: 原图下载需要网络能访问 i.pximg.net。请确认网络环境。

Q: 重启 ComfyUI 需要重新登录吗?
A: 不需要。token 保存在 config.json,重启后自动使用。


依赖

  • pixivpy3 — Pixiv App API Python 客户端
  • Pillow — 图像处理
  • aiohttp — 已包含在 ComfyUI 中
  • torch — 已包含在 ComfyUI 中

License

MIT