Add multi-angle product view workflow using Stable Zero123

Adds a ComfyUI workflow template that generates 8 different angles of a
product from a single input image using the Stable Zero123 model with
correct CLIP ViT-L/14 conditioning and a resize pre-processing node.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
ThibaudFossati 2026-03-18 18:10:02 +01:00
parent 095d867147
commit 468abd0119

View File

@ -0,0 +1,279 @@
{
"last_node_id": 10,
"last_link_id": 12,
"nodes": [
{
"id": 1,
"type": "LoadImage",
"pos": [48, 48],
"size": {"0": 315, "1": 314},
"flags": {},
"order": 0,
"mode": 0,
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [1],
"shape": 3,
"slot_index": 0
},
{
"name": "MASK",
"type": "MASK",
"links": [],
"shape": 3,
"slot_index": 1
}
],
"properties": {"Node name for S&R": "LoadImage"},
"widgets_values": ["product.png", "image"],
"title": "Image Produit (ton input)"
},
{
"id": 2,
"type": "CLIPVisionLoader",
"pos": [48, 400],
"size": {"0": 315, "1": 58},
"flags": {},
"order": 1,
"mode": 0,
"outputs": [
{
"name": "CLIP_VISION",
"type": "CLIP_VISION",
"links": [2],
"shape": 3,
"slot_index": 0
}
],
"properties": {"Node name for S&R": "CLIPVisionLoader"},
"widgets_values": ["clip_vision_h.safetensors"]
},
{
"id": 3,
"type": "CheckpointLoaderSimple",
"pos": [48, 490],
"size": {"0": 315, "1": 98},
"flags": {},
"order": 2,
"mode": 0,
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [3],
"shape": 3,
"slot_index": 0
},
{
"name": "CLIP",
"type": "CLIP",
"links": [],
"shape": 3,
"slot_index": 1
},
{
"name": "VAE",
"type": "VAE",
"links": [4, 5],
"shape": 3,
"slot_index": 2
}
],
"properties": {"Node name for S&R": "CheckpointLoaderSimple"},
"widgets_values": ["stable_zero123.ckpt"]
},
{
"id": 4,
"type": "StableZero123_Conditioning_Batched",
"pos": [430, 300],
"size": {"0": 360, "1": 270},
"flags": {},
"order": 3,
"mode": 0,
"inputs": [
{
"name": "clip_vision",
"type": "CLIP_VISION",
"link": 2,
"slot_index": 0
},
{
"name": "init_image",
"type": "IMAGE",
"link": 1,
"slot_index": 1
},
{
"name": "vae",
"type": "VAE",
"link": 4,
"slot_index": 2
}
],
"outputs": [
{
"name": "positive",
"type": "CONDITIONING",
"links": [6],
"shape": 3,
"slot_index": 0
},
{
"name": "negative",
"type": "CONDITIONING",
"links": [7],
"shape": 3,
"slot_index": 1
},
{
"name": "latent",
"type": "LATENT",
"links": [8],
"shape": 3,
"slot_index": 2
}
],
"properties": {"Node name for S&R": "StableZero123_Conditioning_Batched"},
"widgets_values": [256, 256, 8, 0.0, 0.0, 0.0, 45.0]
},
{
"id": 5,
"type": "KSampler",
"pos": [860, 300],
"size": {"0": 315, "1": 262},
"flags": {},
"order": 4,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 3
},
{
"name": "positive",
"type": "CONDITIONING",
"link": 6
},
{
"name": "negative",
"type": "CONDITIONING",
"link": 7
},
{
"name": "latent_image",
"type": "LATENT",
"link": 8
}
],
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"links": [9],
"shape": 3,
"slot_index": 0
}
],
"properties": {"Node name for S&R": "KSampler"},
"widgets_values": [42, "randomize", 75, 4.0, "euler", "karras", 1.0]
},
{
"id": 6,
"type": "VAEDecode",
"pos": [1240, 300],
"size": {"0": 210, "1": 46},
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "samples",
"type": "LATENT",
"link": 9
},
{
"name": "vae",
"type": "VAE",
"link": 5
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [10],
"shape": 3,
"slot_index": 0
}
],
"properties": {"Node name for S&R": "VAEDecode"}
},
{
"id": 7,
"type": "SaveImage",
"pos": [1500, 300],
"size": {"0": 315, "1": 270},
"flags": {},
"order": 6,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 10
}
],
"properties": {},
"widgets_values": ["product_multiview"]
},
{
"id": 8,
"type": "Note",
"pos": [430, 620],
"size": {"0": 750, "1": 320},
"flags": {},
"order": 7,
"mode": 0,
"properties": {"text": ""},
"widgets_values": ["=== Multi-angles Produit (Stable Zero123) ===\n\nCe workflow genere 8 angles differents de ton produit en un seul run.\nLes images sont sauvegardees dans output/ avec le prefix 'product_multiview'.\n\nPARAMETRES IMPORTANTS (node StableZero123_Conditioning_Batched) :\n- batch_size = 8 → nombre d'angles generes\n- azimuth = 0.0 → angle de depart (0 = face)\n- azimuth_batch_increment = 45.0 → ecart entre chaque angle (360/8 = 45)\n- elevation = 0.0 → hauteur de la camera (0 = de cote)\n- width/height = 256 → resolution (max 512 recommande)\n\nPOUR CHANGER LES ANGLES :\n- 4 angles cles : batch_size=4, azimuth_batch_increment=90\n- 6 angles : batch_size=6, azimuth_batch_increment=60\n- Vue de dessus : elevation=30 ou 45\n\nCONSEIL : Utilise une image de produit sur fond blanc ou transparent."],
"color": "#432",
"bgcolor": "#653"
}
],
"links": [
[1, 1, 0, 4, 1, "IMAGE"],
[2, 2, 0, 4, 0, "CLIP_VISION"],
[3, 3, 0, 5, 0, "MODEL"],
[4, 3, 2, 4, 2, "VAE"],
[5, 3, 2, 6, 1, "VAE"],
[6, 4, 0, 5, 1, "CONDITIONING"],
[7, 4, 1, 5, 2, "CONDITIONING"],
[8, 4, 2, 5, 3, "LATENT"],
[9, 5, 0, 6, 0, "LATENT"],
[10, 6, 0, 7, 0, "IMAGE"]
],
"groups": [],
"config": {},
"extra": {
"ds": {
"scale": 0.75,
"offset": [0, 0]
}
},
"models": [
{
"name": "stable_zero123.ckpt",
"url": "https://huggingface.co/stabilityai/stable-zero123/resolve/main/stable_zero123.ckpt",
"directory": "checkpoints"
},
{
"name": "clip_vision_h.safetensors",
"url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/image_encoder/model.safetensors",
"directory": "clip_vision"
}
],
"version": 0.4
}