2 天:我用文字 AI-ChatGPT 写了绘画 AI-Stable Diffusion 跨平台绘画应用

2023-11-05

文本 AI - ChatGPT 和绘画 AI - Stable Diffusion,平地惊雷,突然进入寻常百姓家。

如果时间可以快进,未来的人们对于我们这段时光的历史评价,大概会说:

当时的人们在短时间连续经历了这几种情感。从不信,去试试看;到远超预期,后怕;到释然钦佩感慨,进步来得太快。人们原以为 AI 是远方的灯塔,转眼,才发现在后面的是人类。再望向 AI,惊觉已望尘莫及。

作为一名开发者,我在想如果让 AI 代替我工作,是个什么感受呢?本文我想和你分享我在过去两天的探索。

前情回顾

倘若你十分幸运,暂时还没有体验这波 AI,以下是简短回顾。

比如下面这张截图,一个人在和一个另一个似乎全知全能的生物对话,这便是隶属于机器学习 NLP 自然语言处理分支的 ChatGPT。这个文本聊天 AI 是一个基于 RLHF,也就是带人工反馈的强化学习技术的超大语言模型。

这里面有两个关键点:RLHF,人工干预带奖励机制的训练过程,使它能向人类一样判断;超大语言模型,是将人类文明以文字的方式全盘托出,来赋予它智慧。

如果你最近在朋友圈看到雨后春笋般地艺术作品,或玩过各类文字画图小程序。这些极大可能是另一个 AI,即用来将文本转为图片,隶属于机器学习 CV 计算机视觉分支的 Stable Diffusion,在后台为你默默工作。

比如下面这张图,就是在向 Stable Diffusion 描述「一种会发光的外星菌菇」这段文字后,AI 生成的作品。

脑洞来源

刚巧最近 Apple 在 iOS 16.2 和 macOS 13.1 中对 Apple 芯片在 Core ML 大模型的表现作出更新,发论文如下,首次加入了对于 Stable Diffusion 的优化。现如今芯片技术,和手机电脑中神经网络引擎,终于在当下能支持此类推演。

我就在想,能不能写个 iOS 程序,这个程序能用上 Stable Diffusion,让我在 iPad 和电脑上,随时随地画个画。这样就能随时把脑洞转成图片了,也不需要看广告或者付月费,仰仗各种第三方提供方。

出于本能的懒惰,对于未来的好奇,以及回答 AI 能否替代人类这个问题。我想先抛个砖,让 ChatGPT 为我写这个程序。我的想法是,这个程序能够有个文本框,让我输入信息;有个倒计时,能够看到生成的进度;有个表格,能够让我看到不同设备生成图片需要的时间;有个按钮,能够让我导出和分享图片。

如果可以继续幻想,这个应用能有一些动画,画好的后图片能随意切换风格就好了。这里的切换风格,不是简单的加上滤镜,而是模仿我想要的诸如轮廓线画风,某个笔触风格等等。要在 Mac 上也能用,我就想要这么个随时能用的工具。

抱着以上幻想,我和 ChatGPT 就开工了,来写这么个 Stable Diffusion 绘画应用。

开工和感受

下图,就是我和 ChatGPT,在 2 天写好的绘画应用,实现了上面说的所有想法。你可以看到,在本应用中,我在文本框里敲了行描述了一只毛绒生物的句子,便收获了画好的图(恰如我制作这个应用的过程,对 AI 进行描述,便收获了这个应用)。

赘述技术细节意义不大,来说说看这 2 天的时间安排,AI 在里面扮演了什么角色。要开工,首先需要 Stable Diffusion 的机器学习模型。下载这一步本来应该很简单,但因为 GitHub 被标注成了诈骗网站,过程繁琐了不少。

在解决下载这一步里,遇到了诸如 M 芯片安装 HomeBrew 困难,Git lfs Clone 存在大坑等问题。原本我是通过搜索引擎来解决问题的,但很快便发现,这些可能偏小众的问题搜索引擎或者问答网站给出的答案时常是答非所问。在此步骤中,ChatGPT 对于我遇到的每个困难,都给出了针对性,可直接实操的解决方案。

让我惊讶的地方在于,对于你的提问,遇到任何困难或者 ChatGPT 提出的方法无效的时候,你都可以继续追问。在和 GPT 持续问答的帮助下,搞定了下图的模型下载。

有了模型后,接下来我需要一些说明文字。对于不同设备,列出表格,比如下面左图。与此同时,我还需要下图右侧的一些横向排列的 UI 元素,比如绘画按钮,切换风格按钮,分享按钮等等。

虽然可以自己用 SwiftUI 写,但本着能让 ChatGPT 干活的地方我不动手的基本原则,UI 的部分我都交给了它来写。而我做的,就是尽可能的把我想要的图景描述给 ChatGPT 听,比如下图代码的绘画按钮。

