RioShiina commited on
Commit
c2dd458
·
verified ·
1 Parent(s): bba8e10

Upload folder using huggingface_hub

Browse files
README.md CHANGED
@@ -36,6 +36,7 @@ models:
36
  - Comfy-Org/flux1-kontext-dev_ComfyUI
37
  - Comfy-Org/flux2-dev
38
  - Comfy-Org/HiDream-I1_ComfyUI
 
39
  - Comfy-Org/HunyuanImage_2.1_ComfyUI
40
  - Comfy-Org/LongCat-Image
41
  - Comfy-Org/Lumina_Image_2.0_Repackaged
 
36
  - Comfy-Org/flux1-kontext-dev_ComfyUI
37
  - Comfy-Org/flux2-dev
38
  - Comfy-Org/HiDream-I1_ComfyUI
39
+ - Comfy-Org/HiDream-O1-Image
40
  - Comfy-Org/HunyuanImage_2.1_ComfyUI
41
  - Comfy-Org/LongCat-Image
42
  - Comfy-Org/Lumina_Image_2.0_Repackaged
chain_injectors/hidream_smoothing_injector.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from copy import deepcopy
2
+
3
+ def inject(assembler, chain_definition, chain_items):
4
+ if not chain_items:
5
+ return
6
+
7
+ target_node_name = chain_definition.get('target_node')
8
+ if not target_node_name or target_node_name not in assembler.node_map:
9
+ print(f"Warning: Target node '{target_node_name}' not found for HiDream Smoothing. Skipping.")
10
+ return
11
+
12
+ target_node_id = assembler.node_map[target_node_name]
13
+
14
+ if 'model' not in assembler.workflow[target_node_id]['inputs']:
15
+ print(f"Warning: Target node '{target_node_name}' has no 'model' input. Skipping.")
16
+ return
17
+
18
+ current_model_connection = assembler.workflow[target_node_id]['inputs']['model']
19
+
20
+ for _ in chain_items:
21
+ template = assembler._get_node_template("HiDreamO1PatchSeamSmoothing")
22
+ node_data = deepcopy(template)
23
+
24
+ node_data['inputs']['start_percent'] = 0.8
25
+ node_data['inputs']['end_percent'] = 1.0
26
+ node_data['inputs']['pattern'] = "single_shift"
27
+ node_data['inputs']['passes'] = "ramp_2_4"
28
+ node_data['inputs']['blend'] = "median"
29
+ node_data['inputs']['strength'] = 1.0
30
+
31
+ node_data['inputs']['model'] = current_model_connection
32
+
33
+ new_node_id = assembler._get_unique_id()
34
+ assembler.workflow[new_node_id] = node_data
35
+
36
+ current_model_connection = [new_node_id, 0]
37
+
38
+ assembler.workflow[target_node_id]['inputs']['model'] = current_model_connection
39
+ print("HiDream-O1 Patch Seam Smoothing injector applied.")
core/pipelines/sd_image_pipeline.py CHANGED
@@ -491,6 +491,10 @@ class SdImagePipeline(BasePipeline):
491
  recipe_path = os.path.join(os.path.dirname(__file__), "workflow_recipes", "sd_unified_recipe.yaml")
492
  assembler = WorkflowAssembler(recipe_path, dynamic_values=dynamic_values)
493
 
 
 
 
 
494
  workflow_inputs = {
495
  **ui_inputs,
496
  "positive_prompt": ui_inputs['positive_prompt'], "negative_prompt": ui_inputs['negative_prompt'],
@@ -512,6 +516,7 @@ class SdImagePipeline(BasePipeline):
512
  "conditioning_chain": active_conditioning,
513
  "reference_latent_chain": active_reference_latents,
514
  "vae_chain": [ui_inputs.get('vae_name')] if ui_inputs.get('vae_name') else [],
 
515
  }
516
 
517
  if isinstance(path_or_components, dict):
 
