上期填坑
leetcode , 209. 长度最小的子数组
给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其总和大于等于 target 的长度最小的子数组
[numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。
public int minSubArrayLen(int target, int[] nums) {
int n = nums.length;
if (n == 0) {
return 0;
}
int ans = Integer.MAX_VALUE;
int[] sums = new int[n + 1];
//计算前缀和:sums[i] 表示 nums[0]~nums[i-1]的和
for (int i = 1; i <= n; i++) {
sums[i] = sums[i - 1] + nums[i - 1];
}
for (int i = 1; i <= n; i++) {
int tmp = target + sums[i - 1];// target = sum[b]- sum[a];sum[b] = target + sum[a];
int bound = Arrays.binarySearch(sums, tmp);//二分查找
if (bound < 0) {
bound = -bound - 1;
}
if (bound <= n) {
ans = Math.min(ans, bound - (i - 1));
}
}
return ans == Integer.MAX_VALUE ? 0 : ans;
}
流程图
在熟悉了ComfyUI的各种加载器、采样器、调节器、潜在空间、图像控制
等节点后,现在要选用并添加合适的节点构建自己的工作流程图。
ComfyUI还提供了两种方式来加载流程图。
加载json
通过加载他人分享或者自己保存过的json文件
(该json保存了流程图所有的节点及其连接信息),如下图所示:
加载原图
通过加载由ComfyUI生成的原图
,如下图所示:
资源
对于刚开始不熟悉流程节点和连接信息,可以选择加载别人分享的示例
,然后自己进行定制化修改
。
在ComfyUI的开源项目中给出了一些在不同场景下的例子,可以参考:
地址:https://comfyanonymous.github.io/ComfyUI_examples/
在一些第三方网站上,也有许多分享的工作流,可以选择喜欢并合适进行修改:
文生图
学习了基础的节点和流程图,利用现有的流程图,在C站上参考了一份提示词:
Prompt:
8k portrait of beautiful cyborg with brown hair, intricate, elegant, highly detailed, majestic, digital photography, art by artgerm and ruan jia and greg rutkowski surreal painting gold butterfly filigree, broken glass, (masterpiece, sidelighting, finely detailed beautiful eyes: 1.2), hdr, (detailed background window to a new dimension, plants and flowers:0.7) <lora:more_details:0.5> infinity, infinite symbol,
Negative prompt:
BadDream, FastNegativeV2
如下图:
生成的结果图,基本符合提示词。可能是没有使用相同模型的原因,与原图有较大的差别,但基本元素都有,原图如下:
图生图
图生图的流程图与上述文生图差不多,只是·将空白图像的输入换成了加载图像·。
选用了ComfyUI的默认图加上述提示词试了一下,效果不太理想,如下图:
·将denoise参数调到0.75·,再试一次,效果有所提升,但还是不符合预期:
这说明在写提示词时,应该也与输入图像有所关联,如图:
可以尝试验证下。
每日一算
leetcode , 238. 除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。
题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。
请 不要使用除法,且在 O(n) 时间复杂度内完成此题。