feat(ideogram4): add Ideogram 4 model support

Diffusers-native port of the 9.3B flow-matching DiT: dual-transformer asymmetric CFG, a 13-layer Qwen3-VL tap encoder deduped with VQA and prompt-enhance, the Flux.2 VAE, and a logit-normal schedule. Loads a published bf16 repo with SDNQ at load.
This commit is contained in:
CalamitousFelicitousness
2026-06-04 01:00:01 +01:00
parent 624c304f4b
commit 2f3d0e719d
16 changed files with 1140 additions and 1 deletions
+2
View File
@@ -55,6 +55,8 @@ def get_model_type(pipe):
model_type = 'f1'
elif "ZImage" in name or "Z-Image" in name:
model_type = 'zimage'
elif "Ideogram4" in name:
model_type = 'ideogram4'
elif "LuminaDiMOO" in name:
model_type = 'luminadimoo'
elif "Lumina2" in name:
+2
View File
@@ -151,6 +151,8 @@ def guess_by_name(fn, current_guess):
new_guess = 'NucleusImage'
elif 'z-image' in fn.lower() or 'z_image' in fn.lower():
new_guess = 'ZImage'
elif 'ideogram' in fn.lower():
new_guess = 'Ideogram4'
elif 'longcat-image' in fn.lower():
new_guess = 'LongCat'
elif 'ovis-image' in fn.lower():
+4
View File
@@ -543,6 +543,10 @@ def load_diffuser_force(detected_model_type: str, checkpoint_info: CheckpointInf
from pipelines.model_z_image import load_z_image
sd_model = load_z_image(checkpoint_info, diffusers_load_config)
allow_post_quant = False
elif model_type in ['Ideogram4']:
from pipelines.model_ideogram4 import load_ideogram4
sd_model = load_ideogram4(checkpoint_info, diffusers_load_config)
allow_post_quant = False
elif model_type in ['LongCat']:
from pipelines.model_longcat import load_longcat
sd_model = load_longcat(checkpoint_info, diffusers_load_config)
+1 -1
View File
@@ -11,7 +11,7 @@ from modules.image import convert
SamplerData = namedtuple('SamplerData', ['name', 'constructor', 'aliases', 'options'])
approximation_indexes = { "Simple": 0, "Approximate": 1, "TAESD": 2, "Full VAE": 3 }
flow_models = ['f1', 'f2', 'sd3', 'lumina', 'auraflow', 'sana', 'zimage', 'lumina2', 'cogview4', 'h1', 'cosmos', 'anima', 'chroma', 'omnigen', 'omnigen2', 'longcat']
flow_models = ['f1', 'f2', 'sd3', 'lumina', 'auraflow', 'sana', 'zimage', 'lumina2', 'cogview4', 'h1', 'cosmos', 'anima', 'chroma', 'omnigen', 'omnigen2', 'longcat', 'ideogram4']
warned = False
queue_lock = threading.Lock()
+1
View File
@@ -40,6 +40,7 @@ pipelines = {
'HiDream': getattr(diffusers, 'HiDreamImagePipeline', None),
'HunyuanDiT': getattr(diffusers, 'HunyuanDiTPipeline', None),
'HunyuanImage': getattr(diffusers, 'HunyuanImagePipeline', None),
'Ideogram4': getattr(diffusers, 'Ideogram4Pipeline', None),
'JoyEdit': getattr(diffusers, 'JoyImageEditPipeline', None),
'Kandinsky21': getattr(diffusers, 'KandinskyCombinedPipeline', None),
'Kandinsky22': getattr(diffusers, 'KandinskyV22CombinedPipeline', None),