【Python实操】一行代码就可以自动画出这种艺术画?(详细教程)

文章目录

  • 前言
  • 一.准备阶段
  • 二、开始使用 Discoart
    • 1.引入库
    • 2.显示/保存/加载配置
  • 总结


前言

DiscoArt 是一个很牛逼的开源模块,它能根据你给定的关键词自动绘画。

绘制过程是完全可见的,你可以在 jupyter 页面上看见这个绘制的过程:


在这里插入图片描述

一.准备阶段

开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。

(可选1) 如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.

(可选2) 此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南。

请选择以下任一种方式输入命令安装依赖:

  1. Windows 环境 打开 Cmd (开始-运行-CMD)。
  2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
  3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.

pip install discoart
为了运行 Discoart, 你需要Python 3.7+ 和支持 CUDA 的 PyTorch.

二、开始使用 Discoart

1.引入库

你可以在Jupyter中运行Discoart,这样能方便地实时展示绘制过程:

from discoart import create

da = create()
这样将使用默认的 文本描述 和参数创建图像:

text_prompts:
  - A beautiful painting of a singular lighthouse, shining its light across a tumultuous sea of blood by greg rutkowski and thomas kinkade, Trending on artstation.
  - yellow color scheme

init_image:
width_height: [ 1280, 768 ]

skip_steps: 0
steps: 250

init_scale: 1000
clip_guidance_scale: 5000

tv_scale: 0
range_scale: 150
sat_scale: 0
cutn_batches: 4

diffusion_model: 512x512_diffusion_uncond_finetune_008100
use_secondary_model: True
diffusion_sampling_mode: ddim

perlin_init: False
perlin_mode: mixed
seed:
eta: 0.8
clamp_grad: True
clamp_max: 0.05

randomize_class: True
clip_denoised: False
rand_mag: 0.05

cut_overview: "[12]*400+[4]*600"
cut_innercut: "[4]*400+[12]*600"
cut_icgray_p: "[0.2]*400+[0]*600"
cut_ic_pow: 1.

save_rate: 20
gif_fps: 20
gif_size_ratio: 0.5
n_batches: 4
batch_size: 1
batch_name:
clip_models:
  - ViT-B-32::openai
  - ViT-B-16::openai
  - RN50::openai
clip_models_schedules:

use_vertical_symmetry: False
use_horizontal_symmetry: False
transformation_percent: [0.09]

on_misspelled_token: ignore
diffusion_model_config:
cut_schedules_group:
name_docarray:
skip_event:
stop_event:
text_clip_on_cpu: False
truncate_overlength_prompt: False
image_output: True
visualize_cuts: False
display_rate: 1

你可以这么使用参数:

from discoart import create

da = create(
    text_prompts='A painting of sea cliffs in a tumultuous storm, Trending on ArtStation.',
    init_image='https://d2vyhzeko0lke5.cloudfront.net/2f4f6dfa5a05e078469ebe57e77b72f0.png',
    skip_steps=100,
)

在这里插入图片描述
如果你不是用jupyter运行的,你也可以看到中间结果,因为最终结果和中间结果都会被创建在当前工作目录下,即

./{name-docarray}/{i}-done.png
./{name-docarray}/{i}-step-{j}.png
./{name-docarray}/{i}-progress.png
./{name-docarray}/{i}-progress.gif
./{name-docarray}/da.protobuf.lz4
name-docarray是运行时定义的名称,如果没有定义,则会随机生成。

i-* 第几个Batch。

-done- 是当前Batch完成后的最终图像。

-step- 是某一步的中间图像,实时更新。

*-progress.png 是到目前为止所有中间结果的png图像,实时更新。

*-progress.gif 是到目前为止所有中间结果的动画 gif,实时更新。

da.protobuf.lz4 是到目前为止所有中间结果的压缩 protobuf,实时更新。

2.显示/保存/加载配置

如果你想知道你当前绘图的配置,有三种方法:

from discoart import show_config

