ComfyScript

GitHub
663 41 简单 1 次阅读 昨天MIT图像
AI 解读 由 AI 自动生成,仅供参考

ComfyScript 是专为 ComfyUI 打造的 Python 前端与开发库,旨在将原本基于图形节点的工作流转化为人类可读的 Python 代码。它有效解决了复杂工作流难以版本管理、复用和批量生成的痛点,让用户不再受限于拖拽式界面,能够利用 Python 强大的编程能力(如循环、函数封装及逻辑控制)来构建和运行图像生成流程。

这款工具特别适合开发者、AI 研究人员以及习惯代码操作的高级用户。对于研究者而言,ComfyScript 允许将 ComfyUI 节点作为函数库直接调用,便于进行机器学习实验、调试自定义节点及优化缓存策略;对于开发者,它支持通过脚本自动生成庞大的工作流,甚至利用大语言模型(LLM)直接编写工作流代码,极大提升了自动化效率。此外,它还提供了将现有图形工作流自动转译为 Python 脚本的功能,并支持本地或远程服务器运行。无论是希望以更灵活方式掌控生成逻辑的技术人员,还是寻求将 AI 工作流集成到现有 Python 项目中的工程师,ComfyScript 都提供了一个高效、透明且易于扩展的解决方案。

使用场景

一位算法研究员需要批量测试不同提示词组合对生成图像质量的影响,并自动记录实验数据。

没有 ComfyScript 时

  • 必须在 ComfyUI 网页端手动拖拽节点、连线,重复构建数十个相似的工作流,效率极低且容易出错。
  • 无法直接使用 Python 的 for 循环或逻辑判断来动态调整参数,只能硬编码每个工作流或依赖外部脚本调用 API,导致逻辑割裂。
  • 难以复用现有节点逻辑进行二次开发,调试自定义节点时需要频繁在图形界面和代码之间切换,上下文断裂。
  • 提取工作流中的中间数据(如潜空间特征)非常繁琐,通常需要手动添加保存节点并整理大量临时文件。
  • 团队协作时,图形化的工作流文件难以进行版本对比(Diff),无法清晰看出具体参数或结构的变更。

使用 ComfyScript 后

  • 直接用 Python 代码定义工作流,通过简单的 for 循环即可自动生成并执行上百种参数组合的实验,大幅缩短研发周期。
  • 将 ComfyUI 节点作为普通 Python 函数调用,无缝混合使用原生库(如 NumPy 处理数据)与 AI 生成逻辑,代码结构清晰统一。
  • 利用“真实模式”直接导入节点进行单元测试或性能分析,无需启动完整的图形界面,调试过程更加轻量高效。
  • 在脚本中灵活插入数据提取逻辑,运行时自动捕获并结构化存储关键指标,彻底告别手动整理文件的痛苦。
  • 工作流即代码,天然支持 Git 版本管理,团队成员可以清晰地对比代码差异,快速定位优化点或回滚错误修改。

ComfyScript 通过将图形化工作流转化为可编程的 Python 代码,让复杂的 AI 实验实现了自动化、版本化和工程化的高效闭环。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明 (取决于后端 ComfyUI 及所加载模型的需求,通常推荐 NVIDIA GPU)

内存

未说明

依赖
notes该工具是 ComfyUI 的 Python 前端和库。它本身不直接规定具体的硬件需求,而是依赖于后端的 ComfyUI 服务器或本地安装的 ComfyUI。因此,实际的 GPU、显存和内存需求完全取决于用户运行的具体工作流和加载的 AI 模型(如 Stable Diffusion 等)。支持多种安装方式:作为独立包连接远程/本地 ComfyUI 服务器、作为 ComfyUI 自定义节点安装、或使用 uv 工具一键部署包含 ComfyUI 的完整环境。
python>=3.9
comfy-script[default]
ComfyUI
uv (可选,用于快速环境管理)
ComfyScript hero image

快速开始

ComfyScript

PyPI - 版本 Python版本(来自PEP 621 TOML) 许可证

ComfyScript 是一个用于 ComfyUI 的 Python 前端和库。

