• 【教学类-34-10】20240313 春天拼图(Midjounery生成线描图,4*4格拼图块)(AI对话大师)


    作品展示:

    背景需求:

    利用华文彩云空心字(粗胖字体。凑满9个拼图)制作了3*3的拼图块

    【教学类-34-09】20240310华文彩云学号拼图(3*3格子浅灰底图 深灰拼图块)(AI对话大师)-CSDN博客文章浏览阅读421次,点赞6次,收藏8次。【教学类-34-09】20240310华文彩云学号拼图(3*3格子浅灰底图 深灰拼图块)(AI对话大师)https://blog.csdn.net/reasonsummer/article/details/136604268?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136604268%22%2C%22source%22%3A%22reasonsummer%22%7D

    下一步就是需要制作4*4格的《春天拼图》

    第一步:Midjounery生成春天图片

    1、孩子表达的“春天“”:

    HX:春天叶子变黄落下来,有风景,

    WZX:有小鸟。春天有虫子。

    JAX:春天可以晒太阳。

    小结:小朋友的春天经验不够丰富,对秋天的记忆比较深刻。

    2、老师想点关键词,并生成MJ简笔画图片

    一、柳树,河岸,风筝,蓝天,白云,鸟类,划船,春天的帐篷

    illustration for toddlers coloring books, line drawing, no background, no colors, black and white comic line art for:Willow trees, riverbanks, kites, blue sky, white clouds, birds, boating, tents in spring, empty background, thick outline, crisp lines, vector lines. simple, big, cute, --q 5  --s 420 --ar 1:1

    为蹒跚学步的孩子着色的书籍插图,白描,没有背景,没有颜色,黑白漫画线条艺术:柳树,河岸,风筝,蓝天,白云,鸟类,划船,春天的帐篷,空背景,粗轮廓,清晰的线条,矢量线。简单,大,可爱,--q 5-s 420--ar 1:1

    illustration for toddlers coloring books, line drawing, no background, no colors, black and white comic line art for:Willow trees, riverbanks, kites, blue sky, white clouds, birds, boating, tents in spring, empty background, thick outline, crisp lines, vector lines. simple, big, cute, --q 5  --s 420 --ar 4:3 --niji 5

    为蹒跚学步的孩子着色的书籍插图,白描,没有背景,没有颜色,黑白漫画线条艺术:柳树,河岸,风筝,蓝天,白云,鸟类,划船,春天的帐篷,空背景,粗轮廓,清晰的线条,矢量线。简单,大,可爱,--q 5--s 420--ar 4:3--niji 5

    二、春景,家庭

    illustration for toddlers coloring books, line drawing, no background, no colors, black and white comic line art for:Spring scenery, family, empty background, thick outline, crisp lines, vector lines. simple, big, cute, --q 5  --s 420 --ar 4:3 --niji 5

    幼儿插图涂色书,白描,无背景,无颜色,黑白漫画线条艺术:春景,家庭,空背景,粗轮廓,线条清晰,矢量线。简单,大,可爱,--q 5--s 420--ar 4:3--niji 5

    三、春天的风景,城市,公园,孩子,

    illustration for toddlers coloring books, line drawing, no background, no colors, black and white comic line art for:The scenery of spring, cities, parks,children,empty background, thick outline, crisp lines, vector lines. simple, big, cute, --q 5  --s 420 --ar 4:3 --niji 5

    幼儿插图涂色书,白描,无背景,无颜色,黑白漫画线条艺术:春天的风景,城市,公园,孩子,空背景,粗轮廓,清晰的线条,矢量线。简单,大,可爱,--q 5--s 420--ar 4:3--niji 5

    四、春天的风景,动物园,游客和小动物

    illustration for toddlers coloring books, line drawing, no background, no colors, black and white comic line art for:The scenery of spring, zoos, tourists, and small animals,empty background, thick outline, crisp lines, vector lines. simple, big, cute, --q 5  --s 420 --ar 4:3 --niji 5

    幼儿插图涂色书,白描,无背景,无色彩,黑白漫画线条艺术:春天的风景,动物园,游客和小动物,空背景,粗轮廓,清晰的线条,矢量线。简单,大,可爱,--q 5--s 420--ar 4:3--niji 5

    五、春天的风景,动物园,可爱的孩子,和小动物

    illustration for toddlers coloring books, line drawing, no background, no colors, black and white comic line art for:The scenery of spring, zoos, cute children, and small animals,empty background, thick outline, crisp lines, vector lines. simple, big, cute, --q 5  --s 420 --ar 4:3 --niji 5

    幼儿插图涂色书,白描,无背景,无颜色,黑白漫画线条艺术:春天的风景,动物园,可爱的孩子,和小动物,空背景,粗轮廓,清晰的线条,矢量线。简单,大,可爱,--q 5--s 420--ar 4:3--niji 5

    六、春天,阳光明媚,万物复苏,河水融化,柳树发芽,百花齐放,到处都是美丽的景色空背景、

    网上是春天描述

    illustration for toddlers coloring books, line drawing, no background, no colors, black and white comic line art for:In spring, the sunshine is bright, everything revives, the river melts, the willow trees sprout, a hundred flowers bloom, and everywhere is a beautiful scene!,empty background, thick outline, crisp lines, vector lines. simple, big, cute, --q 5  --s 420 --ar 4:3 --niji 5

    幼儿涂色书籍插图,白描,无背景,无色彩,黑白连环画艺术为:春天,阳光明媚,万物复苏,河水融化,柳树发芽,百花齐放,到处都是美丽的景色空背景、粗轮廓、清晰线条、矢量线条。简单,大,可爱,--q 5--s 420--ar 4:3--niji 5

    七、包含植物和动物

    illustration for toddlers coloring books, line drawing, no background, no colors, black and white comic line art for:In spring, willows sprout, swallows fly, and grass grows,,empty background, thick outline, crisp lines, vector lines. simple, big, cute, --q 5  --s 420 --ar 4:3 --niji 5

    幼儿涂色书插图,白描,无背景,无色彩,黑白连环画艺术:春天,柳树发芽,燕子飞翔,草长,空背景,粗轮廓,线条清晰,矢量线。简单,大,可爱,--q 5--s 420--ar 4:3--niji 5

    一、整理图片,切割图片

    1、把1*1正方形图片转成4:3长方形图片

    2、把一张图切割成4张图

    1. '''
    2. 把22424*1859的图片切割成2*2
    3. 作者:AI对话大师、阿夏
    4. 时间:2024年3月13日
    5. '''
    6. import os
    7. from PIL import Image
    8. # 指定123文件夹和234文件夹的路径'
    9. input_folder = r'C:\Users\jg2yXRZ\OneDrive\桌面\春天拼图16块\00原图'
    10. output_folder = r'C:\Users\jg2yXRZ\OneDrive\桌面\春天拼图16块\00切图'
    11. # 遍历123文件夹中的所有png文件
    12. for file_name in os.listdir(input_folder):
    13. if file_name.endswith('.png'):
    14. img = Image.open(os.path.join(input_folder, file_name))
    15. # 定义切割后每张图片的尺寸
    16. width, height = img.size
    17. new_width = width // 2
    18. new_height = height // 2
    19. # 切割图片并保存
    20. for i in range(2):
    21. for j in range(2):
    22. box = (j*new_width, i*new_height, (j+1)*new_width, (i+1)*new_height)
    23. region = img.crop(box)
    24. output_file = os.path.join(output_folder, '{}_{}_{}.png'.format(os.path.splitext(file_name)[0], i, j))
    25. region.save(output_file)
    26. print('图片批量切割完成并保存在234文件夹中。')

    代码设计思路:

    第1步 把00原图里面的2424*1859的图片切割成2*2,保存在00切图中。每张原图转成4张小图

    第2步 把00切图增加对比度(线条变黑),制作02贴图深色----------')

    第3步 把00切图增加明度(线条变白,浅色),制作01底图浅色----------')

    -第4步 把浅灰色底纹图片、深黑色贴图图片,学号图片切割成16张

    03底图浅色小块

    04贴图深色小块

    第5步 把02按序填入上面16个格子,把深灰色学号图片打乱填入组成16+16一组,一页2组 64个路径

    第6步 36个路径写入单元格

    第7步:把都有PDF合并为一个打印用PDF

    素材准备:

    第二页的表格是打印在反面的(写学号用)

    全部代码:

    1. '''
    2. 春天拼图(16格,AI对话大师)
    3. 作者:AI对话大师、阿夏
    4. 时间:2024年3月12日
    5. '''
    6. print('------第1步 把2424*1859的图片切割成2*2----------')
    7. import os
    8. from PIL import Image
    9. # 指定123文件夹和234文件夹的路径'
    10. input_folder = r'C:\Users\jg2yXRZ\OneDrive\桌面\春天拼图16块\00原图'
    11. output_folder = r'C:\Users\jg2yXRZ\OneDrive\桌面\春天拼图16块\00切图'
    12. # 检查文件夹是否存在
    13. if not os.path.exists(output_folder):
    14. # 如果文件夹不存在,则新建文件夹
    15. os.makedirs(output_folder)
    16. # 遍历123文件夹中的所有png文件
    17. for file_name in os.listdir(input_folder):
    18. if file_name.endswith('.png'):
    19. img = Image.open(os.path.join(input_folder, file_name))
    20. # 定义切割后每张图片的尺寸
    21. width, height = img.size
    22. new_width = width // 2
    23. new_height = height // 2
    24. # 切割图片并保存
    25. for i in range(2):
    26. for j in range(2):
    27. box = (j*new_width, i*new_height, (j+1)*new_width, (i+1)*new_height)
    28. region = img.crop(box)
    29. output_file = os.path.join(output_folder, '{}_{}_{}.png'.format(os.path.splitext(file_name)[0], i, j))
    30. region.save(output_file)
    31. print('图片批量切割完成并保存在234文件夹中。')
    32. print('------第2步 把00切图增加对比度(线条变黑),制作02贴图深色----------')
    33. from PIL import Image
    34. from PIL import ImageEnhance
    35. import os
    36. # 定义文件夹路径
    37. folder_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\春天拼图16块\00切图'
    38. new_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\春天拼图16块\02贴图深色'
    39. # 检查文件夹是否存在
    40. if not os.path.exists(new_path):
    41. # 如果文件夹不存在,则新建文件夹
    42. os.makedirs(new_path)
    43. # 循环处理文件夹下的所有图片文件
    44. for filename in os.listdir(folder_path):
    45. if filename.endswith(('.png', '.jpg', '.jpeg')):
    46. # 打开图片文件
    47. image_path = os.path.join(folder_path, filename)
    48. image = Image.open(image_path)
    49. # 转换为黑白色
    50. bw_image = image.convert('L')
    51. # 增加对比度
    52. enhancer = ImageEnhance.Contrast(bw_image)
    53. bw_image = enhancer.enhance(30.0) # 这里的2.0可以根据需要调整
    54. # 保存处理后的图片
    55. bw_image.save(os.path.join(new_path, filename))
    56. print("图片处理完成!")
    57. print('------第3步 把00切图增加明度(线条变白,浅色),制作01底图浅色----------')
    58. from PIL import Image
    59. from PIL import ImageEnhance
    60. import os
    61. # 定义文件夹路径
    62. folder_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\春天拼图16块\00切图'
    63. new_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\春天拼图16块\01底图浅色'
    64. # 检查文件夹是否存在
    65. if not os.path.exists(new_path):
    66. # 如果文件夹不存在,则新建文件夹
    67. os.makedirs(new_path)
    68. # 定义明度增加倍数
    69. brightness_factor = 2
    70. # 循环处理文件夹下的所有图片文件
    71. for filename in os.listdir(folder_path):
    72. if filename.endswith(('.png', '.jpg', '.jpeg')):
    73. # 打开图片文件
    74. image_path = os.path.join(folder_path, filename)
    75. image = Image.open(image_path)
    76. # 增加明度
    77. enhancer = ImageEnhance.Brightness(image)
    78. bright_image = enhancer.enhance(brightness_factor)
    79. # 保存处理后的图片
    80. bright_image.save(os.path.join(new_path, filename))
    81. print("图片处理完成!")
    82. print('------第4步 把浅灰色底纹图片、深黑色贴图图片,学号图片切割成16张 03底图浅色小块+04贴图深色小块----------')
    83. from PIL import Image, ImageDraw, ImageFont
    84. path=r'C:\Users\jg2yXRZ\OneDrive\桌面\春天拼图16块'
    85. # 新建两个文件夹
    86. t=['01底图浅色','02贴图深色','03底图浅色小块','04贴图深色小块']
    87. import os
    88. for tt in t:
    89. folder_path_file = path+r"\{}".format(tt)
    90. # 检查文件夹是否存在
    91. if not os.path.exists(folder_path_file):
    92. # 如果文件夹不存在,则新建文件夹
    93. os.makedirs(folder_path_file)
    94. # 把浅灰色底纹图片、深黑色贴图图片,学号图片切割成16张
    95. from PIL import Image, ImageOps
    96. import os
    97. import glob
    98. import random
    99. # 3*3图片切割
    100. w=4
    101. l=4
    102. for vv in range(int(len(t)/2)):
    103. # 指定文件夹路径
    104. folder_path = path + r"\{}".format(t[vv]) # 打开01\02文件夹
    105. # print(folder_path)
    106. # 获取文件夹中所有PNG图片的路径
    107. png_files = glob.glob(os.path.join(folder_path, '*.png'))
    108. print(png_files)
    109. # 逐个打开PNG图片并切割成9块小图
    110. for png_file in png_files:
    111. image = Image.open(png_file)
    112. # 获取图片大小
    113. width, height = image.size
    114. # 切割成16块拼图小块并保存
    115. count = 1
    116. block_width = width // w
    117. block_height = height // l
    118. for i in range(w):
    119. for j in range(l):
    120. box = (j*block_width, i*block_height, (j+1)*block_width, (i+1)*block_height)
    121. region = image.crop(box)
    122. #生成9张*30份=261图 ,生成在03 、04文件夹里。 因为切成16张,所以序号是01-16,
    123. region.save(path + r'\{}\{}_{}.png'.format(t[vv+2], os.path.splitext(os.path.basename(png_file))[0], '%02d'%count))
    124. count += 1
    125. print('------第5步 把02按序填入上面16个格子,把深灰色学号图片打乱填入组成16+16一组,一页2组 64个路径----------')
    126. # 坐标,两个表格连在一起,但是先写左侧上下的18个坐标,再写右侧上下的18个坐标
    127. bg = []
    128. for x in range(0, w*2):
    129. for y in range(0, w):
    130. bg.append('{:02d}{:02d}'.format(x, y))
    131. for x in range(0, w*2):
    132. for y in range(w, w*2):
    133. bg.append('{:02d}{:02d}'.format(x, y))
    134. print(bg) # 36
    135. print(len(bg))
    136. # 切割成多少份,261个元素,18个在一页上,03文件夹浅灰:前9个按顺序写入,04文件夹的深灰色:后9个打乱写入
    137. t2=['03底图浅色小块','04贴图深色小块']
    138. pic=[]
    139. for t3 in t2:
    140. folder_path = path + r"\{}".format(t3) # 打开01\02文件夹
    141. # print(folder_path) # C:\Users\jg2yXRZ\OneDrive\桌面\学号数字拼图\03底图浅色小块 C:\Users\jg2yXRZ\OneDrive\桌面\学号数字拼图\04贴图深色小块
    142. # 获取文件夹中所有PNG图片的路径
    143. png_files = glob.glob(os.path.join(folder_path, '*.png'))
    144. print(len(png_files))# 272
    145. pic.append(png_files)
    146. print(pic)
    147. print(len(pic))# 2组 浅色一组 深色一组[['','','浅色261张'],['','','深色261张']]
    148. print('---拆成16个一组-------')
    149. smaillpic=[]
    150. for o in range(len(pic)): # 0,1
    151. g=w*w
    152. # # 假设你有一个包含261个元素的列表list1
    153. list1 = [i for i in range(len(pic[o]))] # 这里只是举例,实际情况根据你的实际数据来创建列表
    154. # 将列表按照18个一组分割
    155. grouped_list = [pic[o][i:i+g] for i in range(0, len(pic[o]), g)]
    156. smaillpic.append(grouped_list)
    157. # print(smaillpic)
    158. # [[[9张],[9张],[9张],[],[],[]]]]
    159. # print(len(smaillpic))
    160. # 2
    161. #
    162. print('---16个浅灰路径+16个深灰路径【【9个浅灰】【9个深灰】】-------')#
    163. path1=[]
    164. for n in range(len(smaillpic[0])): # 读取30组9个路径
    165. # 【9个浅灰】按顺序写入
    166. path1.append(smaillpic[0][n])
    167. # 【9个深灰】打乱写入
    168. c=random.sample(smaillpic[1][n],w*w)
    169. path1.append(c)
    170. print(path1)
    171. print(len(path1))
    172. # 30组
    173. # 提取所有元素放在一起
    174. all_paths = [path for sublist in path1 for path in sublist]
    175. # # print(all_paths)
    176. # print(len(all_paths))# 540
    177. # 把所有内容变成36个一组
    178. nested_paths = [all_paths[i:i+w*w*w] for i in range(0, len(all_paths), w*w*w)]
    179. print(nested_paths)
    180. print(len(nested_paths))
    181. # 15组 每组里面是2个(9个浅色+9个深色)
    182. from docx import Document
    183. from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
    184. from docx.shared import Cm
    185. from docx2pdf import convert
    186. from PyPDF2 import PdfMerger
    187. import os,time
    188. import shutil
    189. print('------第6步 36个路径写入单元格----------')
    190. # 指定新建文件夹路径
    191. d = path + r"\零时文件夹"
    192. # 检查文件夹是否存在,如果不存在则新建
    193. if not os.path.exists(d):
    194. os.makedirs(d)
    195. merged_pdf = PdfMerger()
    196. for nn in range(0, len(nested_paths)):
    197. doc = Document(path + r'\春天拼图.docx')
    198. table = doc.tables[0]
    199. for t, bg_value in enumerate(bg):
    200. pp = int(bg_value[0:2])
    201. qq = int(bg_value[2:4])
    202. k = nested_paths[nn][t]
    203. print(pp, qq, k)
    204. run = doc.tables[0].cell(pp, qq).paragraphs[0].add_run()
    205. run.add_picture('{}'.format(k), width=Cm(3.7), height=Cm(2.55))
    206. table.cell(pp, qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
    207. doc.save(path + r'\零时文件夹\{}.docx'.format('%02d' % nn))
    208. time.sleep(2)
    209. # docx转PDF
    210. inputFile = path + r"\零时文件夹\{}.docx".format('%02d' % nn)
    211. outputFile = path + r"\零时文件夹\{}.pdf".format('%02d' % nn)
    212. with open(outputFile, 'w'):
    213. pass
    214. convert(inputFile, outputFile)
    215. time.sleep(2)
    216. merged_pdf.append(outputFile)
    217. # 合并PDF、
    218. merged_pdf.write(path + r"\有底图的春天拼图{}块({}人共{}份).pdf".format(w*2,int(len(nested_paths)*2), len(nested_paths)))
    219. merged_pdf.close()
    220. print('----------第7步:把都有PDF合并为一个打印用PDF------------')
    221. # 删除临时文件夹
    222. shutil.rmtree(path + r"\零时文件夹")

    运行后逐步生成五个文件夹

    生成结果:

    结论:

    因为MJ生成黑白风景图的黑白灰样式不同,因此经过同样的对比度(30)和明度(2)调试,会出现不同的结果,有时候底图和贴图都很深色,有时候明度高,底图看不清图案。

    总之,一套关键词写出来的mj"春天风景图片”明度对比度不统一,使用同样的数值调试明度(变浅)和对比度(变深),就会出现不同的对比效果。

    思路:

    1、优化MJ关键词,在MJ关键词里也加入“关于图案颜色的关键”(具体是什么还不清楚)

    2、生成后,删除“底图贴图”对比效果不强(都是深色线条)或者“底图贴图”对比效果太强(底图看不清图案)的原图。

  • 相关阅读:
    计算机毕业设计之社区居家养老服务系统
    字符串常用方法
    基于ATX的自动化测试管理软件:Q-Automation
    六石管理学:水平不高,照抄就好
    【数据结构练习】栈的面试题集锦
    数据库试题
    禅道的使用
    【C++ 哈希应用】
    java基础12
    常用的全国快递物流查询api接口对接
  • 原文地址:https://blog.csdn.net/reasonsummer/article/details/136674989