Python3,自从我掌握了Doscoart库, 我对艺术的成就越来越高。

简介: Doscoart库没想到真的能自动进行艺术绘画。

1、引言

小屌丝:鱼哥,最近在忙啥?

小鱼:咱俩陌生了?

小屌丝:何出此言?

小鱼:你说的话又嘛意思呢?

小屌丝:我的意思, 最近看你这整理各种资料,貌似很忙的样子?

小鱼:我平时不也这么忙嘛

小屌丝:鱼哥, 还能正常唠嗑嘛?

小鱼:我又没说不能唠嗑。

小屌丝:鱼哥,行… 非常行…

小鱼:男人,怎么能不行!

小屌丝:…

小鱼:~ ~

2000.jpg


小屌丝:discoart模块知道吗?

小鱼:貌似, 大概,可能,或许,知道。

小屌丝:太好了, 那能不能给我讲一讲呢?

小鱼:然后呢?

小屌丝:老地方~

小鱼:又是老地方,整的我都不好意思了。

小屌丝:这都是小事,我主要就想让你多放松放松…

小鱼:停,停, 打住~ 别说多了, 我们来聊discoart。

小屌丝:别着急啊,

小鱼:能不着急吗,你看,这都几点了, 再晚一会,就…

小屌丝:昂…


2、 代码实战

2.1 模块介绍

说起 discoart 可能大部分都不太了解。

但是,说到艺术库,可能你就有些印象了。

这里,我也引用官网对discoart的解析,让你对它有个初步的了解,如下:


DiscoArt is an elegant way of creating compelling Disco Diffusion[*] artworks for generative artists, AI enthusiasts and hard-core developers.
DiscoArt has a modern & professional API with a beautiful codebase, ensuring high usability and maintainability. It introduces handy features such as result recovery and persistence, gRPC/HTTP serving w/o TLS, post-analysis, easing the integration to larger cross-modal or multi-modal applications.


这里,我也简答的用汉语描述一下,即:

DiscoArt是一种优雅的方式,可以为生成艺术家,AI爱好者和铁杆开发人员创建引人注目的Disco Diffusion艺术品。
DiscoArt拥有现代和专业的API,具有漂亮的代码库,确保了高可用性和可维护性。它引入了方便的功能,例如结果恢复和持久性,没有TLS的gRPC / HTTP服务,后期分析,简化与更大的跨模态或多模态应用程序的集成。



简答一句话概括:DiscoArt就是为了艺术而生的。


2.2 模块安装

涉及到第三方库,肯定就需要安装

老规矩,pip 安装

pipinstalldiscoart


然后就是等待着安装。

其它安装方式,直接看这两篇:

安装的样子,如下:


image.png


这里提示一下:


  • 按照官网的要求, discoart的使用,必须依托于:Python 3.7+ 和 CUDA 的 PyTorch 。

2.3 代码示例

2.3.1 创建默认图片

这里直接使用discoart的 create方法即可

代码示例

# -*- coding:utf-8 -*-# @Time   : 2023-02-12# @Author : Carl_DJ'''实现功能:    使用默认参数创建图片'''fromdiscoartimportcreateca=create()


效果展示

5fd853931d424121892935f85248432c.gif



2.3.2 设置参数创建图片

代码示例

# -*- coding:utf-8 -*-# @Time   : 2023-02-12# @Author : Carl_DJ'''实现功能:    设置参数创建图片'''fromdiscoartimportcreate#设置参数ca=create(
text_prompts='A painting of sea cliffs in a tumultuous storm, Trending on ArtStation.',
init_image='https://d2vyhzeko0lke5.cloudfront.net/xxxx7e77b72f0.png',
skip_steps=100,
)


效果展示

param-out.gif


2.3.3 查看设置参数

如果你忘记参数,也没关系,直接用cheatsheet 查询即可

代码展示

# -*- coding:utf-8 -*-# @Time   : 2023-02-12# @Author : Carl_DJ'''实现功能:    查看设置参数'''fromdiscoartimportcheatsheet#设置参数sha=cheatsheet()


2.3.4 查看配置

如果要查看文档配置, 可以使用show_config:


代码示例

# -*- coding:utf-8 -*-# @Time   : 2023-02-12# @Author : Carl_DJ'''实现功能:    查看文档配置'''fromdiscoratimportshow_config# 展示第一个项目运行的配置show_config(da)
# 参考第四个项目的运行配置show_config(da[3])
#查看discoartIDshow_config('discoart-xxxxfbf288')


2.3.5 保存配置

如果要保存文档配置, 可以使用save_config:


代码展示

# -*- coding:utf-8 -*-# @Time   : 2023-02-12# @Author : Carl_DJ'''实现功能:    保存文档配置'''fromdiscoartimportsave_config#保存第一次运行的配置save_config(da, 'my.yml')  
#保存第四次运行的配置save_config(da[3], 'my.yml')


2.3.6 加载配置

有了查看和保存,当然也可以直接加载配置文件了, 这里,使用load_config即可


代码示例

# -*- coding:utf-8 -*-# @Time   : 2023-02-12# @Author : Carl_DJ'''实现功能:    加载文档配置'''fromdiscoartimportcreate, load_config#加载配置文件config=load_config('my.yml')
create(**config)


2.3.7 导出配置文件

