{
  "id": "f0efb38a-87bb-4941-947c-1b536326f7dd",
  "revision": 0,
  "last_node_id": 217,
  "last_link_id": 405,
  "nodes": [
    {
      "id": 209,
      "type": "Note",
      "pos": [
        -1528.7015371628422,
        -119.21581447936133
      ],
      "size": [
        271.2573126566997,
        158.3537932955706
      ],
      "flags": {},
      "order": 0,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "Loads the main FLUX image-generation model. \n\nThis is the core model that creates the image during the generation process.\n\nInput: the FLUX model file you select. \n\nOutput: the loaded MODEL, which is sent to KSampler so it can generate the image."
      ],
      "widgets_values_named": {
        "text": "Loads the main FLUX image-generation model. \n\nThis is the core model that creates the image during the generation process.\n\nInput: the FLUX model file you select. \n\nOutput: the loaded MODEL, which is sent to KSampler so it can generate the image."
      },
      "color": "#232",
      "bgcolor": "#353"
    },
    {
      "id": 9,
      "type": "SaveImage",
      "pos": [
        -137.76605104277206,
        118.06016286301004
      ],
      "size": [
        390.5060822731916,
        438.24774816603224
      ],
      "flags": {},
      "order": 17,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 405
        }
      ],
      "outputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "links": null
        }
      ],
      "properties": {
        "Node name for S&R": "SaveImage",
        "cnr_id": "comfy-core",
        "ver": "0.3.40",
        "ue_properties": {
          "widget_ue_connectable": {},
          "version": "7.7",
          "input_ue_unconnectable": {}
        }
      },
      "widgets_values": [
        "flux_krea"
      ],
      "widgets_values_named": {
        "filename_prefix": "flux_krea"
      },
      "color": "#233",
      "bgcolor": "#355"
    },
    {
      "id": 217,
      "type": "Note",
      "pos": [
        283.21693251865,
        126.24560255100305
      ],
      "size": [
        265.7303370786517,
        115.86516853932585
      ],
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "Saves the finished image. \n\nInput: the visible image from VAE Decode. \n\nOutput: the image to your ComfyUI output folder."
      ],
      "widgets_values_named": {
        "text": "Saves the finished image. \n\nInput: the visible image from VAE Decode. \n\nOutput: the image to your ComfyUI output folder."
      },
      "color": "#233",
      "bgcolor": "#355"
    },
    {
      "id": 203,
      "type": "UNETLoader",
      "pos": [
        -1239.9257126938426,
        -98.4710743801652
      ],
      "size": [
        240.75308756616198,
        91.46160274863036
      ],
      "flags": {},
      "order": 2,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "MODEL",
          "type": "MODEL",
          "links": [
            400
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "UNETLoader",
        "ue_properties": {
          "widget_ue_connectable": {},
          "input_ue_unconnectable": {},
          "version": "7.7"
        },
        "cnr_id": "comfy-core",
        "ver": "0.3.40",
        "models": [
          {
            "name": "flux1-krea-dev_fp8_scaled.safetensors",
            "url": "https://huggingface.co/Comfy-Org/FLUX.1-Krea-dev_ComfyUI/resolve/main/split_files/diffusion_models/flux1-krea-dev_fp8_scaled.safetensors",
            "directory": "diffusion_models"
          }
        ]
      },
      "widgets_values": [
        "flux1-krea-dev_fp8_scaled.safetensors",
        "default"
      ],
      "widgets_values_named": {
        "unet_name": "flux1-krea-dev_fp8_scaled.safetensors",
        "weight_dtype": "default"
      },
      "color": "#232",
      "bgcolor": "#353"
    },
    {
      "id": 210,
      "type": "Note",
      "pos": [
        -1521.9163203367684,
        99.8082360360068
      ],
      "size": [
        276.43885226111956,
        177.23762652056826
      ],
      "flags": {},
      "order": 3,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "The image model cannot understand a written prompt directly. \n\nThis node loads the two text encoders that translate our words into numerical information FLUX can understand.\n\nInput: The two language files FLUX needs to understand text.\n\nOutput: A text reader that can now process our prompt."
      ],
      "widgets_values_named": {
        "text": "The image model cannot understand a written prompt directly. \n\nThis node loads the two text encoders that translate our words into numerical information FLUX can understand.\n\nInput: The two language files FLUX needs to understand text.\n\nOutput: A text reader that can now process our prompt."
      },
      "color": "#323",
      "bgcolor": "#535"
    },
    {
      "id": 201,
      "type": "DualCLIPLoader",
      "pos": [
        -1209.8727829882062,
        109.37645092394833
      ],
      "size": [
        214.26966292134853,
        130
      ],
      "flags": {},
      "order": 4,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "CLIP",
          "type": "CLIP",
          "links": [
            404
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "DualCLIPLoader",
        "ue_properties": {
          "widget_ue_connectable": {},
          "input_ue_unconnectable": {},
          "version": "7.7"
        },
        "cnr_id": "comfy-core",
        "ver": "0.3.40",
        "models": [
          {
            "name": "clip_l.safetensors",
            "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors",
            "directory": "text_encoders"
          },
          {
            "name": "t5xxl_fp16.safetensors",
            "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp16.safetensors",
            "directory": "text_encoders"
          }
        ]
      },
      "widgets_values": [
        "clip_l.safetensors",
        "t5xxl_fp16.safetensors",
        "flux",
        "default"
      ],
      "widgets_values_named": {
        "clip_name1": "clip_l.safetensors",
        "clip_name2": "t5xxl_fp16.safetensors",
        "type": "flux",
        "device": "default"
      },
      "color": "#323",
      "bgcolor": "#535"
    },
    {
      "id": 208,
      "type": "ConditioningZeroOut",
      "pos": [
        -796.7016436066494,
        626.7160367722174
      ],
      "size": [
        230,
        80
      ],
      "flags": {
        "collapsed": false
      },
      "order": 14,
      "mode": 0,
      "inputs": [
        {
          "name": "conditioning",
          "type": "CONDITIONING",
          "link": 397
        }
      ],
      "outputs": [
        {
          "name": "CONDITIONING",
          "type": "CONDITIONING",
          "links": [
            402
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "ConditioningZeroOut",
        "ue_properties": {
          "widget_ue_connectable": {},
          "input_ue_unconnectable": {},
          "version": "7.7"
        },
        "cnr_id": "comfy-core",
        "ver": "0.3.40"
      },
      "color": "#332922",
      "bgcolor": "#593930"
    },
    {
      "id": 202,
      "type": "VAELoader",
      "pos": [
        -803.427430587797,
        -147.8739901569318
      ],
      "size": [
        210,
        159.1670535797196
      ],
      "flags": {},
      "order": 5,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "VAE",
          "type": "VAE",
          "links": [
            399
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "VAELoader",
        "ue_properties": {
          "widget_ue_connectable": {},
          "input_ue_unconnectable": {},
          "version": "7.7"
        },
        "cnr_id": "comfy-core",
        "ver": "0.3.40",
        "models": [
          {
            "name": "ae.safetensors",
            "url": "https://huggingface.co/Comfy-Org/Lumina_Image_2.0_Repackaged/resolve/main/split_files/vae/ae.safetensors",
            "directory": "vae"
          }
        ]
      },
      "widgets_values": [
        "ae.safetensors"
      ],
      "widgets_values_named": {
        "vae_name": "ae.safetensors"
      },
      "color": "#2a363b",
      "bgcolor": "#3f5159"
    },
    {
      "id": 211,
      "type": "Note",
      "pos": [
        -537.1935048478632,
        -148.21479302890182
      ],
      "size": [
        256.86414708886605,
        176.08617327514156
      ],
      "flags": {},
      "order": 6,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "FLUX creates the image in a hidden latent format that we cannot view directly.\n\nThis node loads the VAE, which lets us convert that hidden format into a normal visible image.\n\nInput: The VAE file we select.\n\nOutput: The loaded VAE, ready to convert the generated image."
      ],
      "widgets_values_named": {
        "text": "FLUX creates the image in a hidden latent format that we cannot view directly.\n\nThis node loads the VAE, which lets us convert that hidden format into a normal visible image.\n\nInput: The VAE file we select.\n\nOutput: The loaded VAE, ready to convert the generated image."
      },
      "color": "#2a363b",
      "bgcolor": "#3f5159"
    },
    {
      "id": 207,
      "type": "VAEDecode",
      "pos": [
        -67.7648806760144,
        -110.73869440059423
      ],
      "size": [
        230,
        100
      ],
      "flags": {
        "collapsed": false
      },
      "order": 16,
      "mode": 0,
      "inputs": [
        {
          "name": "samples",
          "type": "LATENT",
          "link": 398
        },
        {
          "name": "vae",
          "type": "VAE",
          "link": 399
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "slot_index": 0,
          "links": [
            405
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "VAEDecode",
        "ue_properties": {
          "widget_ue_connectable": {},
          "input_ue_unconnectable": {},
          "version": "7.7"
        },
        "cnr_id": "comfy-core",
        "ver": "0.3.40"
      },
      "color": "#332922",
      "bgcolor": "#593930"
    },
    {
      "id": 216,
      "type": "Note",
      "pos": [
        223.1110731073761,
        -118.72607541352433
      ],
      "size": [
        265.7303370786517,
        115.86516853932585
      ],
      "flags": {},
      "order": 7,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "Converts the generated latent into a normal image we can actually see.\n\nInput: The generated latent from KSampler and the loaded VAE.\n\nOutput: The final visible image."
      ],
      "widgets_values_named": {
        "text": "Converts the generated latent into a normal image we can actually see.\n\nInput: The generated latent from KSampler and the loaded VAE.\n\nOutput: The final visible image."
      },
      "color": "#332922",
      "bgcolor": "#593930"
    },
    {
      "id": 206,
      "type": "KSampler",
      "pos": [
        -819.8699972142251,
        111.16398922834071
      ],
      "size": [
        320,
        350
      ],
      "flags": {},
      "order": 15,
      "mode": 0,
      "inputs": [
        {
          "name": "model",
          "type": "MODEL",
          "link": 400
        },
        {
          "name": "positive",
          "type": "CONDITIONING",
          "link": 401
        },
        {
          "name": "negative",
          "type": "CONDITIONING",
          "link": 402
        },
        {
          "name": "latent_image",
          "type": "LATENT",
          "link": 403
        }
      ],
      "outputs": [
        {
          "name": "LATENT",
          "type": "LATENT",
          "slot_index": 0,
          "links": [
            398
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "KSampler",
        "ue_properties": {
          "widget_ue_connectable": {},
          "input_ue_unconnectable": {},
          "version": "7.7"
        },
        "cnr_id": "comfy-core",
        "ver": "0.3.40"
      },
      "widgets_values": [
        526019168208450,
        "randomize",
        20,
        1,
        "euler",
        "simple",
        1
      ],
      "widgets_values_named": {
        "seed": 526019168208450,
        "control_after_generate": "randomize",
        "steps": 20,
        "cfg": 1,
        "sampler_name": "euler",
        "scheduler": "simple",
        "denoise": 1
      }
    },
    {
      "id": 213,
      "type": "Note",
      "pos": [
        -474.784738945739,
        96.6993122733548
      ],
      "size": [
        292.2137617234655,
        433.6662642770916
      ],
      "flags": {},
      "order": 8,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "This is where the actual image generation happens.\nKSampler starts with random noise in the hidden latent image space and gradually turns it into an image using the FLUX model and the prompt instructions.\n\nInput: The FLUX model, the prompt instructions, the neutral negative input, and the latent image space.\n\nMain settings:\nSeed decides the starting random noise, so changing it usually gives a different image.\nSteps decide how many times the model refines the image. More steps can improve the result, but they also make it slower, and after a certain point they may not help much.\nCFG controls how strongly the prompt guides the generation. In this FLUX workflow, a low value like 1.0 is normal.\nSampler decides the method used to remove the noise and form the image.\nScheduler decides how that denoising process is spread across the steps.\nDenoise controls how much generation is applied. For text-to-image, 1.0 means full generation from scratch.\n\nOutput: The generated image in latent form, which will later be converted into a normal visible image."
      ],
      "widgets_values_named": {
        "text": "This is where the actual image generation happens.\nKSampler starts with random noise in the hidden latent image space and gradually turns it into an image using the FLUX model and the prompt instructions.\n\nInput: The FLUX model, the prompt instructions, the neutral negative input, and the latent image space.\n\nMain settings:\nSeed decides the starting random noise, so changing it usually gives a different image.\nSteps decide how many times the model refines the image. More steps can improve the result, but they also make it slower, and after a certain point they may not help much.\nCFG controls how strongly the prompt guides the generation. In this FLUX workflow, a low value like 1.0 is normal.\nSampler decides the method used to remove the noise and form the image.\nScheduler decides how that denoising process is spread across the steps.\nDenoise controls how much generation is applied. For text-to-image, 1.0 means full generation from scratch.\n\nOutput: The generated image in latent form, which will later be converted into a normal visible image."
      },
      "color": "#432",
      "bgcolor": "#653"
    },
    {
      "id": 204,
      "type": "CLIPTextEncode",
      "pos": [
        -1197.3460859875572,
        321.2159903426501
      ],
      "size": [
        289.6991364100661,
        181.21366886433282
      ],
      "flags": {},
      "order": 13,
      "mode": 0,
      "inputs": [
        {
          "name": "clip",
          "type": "CLIP",
          "link": 404
        }
      ],
      "outputs": [
        {
          "name": "CONDITIONING",
          "type": "CONDITIONING",
          "links": [
            397,
            401
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "CLIPTextEncode",
        "ue_properties": {
          "widget_ue_connectable": {},
          "input_ue_unconnectable": {},
          "version": "7.7"
        },
        "cnr_id": "comfy-core",
        "ver": "0.3.47"
      },
      "widgets_values": [
        "Photorealistic editorial portrait of a beautiful young woman in her mid-20s standing beside a large sunlit window in a quiet contemporary apartment. She has long naturally textured dark brown hair, warm brown eyes, subtle freckles, realistic pores and fine facial detail, softly groomed brows, minimal natural makeup, and slightly flushed cheeks. She wears a simple fitted ivory knit top with delicate gold jewelry.\n\nSoft late-afternoon sunlight enters from camera left, creating a warm rim light through individual strands of hair and gentle directional light across her face. Natural shadow falloff on the opposite cheek, subtle reflected light from the cream-colored walls, no artificial studio glow.\n\nShot as a high-end fashion editorial photograph on a full-frame camera with an 85mm lens at f/2, eye-level composition, chest-up framing, subject slightly off-center, eyes perfectly sharp, shallow but realistic depth of field. Background is an elegant lived-in apartment with warm plaster walls, sheer linen curtains, a small wooden table and blurred greenery, softly out of focus rather than artificial bokeh.\n\nNatural skin texture, tiny flyaway hairs, realistic eyelashes, subtle asymmetry, authentic fabric texture, physically believable lighting, natural color response, gentle highlight roll-off, restrained contrast, premium magazine photography, sophisticated and understated. The image should feel like a genuine professionally photographed person, not CGI, not airbrushed, not overly retouched."
      ],
      "widgets_values_named": {
        "text": "Photorealistic editorial portrait of a beautiful young woman in her mid-20s standing beside a large sunlit window in a quiet contemporary apartment. She has long naturally textured dark brown hair, warm brown eyes, subtle freckles, realistic pores and fine facial detail, softly groomed brows, minimal natural makeup, and slightly flushed cheeks. She wears a simple fitted ivory knit top with delicate gold jewelry.\n\nSoft late-afternoon sunlight enters from camera left, creating a warm rim light through individual strands of hair and gentle directional light across her face. Natural shadow falloff on the opposite cheek, subtle reflected light from the cream-colored walls, no artificial studio glow.\n\nShot as a high-end fashion editorial photograph on a full-frame camera with an 85mm lens at f/2, eye-level composition, chest-up framing, subject slightly off-center, eyes perfectly sharp, shallow but realistic depth of field. Background is an elegant lived-in apartment with warm plaster walls, sheer linen curtains, a small wooden table and blurred greenery, softly out of focus rather than artificial bokeh.\n\nNatural skin texture, tiny flyaway hairs, realistic eyelashes, subtle asymmetry, authentic fabric texture, physically believable lighting, natural color response, gentle highlight roll-off, restrained contrast, premium magazine photography, sophisticated and understated. The image should feel like a genuine professionally photographed person, not CGI, not airbrushed, not overly retouched."
      },
      "color": "#432",
      "bgcolor": "#653"
    },
    {
      "id": 214,
      "type": "Note",
      "pos": [
        -1515.0076008642097,
        337.5833312166173
      ],
      "size": [
        223.81743894512033,
        153.86312563840656
      ],
      "flags": {},
      "order": 9,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "Takes the prompt we write and turns it into instructions the FLUX model can understand.\n\nInput: Our written prompt + the text reader from Load CLIP.\n\nOutput: Instructions that tell FLUX what image we want to create."
      ],
      "widgets_values_named": {
        "text": "Takes the prompt we write and turns it into instructions the FLUX model can understand.\n\nInput: Our written prompt + the text reader from Load CLIP.\n\nOutput: Instructions that tell FLUX what image we want to create."
      },
      "color": "#432",
      "bgcolor": "#653"
    },
    {
      "id": 212,
      "type": "Note",
      "pos": [
        -1519.7285591704574,
        559.0077903121712
      ],
      "size": [
        326.87250441080846,
        237.5737765809264
      ],
      "flags": {},
      "order": 10,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "Creates the blank hidden image space where the model will build the image.\nThis node also sets the image width, height, and batch size before generation begins.\n\nInput: The width, height, and batch size values we choose.\n\nMain settings:\nWidth controls how wide the generated image will be.\nHeight controls how tall the generated image will be.\nBatch Size controls how many images we want to generate at once.\n\nOutput: An empty latent image space, which is sent to KSampler so the generation can begin."
      ],
      "widgets_values_named": {
        "text": "Creates the blank hidden image space where the model will build the image.\nThis node also sets the image width, height, and batch size before generation begins.\n\nInput: The width, height, and batch size values we choose.\n\nMain settings:\nWidth controls how wide the generated image will be.\nHeight controls how tall the generated image will be.\nBatch Size controls how many images we want to generate at once.\n\nOutput: An empty latent image space, which is sent to KSampler so the generation can begin."
      },
      "color": "#223",
      "bgcolor": "#335"
    },
    {
      "id": 205,
      "type": "EmptySD3LatentImage",
      "pos": [
        -1160.012071687251,
        581.421209025908
      ],
      "size": [
        270,
        170
      ],
      "flags": {},
      "order": 11,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "LATENT",
          "type": "LATENT",
          "slot_index": 0,
          "links": [
            403
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "EmptySD3LatentImage",
        "ue_properties": {
          "widget_ue_connectable": {},
          "input_ue_unconnectable": {},
          "version": "7.7"
        },
        "cnr_id": "comfy-core",
        "ver": "0.3.40"
      },
      "widgets_values": [
        1024,
        1024,
        1
      ],
      "widgets_values_named": {
        "width": 1024,
        "height": 1024,
        "batch_size": 1
      },
      "color": "#223",
      "bgcolor": "#335"
    },
    {
      "id": 215,
      "type": "Note",
      "pos": [
        -527.2910069371959,
        619.0100189313555
      ],
      "size": [
        354.39223697650664,
        204.5270684371808
      ],
      "flags": {},
      "order": 12,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "KSampler needs two sets of prompt instructions: positive instructions describe what we want to generate, while negative instructions can describe what we do not want in the image.\n\nIn this FLUX workflow, we are not using a negative prompt, so this node creates neutral instructions for that negative input.\n\nInput: The prompt instructions coming from CLIP Text Encode.\n\nOutput: Neutral prompt instructions sent to KSampler’s negative input."
      ],
      "widgets_values_named": {
        "text": "KSampler needs two sets of prompt instructions: positive instructions describe what we want to generate, while negative instructions can describe what we do not want in the image.\n\nIn this FLUX workflow, we are not using a negative prompt, so this node creates neutral instructions for that negative input.\n\nInput: The prompt instructions coming from CLIP Text Encode.\n\nOutput: Neutral prompt instructions sent to KSampler’s negative input."
      },
      "color": "#332922",
      "bgcolor": "#593930"
    }
  ],
  "links": [
    [
      397,
      204,
      0,
      208,
      0,
      "CONDITIONING"
    ],
    [
      398,
      206,
      0,
      207,
      0,
      "LATENT"
    ],
    [
      399,
      202,
      0,
      207,
      1,
      "VAE"
    ],
    [
      400,
      203,
      0,
      206,
      0,
      "MODEL"
    ],
    [
      401,
      204,
      0,
      206,
      1,
      "CONDITIONING"
    ],
    [
      402,
      208,
      0,
      206,
      2,
      "CONDITIONING"
    ],
    [
      403,
      205,
      0,
      206,
      3,
      "LATENT"
    ],
    [
      404,
      201,
      0,
      204,
      0,
      "CLIP"
    ],
    [
      405,
      207,
      0,
      9,
      0,
      "IMAGE"
    ]
  ],
  "groups": [],
  "config": {},
  "extra": {
    "ds": {
      "scale": 0.8684677419354839,
      "offset": [
        1628.1954548896508,
        291.73192553888475
      ]
    },
    "frontendVersion": "1.51.10",
    "workflowRendererVersion": "LG",
    "VHS_latentpreview": false,
    "VHS_latentpreviewrate": 0,
    "VHS_MetadataImage": true,
    "VHS_KeepIntermediate": true,
    "ue_links": []
  },
  "version": 0.4
}