西安市网站建设_网站建设公司_支付系统_seo优化
2026/1/16 7:13:48 网站建设 项目流程

原文:towardsdatascience.com/i-combined-the-blockchain-and-ai-to-generate-art-heres-what-happened-next-859309c5d4c6

指南

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/b7a1f0072a2074a602575c23dbeaf72d.png

想象一个场景,代表这些实体之间的价值流动和连接。包括一朵小花,一棵用柔和的粉彩色的树。来源:Stable Diffusion。

探索彩虹

如果区块链可以通过图像来可视化,它将是什么样子?

区块链是一种分布式账本的技术实现,通常与金融交易相关联。这远非我们可能认为的美丽事物。特别是,存储在区块链上的数据大多由与价值相关的复杂数字、字母和符号组成,包括发送者和接收者地址(钱包)和元数据。

然而,我之前曾致力于生成图像来表示量子计算,这与区块链类似,也由复杂的数字组成。我曾想过,是否可能将使用 AI 和大型语言模型的相同可视化技术以及提示工程结合起来,从全新的数据源生成图像。

让我们试试吧!

这一切都关于特征

要从区块链生成图像,我们首先需要确定要利用的特征

一个典型的交易具有以下属性,用于识别发送者接收者金额费用、一个唯一 ID和其他相关元数据

Transaction Hash a3c26b8572447228f515e71e41ce70af93d590e48e77ff6e97d70beb7919f8da Total Fees0.168317ADA Total Output1,307.847408ADA Sender addr1_test1upm4c9yw05l0su5ygfj4a7qhxkqy2qwg5plupmradr6wnxssp8wj0 Receiver addr1_test1uz25rnrpv5njt85h5q2c6yaj2wre0n43s3thed5syrmcdrq85p0rm

这些特征可以作为 AI 和 LLM 生成相应图像的提示中的主要指标。

疯狂背后的魔法

可视化过程将根据从交易中识别的特征生成一个图像。

我们将从区块链中加载一个交易并提取关键字段。在这种情况下,我们将使用Cardano。当然,可以使用任何加密货币,包括比特币、以太坊和 Solana。重要的是,我们将包括交易哈希中的值、发送者和接收者地址,最重要的是,交易的价值,以便以美丽和富有想象力的方式可视化数据流。

最后,我们将利用提示工程来构建一个适合 LLM 生成图像的合适提示信息。

图像生成过程

在这个过程中,我们需要进行两次网络请求。一次请求用于检索交易,另一次用于调用 LLM。

以下图表展示了这种设计。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/ac5fdd9bd58cb8b05fb01be2df8493fe.png

使用 AI 和 LLM 从区块链生成图像。来源:作者。

创建脚本

我们过程的第一步是创建一个程序,该程序可以从区块链中加载详细信息。

我们将使用BlockFrost API 来访问交易,这允许我们读取数据,而无需将整个区块链加载到 PC 上(这可以非常大,且 CPU 密集)。只要我们有交易 ID,这很容易在 Python 中实现。

deffetch_transaction_details(tx_id):tx_details=api.transaction_utxos(tx_id)ada_amount=sum(int(output.amount[0].quantity)foroutputintx_details.outputsifnotoutput.collateral)/1000000# Convert lovelace to ADAsender=tx_details.inputs[0].address receiver=tx_details.outputs[0].addressreturnTransactionDetails(tx_id,ada_amount,sender,receiver)

如上面的代码示例所示,我们正在提取交易 IDADA 金额以及发送者接收者地址。这些数字和字母数字值应该足以帮助 AI 生成图像。

现在关键数据点已经提取出来,是时候进行一点提示工程了。

秘密配方就在提示信息中

提示工程为基于原始数值生成图像提供了关键的动力。它也是我们可以发挥自身创意以实现最终结果的地方。

由于我们不仅想可视化交易中的数值,还想展示发送者和接收者之间信息流动的概念,我们可以在提示信息中包含这个想法,并让 AI 尝试可视化结果。

“根据以下交易详情生成图像:想象一个代表这些实体之间价值流动和连接的场景。包括一片草地,一条色彩温暖、诱人的小溪。交易 ID:abc123,ADA 金额:10.25,发送者:addr1_testabc,接收者:addr1_testxyz。”

