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月前
|
调度 开发者 Python
Python中的异步编程:理解asyncio库
在Python的世界里,异步编程是一种高效处理I/O密集型任务的方法。本文将深入探讨Python的asyncio库,它是实现异步编程的核心。我们将从asyncio的基本概念出发,逐步解析事件循环、协程、任务和期货的概念,并通过实例展示如何使用asyncio来编写异步代码。不同于传统的同步编程,异步编程能够让程序在等待I/O操作完成时释放资源去处理其他任务,从而提高程序的整体效率和响应速度。
|
1月前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
66 0
|
21天前
|
XML 存储 数据库
Python中的xmltodict库
xmltodict是Python中用于处理XML数据的强大库,可将XML数据与Python字典相互转换,适用于Web服务、配置文件读取及数据转换等场景。通过`parse`和`unparse`函数,轻松实现XML与字典间的转换,支持复杂结构和属性处理,并能有效管理错误。此外,还提供了实战案例,展示如何从XML配置文件中读取数据库连接信息并使用。
Python中的xmltodict库
|
28天前
|
数据库 Python
异步编程不再难!Python asyncio库实战,让你的代码流畅如丝!
在编程中,随着应用复杂度的提升,对并发和异步处理的需求日益增长。Python的asyncio库通过async和await关键字,简化了异步编程,使其变得流畅高效。本文将通过实战示例,介绍异步编程的基本概念、如何使用asyncio编写异步代码以及处理多个异步任务的方法,帮助你掌握异步编程技巧,提高代码性能。
58 4
|
28天前
|
API 数据处理 Python
探秘Python并发新世界:asyncio库,让你的代码并发更优雅!
在Python编程中,随着网络应用和数据处理需求的增长,并发编程变得愈发重要。asyncio库作为Python 3.4及以上版本的标准库,以其简洁的API和强大的异步编程能力,成为提升性能和优化资源利用的关键工具。本文介绍了asyncio的基本概念、异步函数的定义与使用、并发控制和资源管理等核心功能,通过具体示例展示了如何高效地编写并发代码。
33 2
|
1月前
|
数据采集 JSON 测试技术
Python爬虫神器requests库的使用
在现代编程中,网络请求是必不可少的部分。本文详细介绍 Python 的 requests 库,一个功能强大且易用的 HTTP 请求库。内容涵盖安装、基本功能(如发送 GET 和 POST 请求、设置请求头、处理响应)、高级功能(如会话管理和文件上传)以及实际应用场景。通过本文,你将全面掌握 requests 库的使用方法。🚀🌟
56 7
|
1月前
|
机器学习/深度学习 数据采集 算法
Python机器学习:Scikit-learn库的高效使用技巧
【10月更文挑战第28天】Scikit-learn 是 Python 中最受欢迎的机器学习库之一,以其简洁的 API、丰富的算法和良好的文档支持而受到开发者喜爱。本文介绍了 Scikit-learn 的高效使用技巧,包括数据预处理(如使用 Pipeline 和 ColumnTransformer)、模型选择与评估(如交叉验证和 GridSearchCV)以及模型持久化(如使用 joblib)。通过这些技巧,你可以在机器学习项目中事半功倍。
40 3
|
1月前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
40 2
|
27天前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南
|
1月前
|
文字识别 自然语言处理 API
Python中的文字识别利器:pytesseract库
`pytesseract` 是一个基于 Google Tesseract-OCR 引擎的 Python 库,能够从图像中提取文字,支持多种语言,易于使用且兼容性强。本文介绍了 `pytesseract` 的安装、基本功能、高级特性和实际应用场景,帮助读者快速掌握 OCR 技术。
61 0