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

这篇具有很好参考价值的文章主要介绍了【Python实操】一行代码就可以自动画出这种艺术画?(详细教程)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

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

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


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

一.准备阶段

开始之前,你要确保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,
)

【Python实操】一行代码就可以自动画出这种艺术画?(详细教程)
如果你不是用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 实战教程,请持续关注Python徐浪老师大课堂文章来源地址https://www.toymoban.com/news/detail-406040.html

到了这里,关于【Python实操】一行代码就可以自动画出这种艺术画?(详细教程)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 不用写一行代码!Python最强自动化神器!

    Playwright 是一个由 Microsoft 开发的开源自动化测试工具,它可以用于测试Web应用程序。Playwright支持多种浏览器,包括Chrome、Firefox和WebKit,同时也支持多种编程语言,如JavaScript、TypeScript、Python和C#。 Playwright具有以下特点: 支持所有主流浏览器 跨平台:Windows、Linux 和macOS 可用

    2024年04月28日
    浏览(41)
  • Python3:我低调的只用一行代码,就导入Python所有库!

    今天我们来分享一个懒人库: Pyforest 。 小屌丝 :鱼哥,今天啥情况,你突然分享这个库? 小鱼 :这不是因为我准备换 吃饭的家伙 电脑,为了能省事,少敲几次pip install xxx 的动作… 小屌丝 :嗯??你的意思,安装这个库,就不需要安装别的库了? 小鱼 :必须的~像我这种

    2024年02月01日
    浏览(84)
  • 【Python】一行代码计算两经纬度点的距离及夹角

    2022.2.10更新,Python有现成的包可以直接调用。 geographiclib库 https://pypi.org/project/geographiclib/ 用法说明见博客: python 计算地球上两点距离和方位角(bearing)的包geographiclib_梓沂的博客-CSDN博客_geodesic python 通过经纬度计算地图上两点的距离及方位角,百度的结果是许多个人写的函

    2023年04月11日
    浏览(47)
  • AI绘画创意文字全流程揭秘,你的终极文字艺术实操宝典

    本教程收集于:AIGC从入门到精通教程汇总 AIGC技术不断更新迭代,国内出现了越来越多的新玩法,比如最近大家都在热议的AI绘画创意文字。 过去的一周,我把这些新玩法都研究了一遍,并总结了一套完整的制作流程。 主流的创意文字玩法主要分为四类: 光影文字 嵌入文字

    2024年02月13日
    浏览(55)
  • 用Python实现艺术绘画,人生苦短,代码赛高

    艺术绘画是一个创造性的过程,包括绘画、素描和绘画。借助Python编程语言,您可以模拟艺术绘画的过程。该过程包括以下步骤: 1. 导入所需的库 -您需要导入NumPy、OpenCV和Matplotlib等库来执行图像处理任务。 2. 加载图像 -您可以使用OpenCV加载图像。 3. 应用过滤器和效果 -您可

    2024年02月03日
    浏览(52)
  • Java Mp3转化WAV/PCM音频数据,解码详细解析,提取每一帧数据集合/比特流/播放,一行代码!

    大家好!我是原子君 1 .因为Java本身只支持,wav,缺少mp3的解码器,所以Java自带的无法对mp3进行处理,这种 MPEG-*音频有损压缩标准编码 ,更不要说使用Java的音频格式和音频流就可以解决。 2 .所以本次转换需要使用到colorful1.1这种纯Java-Pc可跨平台的工具框架。 注意:colorful只支持

    2024年02月15日
    浏览(51)
  • IDEA内存设置,性能优化告别卡顿(JetBrains系列的产品都可以通过这种设置来解决卡顿的问题)

    我们在日常使用时,会出现卡顿的状况,而自己的电脑配置不是很低,这是因为IDEA安装的时候就设置了默认的内存使用上限(通常很小) 以自己的电脑为例,IDEA分配的只有1024MB(1GB),因此会出现卡顿的状况,下面我们进行修改内存。 一、首先我们查看自己电脑IDEA的内存

    2024年02月16日
    浏览(49)
  • (Python)使用清华源进行python的pip安装(任何环境,不用换源,用时只需加上一行代码

    当我们在下载pip时是否因为速度太慢而失去耐心,甚至由于太慢还会报错导致安装失败!在网上也是有很多方法是建议换源一劳永逸,但是这里其实可以不用换源,只需要一行代码即可,防止后续如果要涉及到进程等源所在地导致项目问题。 当需要下载nump库时,只需要这样

    2024年02月02日
    浏览(54)
  • (python)使用清华镜像进行python的pip安装以及大量pip安装方法(只需一行代码,解决所有)

    我们在下载包的时候经常因为各种原因,导致出现网络错误和安装失败等多种情况!相信大家上网查询了很多钟方法,但未能解决。本次我将用最简洁的话为大家介绍,只需要一行代码将解决所有烦恼。 首先我们找到设置然后点击python Interpreter再点加号,如下图展示。 我们

    2024年04月24日
    浏览(46)
  • LeetCode 2859.计算 K 置位下标对应元素的和:遍历(附Python一行代码版)

    力扣题目链接:https://leetcode.cn/problems/sum-of-values-at-indices-with-k-set-bits/ 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 请你用整数形式返回 nums 中的特定元素之 和 ,这些特定元素满足:其对应下标的二进制表示中恰存在 k 个置位。 整数的二进制表示中的 1 就是这个整

    2024年02月19日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包