用Ideogram设计网页和logo
Ideogram其实已经上线很久了,只是最近2.0发布后才突然爆火。它的核心竞争力在于对文字的处理,同时它可以设计出“设计稿”风格的图片,因此,利用这两个特征,我们可以用它来设计我们需要的网页。当然,其实我们核心目的是设计出漂亮的界面,文字部分实际上作为参考,因为我们往往需要把这些文字替换为中文。
如何使用Ideogram?
进入Ideogram官网,只能使用google或apple账号登录,登录后直接在其页面的输入框内输入你想要的内容即可。与SD不同,你只需要按照自然语言进行描述即可,不像SD还需要各种关键字来出触发,也不像Midjourney还要输入命令符。你只需要按照自然语言的描述来输入prompt,以及几个非常简单的选项,即可。
然而,由于某些原因,国内目前无法直接使用Ideogram,这让我们无法使用这一优秀的生图模型。
你可以通过Developround来使用Ideogram,甚至你可以通过API来将它集成到你的服务中。只需要在Developround中进入 https://www.developround.com/service/37/entry 即可进入该服务。
用Ideogram来设计logo
制作logo的核心,将style_type指定为Design,在prompt中指明要创建的事物是logo。我们来看一下一些示例

candle logo in a minimalistic style. minimalistic silhouette of the goddess Hestia. color combination: blue, green, purple, gold. use the following text for the signature: “Hestia. Concept store”.

Create a logo in the red color of a perspective Trojan helmet, flag, shield, era, fierce, heroic, athletic, dark, bloody, fast, text with “INVICTUS NEUSS”, transparent background, sci-fi, illustration, fashion, poster, cinematic, typography.

Logo of “Yeboster” word, inspired by nature. Its simple design, is highly detailed, Typography.

A bright round logo in the style of a badge with the words “TaleCraft Gaming” highlighted in bold stylized font. The background shows a lush green landscape with trees and mountains 3d in Minecraft style . In the foreground, a knight in shining armor is facing the dragon. The knight’s sword is raised, and the dragon’s mouth is ablaze with fire as if he is about to spew flames. Small pixel symbols of the video game controller float around the edges of the stage. The logo evokes memories of fantasy, adventure, retro games, and epic stories. The overall style should be clean, clear, and visually dynamic.
在这些提示词中,我们可以很容易知道用户的目的是要创建一个logo,而且logo中都有文字。
虽然通过自然语言可以描述图片,但是,你可以看到在这些prompt中,存在一些术语,比如background, foreground, typography等,这些术语在大语言模型中,具有非常准确的含义,因此,多看看别人的prompt,或许就能掌握这些规律。
用Ideogram来设计网页
制作logo的核心,将style_type指定为Design,在prompt中指明要创建的事物是website page。另外,与logo不同的是,网页需要明确指出页面布局,或者说需要网页中的哪些元素,不需要太精确,因为模型会智能帮你处理。

A website design theme for a mobile phone and accessory website, whose content is going to be product description on the mobiles and links to their accessories. I want a theme which showcases trust and understanding for the customers and is also easy on the eyes. Give me mobile, tablet and desktop layouts