为了便于后期的管理使用,同样可以直接导出配置文件为SVG映像,使用 save_config_svg方法:


代码示例

# -*- coding:utf-8 -*-# @Time   : 2023-02-12# @Author : Carl_DJ'''实现功能:    导出配置文件为SVG映像'''fromdiscoart.configimportsave_config_svg#直接保存为svg映像save_config_svg(da)



这里也展示一下, 保存的svg映像

image.png


2.3.8 生成Python代码

更神奇的功能,就是可以直接从配置中生成可运行的Python代码,使用export_python方法:


代码示例

# -*- coding:utf-8 -*-# @Time   : 2023-02-12# @Author : Carl_DJ'''实现功能:    生成可运行的Python代码'''fromdiscoart.configimportexport_pythonexport_python(da)


2.3.9 调用文档

如果你觉得自己配置太繁琐, 那可以直接使用DocumentArray作为初始状态运行。


代码示例

# -*- coding:utf-8 -*-# @Time   : 2023-02-12# @Author : Carl_DJ'''实现功能:    调用DocumentArray作为初始状态,运行'''fromdiscoartimportcreatefromdocarrayimportDocumentArrayda=DocumentArray.pull('discoart-32xxx')
create(
init_document=da[0],
cut_ic_pow=0.5,
tv_scale=600,
cut_overview='[12]*1000',
cut_innercut='[12]*1000',
use_secondary_model=False,
)



当然, 如果你只想从已有的 DocArray ID 初始化, 那也不是不可能,

# -*- coding:utf-8 -*-# @Time   : 2023-02-12# @Author : Carl_DJ'''实现功能:    从已有的 DocArray ID 初始化'''fromdiscoartimportcreatecreate(init_document='discoart-320xxxx')


3、总结

看到这里, Doscart库的介绍就完成了。

按照流程, 我们来回顾一下今天都分享了啥内容:


  • 创建默认图片;
  • 设置参数创建图片;
  • 查看设置参数;
  • 查看文档配置;
  • 报错文档配置;
  • 加载文档配置;
  • 导出配置文件
  • 生成Python代码;
  • 调用文档;


你看, Doscoart也没有想想的那么难嘛, 常用的功能,也就差不多这么多。

所以, 只要我们把一个库从头到尾的捋一遍, 其实是很容易掌握的。


最后,唠叨一句:

我是奕然:

  • CSDN 博客专家;
  • 阿里云 专家博主;
  • 51CTO 博客专家;
  • 51认证讲师;
  • 金牌面试官&面试培训师


关注我,带你学习更多更有趣的Python知识。


目录
相关文章
|
1天前
|
API 调度 开发者
Python中的并发编程:使用asyncio库实现异步IO
传统的Python编程模式中,使用多线程或多进程实现并发操作可能存在性能瓶颈和复杂性问题。而随着Python 3.5引入的asyncio库,开发者可以利用异步IO来更高效地处理并发任务。本文将介绍如何利用asyncio库实现异步IO,提升Python程序的并发性能。
|
2天前
|
JSON Shell 数据格式
第十章 Python常用标准库使用(必会)
第十章 Python常用标准库使用(必会)
|
2天前
|
开发框架 前端开发 数据库
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
|
2天前
|
数据采集 数据可视化 数据处理
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
|
2天前
|
JSON 测试技术 API
Python的Api自动化测试使用HTTP客户端库发送请求
【4月更文挑战第18天】在Python中进行HTTP请求和API自动化测试有多个库可选:1) `requests`是最流行的选择,支持多种请求方法和内置JSON解析;2) `http.client`是标准库的一部分,适合需要低级别控制的用户;3) `urllib`提供URL操作,适用于复杂请求;4) `httpx`拥有类似`requests`的API,提供现代特性和异步支持。根据具体需求选择,如多数情况`requests`已足够。
9 3
Python
20 0
|
3天前
|
JSON 数据格式 索引
python 又一个点运算符操作的字典库:Munch
python 又一个点运算符操作的字典库:Munch
20 0
|
3天前
|
数据挖掘 数据处理 索引
如何使用Python的Pandas库进行数据筛选和过滤?
Pandas是Python数据分析的核心库,提供DataFrame数据结构。基本步骤包括导入库、创建DataFrame及进行数据筛选。示例代码展示了如何通过布尔索引、`query()`和`loc[]`方法筛选`Age`大于19的记录。
10 0
|
4天前
|
数据处理 Python
如何使用Python的Pandas库进行数据排序和排名
【4月更文挑战第22天】Pandas Python库提供数据排序和排名功能。使用`sort_values()`按列进行升序或降序排序,如`df.sort_values(by='A', ascending=False)`。`rank()`函数用于计算排名,如`df['A'].rank(ascending=False)`。多列操作可传入列名列表,如`df.sort_values(by=['A', 'B'], ascending=[True, False])`和分别对'A'、'B'列排名。
14 2
|
5天前
|
算法 Python
请解释Python中的关联规则挖掘以及如何使用Sklearn库实现它。
使用Python的mlxtend库,可以通过Apriori算法进行关联规则挖掘。首先导入TransactionEncoder和apriori等模块,然后准备数据集(如购买行为列表)。对数据集编码并转换后,应用Apriori算法找到频繁项集(设置最小支持度)。最后,生成关联规则并计算置信度(设定最小置信度阈值)。通过调整这些参数可以优化结果。
25 9