-
项目 GitHub 地址
-
免费线上示例产品
-
该示例产品的源代码
-
-
封面图对应的项目的源代码
需求 | 方案
在上一篇文章(用 Python 打造 AIGC 的「操作系统」)里,我提到过这个 Python + 无限画板的项目 —— carefree-drawboard 🎨,其实是想成为下一代的 Gradio / Streamlit。那么,现有的各种工具究竟存在什么问题,使得我们迫切需要一个新的工具?这个主要分两方面考虑
首先,对基于 Python 来写产品的工具(Gradio / Streamlit)而言:
-
现有工具写出来的一个个 demo 都相对独立,很难说互相结合/集成起来
-
即使有那种很大型的项目(Stable Diffusion WebUI 是个经典的例子),它也只是自己设计了一套插件的范式,所以也是一套封闭的系统,只不过系统内可拓展
-
-
写出来的东西距离商业化落地还是有很长一段距离:交互性、用户体验、美观度等等都差强人意,更多只是一种功能演示的 demo
其次,为什么需要基于 Python 来写产品:
-
最近的 AI 如井喷式发展,而大多数开源项目都是基于 Python 来写的,这意味着 Python 正逐渐(或者,已经)成为 AI 领域编程语言的事实标准
-
Python 上手门槛相对较低,很适合初学者接触并尝试
再加上,我们认为:
-
思考/设计各种 UI 对程序员来说是很花时间而且很痛苦的一个过程
-
大多数用户交互其实都可以抽象成“给服务器发一些数据”和“从服务器接收一些数据”
-
一个完全解耦的系统是我们梦寐以求的,因为这样就可以很容易地去自定义、拓展以及维护
-
「无限画板」的产品形态能够满足绝大多数普通需求(乃至企业级需求)
所以为了解决上述的所有问题,carefree-drawboard 🎨 做出了如下的“规定”:
-
所有功能都体现为无限画板上的一个插件
-
插件的样式需要是完全声明式的,而且需要原生支持一套“智能布局系统”(当然这个系统也需要是声明式的)
-
在这里,“定义样式”的行为除了写一些一般意义的 css 样式以外,还囊括了“定义用户交互的样式”。比如,定义该插件需要用户输入哪些数据等等
-
-
具体执行功能逻辑时,插件只能看到这么两种数据:
-
用户在与插件交互时输入的数据
-
当前画板上被选中的节点的数据
-
这样一来,前文的所有问题就都有了解决方案:
-
因为功能都是插件,所以彼此之间天然支持结合/集成
-
因为产品形态是无限画板,所以写出来的东西是企业级产品。事实上,目前它已经在服务一些 B 端,而且产生了可观的现金流了
-
它目前已经完全支持了用 Python 来写插件,所以所有最新开源出来的 AI 能力,理论上都可以在很短的时间内转换成该项目可用的插件。比如,文章开头提到的示例产品里,就涵盖了以下所有功能,而且这些功能都是在较短时间内就用纯 Python 写完了:
-
文生图(Text to Image)
-
垫图生成(Image to Image)
-
生成相似图(Variation generation)
-
超分辨率 / 图片变高清(Super Resolution)
-
抠图(Image Matting)
-
生成图片描述(Image Captioning)
-
局部消除(Inpainting)
-
局部替换(Stable Diffusion Inpainting)
-
图像外延(Stable Diffusion Outpainting)
-
-
由于这些插件有一套“智能布局系统”,所以基本不用再苦苦思索怎么设计 UI:直接用原生的这套系统就行了
-
插件天然支持可插拔,所以是完全解耦的
这也是为什么我们把该项目称为 AI 的操作系统,因为确实每项 AI 能力都可以看做是该系统的一个“软件”,用户可以选择安装/卸载它们;甚至之后可以有 Market Space,用户可以对这些“软件”进行交易 / 评价
听起来很不错!但是为什么我要用它?
该项目的目标用户群体其实是比较明确的,如果你:
-
是一个 Python 程序员
-
想要拥有自己的、能力足够强大的、能集成各种 AI / 非 AI 功能的、企业级的产品
的话,那么该项目应该能满足你的所有需求
先从个人角度来看,拿笔者来举例,目前笔者已经基于该项目,结合上之前陆陆续续做过的一些常用到的功能,打造出了笔者个人的“全能工作站”。现在笔者的工作流一般就是把这个全能工作站对应的画板打开,然后需要什么都能通过相应的插件来进行交互、并获得反馈。比如大家耳熟能详的 Stable Diffusion、ChatGPT,以及大家可能经常会用到的翻译、Google 等,都被笔者集成到了这个全能工作站里
然后从商业化角度来看,其实就更顺理成章了。毕竟,正如前文所说,我们已经凭借该项目的开源版本,成功地跑出了可观的现金流了,而且确实卖出去的产品就只是多写了几十行 Python 代码而已,没改到非 Python 的部分
那观众老爷可能会关心:哪些行业可能会需要这个项目,我想卖的话应该往哪卖呢?
这里举一些我们已经成功服务过的案例,作为参考:
-
AIGC 教育辅助工具
-
AI 编程 / 少儿编程 / 低代码编程课的载体
-
专业级 AIGC OEM / SaaS 交付
-
专业级 MVP 构建
好像很棒!但它能直接部署吗?
答案是可以的,因为我最近做了不少工作,刚好就是能在某种模式下,让你可以无改动地把产品直接部署起来。当然,这种模式会有一些不足,但对于早期需求验证、MVP 构建来说,已经是绰绰有余的了 ( ^ω^)
看了这么多东西,还是有点太抽象了,能给些例子吗?
也许 Stable Diffusion Outpainting 是一个能比较好说明无限画板强大之处的例子:
Stable Diffusion Outpainting
如果观众老爷比较关心 Stable Diffusion 的话可能会知道,有些项目即使只能做无限 Outpainting 这一件事,就已经非常火热,而这只是 carefree-drawboard 🎨 里一个小小的插件而已 ♪(^∇^*) !
太好了!那么我该如何开始呢?
我在项目里写了比较详细的 Wiki,其中有一篇叫 Getting Started,它可以比较好地带着你上手 d(`・∀・)b !
同时在之后的专栏文章里,我也会陆续更新一些本项目的技术细节,欢迎大家多多关注
最后再贴一下项目地址:carefree0910/carefree-drawboard: 🎨 Infinite Drawboard in Python (github.com)https://github.com/carefree0910/carefree-drawboard
期待各位观众老爷的意见与建议!!