露卡从海边带来了新的魔法了哦~但它不能着IP,只能自己参考参考然后随心所欲发挥,所有人物都只是参考出来的...
首先这个魔法需要先控制故事三要素,时间,地点,人物
时间和地点:由你上传的风景图/lora来决定,但只决定40%左右
人物:由你选择的图片/角色lora决定,决定100%
这两个是故事情节最关键的❤
然后分镜参考在示例图可以拿一张,白色里面可以用细一点的线画火柴人或者物品的大致轮廓进去,然后用脚本直接裁剪就行:
(如果没有python的可以去微软商店下载一个
然后点击Win+R调出控制台,输入cmd
依次输入pip install opencv-python(安装cv2)
pip install numpy(安装numpy))
然后创建一个文本text,把脚本输入进去换你的路径配置,将文件改为py尾缀
然后运行就可以了nya~
import cv2
import numpy as np
import os
# 路径配置
base_image_path = 'D:\\1\\picture\\z\\1.png'
input_folder = 'D:\\1\\picture\\z\\input'
output_folder = 'D:\\1\\picture\\z\\output'
# 确保输出文件夹存在
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 读取基准图像
base_image = cv2.imread(base_image_path)
gray_base_image = cv2.cvtColor(base_image, cv2.COLOR_BGR2GRAY)
# 阈值处理找出黑色区域(假设黑色的阈值为10)
, threshbase_image = cv2.threshold(gray_base_image, 10, 255, cv2.THRESH_BINARY_INV)
# 查找轮廓
contours, = cv2.findContours(threshbase_image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 初始化图像计数器
image_counter = 1
# 读取输入文件夹中的所有图像
input_images = [f for f in os.listdir(input_folder) if os.path.isfile(os.path.join(input_folder, f))]
for input_image_name in input_images:
input_image_path = os.path.join(input_folder, input_image_name)
input_image = cv2.imread(input_image_path)
# 遍历每个黑色区域的轮廓进行裁剪
for contour in contours:
x, y, w, h = cv2.boundingRect(contour)
# 裁剪输入图像
cropped_image = input_image[y:y+h, x:x+w]
# 保存裁剪后的图像
output_image_path = os.path.join(output_folder, f'{image_counter}.png')
cv2.imwrite(output_image_path, cropped_image)
# 增加图像计数器
image_counter += 1
print(f'{image_counter - 1} images have been saved to {output_folder}')