491
  recipe_path = os.path.join(os.path.dirname(__file__), "workflow_recipes", "sd_unified_recipe.yaml")
492
  assembler = WorkflowAssembler(recipe_path, dynamic_values=dynamic_values)
493
 
494
+ hidream_smoothing_data = []
495
+ if workflow_model_type == 'hidream-o1' and model_display_name == "HiDream-O1-Image":
496
+ hidream_smoothing_data.append({})
497
+
498
  workflow_inputs = {
499
  **ui_inputs,
500
  "positive_prompt": ui_inputs['positive_prompt'], "negative_prompt": ui_inputs['negative_prompt'],
 
516
  "conditioning_chain": active_conditioning,
517
  "reference_latent_chain": active_reference_latents,
518
  "vae_chain": [ui_inputs.get('vae_name')] if ui_inputs.get('vae_name') else [],
519
+ "hidream_smoothing_chain": hidream_smoothing_data,
520
  }
521
 
522
  if isinstance(path_or_components, dict):
core/pipelines/workflow_recipes/_partials/conditioning/hidream-i1.yaml ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ nodes:
2
+ unet_loader:
3
+ class_type: UNETLoader
4
+ title: "Load HiDream-I1 UNET"
5
+ params:
6
+ weight_dtype: "default"
7
+ vae_loader:
8
+ class_type: VAELoader
9
+ title: "Load HiDream-I1 VAE"
10
+ clip_loader:
11
+ class_type: QuadrupleCLIPLoader
12
+ title: "Load HiDream-I1 Quadruple CLIP"
13
+
14
+ model_sampler:
15
+ class_type: ModelSamplingSD3
16
+ title: "ModelSamplingSD3"
17
+ params:
18
+ shift: 6.0
19
+
20
+ connections:
21
+ - from: "unet_loader:0"
22
+ to: "model_sampler:model"
23
+
24
+ - from: "model_sampler:0"
25
+ to: "ksampler:model"
26
+
27
+ - from: "clip_loader:0"
28
+ to: "pos_prompt:clip"
29
+ - from: "clip_loader:0"
30
+ to: "neg_prompt:clip"
31
+
32
+ - from: "pos_prompt:0"
33
+ to: "ksampler:positive"
34
+ - from: "neg_prompt:0"
35
+ to: "ksampler:negative"
36
+
37
+ - from: "vae_loader:0"
38
+ to: "vae_decode:vae"
39
+ - from: "vae_loader:0"
40
+ to: "vae_encode:vae"
41
+
42
+ dynamic_conditioning_chains:
43
+ conditioning_chain:
44
+ ksampler_node: "ksampler"
45
+ clip_source: "clip_loader:0"
46
+
47
+ ui_map:
48
+ unet_name: "unet_loader:unet_name"
49
+ vae_name: "vae_loader:vae_name"
50
+ clip1_name: "clip_loader:clip_name1"
51
+ clip2_name: "clip_loader:clip_name2"
52
+ clip3_name: "clip_loader:clip_name3"
53
+ clip4_name: "clip_loader:clip_name4"
core/pipelines/workflow_recipes/_partials/conditioning/hidream-o1.yaml ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ nodes:
2
+ ckpt_loader:
3
+ class_type: CheckpointLoaderSimple
4
+ title: "Load Checkpoint"
5
+
6
+ model_noise_scale:
7
+ class_type: ModelNoiseScale
8
+ title: "ModelNoiseScale"
9
+ params:
10
+ noise_scale: 8
11
+
12
+ connections:
13
+ - from: "ckpt_loader:0"
14
+ to: "model_noise_scale:model"
15
+
16
+ - from: "model_noise_scale:0"
17
+ to: "ksampler:model"
18
+
19
+ - from: "ckpt_loader:1"
20
+ to: "pos_prompt:clip"
21
+ - from: "ckpt_loader:1"
22
+ to: "neg_prompt:clip"
23
+
24
+ - from: "pos_prompt:0"
25
+ to: "ksampler:positive"
26
+ - from: "neg_prompt:0"
27
+ to: "ksampler:negative"
28
+
29
+ - from: "ckpt_loader:2"
30
+ to: "vae_decode:vae"
31
+ - from: "ckpt_loader:2"
32
+ to: "vae_encode:vae"
33
+
34
+ dynamic_vae_chains:
35
+ vae_chain:
36
+ targets:
37
+ - "vae_decode:vae"
38
+ - "vae_encode:vae"
39
+
40
+ dynamic_lora_chains:
41
+ lora_chain:
42
+ template: "LoraLoader"
43
+ start: "ckpt_loader"
44
+ output_map:
45
+ "0": "model"
46
+ "1": "clip"
47
+ input_map:
48
+ "model": "model"
49
+ "clip": "clip"
50
+ end_input_map:
51
+ "model": ["model_noise_scale:model"]
52
+ "clip": ["pos_prompt:clip", "neg_prompt:clip"]
53
+
54
+ dynamic_hidream_smoothing_chains:
55
+ hidream_smoothing_chain:
56
+ target_node: "ksampler"
57
+
58
+ dynamic_conditioning_chains:
59
+ conditioning_chain:
60
+ ksampler_node: "ksampler"
61
+ clip_source: "ckpt_loader:1"
62
+
63
+ ui_map:
64
+ model_name: "ckpt_loader:ckpt_name"
core/pipelines/workflow_recipes/_partials/input/txt2img_hidream_o1_latent.yaml ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ nodes:
2
+ latent_source:
3
+ class_type: "EmptyHiDreamO1LatentImage"
4
+ title: "Empty HiDream-O1 Latent Image"
5
+
6
+ connections: []
7
+
8
+ ui_map:
9
+ width: "latent_source:width"
10
+ height: "latent_source:height"
11
+ batch_size: "latent_source:batch_size"
yaml/constants.yaml CHANGED
@@ -95,7 +95,15 @@ RESOLUTION_MAP:
95
  "3:4 (Classic Portrait)": [896, 1152]
