目录
引言
前面已经测试了一些CangjieMagic的功能,今天来介绍一下其文生图能力。CangjieMagic内置模型只有OpenAI和硅基流动支持文生图能力,由于众所周知的原因,OpenAI并不方便使用,本文仅介绍硅基流动平台。CangjieMagic的官方示例中没有包括文生图的例子,本文也是一个补充。
硅基流动平台
硅基流动是一个大模型服务平台,其核心产品SiliconCloud云服务平台集成超百款主流模型,包括DeepSeek-R1、Qwen,以及文生图和视频生成等模型。
硅基流动提供的文生图模型今年发生了一些变化,目前可以免费使用的是快手的KColors模型。登录其平台后可以体验一下该模型的能力。
获得API Key
获得API Key的方法:
- 登录后点击左侧导航栏「API密钥」模块
- 选择「新建API密钥」并填写描述信息(如:ChatGPT对接密钥)
- 复制生成的
sk-xxxx
格式密钥,该密钥仅显示一次需妥善保存
使用前需要在环境变量中设置SILICONFLOW_API_KEY为生成的API Key。出于安全考虑,尽量不要在程序中写入这个Key。
文生图API
硅基流动的文生图API介绍参见:创建图片生成请求 - SiliconFlow。其API和OpenAI兼容,比较容易理解,在此不赘述了。生成的图像会存储在云端,通过返回的 URL 可以访问该图像,链接有有效期。
CangjieMagic文生图
CangjieMagic的文生图和文本模型很类似。
- 文本生成是由ModelManager.createChatModel来实现,而文生图是由ModelManagercreateImageModel来完成的。
- ImageRequest是用于生成图像的类,根据图像请求创建图像响应。
-
ImageResponse是用于处理平台返回的信息。
测试程序
下面是测试程序,程序中借助ModelManager
创建了名为siliconflow:Kwai-Kolors/Kolors
的图像生成模型。构建ImageRequest
对象,将 "夏天,沙滩,比基尼,躺椅" 作为文本提示,并且把图像尺寸设定为 1024×1024。调用模型的create
方法来生成图像,最后打印出生成图像的 URL。
package genimg
import magic.dsl.tool
import magic.jsonable.*
import magic.tool.NativeFuncTool
import magic.core.model.ImageRequest
import magic.model.ModelManager
main(): Int64 {
let model = ModelManager.createImageModel("siliconflow:Kwai-Kolors/Kolors")
let resp = model.create(
ImageRequest(
"夏天,沙滩,比基尼,躺椅",
size: "1024x1024"
)
)
println("图像已经生成, URL:${resp.url}")
return 0
}
使用下面的命令执行代码:
developer@developer:~/IDEProjects/genimg$ cjpm run --name genimg
图像已经生成, URL:https://sc-maas.oss-cn-shanghai.aliyuncs.com/XXXXX
cjpm run finished
生成的图片整体看还行,只是美女的脸部有点吓人。
结束语
CangjieMagic框架使用非常简单,可以很容易的和平台对接,实现文生图功能。希望本文提供的方法能为您的实际工作带来启发。