show_config(da) # show the config of the first run
show_config(da[3]) # show the config of the fourth run
show_config(
    'discoart-06030a0198843332edc554ffebfbf288'
) # show the config of the run with a known DocArray ID

要保存 Document/DocumentArray 的配置:

from discoart import save_config

save_config(da, 'my.yml') # save the config of the first run
save_config(da[3], 'my.yml') # save the config of the fourth run

从配置中导入:

from discoart import create, load_config

config = load_config(‘my.yml’)
create(**config)
此外,你还能直接把配置导出为图像的形式

from discoart.config import save_config_svg

save_config_svg(da)

在这里插入图片描述

总结

我们的文章到此就结束啦,如果你喜欢今天的Python 实战教程,请持续关注Python徐浪老师大课堂

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/6668.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

零拷贝内存 固定内存

一、总览 虚拟内存是一种计算机内存管理的技术,它让程序认为程序自身有一段完整的连续可用的内存(一个地址空间)。当程序运行时所占的内存空间大于物理空间容量,操作系统可以将暂时不用的数据放入到磁盘,用的时候再拿出…

Linux--高级IO--select--0326

目录 IO为什么低效? 1.快速理解五种IO模式 2.五种IO模型 3.非阻塞IO fcntl() 4.IO多路转接 select select fd_set类型 struct timeval*类型 5.Select的代码测试 5.1 问题一:一开始,我们只有一个listen套接字 5.2 问题二&#xff1…

《项目管理知识体系指南(PMBOK)》第7版之8大绩效域

项目绩效域被定义为一组对有效交付项目成果至关重要的相关活动。 《项目管理知识体系指南(PMBOK)》第7版将项目管理划分为干系人、团队、开发方法和生命周期、规划、项目工作、交付、测量、不确定性共8大绩效域。 一、干系人绩效域 解决与干系人相关的…

【对YOLOv8(ultralytics)打印测试结果的调整】(1)使得map值打印显示从0.551变为55.08 (2)打印出FPS

目录1. 最终打印效果2. 做两处更改2.1 修改map显示,在ultralytics-main/ultralytics/yolo/v8/detect/val.py中操作2.2 打印FPS,在ultralytics-main/ultralytics/yolo/engine/validator.py中操作❗❗❗ 兄弟姐妹们,如果看习惯了运行train.py时…

PMP应该如何备考?

PMP现在是新考纲,PMP新版大纲加入了 ACP 敏捷管理的内容,而且还不少,敏捷混合题型占到了 50%,前不久官方也发了通知 8月启用第七版《PMBOK》,大家都觉得考试难度提升了,我从新考纲考完下来,最开…

Moonbeam隆重推出您的个人开发小助手 — — Kapa.ai

Moonbeam为开发者提供内容详细的开发者文档和全天候的Discord支持。但假如:有人可以24/7查看Discord并在15秒之内就回复您的问题 — — 新推出的Kapa.ai机器人使这个假如成为现实。Kapa.ai是一款由ChatGPT支持的AI机器人,可以回答关于在Moonbeam上构建的…

【redis】单线程redis为什么这么快

本文以收录专栏 redis核心技术 前言 本专栏为了帮助大家更好的了解学习redis,同时也是自己记录学习redis的内容,包含了大部分的redis核心技术,分布式锁,主从复制等 目录 专题2-单线程redis为什么这么快 2.1redis只有单线程吗&a…

剑指offer-替换空格

替换空格一、解题思想二、代码的实现三、总结一、解题思想 题目:请实现一个函数 ,把字符串中的每个空格替换成”%20“。例如:输入”We are happy.“,则输出”We%20are%20happy.“。 看到这个题目,我第一想到的是&#…

博客1:YOLOv5车牌识别实战教程:引言与准备工作

摘要:本篇博客介绍了本教程的目标、适用人群、YOLOv5简介和车牌识别的意义和应用场景。为后续章节打下基础,帮助读者了解YOLOv5和车牌识别的相关背景知识。 正文: 车牌识别视频 引言 欢迎来到YOLOv5车牌识别实战教程!在这个教程中,我们将一步步教你如何使用YOLOv5进行车…