96
  "3:2 (Photography)": [1216, 832]
97
  "2:3 (Photography Portrait)": [832, 1216]
98
- hidream:
 
 
 
 
 
 
 
 
99
  "1:1 (Square)": [1024, 1024]
100
  "16:9 (Landscape)": [1344, 768]
101
  "9:16 (Portrait)": [768, 1344]
 
95
  "3:4 (Classic Portrait)": [896, 1152]
96
  "3:2 (Photography)": [1216, 832]
97
  "2:3 (Photography Portrait)": [832, 1216]
98
+ hidream-o1:
99
+ "1:1 (Square)": [1024, 1024]
100
+ "16:9 (Landscape)": [1344, 768]
101
+ "9:16 (Portrait)": [768, 1344]
102
+ "4:3 (Classic)": [1152, 896]
103
+ "3:4 (Classic Portrait)": [896, 1152]
104
+ "3:2 (Photography)": [1216, 832]
105
+ "2:3 (Photography Portrait)": [832, 1216]
106
+ hidream-i1:
107
  "1:1 (Square)": [1024, 1024]
108
  "16:9 (Landscape)": [1344, 768]
109
  "9:16 (Portrait)": [768, 1344]
yaml/file_list.yaml CHANGED
@@ -1,5 +1,14 @@
1
  file:
2
  checkpoints:
 
 
 
 
 
 
 
 
 
3
  # Lumina
4
  - filename: "lumina_2.safetensors"
5
  source: "hf"
@@ -506,7 +515,7 @@ file:
506
  source: "hf"
507
  repo_id: "Comfy-Org/FLUX.1-Krea-dev_ComfyUI"
508
  repository_file_path: "split_files/diffusion_models/flux1-krea-dev_fp8_scaled.safetensors"
509
- # HiDream
510
  - filename: "hidream_i1_dev_fp8.safetensors"