当然,提示信息并非像上面示例中那样完全硬编码。相反,我们在将提示信息发送到 LLM 之前,会从交易中注入变量

是时候发挥创意了

这就是真正的魔法所在——在提示信息中。

如上所述,我们使用一个主要静态提示来指导 LLM 如何生成图像。然而,提示信息中仍然有占位符,我们的脚本将作为可视化过程的一部分,从中插入交易中的特征。

这些功能之一是价值的数量。

将交易分组到区间中

由于我们希望价值的数量(ADA)通过不同类型的图像来表示,我们将金额分成区间,然后提供不同的图像场景。

按交易金额对箱子进行分类

  • 0–4:小花朵,一棵树

  • 5–9:一个花园,几棵树

  • 10–19:一个公园,一个小池塘

  • 20–29:一片草地,一条小溪

  • 30–39:一片茂盛的草地,花朵

这个箱子定义可以按照以下方式实现。

defgenerate_prompt(tx_details):ifada_amount<5:objects="a small flower, a single tree"color_scheme="soft pastel colors"elifada_amount<10:objects="a garden, a few trees"color_scheme="light and vibrant colors"elifada_amount<20:objects="a park, a small pond"color_scheme="bright and cheerful colors"elifada_amount<30:objects="a meadow, a stream"color_scheme="warm and inviting colors"# ...else:objects="a vast landscape, a sunset"color_scheme="dramatic and intense colors"prompt=f"Generate an image based on the following transaction details:Imagine a scene that represents the flow of valueandconnection between these entities.Include{objects}with{color_scheme}.Transaction ID:{tx_id},ADA Amount:{ada_amount},Sender:{sender},Receiver:{receiver}."

使用条件开关结构根据交易中的价值量选择一组特定的对象配色方案。这个列表可以像我们希望的那样长和复杂。在上面的例子中,箱子从 10 到 100 分开。你甚至可以使用 LLM 在代码中生成这些对象和配色方案。

提示构建完成后,就轮到 LLM 发挥作用了。

生成图像

我们将使用 Hugging Face LLM 为Stable Diffusion生成图像。

我们在先前步骤中构建的提示将通过API发送到 Stable Diffusion模型。这是通过一个简单的 POST 请求完成的,传递提示字符串并等待结果。

响应是一串字节,我们将其保存到图像文件中。然而,在保存图像之前,我们可以进行一些后期处理,使事物更加有趣!

response=requests.post("https://api-inference.huggingface.co/models/stabilityai/stable-diffusion-3.5-large",headers=headers,json={"inputs":prompt,},)image=Image.open(io.BytesIO(response.content))image.save("image.png")

将交易叠加到图像上

在从 LLM 收到图像后,可以在图像上执行无数的后处理效果

为了表明图像是从区块链交易生成的,让我们直接在图像上绘制交易 ID、发送者、接收者和金额。这为最终结果创造了一种签名,增添了有趣的转折。

我还考虑过绘制一些小物体,如硬币火花,数量与交易金额相等,以进一步可视化价值。不妨亲自试试!

最后,程序执行,我们等待结果!

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e4c701cc35f12f48b6feb5d8a226b6ab.png

包含一个海滩,一棵带有凉爽和清新颜色的棕榈树。来源:Stable Diffusion。

现实世界应用中的潜力

从区块链生成视觉内容确实是一个有趣的概念。然而,也许存在进一步发展的潜力。

通过利用人类(或 AI)的创造力,再加上一点试错,这项技术可以解锁许多现实世界应用

复杂数值可视化的可能用例包括以下任何一种想法:

  • 诗歌

  • 音乐

  • 图表

  • 数字艺术和 NFTs

  • 艺术

在数据和方法可访问的情况下,大型语言模型(LLMs)在生成各种内容方面非常强大。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a4b326bc8f021633c10660bbc0a16a22.png

包含一片广阔的风景,一个带有戏剧性和强烈颜色的日落。来源:Stable Diffusion。

拿到下一步

我在创建这个项目时非常愉快,希望它能帮助你激发在区块链上可以做的事情的灵感。完整的源代码可以在这里找到。

通过结合区块链和 LLM 的尖端技术,再加上一点想象力,未来无限可能。

你接下来会创造什么?

关于作者

如果你喜欢这篇文章,请考虑关注我的Medium、Twitter和我的网站,以便接收我的未来文章和研究工作的通知。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询