카테고리 없음

ComfyUI JSON 설정, widgets_values 직접 수정해도 될까

GoingProdo 2026. 8. 27. 11:00

ComfyUI Workflow JSON을 열어 보면 widgets_values 안에 프롬프트처럼 보이는 문자열이나 steps, CFG, sampler와 관련돼 보이는 값들이 배열 형태로 들어 있는 경우가 있다. 그렇다면 ComfyUI를 열지 않고 JSON의 숫자나 문자열만 직접 바꿔도 설정을 변경할 수 있을까?

가능한 경우는 있지만 주의가 필요하다. Workflow JSON의 widget 값은 단순히 steps: 20처럼 항상 이름과 값이 함께 저장되는 구조가 아니며, 위치 순서를 기준으로 연결되는 경우가 있기 때문이다. 잘못된 값을 수정하면 원하는 설정이 아니라 같은 노드의 다른 위젯을 바꾸게 될 수 있다.

json 설정에서 가장 먼저 볼 변화

JSON 설정을 바꾸기 전에 node부터 확인한다

Workflow JSON에서 특정 설정을 변경하려면 우선 그 값이 어느 node에 속해 있는지 확인해야 한다. nodes 안에는 여러 node가 들어 있으며 각각 id, type, inputs, widgets_values 같은 정보를 가질 수 있다.

예를 들어 숫자 20이 JSON에서 발견됐다고 해서 그것이 반드시 sampling steps라는 뜻은 아니다. 다른 node의 크기나 옵션, 또는 전혀 다른 위젯 값일 수도 있다.

type과 widgets_values를 같이 본다

먼저 수정하려는 node의 type을 확인한 다음 같은 node 안에 있는 widgets_values를 살펴보는 것이 기본이다. 이렇게 해야 지금 보고 있는 배열이 어느 ComfyUI 노드에 대응하는지 범위를 좁힐 수 있다.

특히 JSON 전체에서 특정 숫자를 검색해 바로 교체하는 방식은 피하는 편이 좋다. 동일한 값이 여러 node와 속성에 반복될 수 있기 때문이다.

즉 JSON 설정 변경의 첫 단계는 값을 찾는 것이 아니라 node를 찾는 것이다. node가 확정된 뒤에야 그 안의 widgets_values를 해석할 의미가 생긴다.

widgets_values는 순서가 중요할 수 있다

ComfyUI의 Workflow JSON에서는 widget 값이 위치 인덱스를 기준으로 저장되는 경우가 있다. 공식 Node Replacement 문서에서도 기존 widget 값을 새 node로 옮길 때 old_widget_ids를 순서대로 지정하는 이유가 이 positional mapping 때문이다.

json 설정가 ComfyUI 워크플로우에 미치는 영향

쉽게 말하면 widgets_values 배열에서 첫 번째, 두 번째, 세 번째 값이 각각 특정 위젯과 대응하는 식이다. 배열 자체에는 항상 각 값의 이름이 직접 붙어 있는 것이 아니다.

기존 방식과 비교해야 할 부분

배열 위치를 모르면 숫자만 바꾸면 안 된다

어떤 node의 widgets_values에 여러 숫자와 문자열이 들어 있다고 가정하자. 사람이 화면에서 보면 각 입력란에는 steps, CFG, sampler처럼 이름이 있지만 JSON 배열에서는 값의 위치만 보일 수 있다.

따라서 정확한 위젯 순서를 모르는 상태에서 특정 인덱스의 값을 변경하는 것은 위험하다. 특히 노드 버전이 달라지거나 입력 구조가 변경된 경우에는 기존에 알고 있던 위치 관계가 그대로 유지된다고 단정하기 어렵다.

이 때문에 Workflow JSON을 직접 수정하려면 단순 JSON 문법보다 해당 node가 어떤 widget 순서를 사용하는지를 아는 것이 더 중요하다. 중괄호와 쉼표를 맞게 수정했다고 해서 설정 의미까지 정확하다는 뜻은 아니다.

