NEWS

新闻

了解openKylin最新资讯,关注社区和产品动态。

NEWS

Learn about the latest news.

openKylin 2.0 智能文生图,解锁无限创意!

2024-10-21 09:58:18
openKylin(开放麒麟)

随着AIPC概念产品不断落地,openKylin操作系统正在不断地嵌入AI的各种能力,为社区用户带来更智能的体验。在openKylin 2.0版本中,基于KolourPaint画图工具和VISION视觉大模型,开发实现了智能文生图功能。那么,当传统的画图应用遇上先进的AI文生图技术,会碰撞出怎样的火花呢?


01
智能生成,创意无限

在openKylin 2.0版本中,画图工具利用先进的自然语言处理与深度学习技术,能够根据用户输入的文本描述,自动生成丰富多彩的图像。无论是壮丽的山水风光,还是细腻的静物描绘,只需简单的文字描述,即可解锁无限创意。

打开画图工具:

openKylin(开放麒麟)

输入图像描述内容:

openKylin(开放麒麟)

首次打开,在未配置模型下,会自动弹出配置模型弹窗,下面图像中已经为添加状态:

openKylin(开放麒麟)

点击VISION视觉大模型选中右侧的+添加按钮,并选择模型类型,输入APIKey和APISecret:

openKylin(开放麒麟)

添加后重新打开画图,并输入图像描述,点击立即生成按钮,等待生成,点击生成结果后可以在左侧编辑界面进行细化操作;

openKylin(开放麒麟)

文生图功能中存在对生成图像风格选项,存在16种风格,如下:

openKylin(开放麒麟)


根据不同的需求,选择对应的风格进行生成,生成界面还存在分辨率和一次生成数量的选择,每种模型支持的不一样,所显示的分辨率和生成数量也不一样;

openKylin(开放麒麟)

openKylin(开放麒麟)

生成结果部分存在本次使用的历史选项,通过切换箭头可以选择每次生成的图像数据进行查看和编辑;

openKylin(开放麒麟)

画图工具本身具有多种编辑能力,支持对生成图片进行二次绘画;

openKylin(开放麒麟)

同时,支持图像导出保存功能,并有多种图像文件格式选项进行选择。

openKylin(开放麒麟)


02
应用场景,简直全面

教育领域:提供直观、生动的视觉学习材料,激发学习兴趣与创造力。如以下细胞结构的生成结果:

openKylin(开放麒麟)

设计行业:可借助AI快速生成概念图,加速设计流程,提高工作效率。如以下室内空间布局图的生成结果:

openKylin(开放麒麟)

艺术创作:提供灵感源泉,促进传统艺术与现代科技的融合创新。如以下三维雕塑山水画的生成:

openKylin(开放麒麟)

日常生活:轻松创作个性化壁纸、表情包等,装点生活,分享快乐。

openKylin(开放麒麟)


03
自己动手,丰衣足食

在openKylin系统中,为了更好的嵌入AI功能,系统提供了SDK的接口能力,首先需要通过终端安装实际的开发包:

    sudo apt install libkylin-ai-base-dev

    安装后在代码中关联相关的PC文件和头文件:

    CMakeLists.txt:

      find_package(PkgConfig REQUIRED)pkg_check_modules(AIBASE kylin-ai-base)include_directories(${AIBASE_INCLUDE_DIRS})

      头文件:

        #include <ai-base/modelconfig.h>#include <ai-base/vision.h>#include <kylin-ai/config.h>

        调用视觉模型服务创建函数,实现创建文生图模型功能:

          bool AIModeDataThread::setSessionStatus(){VisionSession session = nullptr;VisionResult ret = vision_create_session(&session);//创建视觉模型服务if (ret != VISION_SUCCESS) {qDebug()<<"创建失败VisionResult="<<ret <<"ErrorMessage:"<<vision_get_last_error_message();return false; }VisionResult initRet = vision_init_session(session);//初始化模型if (initRet != VISION_SUCCESS) {qDebug()<<"初始化失败 VisionResult="<<initRet<<"ErrorMessage:"<<vision_get_last_error_message(); return false;   }return true; }

          调用设置具体生成数据,如数量、风格、描述等:

            /** @brief setImageGenerationDataAI服务调用函数 @return */bool setImageGenerationData() {int width = ImageSize.width();int height = ImageSize.height();  vision_set_prompt2image_number(session, ImageNum); //设置生成数量
            vision_set_prompt2image_size(session, width, height); //设置生成宽高  vision_set_prompt2image_callback(session, generateImageCallback, this);//设置回调函数,用于生成的图像数据进行回调vision_set_prompt2image_style(session, ImageStyle);//设置生成风格VisionResult imageRet = vision_prompt2image_async(session, textBox.toLocal8Bit().data());//传输生成图片描述的字体if (imageRet != VISION_SUCCESS) {qDebug()<<"文字输入失败,VisionResult="<<imageRet<<"ErrorMessage:"<<vision_get_last_error_message();return false; }return true;}

            文生图回调函数,在上一步设置图像数据后,用于模型返回生成的图片数据:

              /** * @brief generateImageCallback * AI生成后回调函数 * @param imageData * @param userData */void AIModeDataThread::generateImageCallback(VisionImageData imageData, void* userData){qDebug()<<"AI生成回调函数: 图像长度:"<<imageData.data_size<<"图像数据:"<<imageData.data;    QPixmap map;map.loadFromData(imageData.data, imageData.data_size); //QPixmap可以实现图像数据转换}

              感兴趣的社区爱好者可以在openKylin中自己动手开发,代码已在https://gitee.com/openkylin中开源。


              04
              结语

              在openKylin 2.0版本中,AI文生图技术的融入是对传统画图应用的一次革新。社区诚邀广大用户、开发者及艺术爱好者共同加入这场创意与技术交织的盛宴,携手共创更加多彩、智能的视觉世界。