我是这样用英文给 ChatGPT 描述的,大概是「想要个能够带动画的按钮,支持两个函数,一个开始动画,另一个结束。动画需要缩放,名字你自己起就好」。而后我就收到了如下完整的 SwiftUI 代码,我负责把这些代码复制到 Xcode 里,选了个合适的图标,UI 就基本完成了。

至此,我已经被 ChatGPT 的工作能力震撼到。以上这些代码我也能写,但最少需要十分钟,而对于 ChatGPT 生成完整代码,只需要几秒,感觉自己的生命被大大节约。更重要的是,它生成的代码,基本都是对的,而且命名非常规范。

如果 UI 和动画这些内容,ChatGPT 可以胜任,那逻辑部分是否也可行?抱着这样试一试的心态,我把较为复杂的 On Demand Resource,即根据需求加载的代码,并且在资源下载完后储存到磁盘的逻辑,也一并描述给了 ChatGPT。

在这个过程中,我主要负责用 Xcode 来调试,并且把不同的模块衔接,从工作量上来说,我和 ChatGPT 几乎达到了一人一半的分工。

花了 2 天时间完整制作好的应用如下,看下方动图 5 秒,你会看到文字生成图片,绘画过程中的画笔动画,风格迁移和导出全过程。

其中:图片生成过程中的倒计时(ChatGPT 写的),模型存储逻辑(GPT 写的),机器学习风格切换(我训练的机器学习模型),分享和保存(我写的,因为用到了 2022 的知识 ChatGPT 暂时还没有)。

进度到了这里,就差起个名加个图标了。我一直很想要个头脑风暴的应用,把脑洞具像化,于是就叫 IdeaStorm,也就是想法风暴。既然这个应用,是和 ChatGPT 合作,最后做了绘画 AI Stable Diffusion 这样一款应用,本着复杂的问题交给 AI 的原则,我让这款应用自身,给自己画了个图标。

以下是最左侧,是 IdeaStorm,这款用 AI 写 AI 的尝试应用,给自己画的图标。

总结

AI 能为我们工作吗?或者说,AI 能够替代我们工作吗?本次实践中,我并未因为 IdeaStorm 是和 AI 的合作,而妥协任何原计划。2 天时间,从探索落地的尝试中,答案是肯定的。

曾有人说现在的硬件性能过剩,这次的体会中,过剩的性能很快就被需求所替代了。比如我在用 ChatGPT 工作,用 M2 开发 M1 测试,本应不错的电脑和设备,性能瓶颈是我意料之外的常驻感受。我时常在等设备来运行,来机器学习,来做模型推衍,来做项目编译。

原来不是硬件变慢了,而是在 AI 的加持下,我变快了。原本需要几十分钟才能推进的节点,现在只在一瞬间,就快进到了下一条。的确是生产力得到解放的感受。

(奥润橘用 IdeaStorm 的创作)

正如文章开头所说:

人们原以为 AI 是远方的灯塔,重点是远方,很远。转眼,才发现已经在后面的,原来才是人类。再望向 AI,惊觉已是望尘莫及。

亲自尝试之后,这便是我的感受。在这 2 天的开发过程中,遇事不决 ChatGPT,是我能对它给出的最高评价。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2 天:我用文字 AI-ChatGPT 写了绘画 AI-Stable Diffusion 跨平台绘画应用 的相关文章

