Logo

ComfyScript: 增强ComfyUI的Python前端和库

ComfyScript

ComfyScript简介

ComfyScript是一个为ComfyUI提供Python前端和库的开源项目。ComfyUI是一个强大的AI图像生成工具,而ComfyScript则进一步增强了它的功能和灵活性。通过ComfyScript,用户可以更方便地使用Python代码来控制和扩展ComfyUI的功能。

ComfyScript主要有以下几个用途:

  1. 将ComfyUI的工作流转换为可读性更强的Python脚本
  2. 直接运行脚本生成图像
  3. 将ComfyUI作为函数库使用
  4. 使用脚本生成ComfyUI工作流
  5. 提取工作流中的信息
  6. 在不使用Web UI的情况下转换工作流格式

ComfyScript的主要功能

工作流转换器

ComfyScript的转换器可以将ComfyUI的工作流转换为Python脚本。这使得用户可以更方便地查看、比较和重用工作流中的不同部分。例如,一个简单的ComfyUI工作流可以被转换为如下的Python脚本:

model, clip, vae = CheckpointLoaderSimple('v1-5-pruned-emaonly.ckpt')
conditioning = CLIPTextEncode('beautiful scenery nature glass bottle landscape, , purple galaxy bottle,', clip)
conditioning2 = CLIPTextEncode('text, watermark', 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')

这种脚本形式不仅更易于理解和修改,还可以用于训练大型语言模型生成工作流,这比仅仅让模型生成一些硬编码的参数更加强大。

运行时环境

ComfyScript提供了一个运行时环境,使用户可以直接运行转换后的Python脚本来生成图像。这比使用Web UI更灵活,因为用户可以将Python代码与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('beautiful scenery nature glass bottle landscape, , purple galaxy bottle,', clip)
    conditioning2 = CLIPTextEncode('text, watermark', 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')

运行时环境还提供了一些额外的功能,如类型提示、异步执行和队列管理等。

函数库

ComfyScript允许将ComfyUI的节点作为函数来使用。这使得用户可以在其他项目中重用这些节点,进行机器学习研究,调试自定义节点,以及优化缓存以更快地运行工作流。

工作流生成

用户可以使用ComfyScript生成ComfyUI的工作流,然后在Web UI或其他地方使用这些工作流。这种方法允许用户使用循环等Python特性来生成大型复杂的工作流,这在手动创建时可能非常耗时或不切实际。

ComfyScript的安装

ComfyScript可以通过多种方式安装:

  1. 与ComfyUI一起安装:

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

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

ComfyScript的使用示例

绘图示例

以下是一个使用ComfyScript生成多张图像的示例:

with Workflow():
    seed = 0
    pos = 'sky, 1girl, smile'
    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 'red', 'green', 'blue':
        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} hires')

这个示例展示了如何使用不同的颜色和模型生成多张图像,并进行放大处理。

自动队列示例

ComfyScript还支持自动队列功能,可以在队列为空时自动添加新的工作流。以下是一个使用Photoshop与ComfyUI集成的示例:

def f(wf):
    seed = 0
    pos = '1girl, angry, middle finger'
    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)

这个示例展示了如何在Photoshop中的图像发生变化时自动进行img2img处理。

结论

ComfyScript为ComfyUI用户提供了一个强大的工具,使他们能够更灵活地使用和扩展ComfyUI的功能。通过将复杂的工作流转换为可读性强的Python脚本,ComfyScript不仅提高了工作流的可理解性和可重用性,还为高级用户提供了更多的自定义和集成选项。无论是对于偶尔使用的爱好者还是需要深度集成的专业用户,ComfyScript都提供了宝贵的功能扩展。随着项目的不断发展,我们可以期待看到更多创新的使用案例和功能增强。

最新项目

Project Cover
豆包MarsCode
豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。
Project Cover
AI写歌
Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。
Project Cover
商汤小浣熊
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
Project Cover
有言AI
有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。
Project Cover
Kimi
Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。
Project Cover
吐司
探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。
Project Cover
SubCat字幕猫
SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。
Project Cover
AIWritePaper论文写作
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。
Project Cover
稿定AI
稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。
投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号