511
  source: "hf"
512
  repo_id: "Comfy-Org/HiDream-I1_ComfyUI"
 
1
  file:
2
  checkpoints:
3
+ # HiDream-O1
4
+ - filename: "hidream_o1_image_dev_fp8_scaled.safetensors"
5
+ source: "hf"
6
+ repo_id: "Comfy-Org/HiDream-O1-Image"
7
+ repository_file_path: "checkpoints/hidream_o1_image_dev_fp8_scaled.safetensors"
8
+ - filename: "hidream_o1_image_fp8_scaled.safetensors"
9
+ source: "hf"
10
+ repo_id: "Comfy-Org/HiDream-O1-Image"
11
+ repository_file_path: "checkpoints/hidream_o1_image_fp8_scaled.safetensors"
12
  # Lumina
13
  - filename: "lumina_2.safetensors"
14
  source: "hf"
 
515
  source: "hf"
516
  repo_id: "Comfy-Org/FLUX.1-Krea-dev_ComfyUI"
517
  repository_file_path: "split_files/diffusion_models/flux1-krea-dev_fp8_scaled.safetensors"
518
+ # HiDream-I1
519
  - filename: "hidream_i1_dev_fp8.safetensors"
520
  source: "hf"
521
  repo_id: "Comfy-Org/HiDream-I1_ComfyUI"
yaml/image_gen_features.yaml CHANGED
@@ -100,10 +100,15 @@ flux1:
100
  - conditioning
101
  - flux1_ipadapter
102
 
103
- hidream:
104
  enabled_chains:
105
- - lora
106
- - conditioning
 
 
 
 
 
107
 
108
  chroma1:
109
  enabled_chains:
 
100
  - conditioning
101
  - flux1_ipadapter
102
 
103
+ hidream-o1:
104
  enabled_chains:
105
+ - lora
106
+ - conditioning
107
+
108
+ hidream-i1:
109
+ enabled_chains:
110
+ - lora
111
+ - conditioning
112
 
113
  chroma1:
114
  enabled_chains:
yaml/injectors.yaml CHANGED
@@ -17,12 +17,14 @@ injector_definitions:
17
  module: "chain_injectors.flux1_ipadapter_injector"
18
  dynamic_sd3_ipadapter_chains:
19
  module: "chain_injectors.sd3_ipadapter_injector"
20
- dynamic_style_chains:
21
- module: "chain_injectors.style_injector"
22
- dynamic_conditioning_chains:
23
- module: "chain_injectors.conditioning_injector"
24
  dynamic_reference_latent_chains:
25
  module: "chain_injectors.reference_latent_injector"
 
 
 
 
 
 
26
 
27
  injector_order:
28
  - dynamic_vae_chains
@@ -32,8 +34,9 @@ injector_order:
32
  - dynamic_ipadapter_chains
33
  - dynamic_flux1_ipadapter_chains
34
  - dynamic_sd3_ipadapter_chains
35
- - dynamic_style_chains
36
- - dynamic_conditioning_chains
37
  - dynamic_reference_latent_chains
 
 
38
  - dynamic_controlnet_chains
39
- - dynamic_anima_controlnet_lllite_chains
 
 
17
  module: "chain_injectors.flux1_ipadapter_injector"
18
  dynamic_sd3_ipadapter_chains:
19
  module: "chain_injectors.sd3_ipadapter_injector"
 
 
 
 
20
  dynamic_reference_latent_chains:
21
  module: "chain_injectors.reference_latent_injector"
22
+ dynamic_conditioning_chains:
23
+ module: "chain_injectors.conditioning_injector"
24
+ dynamic_style_chains:
25
+ module: "chain_injectors.style_injector"
26
+ dynamic_hidream_smoothing_chains:
27
+ module: "chain_injectors.hidream_smoothing_injector"
28
 
29
  injector_order:
30
  - dynamic_vae_chains
 
34
  - dynamic_ipadapter_chains
