Download custom_nodes/dolphin_nodes/dolphin_seed_controller.py from bjooo/tutorials: direct link, hf CLI and curl.
- Browser
- Download file 3.51 kB
-
https://huggingface.co/bjooo/tutorials/resolve/main/custom_nodes/dolphin_nodes/dolphin_seed_controller.py
- Command line
-
hf download hf://bjooo/tutorials/custom_nodes/dolphin_nodes/dolphin_seed_controller.py
-
curl -L -o dolphin_seed_controller.py https://huggingface.co/bjooo/tutorials/resolve/main/custom_nodes/dolphin_nodes/dolphin_seed_controller.py
3.51 kB
| class DolphinBatchSeedController: | |
| """ | |
| ํด๋ฆฝ 4๊ฐ์ง๋ฆฌ ํ์ดํ๋ผ์ธ(First + Extendร3)์ ์์ ์ํ๋ฌ ์๋๋ฅผ ํ ๊ณณ์์ | |
| ์ค์์นญํ๊ธฐ ์ํ ๋ ธ๋. ๊ธฐ์กด์๋ ํด๋ฆฝ๋ง๋ค ์๋ก ๋ค๋ฅธ ์๋ธ๊ทธ๋ํ ์์ ๋ฌปํ | |
| SeedGenerator ์์ ฏ์ 4๋ฒ ๋ฐ๋ก ์กฐ์ํด์ผ "๋งค ๋ฐฐ์น ๋๋ค"๊ณผ "ํน์ ํด๋ฆฝ๋ถํฐ | |
| ์ฌ์์ฑ"์ ์ค๊ฐ ์ ์์๋ค. | |
| "seed"๋ผ๋ ์ด๋ฆ์ INT ์์ ฏ์๋ ComfyUI ํ๋ก ํธ์๋๊ฐ ์๋์ผ๋ก | |
| control_after_generate(fixed/increment/decrement/randomize) ๋๋กญ๋ค์ด์ | |
| ๋ถ์ฌ์ค๋ค - ๊ทธ๋์ "์ ์ฒด ๋๋ค"/"ํน์ ํด๋ฆฝ๋ถํฐ ์ฌ์์ฑ"์ ํ์ํ ์ ์๋๋ | |
| ์ด ์์ ฏ ํ๋์ randomize/increment๋ง์ผ๋ก ๋์ค๊ณ , ๋ ธ๋ ์์ฒด๋ ๋งค ์คํ | |
| ๋ฌด์์๋ฅผ ํธ์ถํ ํ์ ์๋ ์์ ํจ์๋ก ๋จ๋๋ค. | |
| ์ฃผ์: "ํน์ ํด๋ฆฝ๋ถํฐ ์ฌ์์ฑ"์ด์ง "๊ทธ ํด๋ฆฝ๋ง ์ฌ์์ฑ"์ด ์๋๋ค. Extend | |
| ์๋ธ๊ทธ๋ํ๋ ์ด์ ํด๋ฆฝ์ ์ค์ ๋์ฝ๋ฉ๋ ํ๋ ์์ ์ ๋ ฅ์ผ๋ก ๋ฐ๋ continuity | |
| ๊ตฌ์กฐ๋ผ, N๋ฒ ํด๋ฆฝ ์๋๋ฅผ ๋ฐ๊พธ๋ฉด N+1, N+2... ํด๋ฆฝ์ ์๊ธฐ ์๋๊ฐ์ด ๊ทธ๋๋ก์ฌ๋ | |
| ์ ๋ ฅ latent๊ฐ ๋ฌ๋ผ์ ธ์ ์บ์๊ฐ ๊นจ์ง๊ณ ๋ฌด์กฐ๊ฑด ๋ค์ ๋ ๋๋ง๋๋ค. N๋ณด๋ค ์ | |
| ํด๋ฆฝ๋ค๋ง ๊ทธ๋๋ก ์บ์๋๋ค. | |
| """ | |
| MODE_FIXED = "๐ ๊ณ ์ (์ฌํ)" | |
| MODE_RANDOM_ALL = "๐ฒ ์ ์ฒด ๋๋ค (๋งค ๋ฐฐ์น)" | |
| MODE_REGEN_FROM = "โป๏ธ ํน์ ํด๋ฆฝ๋ถํฐ ์ฌ์์ฑ (๊ทธ ๋ค ํด๋ฆฝ๋ ์ฐ์ ์ฌ์์ฑ๋จ)" | |
| GOLDEN = 0x9E3779B97F4A7C15 | |
| MASK = 0xFFFFFFFFFFFFFFFF | |
| def INPUT_TYPES(s): | |
| req = { | |
| "mode": ([s.MODE_FIXED, s.MODE_RANDOM_ALL, s.MODE_REGEN_FROM], {"default": s.MODE_FIXED}), | |
| "regen_clip": (["1", "2", "3", "4"], {"default": "1", | |
| "tooltip": "'ํน์ ํด๋ฆฝ๋ถํฐ ์ฌ์์ฑ' ๋ชจ๋์์ ๋ช ๋ฒ ํด๋ฆฝ๋ถํฐ ์ ์๋๋ฅผ ์ค์ง. " | |
| "๊ทธ ํด๋ฆฝ ์ดํ ํด๋ฆฝ๋ค๋ continuity ๋๋ฌธ์ ๊ฐ์ด ๋ค์ ๋ ๋๋ง๋๋ค " | |
| "(์ด์ ํด๋ฆฝ๋ค๋ง ์บ์ ์ ์ง)."}), | |
| "seed": ("INT", {"default": 0, "min": 0, "max": s.MASK}), | |
| "c1_seed": ("INT", {"default": 196010661098274, "min": 0, "max": s.MASK}), | |
| "c2_seed": ("INT", {"default": 316514109857979, "min": 0, "max": s.MASK}), | |
| "c3_seed": ("INT", {"default": 732840722629067, "min": 0, "max": s.MASK}), | |
| "c4_seed": ("INT", {"default": 599880917933127, "min": 0, "max": s.MASK}), | |
| } | |
| return {"required": req} | |
| RETURN_TYPES = ("INT", "INT", "INT", "INT", "STRING") | |
| RETURN_NAMES = ("c1_seed", "c2_seed", "c3_seed", "c4_seed", "debug_info") | |
| FUNCTION = "get_seeds" | |
| CATEGORY = "Dolphin" | |
| def get_seeds(self, mode, regen_clip, seed, c1_seed, c2_seed, c3_seed, c4_seed): | |
| base = [c1_seed, c2_seed, c3_seed, c4_seed] | |
| if mode == self.MODE_RANDOM_ALL: | |
| out = [(seed + i * self.GOLDEN) & self.MASK for i in range(4)] | |
| elif mode == self.MODE_REGEN_FROM: | |
| out = list(base) | |
| out[int(regen_clip) - 1] = seed | |
| else: | |
| out = list(base) | |
| debug = f"mode={mode} | c1={out[0]} c2={out[1]} c3={out[2]} c4={out[3]}" | |
| print(f"๐ฒ [BatchSeedController] {debug}") | |
| return (*out, debug) | |
| NODE_CLASS_MAPPINGS = { | |
| "DolphinBatchSeedController": DolphinBatchSeedController, | |
| } | |
| NODE_DISPLAY_NAME_MAPPINGS = { | |
| "DolphinBatchSeedController": "๐ฒ Dolphin Batch Seed Controller (random-all / regen-from-clip)", | |
| } | |