它具有以下使用场景:

  • 作为 ComfyUI 工作流的 人类可读格式

    这使得比较和重用工作流的不同部分变得容易。此外,由于许多大型语言模型能够较好地处理 Python 代码,因此也可以训练这些模型来生成工作流。这种方法比仅仅让 LLM 提供一些硬编码参数更为强大。

    脚本可以自动从 ComfyUI 的工作流中转换而来。详情请参阅 转译器

  • 直接运行脚本以生成图像。

    与使用 Web UI 相比,这样做的一大优势是可以将 Python 代码与 ComfyUI 的节点混合使用,例如进行循环、调用库函数以及轻松封装自定义节点。这还使得添加交互变得更加容易,因为用户界面和逻辑都可以用 Python 编写。另外,有些人可能更习惯于简单的 Python 代码,而不是基于图的 GUI。[^graph-gui]

    详情请参阅 运行时。脚本可以在本地或通过远程 ComfyUI 服务器执行。

  • 将 ComfyUI 用作函数库。

    使用 ComfyScript,可以将 ComfyUI 的节点当作函数来开展机器学习研究、在其他项目中重用节点、调试自定义节点,并优化缓存以加快工作流的运行速度。

    详情请参阅运行时的 真实模式

  • 使用脚本生成 ComfyUI 的工作流。

    脚本还可以用来生成 ComfyUI 的工作流,然后在 Web UI 或其他地方使用。这样就可以利用循环生成庞大的工作流,而手动创建这些工作流可能会非常耗时或不切实际。详情请参阅 工作流生成。此外,还可以从 ComfyScript 生成的图像中加载工作流。

  • 通过运行带有某些桩代码的脚本获取所需信息。

    详情请参阅 工作流信息检索

  • 在没有 Web UI 的情况下,将 ComfyUI 的 Web UI 格式的工作流转换为 API 格式。

文档

安装

仅安装 ComfyScript 包

如果您只想将 ComfyScript 与外部 ComfyUI 服务器一起使用,例如使用云端 ComfyUI 服务器并开发应用程序或库:

首先安装 Python。

安装或更新 ComfyScript:

python -m pip install -U "comfy-script[default]"

保存并运行 以下代码 进行测试(例如 python examples/runtime.py):

from comfy_script.runtime import *
# ComfyUI 服务器/路径
# 或:load(r'path/to/ComfyUI')
load('http://127.0.0.1:8188/')
from comfy_script.runtime.nodes import *

with Workflow(wait=True):
    image = EmptyImage()
    images = util.get_images(image, save=True)

或者,无需安装 Python,可以直接使用 uv 来运行 ComfyScript:

uv run examples/uv.py

examples/uv.py

# /// script
# requires-python = ">=3.9"
# dependencies = [
#     "comfy-script[default]",
# ]
# ///
from comfy_script.runtime import *
load('http://127.0.0.1:8188/')
from comfy_script.runtime.nodes import *

with Workflow(wait=True):
    image = EmptyImage()
    images = util.get_images(image, save=True)

详情请参阅 仅安装 ComfyScript 包

与 ComfyUI 一起安装

如果您已经安装了 Python 和 ComfyUI:

如果您尚未安装 ComfyUI,请先安装它。请参阅 ComfyUI 安装 或使用 Comfy-Cli 进行安装:

python -m pip install comfy-cli
comfy --here install

然后运行以下命令安装 ComfyScript:

cd ComfyUI/custom_nodes
git clone https://github.com/Chaoses-Ib/ComfyScript.git
cd ComfyScript
python -m pip install -e ".[default]"

更新:

cd ComfyUI/custom_nodes/ComfyScript
git pull
python -m pip install -e ".[default]"

[default] 是安装常用依赖项所必需的。其他选项请参阅 pyproject.toml。如果未指定任何选项,则 ComfyScript 将在没有任何依赖的情况下安装。

与 ComfyUI 及 uv venv 一起安装

如果您尚未安装 Python 或 ComfyUI,可以使用快速的 Python 包和项目管理工具 uv 来同时安装 ComfyUI 和 ComfyScript:

首先 安装 uv。然后创建一个虚拟环境,安装 Comfy-Cli 和 ComfyUI:

mkdir ComfyUI
cd ComfyUI
uv venv --seed --python 3.12
uv pip install comfy-cli
uv run comfy --workspace . install

# (可选)启动 ComfyUI 进行测试
# uv run main.py

安装 ComfyScript:

git clone https://github.com/Chaoses-Ib/ComfyScript.git ./custom_nodes/ComfyScript
uv pip install -e "./custom_nodes/ComfyScript[default]"

更新 ComfyScript:

git -C "./custom_nodes/ComfyScript" pull
uv pip install -e "./custom_nodes/ComfyScript[default]"

[default] 是安装常用依赖项所必需的。其他选项请参阅 pyproject.toml。如果未指定任何选项,ComfyScript 将在没有任何依赖的情况下安装。

