Python3,2分钟掌握Doscoart库,你也能成为艺术家。
2行代码绘制水彩画
- 1、引言
- 2、 代码实战
- 2.1 模块介绍
- 2.2 模块安装
- 2.3 代码示例
- 2.3.1 创建默认图片
- 2.3.2 设置参数创建图片
- 2.3.3 查看设置参数
- 2.3.4 查看配置
- 2.3.5 保存配置
- 2.3.6 加载配置
- 2.3.7 导出配置文件
- 2.3.7 生成Python代码
- 2.3.8 调用文档
- 3、总结
1、引言
小屌丝:鱼哥,最近在忙啥?
小鱼:咱俩陌生了?
小屌丝:何出此言?
小鱼:你说的话又嘛意思呢?
小屌丝:我的意思, 最近看你这整理各种资料,貌似很忙的样子?
小鱼:我平时不也这么忙嘛
小屌丝:鱼哥, 还能正常唠嗑嘛?
小鱼:我又没说不能唠嗑。
小屌丝:鱼哥,行… 非常行…
小鱼:男人,怎么能不行!
小屌丝:…
小鱼:~ ~

小屌丝: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 安装
pip install discoart
然后就是等待着安装。
其它安装方式,直接看这两篇:
- 《Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!》
- 《Python3:我低调的只用一行代码,就导入Python所有库!》
安装的样子,如下:

这里提示一下:
- 按照官网的要求, discoart的使用,必须依托于:Python 3.7+ 和 CUDA 的 PyTorch 。
2.3 代码示例
2.3.1 创建默认图片
这里直接使用discoart的 create方法即可
代码示例:
# -*- coding:utf-8 -*-
# @Time : 2023-02-12
# @Author : Carl_DJ
'''
实现功能:使用默认参数创建图片
'''from discoart import createca = create()
效果展示

2.3.2 设置参数创建图片
# -*- coding:utf-8 -*-
# @Time : 2023-02-12
# @Author : Carl_DJ
'''
实现功能:设置参数创建图片
'''from discoart import create#设置参数
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,
)
效果展示