35
  - dynamic_flux1_ipadapter_chains
36
  - dynamic_sd3_ipadapter_chains
 
 
37
  - dynamic_reference_latent_chains
38
+ - dynamic_conditioning_chains
39
+ - dynamic_style_chains
40
  - dynamic_controlnet_chains
41
+ - dynamic_anima_controlnet_lllite_chains
42
+ - dynamic_hidream_smoothing_chains
yaml/model_architectures.yaml CHANGED
@@ -13,7 +13,8 @@ architecture_order:
13
  - "Chroma1"
14
  - "OmniGen2"
15
  - "Lumina"
16
- - "HiDream"
 
17
  - "FLUX.1"
18
  - "SD3.5"
19
  - "SDXL"
@@ -71,9 +72,12 @@ architectures:
71
  "SD3.5":
72
  model_type: "sd35"
73
  controlnet_key: "SD3.5"
74
- "HiDream":
75
- model_type: "hidream"
76
- controlnet_key: "HiDream"
 
 
 
77
  "SD1.5":
78
  model_type: "sd15"
79
  controlnet_key: "SD1.5"
 
13
  - "Chroma1"
14
  - "OmniGen2"
15
  - "Lumina"
16
+ - "HiDream-O1"
17
+ - "HiDream-I1"
18
  - "FLUX.1"
19
  - "SD3.5"
20
  - "SDXL"
 
72
  "SD3.5":
73
  model_type: "sd35"
74
  controlnet_key: "SD3.5"
75
+ "HiDream-O1":
76
+ model_type: "hidream-o1"
77
+ controlnet_key: "HiDream-O1"
78
+ "HiDream-I1":
79
+ model_type: "hidream-i1"
80
+ controlnet_key: "HiDream-I1"
81
  "SD1.5":
82
  model_type: "sd15"
83
  controlnet_key: "SD1.5"
yaml/model_defaults.yaml CHANGED
@@ -175,7 +175,20 @@ FLUX.1:
175
  sampler_name: "euler"
176
  scheduler: "simple"
177
 
178
- HiDream:
 
 
 
 
 
 
 
 
 
 
 
 
 
179
  _defaults:
180
  steps: 50
181
  cfg: 3.0
 
175
  sampler_name: "euler"
176
  scheduler: "simple"
177
 
178
+ HiDream-O1:
179
+ _defaults:
180
+ steps: 40
181
+ cfg: 5.0
182
+ sampler_name: "dpmpp_2m_sde_gpu"
183
+ scheduler: "normal"
184
+ total_pixels: 1048576
185
+ "HiDream-O1-Image-Dev":
186
+ steps: 28
187
+ cfg: 1.0
188
+ sampler_name: "lcm"
189
+ scheduler: "normal"
190
+
191
+ HiDream-I1:
192
  _defaults:
193
  steps: 50
194
  cfg: 3.0
yaml/model_list.yaml CHANGED
@@ -168,7 +168,14 @@ Checkpoint:
168
  models:
169
  - display_name: "Alpha-VLLM/Lumina-Image-2.0"
170
  path: "lumina_2.safetensors"
171
- HiDream:
 
 
 
 
 
 
 
172
  latent_type: sd3_latent
173
  models:
174
  - display_name: "HiDream_i1_Dev"
 
168
  models:
169
  - display_name: "Alpha-VLLM/Lumina-Image-2.0"
170
  path: "lumina_2.safetensors"
171
+ HiDream-O1:
172
+ latent_type: hidream_o1_latent
173
+ models:
174
+ - display_name: "HiDream-O1-Image-Dev"
175
+ path: "hidream_o1_image_dev_fp8_scaled.safetensors"
176
+ - display_name: "HiDream-O1-Image"
177
+ path: "hidream_o1_image_fp8_scaled.safetensors"
178
+ HiDream-I1:
179
  latent_type: sd3_latent
180
  models:
181
  - display_name: "HiDream_i1_Dev"