【Git Bash】项目开发过程中需要知道 git stash 的用法

目录1. git stash的应用场景2. 常用git stash命令2.1 git stash2.2 git stash save "message"2.3 git stash list2.4 git stash show2.5 git stash show -p2.6 git stash apply2.7 git stash pop2.8 git stash drop stash{num}2.9 git stash clear3. stash只会保存已…

简单记录一下软著申请流程

模板我就不放了,网上很多,随便下几个结合就行了 总体来说,我是2023.2.19号寄出,2023.4.6看到成功了,总共50天左右。 大家确实不需要网上买那种服务,我也是第一次申请,感觉还是挺简单的。只要按…

洛谷B2038奇偶ASCII值判断

洛谷B2038 题目描述 任意输入一个字符,判断其 ASCII 是否是奇数,若是,输出 YES,否则,输出 NO 。 例如,字符 A 的 ASCII 值是 65,则输出 YES,若输入字符 B(ASCII 值是 66)&#xff0…

从零开始学习Kotlin,带你快速掌握该编程语言

前言 Kotlin是一种跨平台的静态编程语言,它可以在JVM、Android、浏览器、iOS等多个平台上运行。Kotlin的语法简洁易懂,具有高度的可读性和可维护性,同时还具有Java所不具备的许多优点。 Kotlin是一种静态类型、面向对象、函数式编程语言&am…

iOS 项目嵌入Flutter 运行

一 创建Flutter 模块命令行flutter create --template module my_flutter创建完成后,该模块和普通的Flutter项目一直,可以通过Android Studio或VSCode打开、开发、运行;和之前项目不同的iOS和Android项目是一个隐藏文件,并且我们…

多模态 |COGMEN: COntextualized GNN based Multimodal Emotion recognitioN论文详解

论文:COGMEN: COntextualized GNN based Multimodal Emotion recognitioN COGMEN: 基于GNN的多模态情感识别技术 论文实现可参考另外一篇论文: 本文主要分为俩部分,一是对论文的简单概括,二是对论文的翻译。 论文总结 论文翻译…

【学习笔记】SpringAOP的用法全解

文章目录Spring的AOP一、 Spring对AOP的实现包括以下3种方式**什么是AspectJ?**二、使用Spring的AOP1、准备工作2、尝试写一个简单的AOP demo3、代码如下:spring.xml业务类切面类测试类4、复习切面表达式1)所有方法2)指定路径下某个包及其子…

开心档之C++ 运算符

目录 C 运算符 算术运算符 实例 实例 关系运算符 实例 实例 逻辑运算符 实例 实例 位运算符 实例 实例 赋值运算符 实例 实例 杂项运算符 C 中的运算符优先级 实例 实例 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 内置了丰富的运算符&…

算法设计-二分

一、有序和单调 ​ 二分本质上是一种更加智能的搜索状态空间的方式,他需要状态空间的状态呈现一种“有序的一维数组”的形式,然后再进行搜索。所以一开始的排序是无法避免的。 ​ 因为二分的写法问题,所以应当怎样排序也是有一定讲究的&…

黑马程序员 linux 学习笔记入门部分合集

ubuntu 安装 本课程使用 ubuntu 系统。 ubuntu 官网 - download。 上面会显示有两个版本,每年 ubuntu 发布两个版本,LTS 是长期维护版,所以相对会较稳定。 介绍 Linux 发行版本 不管什么版本,内核都是一样的。 RPM based&a…

“遥感+”蓝碳储量估算、红树林信息提取与论文写作

详情点击链接:“遥感”蓝碳储量估算、红树林信息提取与论文 一,光谱遥感数据及预处理 .1高光谱遥感数据 高光谱分辨率遥感是用很窄而连续的光谱通道对地物持续遥感成像的技术。在可见光到短波红外波段其光谱分辨率高达纳米数量级。高光谱图像数据…