2.3.3 查看设置参数
如果你忘记参数,也没关系,直接用cheatsheet 查询即可
代码展示
# -*- coding:utf-8 -*-
# @Time : 2023-02-12
# @Author : Carl_DJ
'''
实现功能:查看设置参数
'''from discoart import cheatsheet#设置参数
sha = cheatsheet()
2.3.4 查看配置
如果要查看文档配置, 可以使用show_config:
代码展示
# -*- coding:utf-8 -*-
# @Time : 2023-02-12
# @Author : Carl_DJ
'''
实现功能:查看文档配置
'''from discorat import show_config# 展示第一个项目运行的配置
show_config(da)# 参考第四个项目的运行配置
show_config(da[3])#查看discoartID
show_config('discoart-xxxxfbf288')
2.3.5 保存配置
如果要保存文档配置, 可以使用save_config:
代码展示
# -*- coding:utf-8 -*-
# @Time : 2023-02-12
# @Author : Carl_DJ
'''
实现功能:保存文档配置
'''from discoart import save_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
'''
实现功能:加载文档配置
'''from discoart import create, 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映像
'''from discoart.config import save_config_svg#直接保存为svg映像
save_config_svg(da)
这里也展示一下, 保存的svg映像

2.3.7 生成Python代码
更神奇的功能,就是可以直接从配置中生成可运行的Python代码,使用export_python方法:
代码示例
# -*- coding:utf-8 -*-
# @Time : 2023-02-12
# @Author : Carl_DJ
'''
实现功能:生成可运行的Python代码
'''from discoart.config import export_pythonexport_python(da)
2.3.8 调用文档
-
如果你觉得自己配置太繁琐, 那可以直接使用DocumentArray作为初始状态运行。
代码示例
# -*- coding:utf-8 -*-
# @Time : 2023-02-12
# @Author : Carl_DJ
'''
实现功能:调用DocumentArray作为初始状态,运行
'''from discoart import create
from docarray import DocumentArrayda = 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 初始化
'''from discoart import createcreate(init_document='discoart-320xxxx')
3、总结
看到这里, Doscart库的介绍就完成了。
按照流程, 我们来回顾一下今天都分享了啥内容:
- 创建默认图片;
- 设置参数创建图片;
- 查看设置参数;
- 查看文档配置;
- 报错文档配置;
- 加载文档配置;
- 导出配置文件
- 生成Python代码;
- 调用文档;
你看, Doscoart也没有想想的那么难嘛, 常用的功能,也就差不多这么多。
所以, 只要我们把一个库从头到尾的捋一遍, 其实是很容易掌握的。
最后,唠叨一句:
我是小鱼:
- CSDN 博客专家;
- 阿里云 专家博主;
- 51CTO 博客专家;
- 51认证讲师;
- 金牌面试官&面试培训师;
关注我,带你学习更多更有趣的Python知识。
相关文章:
Python3,2分钟掌握Doscoart库,你也能成为艺术家。
2行代码绘制水彩画1、引言2、 代码实战2.1 模块介绍2.2 模块安装2.3 代码示例2.3.1 创建默认图片2.3.2 设置参数创建图片2.3.3 查看设置参数2.3.4 查看配置2.3.5 保存配置2.3.6 加载配置2.3.7 导出配置文件2.3.7 生成Python代码2.3.8 调用文档3、总结1、引言 小屌丝࿱…...
1225057-68-0,Alkyne PEG4 TAMRA-5,四甲基罗丹明-四聚乙二醇-炔基TAMRA红色荧光染料连接剂
中英文别名:CAS号:1225057-68-0 | 英文名:5-TAMRA-PEG4-Alkyne |中文名:5-四甲基罗丹明-四聚乙二醇-炔基物理参数:CASNumber:1225057-68-0Molecular formula:C36H41N3O8Molecular weight&#x…...
Ae:解释素材
所谓解释素材 Interpret Footage,就是通过修改素材的某些属性(像素长宽比、帧速率、颜色配置文件及 Alpha 通道类型等),让它能更好地参与到合成中去。Ae菜单:文件/解释素材快捷键:Ctrl Alt G在项目面板里…...
无文件攻击
无文件攻击是一种高级持续性威胁(APT)的攻击方式,它不会在目标系统的磁盘上留下可执行文件,而是利用系统内置的工具或脚本执行恶意代码,从而绕过传统的安全防护措施。无文件攻击的最大特点就是恶意代码直接在内存中运行…...
JS高级——数据类型
数据类型 基本类型 String: 任意字符串Number: 任意的数字boolean: true/falseundefined: undefinednull: null 对象类型 Object: 任意对象Function 一种特别的对象(可以执行)Array: 一种特别的对象 判断 typeof //不能区分数组与对象、null与obje…...
场景案例│数字员工在银行业的典型应用场景,效率及准确率“双高”
伴随数字经济的高速发展,企业数字化转型步伐不断加快,银行内部信息系统越趋复杂,业务处理的自动化及智能化需求日益旺盛。调查显示,数字员工为60~75%的银行流程带来约30~40%的效能提升,能够全面帮助银行在各场景流程中…...
2023美国大学生数学建模竞赛选题建议
总的来说,这次算是美赛环境题元年,以往没有这么多环境题目,大部分题目都是开放度相当高的题目。C君认为的难度:D>C>AE>BF,开放度:DF>ABE>C。A题 遭受旱灾的植物群落这次A题为环境类题目&…...
整合K8s+SpringBoot+gRpc
本文使用K8s当做服务注册与发现、配置管理,使用gRpc用做服务间的远程通讯一、先准备K8s我在本地有个K8s单机二、准备service-providerpom<?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.…...
ROS 教程:使用 Moveit C++ 接口进行拾取和放置任务
文章目录 简介Moveit C++ 接口Gazebo 取放世界初始化界面拾取流程1.移动到原位2.将TCP放在蓝框上方3.打开夹具4. 将 TCP 移近物体5.关闭夹具6. 将 TCP 移至板上方7./8. 降低 TCP 并打开夹具使用 Moveit 避免碰撞将碰撞对象添加到 Moveit 规划组结论参考简介 本教程展示了如何使…...
seo细分和切入点
seo细分和切入点本文重点介绍做SEO网站细分和切入点的方法:当我们的行业和关键词竞争性比较大的时候,我们可以考虑对行业或者产品做细分,从而找到切入点。可以按照以下三个方面进行细分。1、按城市细分例如:A:餐饮培训…...
PyQt5数据库开发1 4.3 QSqlTableModel 之 Qt项目的创建
目录 一、新建Qt项目 1. 编辑资源文件 2. 添加前缀 3. 新建放资源文件的目录 4. 添加图标文件 二、Action 1. 新建打开数据库Action 2. 添加其他Action 三、工具栏 1. 添加工具栏 2. 拖动actOpenDB到工具栏 3. 设置工具栏属性 4. 添加分隔符 5. 添加其他工具 6.…...
【大数据】第三章:详解HDFS(送尚硅谷笔记和源码)
什么是HDFS HDFS是(Hadoop Distributed File System)的缩写,也即Hadoop分布式文件系统。它通过目录树定位在分布式场景下 在不同服务器主机上的文件。它适用于一次写入,多次读出的场景。 HDFS的优缺点 优点 1,高容…...
27岁想转行IT,还来得及吗?
来不来得及不还是看你自身的意愿和条件,这个问题要问你自己吧! 每个人的能力、看法都不同。面对类似的问题,很多人会把侧重点放在IT上,或者27岁上面。那么我们试着换一个方式来问呢:什么时候适合转行,有哪些…...
Web前端CSS清除浮动的5种方法
在移动端清除浮动布局,常用的5种方法: 使用清除浮动的类;使用overflow属性;使用 flex 布局;使用grid 布局;使用 table 布局。 根据实际情况选择适合的方法,需要注意兼容性和语义性问题。在移动…...
Java:博客系统,实现加盐加密,分页,草稿箱,定时发布
文章目录1. 项目概述2. 准备工作2.1 数据库表格代码2.2 前端代码2.3 配置文件3. 准备项目结构3.1 拷贝前端模板3.2 定义实体类3.3 定义mapper接口和 xml 文件3.4 创建其他包4. 统一数据返回4.1 Result 类4.2 统一数据格式5. 注册5.1 逻辑5.2 验证数据规范性5.3 实现注册5.4 前端…...
JuiceFS 在火山引擎边缘计算的应用实践
火山引擎边缘云是以云计算基础技术和边缘异构算力结合网络为基础,构建在边缘大规模基础设施之上的云计算服务,形成以边缘位置的计算、网络、存储、安全、智能为核心能力的新一代分布式云计算解决方案。边缘存储主要面向适配边缘计算的典型业务场景&#…...
实验06 二叉树遍历及应用2022
A. 【程序填空】二叉树三种遍历题目描述给定一颗二叉树的特定先序遍历结果,空树用字符‘0’表示,例如AB0C00D00表示如下图请完成以下程序填空,建立该二叉树的二叉链式存储结构,并输出该二叉树的先序遍历、中序遍历和后序遍历结果输…...
基于蜣螂算法改进的LSTM分类算法-附代码
基于蜣螂算法改进的LSTM分类算法 文章目录基于蜣螂算法改进的LSTM分类算法1.数据集2.LSTM模型3.基于蜣螂算法优化的RF4.测试结果5.Matlab代码摘要:为了提高LSTM数据的分类预测准确率,对LSTM中的参数利用蜣螂搜索算法进行优化。1.数据集 数据的来源是 UC…...
如何正确应用GNU GPLv3 和 LGPLv3 协议
文章目录前言GNU GPLv3.0Permissions(许可)Conditions(条件)Limitations(限制)GNU LGPLv3.0应用GPLv3.0应用LGPLv3.0建议的内容:添加文件头声明附录GNU GPLv3.0原文GNU LGPLv3.0 原文前言 对于了解开源的朋友们,GNU GPL系列协议可谓是老朋友了。原来我基…...
Python局部函数及用法(包含nonlocal关键字)
Python 函数内部可以定义变量,这样就产生了局部变量,可能有人会问,Python 函数内部能定义函数吗?答案是肯定的。Python 支持在函数内部定义函数,此类函数又称为局部函数。 那么,局部函数有哪些特征&#x…...
Fish Speech 1.5实操手册:解决语音不自然、克隆失真等高频问题
Fish Speech 1.5实操手册:解决语音不自然、克隆失真等高频问题 1. 快速上手:5分钟搞定语音合成 你是不是遇到过语音合成工具生成的语音听起来很机械、不自然?或者声音克隆出来的效果完全不像本人?Fish Speech 1.5就是为了解决这些…...
不只是关应用:深入MinGW-w64的cc1plus.exe,从编译器原理理解‘内存不足’错误
不只是关应用:深入MinGW-w64的cc1plus.exe,从编译器原理理解‘内存不足’错误 当你面对cc1plus.exe: error: out of memory allocating 65536 bytes这个错误时,关闭几个应用程序或许能暂时解决问题,但这就像用创可贴处理骨折——治…...
6个实用技巧让你快速掌握React Grab元素抓取工具
6个实用技巧让你快速掌握React Grab元素抓取工具 【免费下载链接】react-grab Grab any element on in your app and give it to Cursor, Claude Code, etc 项目地址: https://gitcode.com/GitHub_Trending/re/react-grab React Grab是一款能够帮助开发者轻松抓取应用中…...
MySQL 事务锁等待问题定位方案
MySQL事务锁等待问题定位方案 在高并发数据库场景中,事务锁等待是导致性能下降甚至系统卡顿的常见问题。当多个事务同时竞争同一资源时,可能因锁冲突导致事务长时间阻塞,进而影响业务响应。如何快速定位并解决这类问题?本文将介绍…...
CosyVoice在企业内网的应用:结合内网穿透技术实现安全访问
CosyVoice在企业内网的应用:结合内网穿透技术实现安全访问 最近和几个做企业应用开发的朋友聊天,他们都在头疼同一个问题:公司内部部署了一些好用的AI模型,比如语音合成工具CosyVoice,但怎么才能让在外出差的同事或者…...
批量分别压缩工具:支持随机密码、并行压缩和排除规则的批量打包方案
需求背景开发和运维场景中,经常需要将多个文件夹分别压缩成独立的ZIP包:多个项目分别打包交付给不同客户批量归档历史项目,每个项目一个压缩包给不同用户分发不同的加密文件定期备份多个目录手动逐个右键压缩效率低下,且无法批量设…...
Citrix敦促用户修补允许未认证数据泄露的关键NetScaler漏洞
Citrix已发布安全更新,修复NetScaler ADC和NetScaler Gateway中的两个漏洞,其中包括一个可能被利用泄露应用程序敏感数据的关键缺陷。漏洞详情如下:CVE-2026-3055(CVSS评分:9.3)- 输入验证不足导致内存越界…...
PlayIntegrityFix终极指南:2025年如何彻底解决Android设备认证问题
PlayIntegrityFix终极指南:2025年如何彻底解决Android设备认证问题 【免费下载链接】PlayIntegrityFix Fix Play Integrity (and SafetyNet) verdicts. 项目地址: https://gitcode.com/GitHub_Trending/pl/PlayIntegrityFix 还在为Google Play设备认证失败而…...
B端拓客号码核验行业现状:困局破解与价值重构氪迹科技法人股东号码筛选核验系统、阶梯式价格
在B端客户拓展的全链条中,企业核心决策层的有效触达是实现合作转化的关键前提,而法人、股东、董监高等核心群体的联系方式,則是搭建这一沟通桥梁的核心载体。作为拓客工作的前置基础性环节,号码核验与筛选的质量、效率,…...
开源工具赋能旧设备:使用OpenCore Legacy Patcher实现Mac系统升级
开源工具赋能旧设备:使用OpenCore Legacy Patcher实现Mac系统升级 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 价值呈现:旧Mac设备的重生之旅 …...
