添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
用 Python 打造 AIGC 的「操作系统」

用 Python 打造 AIGC 的「操作系统」

1 个月前 · 来自专栏 Python 与 无限画板

最近,AIGC 可谓是大火而特火,然而现在大家一般都在用 Gradio / Streamlit 写 demo,一方面无法作为企业级产品去服务客户,另一方面也感觉比较东一块西一块,很难形成“合力”。咱中国的发烧友那么多,试想一下,如果大家的贡献都能集中在同一个产品里,那将会打造出一款多么极致的产品!

所以我最近开源了一个项目:carefree-drawboard,主打的就是「无限画板」的形态,然后每个 AI 功能都是一个「插件」。这样一来,即使有几十上百、甚至上千的插件,都可以集中在同一个「无限画板」产品中,从而达成“合力”的愿景。如果再把想象力放开一些,我会把它定义成 AI / AIGC 的操作系统:每项 AI / AIGC 能力都是这个操作系统的软件,用户可以选择安装/卸载它们;甚至之后可以有 Market Space,用户可以对软件进行交易 / 评价。

​目前我已经写了一个 AIGC “基础版”的公网示例,猛戳 这里 即可体验( p.s. 所有模型都只是 SD 的推理优化版,不是自研大模型,所以不支持中文(逃 ),这是它涵盖的功能:

  • 文生图(Text to Image)
  • 垫图生成(Image to Image)
  • 生成相似图(Variation generation)
  • 超分辨率 / 图片变高清(Super Resolution)
  • 抠图(Image Matting)
  • 生成图片描述(Image Captioning)
  • 局部消除(Inpainting)
  • 局部替换(Stable Diffusion Inpainting)
  • 图像外延(Stable Diffusion Outpainting)

​如果大家对 AIGC 比较熟悉,应该都听说过上述功能。但是,你听说过把这些功能都整合在一起,而且整个产品界面还非常干净、非常沉浸式的产品吗?

WebUI 其实算一个,不过个人感觉 ta 还是偏 demo,而且——

再加上,如果这些功能,都仅需小几百行 Python 代码——而且大部分代码都是“样式”代码——就能加到产品里呢?

这就是本项目的目标:通过把 AI 功能抽象成插件的方式,我们能做到声明式地定义插件样式、并把核心算法逻辑封装成单一的函数。再加上把数据结构定义得足够通用后,就能在同一套数据结构上进行不同的算法处理,继而完成无限画板与 Python 间的通信。

文章开头有说到,现有的 Gradio / Streamlit 产出的东西都偏 demo;这么说自然是因为,我们自信本项目产出的产品是企业级的产品,是有巨大潜力的——事实上,基于本项目的产品已经在服务一些 Big Name,同时也产生了可观的现金流。以下是我们服务过程中遇到的常见场景:

  • AIGC 教育辅助工具
  • AI 编程 / 少儿编程 / 低代码编程课的载体
  • AI 产学研转换工具(比如,赋能大学生创业)
  • 专业级 AIGC OEM / SaaS 交付
  • 专业级 MVP 构建

这篇文章算是一个简介和宣传,后面我会陆续更新本项目的技术细节。然后如果大家仍有兴趣,在这文章的最后,我来简单说明一下为什么这个项目能以相对优雅的方式容纳这么多的功能。以我上面贴出来的 这个示例产品 为例:

  • 一开始其实我们只能接触到“文生图”的功能(在屏幕右边中间)
  • 只有在选中了某张图片之后,图片的右上角才会出现一个“插件组”,点击它将会展开一系列“图片插件”:图片变高清,抠图,垫图生成,生成图片描述等
    • 让画板上有图片的方法有三种:一种是把图片直接拖到画板上,一种是点击右上角的+,里面有个“添加图片”的按钮,还有一种就是把图片用“文生图”生成出来
  • 只有当用户点击了右上角的“笔刷”功能、并在某张图片上画了一个蒙版区域、并且同时选中图片和蒙版之后,选中节点的右上角才会出现一个“插件组”,点击它将会展开 inpainting 等功能
  • 只有当用户点击右上角的+并点击了里面“添加空白画布”的按钮之后,才会在空白画布的右上角出现一个“插件组”,里面有 outpainting 的功能。注意,只有在这个空白画布位于某张图片的下方时,才能使 outpainting 功能生效

所以我们看到,之所以产品能这么干净,是因为我们支持一种“智能自适应”:当某些特定条件被满足时,插件才会出现,而且可以跟随用户选中的节点。这提供了其它产品提供不了的沉浸式体验。

当然你可能会忧虑:这样会不会把功能藏太深了?我们已经考虑到了这一点:事实上,你也完全可以把功能平铺在屏幕的某个地方,这样就和一般产品别无二致。我们只是提供了“智能自适应”的可能性,而是否用、用到何种程度,其实你都可以根据你对产品形态的期望来制定。

最后再贴一下项目地址:

期待各位观众老爷的意见与建议!!​

(猛戳我进入下一章!( σ'ω')σ )

编辑于 2023-06-06 19:01 ・IP 属地北京

文章被以下专栏收录

    Python 与 无限画板

    Python 与 无限画板

    用 Python 打造 AI 的「操作系统」