RioShiina commited on
Commit
8dc4426
·
verified ·
1 Parent(s): dc0cea5

Upload folder using huggingface_hub

Browse files
README.md CHANGED
@@ -41,6 +41,7 @@ models:
41
  - Comfy-Org/HiDream-I1_ComfyUI
42
  - Comfy-Org/HiDream-O1-Image
43
  - Comfy-Org/HunyuanImage_2.1_ComfyUI
 
44
  - Comfy-Org/Lens
45
  - Comfy-Org/LongCat-Image
46
  - Comfy-Org/Lumina_Image_2.0_Repackaged
 
41
  - Comfy-Org/HiDream-I1_ComfyUI
42
  - Comfy-Org/HiDream-O1-Image
43
  - Comfy-Org/HunyuanImage_2.1_ComfyUI
44
+ - Comfy-Org/Ideogram-4
45
  - Comfy-Org/Lens
46
  - Comfy-Org/LongCat-Image
47
  - Comfy-Org/Lumina_Image_2.0_Repackaged
core/pipelines/sd_image_pipeline.py CHANGED
@@ -173,11 +173,14 @@ class SdImagePipeline(BasePipeline):
173
  "vae_chain": [ui_inputs.get('vae_name')] if ui_inputs.get('vae_name') else [],
174
  "hidream_o1_smoothing_chain": hidream_o1_smoothing_data,
175
  "pid_chain": [ui_inputs.get('pid_settings', 'OFF')] if is_pid_enabled else [],
 
 
176
  }
177
 
178
  if isinstance(path_or_components, dict):