随机推荐

  • 数据库服务器的监听系统在哪,数据库监控,数据库监控工具--运维监控系统PIGOSS BSM...

    数据就是一切 各类数据在企业生产经营中都起着至关重要的作用 是所有的经营活动所依赖的 不可或缺的信息 数据就犹如企业经营者的眼睛一样 通过数据可以反映出所有的问题 就犹如舵手依赖导航一样 现在每个企业和组织发展都需要依赖大量的数据 数据也成
  • java new list 对象_Java中List集合对象去重及按属性去重的8种方法

    最近在写一些关于java基础的文章 但是我又不想按照教科书的方式去写知识点的文章 因为意义不大 基础知识太多了 如何将这些知识归纳总结 总结出优缺点或者是使用场景才是对知识的升华 所以我更想把java相关的基础知识进行穿针引线 进行整体上的
  • 微信小游戏的电量监听

    在说小游戏的电量监听事件之前 我想先提一下小程序的电量监听事件 在微信小程序中 是没有电量监听事件的 因为小程序没有全屏 手机端的电量和wifi等信息一直可以看得到 所以小程序里就没有这样的api了 说回小游戏的电量监听 在微信小游戏的ap
  • Gitlab的API调用

    1 概述 Gitlab作为一个开源 强大的分布式版本控制系统 已经成为互联网公司 软件开发公司的主流版本管理工具 使用过Gitlab的都知道 想要提交一段代码 可以通过git push提交到远程仓库 也可以直接在Gitlab平台上修改提交
  • DeFi泡沫、NFT以及市场调整

    DeFi有泡沫吗 有 但谁又没有呢 如果有泡沫 DeFi的泡沫肯定不是最大的那个 截止到蓝狐笔记写稿时 按照Coingecko的统计 DeFi市值大约是135亿美元 XRP市值大约104亿美元 整个加密市场的总市值为3 418亿美元 跟整体
  • 【从0开始学架构笔记】01 基础架构

    文章目录 一 架构的定义 1 系统与子系统 2 模块与组件 3 框架与架构 4 重新定义架构 二 架构设计的目的 三 复杂度来源 高性能 1 单机复杂度 2 集群复杂度 2 1 任务分配 2 2 任务分解 微服务 四 复杂度来源 高可用 1
  • 计算机组成原理复习总结

    计算机组成原理复习总结 一 缩写词解释 CPU 中央处理器 ALU 算术逻辑单元 I O 输入输出接口 RAM 随机存储器 SRAM 静态随机访问存储器 DRAM 动态随机访问存储器 ROM 只读存储器 PROM 用户可编程的只读存储器 E
  • Verilog中模块的实例化

    首先创建一个模块为test 目录为这样 在模块test中写入 module test a b c input a b output c wire d e assign c a b and a1 d a b or a2 e a b rt pi
  • cpu风扇自动调速_电脑主板上CPU_FAN、SYS_FAN、CHA_FAN、CPU_OPT接口知识科普

    我们在电脑组装的过程中 安装过程虽然简单 不过往往都是在接线上遇到问题 经常有装机用户误将CPU散热器的供电线插到了SYS FAN上 虽然风扇可以转动 不过在开机可能会有F1报错 CPU Fan Error 同时也导致了CPU散热器无法智能
  • 为什么我们推荐使用VPC

    最近我在跟一些客户沟通的过程中发现有人对使用VPC Virtual Private Cloud 的优势还不是特别清楚 部分人认为只有那些需要把自己的数据中心与AWS进行连接的企业才需要使用VPC 实际上 我们的确可以通过VPC及其他相关的A
  • 多线程的安全问题一:同步方法与同步代码块

    一 引出线程安全问题 多个线程操作共享数据时 如果线程不完整 则很可能出现线程安全问题 线程执行不确定导致结果不确定 这里有一个三窗口买票程序 共100张票 public class Main2 public static void mai
  • springboot反射自动注入bean

    一 Java通过反射获取对象 执行方法 import java lang reflect Method public class Main public static void main String args throws Excepti
  • 树莓派3B开热点并自动启动

    lz最近项目需要 研究了一下树莓派开热点 试了一下几种方法 发现这一种是最简单 也是比较稳定的一种 现介绍如下 用putty或者vnc对树莓派进行操作 如下图示 putty登录界面 VNC登录界面 创建WiFi热点使用的GitHub上一个开
  • 谷歌云:全面推出 AlloyDB for PostgreSQL 与数据库迁移服务

    本文由Cloud Ace 整理发布 Cloud Ace 是谷歌云全球战略合作伙伴 拥有 300 多名工程师 也是谷歌最高级别合作伙伴 多次获得 Google Cloud 合作伙伴奖 作为谷歌托管服务商 我们提供谷歌云 谷歌地图 谷歌办公套件
  • js数组对象 模糊查找 指定 匹配字段内容

    以下内容仅供参考
  • 时序预测

    时序预测 MATLAB实现NGO BiLSTM北方苍鹰算法优化双向长短期记忆网络时间序列预测 目录 时序预测 MATLAB实现NGO BiLSTM北方苍鹰算法优化双向长短期记忆网络时间序列预测 预测效果 基本介绍 程序设计 参考资料 预测效
  • 抽象方法和抽象类

    目录 一 抽象方法和抽象类 1 区分普通方法和抽象方法 2 区分普通类和抽象类 3 定义一个抽象类 4 使用抽象类描述抽象的事物 5 抽象类和抽象方法的优势 6 抽象类的局限性 一 抽象方法和抽象类 1 区分普通方法和抽象方法 1 在Jav
  • PyEcharts——地图-数据可视化-画图

    目录 安装 实例代码 世界地图 中国地图 省份地图 市级地图 热力分布图geo 画地图的开发包包括以下 geopandas itchat basemap matplotlib以及Levenshtein pygal 官方文档 http pye
  • 服务器爬虫网页数据,爬虫(二)—解析真实网页(猫途鹰)

    from bs4 import BeautifulSoup import requests import time urls https www tripadvisor cn Attractions g187147 Activities c
  • 2 天:我用文字 AI-ChatGPT 写了绘画 AI-Stable Diffusion 跨平台绘画应用

    文本 AI ChatGPT 和绘画 AI Stable Diffusion 平地惊雷 突然进入寻常百姓家 如果时间可以快进 未来的人们对于我们这段时光的历史评价 大概会说 当时的人们在短时间连续经历了这几种情感 从不信 去试试看 到远超预期