请注意,uv 只能在工作目录为 ComfyUIComfyUI/* 时发现 ComfyUI 的虚拟环境。要在其他目录中使用该虚拟环境,例如在 ComfyUI/custom_nodes/ComfyScript 或您的脚本目录中,您需要手动激活它:

cd ComfyUI
# Windows
.\.venv\Scripts\activate
# Linux
source .venv/bin/activate

如果您在 VS Code 中使用 ComfyScript 时遇到问题,请参阅 VS Code

使用 ComfyUI 包进行安装

如果您想将 ComfyUI 作为 pip 包安装:

首先安装 ComfyUI 包

  • 如果尚未安装 PyTorch:

    python -m pip install git+https://github.com/hiddenswitch/ComfyUI.git
    
  • 如果已安装 PyTorch(例如在 Google Colab 中):

    python -m pip install wheel
    python -m pip install --no-build-isolation git+https://github.com/hiddenswitch/ComfyUI.git
    

安装或更新 ComfyScript:

python -m pip install -U "comfy-script[default]"

[default] 是必需的,用于安装常用依赖项。其他选项请参阅 pyproject.toml 文件。如果不指定任何选项,ComfyScript 将不带任何依赖项安装。

如果最新的 ComfyUI 包出现问题,可以使用上次测试通过的版本:

python -m pip install --no-build-isolation git+https://github.com/hiddenswitch/ComfyUI.git@95a12f42e2b0c78202af10f2337009bd769157a7

容器

其他

如遇到任何问题,请参阅 故障排除VS Code。卸载方法请参考 卸载指南

转译器

转译器可以将 ComfyUI 的工作流转换为 ComfyScript。

当 ComfyScript 以自定义节点的形式安装时,SaveImage 等节点会自动钩子,将脚本保存为图像的元数据,并同时在终端中打印该脚本。

如果您是在 ComfyUI 外部安装了 ComfyScript,仍然可以通过以下方式使用转译器:

  • CLI
    python -m comfy_script.transpile "workflow.json" --api http://127.0.0.1:8188/
    
    或者无需安装 ComfyScript,直接使用 uv:
    uvx --from "comfy-script[default]" python -m comfy_script.transpile "workflow.json" --api http://127.0.0.1:8188/
    
  • Python 代码
  • Jupyter Notebook / Web:MetadataViewer

例如,以下是 ComfyUI 中的一个工作流:

由此转换得到的 ComfyScript 如下:

model, clip, vae = CheckpointLoaderSimple('v1-5-pruned-emaonly.ckpt')
conditioning = CLIPTextEncode('美丽的风景 自然 玻璃瓶 风景画, , 紫色星系瓶,', clip)
conditioning2 = CLIPTextEncode('文字 水印', clip)
latent = EmptyLatentImage(512, 512, 1)
latent = KSampler(model, 156680208700286, 20, 8, 'euler', 'normal', conditioning, conditioning2, latent, 1)
image = VAEDecode(latent, vae)
SaveImage(image, 'ComfyUI')

如果一个工作流中有两个或多个 SaveImage 节点,每个节点只会翻译其必要的输入参数生成脚本。例如,以下是一个两步的 txt2img(高分辨率修复)工作流:

针对这两个保存图像分别生成的 ComfyScript 如下:

  1. model, clip, vae = CheckpointLoaderSimple('v2-1_768-ema-pruned.ckpt')
    conditioning = CLIPTextEncode('杰作 HDR 维多利亚风格女性肖像画,金发,山地自然,蓝天', clip)
    conditioning2 = CLIPTextEncode('手部缺陷 文字 水印', clip)
    latent = EmptyLatentImage(768, 768, 1)
    latent = KSampler(model,89848141647836,12,8,'dpmpp_sde', 'normal', conditioning,conditioning2,latent,1)
    image = VAEDecode(latent,vae)
    SaveImage(image,'ComfyUI')
    
  2. model,clip,vae = CheckpointLoaderSimple('v2-1_768-ema-pruned.ckpt')
    conditioning = CLIPTextEncode('杰作 HDR 维多利亚风格女性肖像画,金发,山地自然,蓝天', clip)
    conditioning2 = CLIPTextEncode('手部缺陷 文字 水印', clip)
    latent = EmptyLatentImage(768,768,1)
    latent = KSampler(model,89848141647836,12,8,'dpmpp_2m', 'simple', conditioning,conditioning2,latent,1)
    latent2 = LatentUpscale(latent,'nearest-exact', 1152,1152,'disabled')
    latent2 = KSampler(model,469771404043268,14,8,'dpmpp_2m', 'simple', conditioning,conditioning2,latent2,0.5)
    image = VAEDecode(latent2,vae)
    SaveImage(image,'ComfyUI')
    

脚本对比:

运行时

使用运行时,可以按如下方式运行 ComfyScript:

from comfy_script.runtime import *
load()
from comfy_script.runtime.nodes import *

with Workflow():
    model, clip, vae = CheckpointLoaderSimple('v1-5-pruned-emaonly.ckpt')
    conditioning = CLIPTextEncode('美丽的风景 自然 玻璃瓶 风景画, , 紫色星系瓶,', clip)
    conditioning2 = CLIPTextEncode('文字,水印', clip)
    latent = EmptyLatentImage(512, 512, 1)
    latent = KSampler(model, 156680208700286, 20, 8, 'euler', 'normal', conditioning, conditioning2, latent, 1)
    image = VAEDecode(latent, vae)
    SaveImage(image, 'ComfyUI')
    
    # 若要获取 `image` 而不是保存它,可将 `SaveImage` 替换为:
    # images = util.get_images(image)
    # `images` 的类型为 `list[PIL.Image.Image]`

Jupyter Notebook 示例可在 examples/runtime.ipynb 中找到。

  • 加载后,将在 comfy_script/runtime/nodes.pyi 中生成类型存根文件。主流代码编辑器(例如 VS Code)可以利用这些存根文件来辅助编码:

    对于所有提供值列表的参数,都会生成 Python 枚举。因此,您无需再复制粘贴类似 'v1-5-pruned-emaonly.ckpt' 的字符串,而是可以直接使用:

    Checkpoints.v1_5_pruned_emaonly
    # 或
    CheckpointLoaderSimple.ckpt_name.v1_5_pruned_emaonly
    

    嵌入向量也可以通过 Embeddings.my_embedding 来引用,这等价于 'embedding:my-embedding'。有关详细信息,请参阅 枚举

    如果类型存根对您不起作用(无法获得与截图相似的效果),请参阅 类型存根不工作

  • 运行时默认是异步的。您可以将多个任务加入队列,而无需等待第一个任务完成。一个守护线程会监控并报告队列中剩余的任务以及当前进度,例如:

    队列剩余:1
    队列剩余:2
    100%|██████████████████████████████████████████████████| 20/20
    队列剩余:1
    100%|██████████████████████████████████████████████████| 20/20
    队列剩余:0
    

    此外,还提供了一些控制功能:

    # 中断当前任务
    queue.cancel_current()
    # 清空队列
    queue.cancel_remaining()
    # 中断当前任务并清空队列
    queue.cancel_all()
    # 当队列为空时调用回调函数
    queue.when_empty(callback)
    
    # 使用 Workflow 时:
    Workflow(cancel_remaining=True)
    Workflow(cancel_all=True)
    

如果您之前使用过 ComfyUI 的 Web UI,请参阅 与 ComfyUI Web UI 的区别,更多关于运行时的详细信息请参阅 运行时文档

示例

绘图

with Workflow():
    seed = 0
    pos = '天空, 1位女孩, 微笑'
    neg = 'embedding:easynegative'
    model, clip, vae = CheckpointLoaderSimple(Checkpoints.AOM3A1B_orangemixs)
    model2, clip2, vae2 = CheckpointLoaderSimple(Checkpoints.CounterfeitV25_25)
    model2 = TomePatchModel(model2, 0.5)
    for color in '红色', '绿色', '蓝色':
        latent = EmptyLatentImage(440, 640)
        latent = KSampler(model, seed, steps=15, cfg=6, sampler_name='uni_pc',
                          positive=CLIPTextEncode(f'{color}, {pos}', clip), negative=CLIPTextEncode(neg, clip),
                          latent_image=latent)
        SaveImage(VAEDecode(latent, vae2), f'{seed} {color}')
        latent = LatentUpscaleBy(latent, scale_by=2)
        latent = KSampler(model2, seed, steps=15, cfg=6, sampler_name='uni_pc',
                          positive=CLIPTextEncode(f'{color}, {pos}', clip2), negative=CLIPTextEncode(neg, clip2),
                          latent_image=latent, denoise=0.6)
        SaveImage(VAEDecode(latent, vae2), f'{seed} {color} 高分辨率')

自动队列

当队列为空时,自动将新工作流加入队列。

例如,可以使用 comfyui-photoshop(目前还有一些小问题)来实现:当 Photoshop 中的图像发生变化时,自动执行 img2img 操作:

def f(wf):
    seed = 0
    pos = '1位女孩, 生气, 中指'
    neg = 'embedding:easynegative'
    model, clip, vae = CheckpointLoaderSimple(Checkpoints.CounterfeitV25_25)
    image, width, height = PhotoshopToComfyUI(wait_for_photoshop_changes=True)
    latent = VAEEncode(image, vae)
    latent = LatentUpscaleBy(latent, scale_by=1.5)
    latent = KSampler(model, seed, steps=15, cfg=6, sampler_name='uni_pc',
                        positive=CLIPTextEncode(pos, clip), negative=CLIPTextEncode(neg, clip),
                        latent_image=latent, denoise=0.8)
    PreviewImage(VAEDecode(latent, vae))
queue.when_empty(f)

截图:

选择与处理

例如,一次生成 3 张图片,然后让用户决定哪些需要进行高分辨率修复:

import ipywidgets as widgets

queue.watch_display(False)

latents = []
image_batches = []
with Workflow():
    seed = 0
    pos = '天空, 1位女孩, 微笑'
    neg = 'embedding:easynegative'
    model, clip, vae = CheckpointLoaderSimple(Checkpoints.AOM3A1B_orangemixs)
    model2, clip2, vae2 = CheckpointLoaderSimple(Checkpoints.CounterfeitV25_25)
    for color in '红色', '绿色', '蓝色':
        latent = EmptyLatentImage(440, 640)
        latent = KSampler(model, seed, steps=15, cfg=6, sampler_name='uni_pc',
                          positive=CLIPTextEncode(f'{color}, {pos}', clip), negative=CLIPTextEncode(neg, clip),
                          latent_image=latent)
        latents.append(latent)
        image_batches.append(SaveImage(VAEDecode(latent, vae), f'{seed} {color}'))

grid = widgets.GridspecLayout(1, len(image_batches))
for i, image_batch in enumerate(image_batches):
    image_batch = image_batch.wait()
    image = widgets.Image(value=image_batch[0]._repr_png_())

    button = widgets.Button(description=f'高分辨率修复 {i}')
    def hiresfix(button, i=i):
        print(f'第 {i} 张图片被选中')
        with Workflow():
            latent = LatentUpscaleBy(latents[i], scale_by=2)
            latent = KSampler(model2, seed, steps=15, cfg=6, sampler_name='uni_pc',
                            positive=CLIPTextEncode(pos, clip2), negative=CLIPTextEncode(neg, clip2),
                            latent_image=latent, denoise=0.6)
            image_batch = SaveImage(VAEDecode(latent, vae2), f'{seed} 高分辨率')
        display(image_batch.wait())
    button.on_click(hiresfix)

    grid[0, i] = widgets.VBox(children=(image, button))
display(grid)

本示例使用了 ipywidgets 来构建 GUI,当然也可以使用其他 GUI 框架。

截图:

UI

ipywidgets UI

ImageViewer

一个简单的图片查看器,可以显示多张图片,并可选添加标题。

Solara UI

这些 Solara 组件既可以在 Jupyter Notebook 中使用,也可以嵌入到网页中。

MetadataViewer

用于查看由 ComfyScript / ComfyUI / Stable Diffusion Web UI 生成的图片元数据的组件。同时也支持工作流 JSON 文件,包括 Web UI 格式和 API 格式。

致谢

日期 赞助者 备注
2026-01-27 Nils Schuseil 未知项目
2025-04-20 @derhuebiii

使用本库的项目

[^graph-gui]: 我讨厌节点。(并非针对 ComfyUI):StableDiffusion

版本历史

v0.7.0a12025/12/24
v0.6.12025/11/20
v0.6.02025/11/19
v0.5.12024/09/07
v0.5.02024/09/06
v0.5.0a52024/05/15
v0.5.0a42024/05/09
v0.5.0a32024/05/03
v0.5.0a22024/04/29
v0.5.0a12024/04/21
v0.4.62024/04/13
v0.4.52024/04/13
v0.4.42024/04/09
v0.4.32024/04/05
v0.4.22024/02/26
v0.4.12024/02/13
v0.4.02024/02/11
v0.3.22024/02/03
v0.3.12024/01/29
v0.3.02024/01/28

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|1周前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|1周前
语言模型图像Agent

Deep-Live-Cam

Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。

88.9k|★★★☆☆|1周前
开发框架图像Agent