179
  workflow_inputs.update({
180
  'unet_name': path_or_components.get('unet'),
 
181
  'vae_name': ui_inputs.get('vae_name') or path_or_components.get('vae'),
182
  'clip_name': path_or_components.get('clip'),
183
  'clip1_name': path_or_components.get('clip1'),
 
173
  "vae_chain": [ui_inputs.get('vae_name')] if ui_inputs.get('vae_name') else [],
174
  "hidream_o1_smoothing_chain": hidream_o1_smoothing_data,
175
  "pid_chain": [ui_inputs.get('pid_settings', 'OFF')] if is_pid_enabled else [],
176
+ "scheduler_width": ui_inputs.get('width', 1024),
177
+ "scheduler_height": ui_inputs.get('height', 1024),
178
  }
179
 
180
  if isinstance(path_or_components, dict):
181
  workflow_inputs.update({
182
  'unet_name': path_or_components.get('unet'),
183
+ 'unet_uncond_name': path_or_components.get('unet_uncond'),
184
  'vae_name': ui_inputs.get('vae_name') or path_or_components.get('vae'),
185
  'clip_name': path_or_components.get('clip'),
186
  'clip1_name': path_or_components.get('clip1'),
core/pipelines/workflow_recipes/_partials/conditioning/ideogram-4.yaml ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ nodes:
2
+ unet_loader:
3
+ class_type: UNETLoader
4
+ title: "Load Diffusion Model"
5
+ params:
6
+ weight_dtype: "default"
7
+ cfg_override:
8
+ class_type: CFGOverride
9
+ title: "CFG Override"
10
+ params:
11
+ start_percent: 0.9
12
+ end_percent: 1.0
13
+ unet_uncond_loader:
14
+ class_type: UNETLoader
15
+ title: "Load Unconditional Model"
16
+ params:
17
+ weight_dtype: "default"
18
+ guider:
19
+ class_type: DualModelGuider
20
+ title: "Dual Model CFG Guider"
21
+ clip_loader:
22
+ class_type: CLIPLoader
23
+ title: "Load CLIP"
24
+ params:
25
+ type: "ideogram4"
26
+ device: "default"
27
+ ksampler_select:
28
+ class_type: KSamplerSelect
29
+ scheduler_node:
30
+ class_type: Ideogram4Scheduler
31
+ params:
32
+ mu: 0.5
33
+ std: 1.75
34
+ random_noise:
35
+ class_type: RandomNoise
36
+ ksampler:
37
+ class_type: SamplerCustomAdvanced
38
+ vae_loader:
39
+ class_type: VAELoader
40
+ title: "Load VAE"
41
+
42
+ connections:
43
+ - from: "unet_loader:0"
44
+ to: "cfg_override:model"
45
+ - from: "cfg_override:0"
46
+ to: "guider:model"
47
+ - from: "unet_uncond_loader:0"
48
+ to: "guider:model_negative"
49
+
50
+ - from: "clip_loader:0"
51
+ to: "pos_prompt:clip"
52
+ - from: "clip_loader:0"
53
+ to: "neg_prompt:clip"
54
+
55
+ - from: "pos_prompt:0"
56
+ to: "guider:positive"
57
+ - from: "neg_prompt:0"
58
+ to: "guider:negative"
59
+
60
+ - from: "guider:0"
61
+ to: "ksampler:guider"
62
+ - from: "ksampler_select:0"
63
+ to: "ksampler:sampler"
64
+ - from: "scheduler_node:0"
65
+ to: "ksampler:sigmas"
66
+ - from: "random_noise:0"
67
+ to: "ksampler:noise"
68
+
69
+ - from: "vae_loader:0"
70
+ to: "vae_decode:vae"
71
+ - from: "vae_loader:0"
72
+ to: "vae_encode:vae"
73
+
74
+ dynamic_lora_chains:
75
+ lora_chain:
76
+ template: "LoraLoader"
77
+ output_map:
78
+ "unet_loader:0": "model"
79
+ "clip_loader:0": "clip"
80
+ input_map:
81
+ "model": "model"
82
+ "clip": "clip"
83
+ end_input_map:
84
+ "model": ["cfg_override:model"]
85
+ "clip": ["pos_prompt:clip", "neg_prompt:clip"]
86
+
87
+ dynamic_conditioning_chains:
88
+ conditioning_chain:
89
+ guider_node: "guider"
90
+ guider_target_inputs: ["positive"]
91
+ clip_source: "clip_loader:0"
92
+
93
+ dynamic_pid_chains:
94
+ pid_chain:
95
+ ksampler_node: "ksampler"
96
+
97
+ ui_map:
98
+ unet_name: "unet_loader:unet_name"
99
+ unet_uncond_name: "unet_uncond_loader:unet_name"
100
+ clip_name: "clip_loader:clip_name"
101
+ vae_name: "vae_loader:vae_name"
102
+
103
+ scheduler_width: "scheduler_node:width"
104
+ scheduler_height: "scheduler_node:height"
105
+
106
+ seed: "random_noise:noise_seed"
107
+ steps: "scheduler_node:steps"
108
+ cfg:
109
+ - "guider:cfg"
110
+ - "cfg_override:cfg"
111
+ sampler_name: "ksampler_select:sampler_name"
112
+
113
+ scheduler: "dummy:scheduler"
114
+ denoise: "dummy:denoise"
requirements.txt CHANGED
@@ -1,6 +1,6 @@
1
  comfyui-frontend-package==1.45.15
2
  comfyui-workflow-templates==0.9.98
3
- comfyui-embedded-docs==0.5.2
4
  torch
5
  torchsde
6
  torchvision
@@ -23,7 +23,7 @@ SQLAlchemy>=2.0.0
23
  filelock
24
  av>=16.0.0
25
  comfy-kitchen==0.2.10
26
- comfy-aimdo==0.4.8
27
  requests
28
  simpleeval>=1.0.0
29
  blake3
 
1
  comfyui-frontend-package==1.45.15
2
  comfyui-workflow-templates==0.9.98
3
+ comfyui-embedded-docs==0.5.3
4
  torch
5
  torchsde
6
  torchvision
 
23
  filelock
24
  av>=16.0.0
25
  comfy-kitchen==0.2.10
26
+ comfy-aimdo==0.4.9
27
  requests
28
  simpleeval>=1.0.0
29
  blake3
yaml/constants.yaml CHANGED
@@ -7,6 +7,14 @@ MAX_REFERENCE_LATENTS: 10
7
  LORA_SOURCE_CHOICES: ["Civitai", "File"]
8
 
9
  RESOLUTION_MAP:
 
 
 
 
 
 
 
 
10
  pixeldit:
11
  "1:1 (Square)": [1024, 1024]
12
  "16:9 (Landscape)": [1344, 768]
 
7
  LORA_SOURCE_CHOICES: ["Civitai", "File"]
8
 
9
  RESOLUTION_MAP:
10
+ ideogram-4:
11
+ "1:1 (Square)": [1024, 1024]
12
+ "16:9 (Landscape)": [1344, 768]
13
+ "9:16 (Portrait)": [768, 1344]
14
+ "4:3 (Classic)": [1152, 896]
15
+ "3:4 (Classic Portrait)": [896, 1152]
16
+ "3:2 (Photography)": [1216, 832]
17
+ "2:3 (Photography Portrait)": [832, 1216]
18
  pixeldit:
19
  "1:1 (Square)": [1024, 1024]
20
  "16:9 (Landscape)": [1344, 768]
yaml/file_list.yaml CHANGED
@@ -403,6 +403,15 @@ file:
403
  repo_id: "comfyanonymous/ControlNet-v1-1_fp16_safetensors"
404
  repository_file_path: "control_v11u_sd15_tile_fp16.safetensors"
405
  diffusion_models:
 
 
 
 
 
 
 
 
 
406
  # PixelDiT
407
  - filename: "pixeldit_1300m_1024px_mxfp8.safetensors"
408
  source: "hf"
@@ -708,6 +717,11 @@ file:
708
  repo_id: "alibaba-pai/Z-Image-Turbo-Fun-Controlnet-Union-2.1"
709
  repository_file_path: "Z-Image-Turbo-Fun-Controlnet-Tile-2.1-8steps.safetensors"
710
  text_encoders:
 
 
 
 
 
711
  # PixelDiT
712
  - filename: "gemma_2_2b_it_elm_fp8_scaled.safetensors"
713
  source: "hf"
 
403
  repo_id: "comfyanonymous/ControlNet-v1-1_fp16_safetensors"
404
  repository_file_path: "control_v11u_sd15_tile_fp16.safetensors"
405
  diffusion_models:
406
+ # Ideogram-4
407
+ - filename: "ideogram4_nvfp4_mixed.safetensors"
408
+ source: "hf"
409
+ repo_id: "Comfy-Org/Ideogram-4"
410
+ repository_file_path: "diffusion_models/ideogram4_nvfp4_mixed.safetensors"
411
+ - filename: "ideogram4_unconditional_nvfp4_mixed.safetensors"
412
+ source: "hf"
413
+ repo_id: "Comfy-Org/Ideogram-4"
414
+ repository_file_path: "diffusion_models/ideogram4_unconditional_nvfp4_mixed.safetensors"
415
  # PixelDiT
416
  - filename: "pixeldit_1300m_1024px_mxfp8.safetensors"
417
  source: "hf"
 
717
  repo_id: "alibaba-pai/Z-Image-Turbo-Fun-Controlnet-Union-2.1"
718
  repository_file_path: "Z-Image-Turbo-Fun-Controlnet-Tile-2.1-8steps.safetensors"
719
  text_encoders:
720
+ # Ideogram-4
721
+ - filename: "qwen3vl_8b_nvfp4.safetensors"
722
+ source: "hf"
723
+ repo_id: "Comfy-Org/Ideogram-4"
724
+ repository_file_path: "text_encoders/qwen3vl_8b_nvfp4.safetensors"
725
  # PixelDiT
726
  - filename: "gemma_2_2b_it_elm_fp8_scaled.safetensors"
727
  source: "hf"
yaml/image_gen_features.yaml CHANGED
@@ -8,6 +8,11 @@ default:
8
  - conditioning
9
  - vae
10
 
 
 
 
 
 
11
  pixeldit:
12
  enabled_chains:
13
  - conditioning
 
8
  - conditioning
9
  - vae
10
 
11
+ ideogram-4:
12
+ enabled_chains:
13
+ - vae
14
+ - pid
15
+
16
  pixeldit:
17
  enabled_chains:
18
  - conditioning
yaml/model_architectures.yaml CHANGED
@@ -1,5 +1,6 @@
1
  architecture_order:
2
  - "PixelDiT"
 
3
  - "Lens"
4
  - "FLUX.2-KV"
5
  - "FLUX.2"
@@ -26,6 +27,9 @@ architectures:
26
  "PixelDiT":
27
  model_type: "pixeldit"
28
  controlnet_key: "PixelDiT"
 
 
 
29
  "Lens":
30
  model_type: "lens"
31
  controlnet_key: "Lens"
 
1
  architecture_order:
2
  - "PixelDiT"
3
+ - "Ideogram-4"
4
  - "Lens"
5
  - "FLUX.2-KV"
6
  - "FLUX.2"
 
27
  "PixelDiT":
28
  model_type: "pixeldit"
29
  controlnet_key: "PixelDiT"
30
+ "Ideogram-4":
31
+ model_type: "ideogram-4"
32
+ controlnet_key: "Ideogram-4"
33
  "Lens":
34
  model_type: "lens"
35
  controlnet_key: "Lens"
yaml/model_defaults.yaml CHANGED
@@ -6,12 +6,21 @@ Default:
6
  positive_prompt: ""
7
  negative_prompt: ""
8
 
 
 
 
 
 
 
 
 
9
  PixelDiT:
10
  _defaults:
11
  steps: 30
12
  cfg: 4.0
13
  sampler_name: "er_sde"
14
  scheduler: "simple"
 
15
 
16
  Lens:
17
  _defaults:
@@ -32,8 +41,6 @@ ERNIE-Image:
32
  "baidu/ERNIE-Image-Turbo":
33
  steps: 8
34
  cfg: 1.0
35
- sampler_name: "euler"
36
- scheduler: "simple"
37
 
38
  FLUX.2:
39
  _defaults:
@@ -50,13 +57,10 @@ FLUX.2:
50
 
51
  FLUX.2-KV:
52
  _defaults:
53
- steps: 20
54
- cfg: 4.0
55
- sampler_name: "euler"
56
- scheduler: "simple"
57
- "black-forest-labs/FLUX.2-klein-9B-KV":
58
  steps: 4
59
  cfg: 1.0
 
 
60
 
61
  Z-Image:
62
  _defaults:
@@ -67,8 +71,6 @@ Z-Image:
67
  "Tongyi-MAI/Z Image Turbo":
68
  steps: 9
69
  cfg: 1.0
70
- sampler_name: "euler"
71
- scheduler: "simple"
72
 
73
  Qwen-Image:
74
  _defaults:
 
6
  positive_prompt: ""
7
  negative_prompt: ""
8
 
9
+ Ideogram-4:
10
+ _defaults:
11
+ steps: 20
12
+ cfg: 7.0
13
+ sampler_name: "res_multistep"
14
+ scheduler: "simple"
15
+ positive_prompt: "NOTE: If you see \"Image blocked by safety filter\" it is because of safety training in the model itself, ImageGen does not have any safety filter."
16
+
17
  PixelDiT:
18
  _defaults:
19
  steps: 30
20
  cfg: 4.0
21
  sampler_name: "er_sde"
22
  scheduler: "simple"
23
+ negative_prompt: "low quality, worst quality, over-saturated, blurry, deformed, watermark"
24
 
25
  Lens:
26
  _defaults:
 
41
  "baidu/ERNIE-Image-Turbo":
42
  steps: 8
43
  cfg: 1.0
 
 
44
 
45
  FLUX.2:
46
  _defaults:
 
57
 
58
  FLUX.2-KV:
59
  _defaults:
 
 
 
 
 
60
  steps: 4
61
  cfg: 1.0
62
+ sampler_name: "euler"
63
+ scheduler: "simple"
64
 
65
  Z-Image:
66
  _defaults:
 
71
  "Tongyi-MAI/Z Image Turbo":
72
  steps: 9
73
  cfg: 1.0
 
 
74
 
75
  Qwen-Image:
76
  _defaults:
yaml/model_list.yaml CHANGED
@@ -7,6 +7,15 @@ Checkpoint:
7
  unet: "pixeldit_1300m_1024px_mxfp8.safetensors"
8
  clip: "gemma_2_2b_it_elm_fp8_scaled.safetensors"
9
  vae: "pixel_space"
 
 
 
 
 
 
 
 
 
10
  Lens:
11
  latent_type: flux2_latent
12
  models:
 
7
  unet: "pixeldit_1300m_1024px_mxfp8.safetensors"
8
  clip: "gemma_2_2b_it_elm_fp8_scaled.safetensors"
9
  vae: "pixel_space"
10
+ Ideogram-4:
11
+ latent_type: flux2_latent
12
+ models:
13
+ - display_name: "ideogram-ai/ideogram-4"
14
+ components:
15
+ unet: "ideogram4_nvfp4_mixed.safetensors"
16
+ unet_uncond: "ideogram4_unconditional_nvfp4_mixed.safetensors"
17
+ clip: "qwen3vl_8b_nvfp4.safetensors"
18
+ vae: "flux2-vae.safetensors"
19
  Lens:
20
  latent_type: flux2_latent
21
  models:
yaml/pid.yaml CHANGED
@@ -1,7 +1,7 @@
1
  PiD:
2
  - filepath: "pid_flux2_1024_to_4096_4step_mxfp8.safetensors"
3
  latent_format: "flux"
4
- architectures: ["flux2", "flux2-kv", "lens", "ernie-image"]
5
  - filepath: "pid_qwenimage_1024_to_4096_4step_bf16.safetensors"
6
  latent_format: "qwenimage"
7
  architectures: ["anima", "qwen-image"]
 
1
  PiD:
2
  - filepath: "pid_flux2_1024_to_4096_4step_mxfp8.safetensors"
3
  latent_format: "flux"
4
+ architectures: ["flux2", "flux2-kv", "ideogram-4", "lens", "ernie-image"]
5
  - filepath: "pid_qwenimage_1024_to_4096_4step_bf16.safetensors"
6
  latent_format: "qwenimage"
7
  architectures: ["anima", "qwen-image"]