일반적인 설정 변경은 ComfyUI에서 하는 편이 쉽다

단순히 workflow의 생성 설정을 바꾸려는 목적이라면 ComfyUI에서 JSON을 불러온 뒤 화면의 위젯을 직접 수정하는 방법이 가장 이해하기 쉽다. 어떤 값이 어느 입력에 대응하는지를 UI에서 바로 확인할 수 있기 때문이다.

설정을 바꾼 뒤 workflow를 다시 저장하면 수정된 상태가 Workflow JSON에 반영된다. 프롬프트, sampling 관련 값이나 모델 선택처럼 사용자가 화면에서 조절하는 항목을 바꿀 때 특히 이 방식이 편하다.

성능과 결과 품질에서 확인할 차이

JSON을 직접 수정하는 방식은 동일한 workflow를 대량으로 가공하거나 외부 프로그램에서 파일을 처리해야 할 때 의미가 커진다. 한두 개의 설정을 변경하는 일반 사용에서는 오히려 ComfyUI UI가 오류를 줄이기 쉽다.

워크플로우 구성에서 놓치기 쉬운 부분

따라서 "JSON 설정"이라는 이유만으로 모든 값을 텍스트 편집기에서 바꿀 필요는 없다. 수정 목적에 따라 ComfyUI UI와 직접 JSON 편집을 나눠 사용하는 것이 좋다.

직접 수정할 때는 JSON 구조와 원본을 함께 지킨다

widgets_values의 위치를 정확하게 알고 있다고 해도 JSON 자체의 형식을 깨뜨리면 파일을 정상적으로 읽지 못할 수 있다. 문자열의 따옴표, 배열의 대괄호, 항목 사이의 쉼표 같은 기본 JSON 구조는 그대로 유지해야 한다.

값의 자료형도 주의해야 한다. 숫자로 저장된 자리에 임의의 문자열을 넣거나 해당 node가 기대하는 값과 다른 형태로 변경하면 의도한 설정으로 동작하지 않을 수 있다.

원본 JSON은 별도로 보관한다

직접 수정해야 한다면 원본을 덮어쓰기보다 복사본을 만들어 작업하는 편이 좋다. 문제가 발생했을 때 어느 수정에서 잘못됐는지 비교하기 쉬워지기 때문이다.

예를 들어 workflow_original.json을 유지하고 수정본을 별도 파일로 저장하면 ComfyUI에서 두 workflow를 각각 불러와 결과를 확인하기도 쉽다.

JSON 설정 변경은 목적에 따라 나눈다

실제로 적용할 때 체크할 점

ComfyUI Workflow JSON을 다룰 때는 다음처럼 판단하면 단순하다.

한두 개 설정만 변경한다 → ComfyUI에서 workflow를 열어 수정

JSON 내부를 확인한다 → node의 type과 widgets_values 확인

widgets_values를 직접 바꾼다 → 해당 node의 위젯 순서를 먼저 확인

대량 자동 변경이 필요하다 → 일반 수동 편집보다 구조를 해석하는 별도 처리 방식 검토

핵심은 JSON에서 값을 발견했다고 바로 수정하지 않는 것이다. 어느 node의 어느 widget과 대응하는 값인지 확인하는 과정이 먼저다.

마지막 확인

ComfyUI JSON 설정을 직접 변경할 때 가장 주의해야 할 부분은 widgets_values가 단순한 이름-값 목록이 아닐 수 있다는 점이다. widget 값이 위치 순서로 저장되는 구조에서는 같은 배열 안에서 값 하나의 위치가 실제 의미를 결정할 수 있다.

일반적인 설정 변경이라면 JSON을 ComfyUI에서 열고 UI에서 수정한 뒤 다시 저장하는 방식부터 사용하는 것이 좋다. 직접 편집해야 한다면 먼저 node의 type과 widgets_values 순서를 확인하고, 원본 파일을 보존한 상태에서 수정하자.