Design a modern, responsive website layout for a technology startup company. The homepage should feature a large hero section with a call-to-action button, a clean navigation bar at the top, and sections for showcasing services, client testimonials, and a blog. Use a minimalist color palette with shades of blue and white. Include a footer with social media links and contact information.
以下是一些用于生成网页设计稿的建议:
- 明确目的:清晰地说明网站的用途(例如,电子商务、作品集、企业、非营利组织)。
- 定义受众:描述目标受众,这可能会影响设计的风格和可用性。
- 提及关键元素:列出任何必须有的部分,如页眉、页脚、评价、画廊、表单等。
- 详细说明美学:明确风格——极简主义、现代、复古、俏皮、企业等——并提及特定的配色方案或图像。
- 响应性:如果网站应该是移动友好的,请明确指出。
- 用户体验:描述您希望网站包含的任何特定用户流程或交互(例如,平滑滚动、悬停效果、视差部分)。
可以看到,Ideogram帮我们设计出了完整的网页,而且这些设计要素都属于非常主流的设计元素,这样,你再也不用担心没有网页制作的灵感了。
macos大文件分片上传
我打算把模型文件上传到服务器,可死活上传不上去,git也下载不了,原因肯定是文件太大。于是打算采用分片上传的方案,在本地切分为一堆小文件,上传到服务器后,再到服务器上合并为原始文件。
本地分片:
mkdir chunks # 创建一个用来放切片的目录 split -d -b 100m chatglm3-6b-q4_0-ggml.bin chunks/bin_
执行之后,chunks目录下就会有一大堆bin_**的文件,把这些文件上传到服务器上的一个目录里,然后再服务器上进入这个目录,执行:
cat bin_* > chatglm3-6b-q4_0-ggml.bin
这样就会把这些文件又组合成原始文件,把这个文件放到预定位置后,就可以把这个目录删掉。
今天把我压箱底的web-replayer公开发布了
在开源Anys之后,我再次把自己的压箱底作品公开发布。在此之前,我一直的想法是密而不发,毕竟现在的伸手党实在是太多了,白嫖过去用,一分钱不掏,最后还可能被喷。虽然开源本身是非常好的,可以促进技术的发展,相互学习,一起创造出一些有意思的东西出来。然而,由于环境不好,好好的一件事,最后搞的不愉快。因此,我现在开源也好,公开发布新东西也好,也都留了一个心眼,避免卷入这些内耗纷争。
今天发布的是我在后台用来进行日志回放的播放器,取名web-replayer,见名知意。
https://www.npmjs.com/package/web-replayer
简单讲它就是一个用代码来进行演示的播放器。什么意思呢?就是它让你的代码执行,像播放器播放视频一样进行执行。我们使用anys的一个能力,就是录制前端页面的变更,用户的行为等等。那么当这些数据进入数据库之后,通过web-replayer,就可以把这些日志数据取出来进行回放,这样我们就可以在web-replayer中,看到用户的操作,以及当时的情况。那么具体怎么把一条条日志数据进行播放呢?这里就需要引入视频里面的“帧”的概念,理论上,1条日志就是1帧。因此,我们只需要把这些一帧一帧的过程,在web环境下给它呈现出来。怎么呈现呢?当然是操作DOM了。因此,我们只需要提供每一帧,如何操作DOM即可。如何操作DOM,则是依赖日志本身,当我们看到是一条mousemove的日志时,我们就操作DOM里面用来模拟鼠标的元素进行移动;当我们看到是一条snapshot的日志时,我们就直接用HTML镜像覆盖当前的DOM。这样,我们把对每一条日志对应的DOM操作都写好之后,我们只需要按照时间的流逝,不断去执行这些动作即可。这就是web-replayer的底层思路。当然,它自己还有一些其他方面的设计和考虑,但是核心思路就在这里。
基于这一思路,web-replayer不单单可以用来回放日志,你甚至可以用来实现一段视频,因为你可以在帧上操作图片、声音等素材,通过代码来编写这些东西,就可以实现一种神奇的“用代码做视频”的效果。
好了,如果你有兴趣,不妨通过上面的链接去下载和使用web-replayer。最后,我使用了较为严格的license,主要是防止某些不良服务商白嫖。如果你是个人,且不需要对源码进行修改,也不需要部署自己的服务,那么可以随便使用。
我们看似不规律的事情,反而是规律的正弦波在时域上的投影,而正弦波又是一个旋转的圆在直线上的投影。……我们眼中的世界就像皮影戏的大幕布,幕后有无数的齿轮在旋转。我们只看到屏幕上毫无规律的小人在表演,无法预测它的下一步。而幕后的齿轮却永远一直那样旋转,永不停歇。
技术本身的发展并不是核心,编程思想的发展才是进步
我最近一直在思考一个问题,大概9年前,我使用sea.js进行前端编程,那个时候觉得它很神奇,但于此同时,AMD/CMD带来的心智负担也很重,在编程中往往遇到一些不符合预期的结果。而我最近写了一个框架PHC,就开始反思,从技术层面讲,在sea.js的时代,似乎也是可以实现PHC的,为什么时隔那么多年,我才能写出这样的一个框架来呢?经过反思,我想这里面最大的原因,在于编程思维的进步。
我为什能写出PHC呢?因为我这么多年在前端的开发经验和尝试,让我自然而然的写出来。而我的这些尝试,往往又是在整个大的技术背景下被驱动的,如果没有这些年在sea.js, angularjs, vue, react等等框架的影响下,没有nodejs, 前端工程化, SSR, 微前端等等技术风潮的熏陶下,我也没有意识去写一个这样的框架。当随着技术的洪流随波逐行时,我们这一批的程序员的思维也在变迁,以前想不到的东西,在通过几个代际的更迭之后,也逐渐有了新想法,就有了PHC的尝试。
这一经历中,我发现,在sea.js的时代,我们完全可以做到PHC的同等效果,但是我们又做不到,因为那个时候没有UI组件化思想、微前端思想、沙盒思想,这些思想都是近几年才出现的,因此,在那个时代,我们无法做到。同样的道理,我现在能写出PHC,就像当年玉伯写出sea.js一样,他在模块化思潮的影响下写出的优秀框架,却无法超越时代写出更精简的实现。借古推今,再几年后,我自己回头看,也会感叹,自己当初怎么只能写出PHC这样的框架呢?历史时点上的思维限制,是我们技术发展本身无关的,虽然在技术发展中,新技术可以为我们提供可以用更少代码实现更强能力的工具,但是我们还是要看到,技术思维的发展,才是我们突破技术局限的核心根源。
这让我想起《三体》小说中的一句忠告:你要想,多想!

