',drag:'\n
\n \n \n',tree:'\n
\n \n \n \n'},X={icons:U,getIcon:function(t){let e=U[t];return e=String(e).trim(),e}},Y={header:function(t,e,i,o){return t},null:function(t,e,i,o){return e&&e.tg_group?t:null==t?"—":t},blank:function(t,e,i,o){return""},string:function(t,e,i,o){return t},number:function(t,e,i,o){return t},icon:function(t,e,i,o){return`
${t} `},select:function(t,e,i,o){return this.isRowSelectable(e)?this.getSelectFormatterContent(e):""},rowDrag:function(t,e,i,o){return this.getRowDragFormatterContent(e)},rowNumber:function(t,e,i,o){return e.tg_row_number||""},tree:function(t,e,i,o){return this.getTreeFormatterContent(t,e)}},K={setFormatter:function(t,e){this.renderType="all";let i=t;if("string"==typeof t){if(this.formatters)return this.formatters[t]=e,this;i={},i[t]=e}return this.customFormatters=i,this},getFormatter:function(t){if(!t)return;const e=this.formatters[t];return"function"==typeof e?e.bind(this):void 0},getDefaultFormatter:function(t){return(Y[t]||Y.string).bind(this)},getSelectFormatterContent:function(t){let e="radio";this.options.selectMultiple&&(e="checkbox");const i=X.getIcon(e);return`
${i}
`},getRowDragFormatterContent:function(t){if(t.tg_frozen)return"";return`
${X.getIcon("drag")}
`},getTreeIndentWidth:function(t,i,o){if(!t)return 0;let n=5;return i||(n+=e.TREE_INDENT),n+=o*e.TREE_INDENT,n},getTreeFormatterContent:function(t,e){const i=this.rowsInfo.isTree,o=e.tg_group,n=this.isEmptyGroup(e);n&&(e.collapsed=!0);const s=e.collapsed,r=d.toNum(e.tg_level),l=this.getTreeIndentWidth(i,o,r),h=[];if(h.push(`
`),o){const t={"tg-tree-icon":!0,"tg-tree-icon-collapsed":s,"tg-tree-icon-expanded":!s,"tg-tree-icon-empty":n},e=X.getIcon("tree"),i=`
${e}
`;h.push(i)}return h.push(`
${t}
`),h.push("
"),h.join("")}},q={renderHeaderTables:function(){this.clearHeaderCache();const t=this.viewColumns,e=this.frozenInfo.columns;this.hasTreeColumn=!1,this.hasSortColumn=!1;let i=[],o=[];for(let n=0,s=t.length;n
=e?o.push(s):i.push(s)}if(this.frozenInfo.right){const t=i;i=o,o=t}this.renderHeaderTable(i,this.$headerL),this.renderHeaderTable(o,this.$headerR)},renderHeaderTable:function(t,e){const i=document.createElement("div"),o=["tg-header-table"];this.hasSortColumn&&(o.push("tg-header-sortable"),o.push(`tg-header-sort-${this.options.sortIndicator}`)),i.className=d.classMap(o);const n=t.length;if(n){let e=t[n-1];e&&"tg-column-blank"===e.id&&(e=t[n-2]),t.forEach((t=>{this.renderHeaderItem(t,i,e)}))}e.append(i)},renderHeaderItem:function(t,e,i){const o=t.tg_view_index;if(this.getHeaderCache(o))return;const n=this.getHeaderItemClass(t,i),s=d.styleMap(t.headerStyleMap),r={column:o,class:n,data:t.id};s&&(r.style=s);const l=[this.createColumnHeader(t)];if(this.isColumnResizable(t)){const e=this.createColumnResizing(t);l.push(e)}const h=this.createElement("div",r,l);e.appendChild(h),this.setHeaderCache(o,h),this.setNodeDataCache(h,{rowItem:this.headerRowItem,column:o,columnItem:t,headerNode:h}),t.tg_parent&&this.renderHeaderItem(t.tg_parent,e)},createColumnHeader:function(t){const e={class:this.getHeaderClass(t),style:this.getHeaderStyle(t)},i=[this.createColumnName(t)];if(this.hasSortColumn&&!t.tg_group){const e=this.createColumnSort(t);i.push(e)}return this.createElement("div",e,i)},createColumnName:function(t){const e=["tg-column-name"];t.tg_group&&e.push("tg-header-group-name");const i={class:e.join(" ")};let o=t.name;const n=t.tg_headerFormatter;return"function"==typeof n&&(o=n.call(this,o,this.headerRowItem,t)),"tree"===t.formatter?o=this.createHeaderTreeName(o):t===this.selectColumn&&this.isSelectAllVisible()&&(o=this.createHeaderSelectName()),this.createElement("div",i,o)},createHeaderTreeName:function(t){this.hasTreeColumn=!0;const e=[];if(this.options.collapseAllVisible){const t=X.getIcon("tree"),i=this.createElement("div",{class:"tg-tree-icon tg-tree-icon-all"},t);e.push(i)}else{const t=this.createElement("div",{class:"tg-tree-icon"});e.push(t)}const i=this.createElement("div",{class:"tg-tree-name"},t);e.push(i);return this.createElement("div",{class:"tg-tree"},e)},createHeaderSelectName:function(){const t=X.getIcon("checkbox");return this.createElement("div",{class:"tg-select-icon-all tg-checkbox"},t)},createColumnSort:function(t){let e;return this.isColumnSortable(t)&&(e="h"===this.options.sortIndicator?this.createSortIndicatorH(t):this.createSortIndicatorV(t)),this.createElement("div",{class:"tg-column-sort"},e)},createSortIndicatorH:function(t){const e=X.getIcon("sort-h"),i=[this.createElement("div",{class:"tg-sort-indicator-line"}),this.createElement("div",{class:"tg-sort-indicator-icon"},e)];return this.createElement("div",{class:"tg-sort-indicator"},i)},createSortIndicatorV:function(t){const e=X.getIcon("sort-v"),i=[this.createElement("div",{class:"tg-sort-indicator-icon"},e)];return this.createElement("div",{class:"tg-sort-indicator"},i)},createColumnResizing:function(){return this.createElement("div",{class:"tg-column-resizing"})},getHeaderItemClass:function(t,e){const i=["tg-header-item"];return t.tg_group&&i.push("tg-header-group-item"),t===e&&i.push("tg-header-column-last"),i.push(`tg-c-${t.tg_view_index}`),i.push(`tg-h-${t.tg_layer}`),t.tg_combination&&i.push(`tg-h-${t.tg_combination}`),i.push(d.classMap(t.headerClassMap)),d.classMap(i)},getHeaderClass:function(t){const e=["tg-column-header"];return"tree"===t.formatter&&(e.push("tg-tree-header"),this.rowsInfo.isTree&&e.push("tg-tree-header-indent")),this.isColumnSortable(t)&&e.push(`tg-column-sortable tg-column-sort-${this.options.sortIndicator}`),t.align&&e.push(`tg-align-${t.align}`),e.join(" ")},getHeaderStyle:function(t){const e=[d.styleMap(t.headerStyleMap)],i=t.tg_width;return this.isInvisible(t)||i<=0?e.push("display:none;"):e.push(`width:${i}px;`),e.join("")}},J={renderHeader:function(){this.cssRulesInvalid=!0,this.$headerL.empty(),this.$headerR.empty(),this.resetCssDisplay(),this.renderHeaderTables(),this.renderHeaderSort(),this.headerCreated=!0,this.trigger(y.onHeaderUpdated,{node:this.$headerFrame.get(0)})},initHeaderLayerHeight:function(){this.updateScrollPaneHiddenState(),this.resetCssDisplay(),this.viewAllColumns.forEach((t=>{this.updateColumnHeaderHeight(t)})),this.resetCssDisplay("none"),this.updateHeaderLayerHeight()},updateHeaderLayerHeight:function(){const t={},e=this.columnsInfo.maxLevel;for(let i=0;i<=e;i++)t[i]=0;const i=[];this.viewAllColumns.forEach((function(e){if(e.tg_combination)i.push(e);else{const i=e.tg_height,o=e.tg_layer;t[o]=Math.max(t[o],i)}})),i.forEach((function(e){let i=e.tg_height;const o=e.tg_combination.split(""),n=o.pop();o.forEach((function(e){i-=t[e]||0})),t[n]=Math.max(t[n],i)}));const o=JSON.stringify(t);this.previousHeaderLayerHeight!==o&&(this.previousHeaderLayerHeight=o,this.headerLayerHeight=t,this.cssRulesInvalid=!0)}};var Q=i(915);const Z={create:function(t){this.id=d.uid(4,"tg-"),d.isObject(t)||(t={container:t}),this.constructorOptions=t,this.createCache(),this.createView(t.container)},createView:function(t){this.createHolder(t),this.$holder?(this.createGlobalStyle(),this.createContainer()):console.error("ERROR: Grid requires a container")},createHolder:function(t){const e=w(t);if(!e.length)return;this.$holder=e,this.$holder.empty(),this.holder=this.$holder.get(0);const i=this.holder.getRootNode();this.shadowRoot=null,i&&i.host&&(this.shadowRoot=i)},createGlobalStyle:function(){const t=this.shadowRoot||document.head;if(t.querySelector(`style[context="${e.ID}"]`))return;const i=document.createElement("style");i.setAttribute("context",e.ID),i.innerHTML=Q.A.toString(),t.appendChild(i)},createContainer:function(){return this.$container=w('\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n').appendTo(this.$holder),this.$container.attr("id",this.id),this.$container.addClass(`${e.NS} ${this.id}`),this.container=this.$container.get(0),d.setInstance(this.container,this),this.$headerFrame=this.$container.find(".tg-header-frame"),this.$paneHL=this.$headerFrame.find(".tg-pane-header-left"),this.$paneHR=this.$headerFrame.find(".tg-pane-header-right"),this.$headerL=this.$paneHL.find(".tg-header-left"),this.$headerR=this.$paneHR.find(".tg-header-right"),this.$header=w().add(this.$headerL).add(this.$headerR),this.$bodyFrame=this.$container.find(".tg-body-frame"),this.$paneTL=this.$bodyFrame.find(".tg-pane-top-left"),this.$paneTR=this.$bodyFrame.find(".tg-pane-top-right"),this.$paneBL=this.$bodyFrame.find(".tg-pane-bottom-left"),this.$paneBR=this.$bodyFrame.find(".tg-pane-bottom-right"),this.$bodyTL=this.$paneTL.find(".tg-body-top-left"),this.$bodyTR=this.$paneTR.find(".tg-body-top-right"),this.$bodyBL=this.$paneBL.find(".tg-body-bottom-left"),this.$bodyBR=this.$paneBR.find(".tg-body-bottom-right"),this.$body=w().add(this.$bodyTL).add(this.$bodyTR).add(this.$bodyBL).add(this.$bodyBR),this.$columnLineContainer=this.$container.find(".tg-column-line"),this.$columnLineItem=this.$columnLineContainer.find(".tg-column-line-item"),this.$columnLineItemL=this.$columnLineContainer.find(".tg-column-line-l"),this.$columnLineItemR=this.$columnLineContainer.find(".tg-column-line-r"),this}},tt={initColumnsHandler:function(){this.columns=this.data.columns,this.columns.forEach(((t,e)=>{t&&"object"==typeof t||(this.columns[e]={})}));const t=this.getPrivateColumns();this.columnsInfo=this.initTreeInfo(t,this.frozenInfo.column);const e=[],i=[],o=(t,n)=>{if(!d.isList(t))return;let s,r=0;t.forEach((t=>{if(!this.isInvisible(t))if(t.tg_group){if(this.isEmptyGroup(t))return;i.push(t),o(t.subs,t)}else t.tg_list_index=r,r+=1,t.tg_list_last=!1,s=t,e.push(t)})),s&&(s.tg_list_last=!0)};o(t),e.forEach((t=>{this.initColumnItemHandler(t)})),i.forEach((t=>{this.initColumnGroupHandler(t)}));const n=[].concat(e).concat(i);this.initViewList(n,((t,e)=>{})),this.viewColumns=e,this.viewGroupColumns=i,this.viewAllColumns=n,this.initHeaderHandler(t),this.initSortColumn()},getPrivateColumns:function(){const t=this.options;this.selectColumn=t.selectColumn,this.rowDragColumn=t.rowDragColumn,this.rowNumberColumn=t.rowNumberColumn,this.blankColumn=t.blankColumn;let e=[];const i=()=>{t.selectVisible&&e.push(this.selectColumn),t.rowDragVisible&&e.push(this.rowDragColumn),t.rowNumberVisible&&(this.rowNumberColumn.width=t.rowNumberWidth,e.push(this.rowNumberColumn))};if(this.frozenInfo.right){const t=this.frozenInfo.column;this.columns.forEach(((o,n)=>{e.push(o),n===t&&i()}))}else i(),e=e.concat(this.columns);return e.push(this.blankColumn),e},setColumns:function(t){this.data.columns=d.toList(t),this.rerender()},getColumns:function(){return this.columns},getViewColumns:function(t){return t?this.viewAllColumns:this.viewColumns},initColumnItemHandler:function(t){this.initColumnProps(t),this.initColumnFormatter(t),this.initColumnWidth(t)},initColumnGroupHandler:function(t){this.initColumnFormatterByName(t,"headerFormatter","header")},initColumnProps:function(t){const e=this.options.columnTypes;if(!d.hasOwn(t,"type")){const i=e[t.id];"string"==typeof i&&(t.type=i)}let i=this.options.columnProps;const o=e[t.type];o&&"object"==typeof o&&(i=d.merge(i,o));for(const e in i)d.hasOwn(t,e)||(t[e]=i[e])},initColumnFormatter:function(t){this.initColumnFormatterByName(t,"headerFormatter","header");let e=t.type;const i=t.formatter;"string"==typeof i&&(e=i),this.initColumnFormatterByName(t,"formatter",e)},initColumnFormatterByName:function(t,e,i){let o=t[e];"function"!=typeof o?(o=this.getFormatter(i),t[`tg_${e}`]=o||this.getFormatter("string")):t[`tg_${e}`]=o.bind(this)},initColumnWidth:function(t){if(t!==this.blankColumn)return d.isNum(t.width)&&t.width>=0?(t.tg_width=t.width,t.minWidth=Math.min(t.minWidth,t.tg_width),void(t.maxWidth=Math.max(t.maxWidth,t.tg_width))):void this.initColumnWidthByName(t);t.tg_width=0},initColumnWidthByName:function(t){const e=this.getComputedColumnWidth(t);d.isNum(e)&&(t.tg_width=e)},getComputedColumnWidth:function(t){const e=t.name||"",i=d.getCharLen(e);let o=Math.round(10*i);return o>103&&(o=Math.max(103,Math.round(10*i/2)),o>133&&(o=Math.max(133,Math.round(10*i/3)),o>163&&(o=Math.max(163,Math.round(10*i/4))))),d.clamp(o,t.minWidth,t.maxWidth)},initSortColumn:function(){this.sortColumn=null;const t=this.options,e=t.sortField;if(!e)return;const i=this.getColumnItemById(e);return i&&this.isColumnSortable(i)?(d.hasOwn(i,"sortAsc")||(i.sortAsc=t.sortAsc),this.sortColumn=i,this):void 0}},et={initHeaderHandler:function(t){this.initHeaderRowItem(),this.viewGroupColumns.reverse(),this.initGroupColumnsWidth(),this.initGroupColumnsLayer(t)},initHeaderRowItem:function(){this.headerRowItem={tg_index:-1,tg_view_index:-1},this.viewAllColumns.forEach((t=>{d.hasOwn(t,"id")&&(this.headerRowItem[t.id]=t.name)}))},initGroupColumnsWidth:function(){this.viewGroupColumns.forEach((t=>{let e=0;t.subs.forEach((t=>{this.isInvisible(t)||(e+=t.tg_width)})),t.tg_width=e}))},initGroupColumnsLayer:function(t){const e=this.columnsInfo.maxLevel;this.viewColumns.forEach((function(t){t.tg_layer=e,t.tg_parent&&(t.tg_parent.tg_layer=e-1)})),this.viewGroupColumns.forEach((function(t){const e=t.tg_layer,i=t.tg_parent;if(i){let t=e-1;d.isNum(i.tg_layer)&&(t=Math.min(t,i.tg_layer)),i.tg_layer=t}})),this.initColumnRowspanHandler(t,0)},initColumnRowspanHandler:function(t,e){t.forEach((t=>{const i=this.initColumnCombinationHandler(t,e);t.tg_group&&this.initColumnRowspanHandler(t.subs,e+i)}))},initColumnCombinationHandler:function(t,e){const i=[],o=t.tg_layer;for(;e<=o;)i.push(e),e+=1;i.reverse();const n=i.length;let s="";return n>1&&(s=i.join("")),t.tg_combination=s,n}},it={},ot={name:"",minWidth:81,maxWidth:300},nt=function(t){return null==t},st=function(t,e){const i=nt(t),o=nt(e);return i&&o?0:i?1:o?-1:void 0},rt=function(t,e){return t.tg_index>e.tg_index?1:-1},lt=function(t,e){return rt(t,e)},ht=function(t,e){if("string"==typeof t&&"string"==typeof e){const i=t.toUpperCase(),o=e.toUpperCase();if(i!==o)return i>o?-1:1}return t>e?-1:1},at=function(t,e,i,o){return t?-1:e?1:ht(i,o)},ct=function(t,e){const i="number"==typeof t,o="number"==typeof e;return i&&o?t>e?-1:1:at(i,o,t,e)},dt=function(t,e){const i=new Date(t),o=new Date(e),n=d.isDate(i),s=d.isDate(o);if(n&&s){const t=i.getTime(),e=o.getTime();if(t===e)return;return t>e?-1:1}return at(n,s,t,e)},ut=function(t,e){const i="boolean"==typeof t,o="boolean"==typeof e;return i&&o?t>e?-1:1:at(i,o,t,e)},gt=function(t,e,i,o){const n=t[i.sortField],s=e[i.sortField],r=st(n,s);if("number"==typeof r)return 0===r?lt(t,e):i.sortBlankFactor*r;if(n!==s&&"function"==typeof o){const t=o(n,s);if(d.isNum(t))return i.sortFactor*t}return lt(t,e)},ft={blankValue:st,equal:lt,index:rt,value:gt,diffType:at,string:function(t,e,i){return gt(t,e,i,ht)},stringValue:ht,number:function(t,e,i){return gt(t,e,i,ct)},numberValue:ct,date:function(t,e,i){return gt(t,e,i,dt)},dateValue:dt,boolean:function(t,e,i){return gt(t,e,i,ut)},booleanValue:ut};const pt={initOptionsHandler:function(){return this.options=this.generateOptions(),this.initOptionsFormatters(),this.initOptionsSort(),this.initOptionsFrozen(),this.initOptionsScrollbar(),this.initOptionsContainer(),this.initBindWindowResize(),this.initBindContainerResize(),this},generateOptions(){const t={className:e.NS,theme:e.ID,headerVisible:!0,rowHeight:32,rowFilter:null,rowFilteredSort:null,rowNotFound:"",rowMoveCrossLevel:!0,rowCacheLength:0,rowProps:it,columnTypes:{tree:{type:"tree",formatter:"tree",width:230,minWidth:120,maxWidth:810},number:{type:"number",align:"right"},date:{type:"date",align:"right"},name:"tree"},columnCacheLength:0,columnProps:ot,collapseAllOnInit:null,collapseAllVisible:!0,selectAllOnInit:null,selectVisible:!1,selectAllVisible:!0,selectMultiple:!0,selectColumn:{private:!0,id:"tg-column-select",name:"",formatter:"select",headerClassMap:"tg-header-select",classMap:"tg-cell-select",width:36,align:"center",resizable:!1,sortable:!1,exportable:!1},rowDragCrossLevel:!0,rowDragVisible:!1,rowDragColumn:{private:!0,id:"tg-column-row-drag",name:"",formatter:"rowDrag",headerClassMap:"tg-header-row-drag",classMap:"tg-cell-row-drag",align:"center",width:36,resizable:!1,sortable:!1,exportable:!1},rowNumberWidth:36,rowNumberFilter:null,rowNumberVisible:!1,rowNumberColumn:{private:!0,id:"tg-column-row-number",name:"",formatter:"rowNumber",headerClassMap:"tg-header-row-number",classMap:"tg-cell-row-number",align:"center",maxWidth:100,sortable:!1,exportable:!1},blankColumn:{private:!0,id:"tg-column-blank",name:"",formatter:"blank",headerClassMap:"tg-header-blank",classMap:"tg-cell-blank",width:0,minWidth:0,maxWidth:4096,resizable:!1,sortable:!1,exportable:!1},sortField:"",sortAsc:!0,sortBlankValueBottom:!0,sortComparers:ft,sortOnInit:!1,sortIndicator:"h",highlightKeywords:{textKey:"tg_text_",textGenerator:null,highlightKey:"tg_highlight_",highlightPre:"",highlightPost:" "},frozenRow:-1,frozenRowMax:10,frozenRowHoverable:!1,frozenBottom:!1,frozenColumn:-1,frozenColumnMax:10,frozenRight:!1,scrollbarSize:12,scrollbarSizeH:null,scrollbarSizeV:null,scrollbarRound:!1,scrollbarFade:!1,scrollbarFadeTimeout:1e3,scrollbarType:"auto",scrollPaneMinWidth:30,scrollPaneGradient:30,autoHeight:!1,textSelectable:!1,bindWindowResize:!1,bindContainerResize:!1,cellResizeObserver:null},i=this.generateThemeOptions();return d.merge(t,i,this.constructorOptions,this.customOptions,this.dataOptions)},generateThemeOptions(){const t=this.pickOptions("theme").pop();if(t)return this.getThemeOptions(t)},pickOptions(t){return[this.constructorOptions,this.customOptions,this.dataOptions].map((e=>e&&e[t])).filter((t=>t))},initOptionsFormatters(){let t;const e=this.pickOptions("formatters");e.length&&(t=d.merge.apply(null,e)),this.formatters=d.merge(Y,t,this.customFormatters),this.nullFormatter=this.getFormatter("null")},initOptionsSort(){"v"!==this.options.sortIndicator&&(this.options.sortIndicator="h")},initOptionsFrozen:function(){const t=this.options;this.frozenInfo={column:-1,row:-1,columns:0,rows:0,bottom:Boolean(t.frozenBottom),right:Boolean(t.frozenRight)};let e=d.toNum(t.frozenColumn,!0);e=d.clamp(e,-1,t.frozenColumnMax),e>-1&&!this.frozenInfo.right&&(t.selectVisible&&(e+=1),t.rowDragVisible&&(e+=1),t.rowNumberVisible&&(e+=1)),this.frozenInfo.column=e,e>-1?this.frozenInfo.columns=e+1:(this.frozenInfo.columns=0,this.frozenInfo.right=!1);let i=d.toNum(t.frozenRow,!0);i=d.clamp(i,-1,t.frozenRowMax),this.frozenInfo.row=i,i>-1?this.frozenInfo.rows=i+1:(this.frozenInfo.rows=0,this.frozenInfo.bottom=!1)},initOptionsScrollbar:function(){const t=this.options;("auto"===t.scrollbarType&&d.isTouchDevice()||["touch","mobile"].includes(t.scrollbarType))&&(t.scrollbarFade=!0,t.scrollbarSize=6,t.scrollbarRound=!0);const e=d.toNum(t.scrollbarSize);this.scrollbarSizeH=e,d.isNum(t.scrollbarSizeH)&&(this.scrollbarSizeH=t.scrollbarSizeH),this.scrollbarSizeV=e,d.isNum(t.scrollbarSizeV)&&(this.scrollbarSizeV=t.scrollbarSizeV)},initOptionsContainer:function(){this.$container.attr("id",this.id);const t=this.options;this.$container.removeClass();const i=[e.NS,this.id,`tg-${t.theme}`,t.className];t.textSelectable||i.push("tg-text-unselectable"),d.isTouchDevice()&&i.push("tg-touch-device"),this.$container.addClass(d.classMap(i))},setTextSelectable:function(t){this.options.textSelectable&&(t?this.$container.removeClass("tg-text-unselectable"):this.$container.addClass("tg-text-unselectable"))}},mt={initBindWindowResize:function(){this.unbindWindowResize(),this.options.bindWindowResize&&(this.windowResizeEvents={resize:{handler:t=>{this.resize()}}},d.bindEvents(this.windowResizeEvents,window))},unbindWindowResize:function(){d.unbindEvents(this.windowResizeEvents)},createResizeObserver:function(t){if("undefined"==typeof ResizeObserver)return console.error("ERROR: This browser does not support ResizeObserver"),{observe:()=>{},unobserve:()=>{},disconnect:()=>{}};return new ResizeObserver((e=>{t.call(this,e)}))},initBindContainerResize:function(){this.unbindContainerResize(),this.options.bindContainerResize&&this.holder&&(this.resizeObserver=this.createResizeObserver((t=>{Boolean(this.holder.offsetWidth||this.holder.offsetHeight||this.holder.getClientRects().length)&&this.resize()})),this.resizeObserver.observe(this.holder))},unbindContainerResize:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},bt={initRowsHandler:function(){this.rows=this.data.rows,this.rowsInfo=this.initTreeInfo(this.rows,this.frozenInfo.row)},getRows:function(){return this.rows},getViewRows:function(){return this.viewRows},createViewRows:function(){this.initRowFilterHandler();const t=[],e=this.getRowNumberFilter();let i=1;const o=(t,o)=>{if(e.call(this,t,o))return t.tg_row_number=i,void(i+=1);t.tg_row_number=""},n=(e,i,s)=>{if(!d.isList(e))return;let r,l=0;e.forEach((e=>{if(this.isInvisible(e))return;e.tg_list_index=l,l+=1,e.tg_list_last=!1,r=e,this.gridRowItemHandler(e),o(e,l),s||t.push(e);const i=s||e.tg_group&&e.collapsed;n(e.subs,e,i)})),r&&(r.tg_list_last=!0)};n(this.rows);let s,r=0;return this.initViewList(t,((t,e)=>{t.tg_top=r,r+=this.getRowHeight(t),t.tg_group_line=!1,t.collapsed&&(t.tg_group_line=!0),s&&(t.tg_group||t.tg_level{if(e.tg_invisible)return;const n=!t.call(this,e,i,o);if(e.tg_filtered=n,!n){let t=e;for(;t.tg_parent;)t.tg_parent.tg_filtered=!1,t=t.tg_parent}})),this.sortColumn)return;let e=this.options.rowFilteredSort;if("function"==typeof e&&(e=e.call(this)),!e)return;"string"==typeof e&&(e={sortField:e,sortAsc:this.options.sortAsc});const i=e.sortField||e.id;i&&this.sortRows(i,e)},highlightKeywordsFilter:function(t,e,i){const{textKey:o,textGenerator:n,highlightKey:s}=this.options.highlightKeywords;if(e.forEach((e=>{t[`${s}${e}`]=null})),!i)return!0;const r=`${i}`.trim().toLowerCase().split(/\s+/g).filter((t=>t));if(!r.length)return!0;let l=!1;const h=(e,i)=>(/<\/?[a-z][\s\S]*>/i.test(e)&&(e=((e,i)=>{const n=`${o}${i}`,s=t[n];if(s)return s;const r=document.createElement("div");r.innerHTML=e;const l=r.innerText;return t[n]=l,l})(e,i)),(t=>{const e=t.toLowerCase();let i=0;for(const t of r){const o=e.indexOf(t,i);if(-1===o)return;i=o+t.length}return!0})(e));let a=function(t,e){return t[e]};return"function"==typeof n&&(a=n),e.forEach((e=>{const i=a(t,e);if(null==i)return;const o=`${i}`.trim();if(!o)return;const n=h(o,e);n&&(t[`${s}${e}`]=n,l=!0,this.highlightKeywords=r)})),l},highlightKeywordsHandler:function(){const{highlightCells:t}=this.renderSettings;if(!t.length)return;const e=this.highlightKeywords;e&&(this.asyncHighlightKeywords||(this.asyncHighlightKeywords=d.debounce(this.highlightKeywordsSync,10)),this.asyncHighlightKeywords.apply(this,[t,e]))},highlightKeywordsSync:function(t,e){t.forEach((t=>{const i=Array.from(t.querySelectorAll("svg")).concat(Array.from(t.querySelectorAll("textarea"))),o=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,(t=>{if(i.length)for(const e of i)if(e.contains(t))return NodeFilter.FILTER_SKIP;return NodeFilter.FILTER_ACCEPT})),n=[];let s=o.nextNode();for(;s;)n.push(s),s=o.nextNode();n.length&&this.highlightTextNodes(n,e)}))},highlightTextNodes:function(t,e){const{highlightPre:i,highlightPost:o}=this.options.highlightKeywords;let n=0;const s=()=>(n>=e.length&&(n=0),e[n++]);let r=s();t.forEach((t=>{const e=t.textContent,n=e.toLowerCase(),l=[];let h=0;const a=e.length;let c=!1;for(;h{if(e.selected){if(t)return void(e.selected=!1);t=e}}))}const t=this.options.selectAllOnInit;!0!==t?!1===t&&this.updateAllRowsSelected(!1):this.updateAllRowsSelected(!0)},updateAllRowsSelected:function(t){this.forEachSelectableRow((e=>{e.selected=t}))},initCollapseAllOnInitHandler:function(){const t=this.options.collapseAllOnInit;!0!==t?!1===t&&this.updateAllRowsCollapsed(!1):this.updateAllRowsCollapsed(!0)},getToBeAddedItemList:function(t){const e=[];return d.toList(t).forEach((t=>{t&&"object"==typeof t?e.push(t):void 0!==t&&e.push({name:t})})),e},getToBeAddedParentSubs:function(t,e){return t?(t.subs||(t.subs=[]),t.subs):e},getToBeAddedPositionIndex:function(t,e){const i=e.length;return d.isNum(t)&&t>=0&&t<=i?Math.round(t):i},generateDataSnapshot:function(t){if(!t||"object"!=typeof t)return t;const e=this.cleanTreeList(t.rows),i=this.cleanTreeList(t.columns);return this.convertNumberType(e,i),t.rows=e,t.columns=i,t},cleanTreeList:function(t){if(!d.isList(t))return[];const e=(t,i)=>{i.forEach((i=>{if(!i||"object"!=typeof i)return void t.push({});const o=this.getItemSnapshot(i),n=i.subs;Array.isArray(n)&&(o.subs=[],e(o.subs,n)),t.push(o)}))},i=[];return e(i,t),i},convertNumberType:function(t,e){const i=[];d.forEachTree(e,(function(t){"number"===t.type&&t.id&&i.push(t.id)})),i.length&&d.forEachTree(t,(function(t){i.forEach((function(e){t[e]=d.convertNum(t[e])}))}))}},vt={setDefaultLoading:function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t)return;const i=t.style;e.size&&(i.width=e.size,i.height=e.size),e.color&&(i.color=e.color),e.size||e.color||t.removeAttribute("style"),e.fast?t.classList.add("tg-loading-fast"):t.classList.remove("tg-loading-fast")},getDefaultLoading:function(t){return this.setDefaultLoading(this.$defaultLoading,t),this.$defaultLoading},getLoadingHolder:function(){return this.$container?this.$container.find(".tg-loading"):w()},setLoading:function(t){if(!this.$container)return this;this.$defaultLoading||(this.$defaultLoading=this.$container.find(".tg-loading-default").get(0));const e=this.getLoadingHolder().get(0);return"function"==typeof t&&(t=t.call(this,e)),d.isObject(t)&&(t=this.getDefaultLoading(t)),t||(t=this.getDefaultLoading()),this.renderNodeContent(e,t),this},showLoading:function(){return this.getLoadingHolder().show(),this},hideLoading:function(){return this.getLoadingHolder().hide(),this}},Ht={showMask:function(t){if(!this.hasMask||t){const e=this.$container.find(".tg-mask"),i=e.get(0);if(t&&i){const e=d.styleMap(t);e&&(i.style.cssText=e)}e.show(),this.hasMask=!0}return this},hideMask:function(){return this.hasMask&&(this.$container.find(".tg-mask").hide(),this.hasMask=!1),this}},Ct={renderNodeContent:function(t,e){if(t){if(e&&e.nodeType)return this.emptyNode(t),void t.appendChild(e);if(Array.isArray(e))return this.emptyNode(t),void e.forEach((e=>{e&&e.nodeType&&t.appendChild(e)}));void 0===e&&(e=""),t.innerHTML=e}},emptyNode:function(t){if(t)for(;t.firstChild;)t.removeChild(t.firstChild)},removeNode:function(t){t&&t.parentNode&&t.parentNode.removeChild(t)},appendNode:function(t,e){t&&e&&t.appendChild(e)},createElement:function(t,e,i){const o=document.createElement(t);e&&Object.keys(e).forEach((function(t){const i=e[t];void 0!==i&&o.setAttribute(t,i)})),d.isArray(i)||(i=[i]);let n="";return i.forEach((function(t){t&&t.nodeType?o.appendChild(t):void 0!==t&&(n+=t)})),n&&(o.innerHTML=n),o},find:function(t,e){return w(e||this.$container).find(t)},getRowNodes:function(t){const e=this.getRowItem(t);if(e)return this.getRowNodesByIndex(e.tg_view_index)},getCellNode:function(t,e){const i=this.getRowItem(t);if(!i)return;const o=this.getColumnItem(e);return o?this.getCellNodeByIndex(i.tg_view_index,o.tg_view_index):void 0},getHeaderItemNode:function(t){const e=this.getColumnItem(t);if(e)return this.getHeaderCache(e.tg_view_index)},getColumnHeaderNode:function(t){const e=this.getHeaderItemNode(t);if(e)return e.querySelector(".tg-column-header")}},yt={render:function(){this.asyncRender||(this.asyncRender=d.microtask(this.renderSync)),this.asyncRender.apply(this,arguments)},renderSync:function(){this.renderStartedTimestamp=Date.now();const t=this.generateRenderSettings.apply(this,arguments);return this.renderSettings=t,"all"===t.type?(this.flushBody(),this.initHandler(),this.renderHeader(),this.updateViewRowsAndSize(),this.renderBody(),this):"columns"===t.type?(this.flushBody(),this.initColumnsHandler(),this.renderHeader(),this.updateViewRowsAndSize(),this.renderBody(),this):"rows"===t.type?(this.updateViewRowsAndSize(),this.renderBody(),this):"rows_cache"===t.type?(this.cssRulesInvalid=!0,this.updateViewRowsAndSize(),this.updateRowCacheTopAndHeight(),this.renderBody(),this):"resize"===t.type?(this.resizeHandler(),this.renderBody(),this):(this.renderBody(),this)},generateRenderSettings:function(t){const e={type:this.renderType,scrollLeft:null,scrollTop:null,scrollColumn:null,scrollRow:null,highlightCells:[]};return"string"==typeof t?e.type=t:t&&Object.assign(e,t),this.headerCreated||(e.type="all"),e},renderBody:function(){this.scrollOnInit(),this.scrollTopOffset=this.scrollPane.getScrollTopOffset();const t=this.getViewport();return this.viewport=t,this.flushWithViewport(),this.previousScrollTopOffset!==this.scrollTopOffset&&(this.previousScrollTopOffset=this.scrollTopOffset,this.updateRowCacheTopOffset()),this.renderRows(t.rows),this.renderCells(t.rows,t.columns),this.renderUpdatedTimestamp=Date.now(),this.renderDuration=this.renderUpdatedTimestamp-this.renderStartedTimestamp,this.trigger(y.onUpdated,t),this.firstUpdated||(this.firstUpdated=!0,this.trigger(y.onFirstUpdated,t)),this.layoutEventHandler(),this.resizeEventHandler(),this.highlightKeywordsHandler(),this.renderSettings=null,this.renderType=null,this},rerender:function(){return this.render("all"),this}},Rt={resize:function(){return this.asyncResize||(this.asyncResize=d.throttle(this.resizeSync,100)),this.asyncResize.apply(this,arguments),this},resizeSync:function(){return this.headerCreated?(this.resizeHolderHandler.apply(this,arguments),this.firstUpdated&&this.isHolderInvisible()||this.render("resize"),this):this},resizeHolderHandler(t,e){if(0!==arguments.length)return 1===arguments.length?t&&"object"==typeof t?void this.$holder.css(t):void this.$holder.css({width:t}):void this.$holder.css({width:t,height:e})},isHolderInvisible(){const t=this.$holder.width(),e=this.$holder.height();return!t||!e},resizeHandler:function(){this.containerWidth=this.$container.width(),this.containerHeight=this.$container.height(),this.headerWidth=this.containerWidth,this.bodyWidth=this.containerWidth,this.updateTotalColumnsWidth(),this.resizeHeaderHandler(),this.resizeBodyHandler()},layoutEventHandler:function(){const t=this.previousLayout||{},e={headerWidth:this.headerWidth,headerHeight:this.headerHeight,bodyWidth:this.bodyWidth,bodyHeight:this.bodyHeight,scrollbarWidth:this.getScrollbarWidth(),scrollbarHeight:this.getScrollbarHeight()};Object.values(e).join("")!==Object.values(t).join("")&&(this.previousLayout=e,this.trigger(y.onLayout,d.merge({previous:t},e)))},resizeEventHandler:function(){const t=this.previousSize||{},e={width:this.containerWidth,height:this.containerHeight};Object.values(e).join("")!==Object.values(t).join("")&&(this.previousSize=e,this.trigger(y.onResize,d.merge({previous:t},e)))},resizeHeaderHandler:function(){this.initHeaderLayerHeight();const t=this.options;t.autoHeight&&this.viewRows.length>5e3&&(t.autoHeight=!1),this.headerHeight=0,t.headerVisible&&(this.containerHeight>0||t.autoHeight)&&this.updateHeaderTableHeight(),this.$headerFrame.css({width:this.headerWidth,height:this.headerHeight})},updateHeaderTableHeight:function(){let t=0;Object.keys(this.headerLayerHeight).forEach((e=>{t+=this.headerLayerHeight[e]}));const e=this.$headerL.find(".tg-header-table"),i=this.$headerR.find(".tg-header-table");e.css({height:t}),i.css({height:t}),this.headerHeight=t},resizeBodyHandler:function(){this.updateScrollState(),this.bodyHeight=this.containerHeight-this.headerHeight,this.$bodyFrame.css({width:this.bodyWidth,height:this.bodyHeight}),this.updatePaneWidth(),this.updatePaneHeight(),this.updateCanvasWidth(),this.updateCanvasHeight(),this.updateScrollPane(),this.updateCssRules()},updatePaneWidth:function(){let t=this.bodyWidth,e=0;if(this.frozenInfo.columns){const i=this.getScrollbarWidth();this.frozenInfo.right?(e=this.columnsWidthR+i,t=this.bodyWidth-e):(t=this.columnsWidthL,e=this.bodyWidth-t),this.scrollPaneHidden&&(this.frozenInfo.right?(t<=0&&(t=0),e=Math.max(0,this.bodyWidth-t)):(e3&&void 0!==arguments[3])||arguments[3];const n=this.getToBeAddedItemList(t);if(!n.length)return!1;let s;if(null!=e&&(s=this.getRowItem(e),!s))return!1;const r=this.getToBeAddedParentSubs(s,this.rows),l=this.getToBeAddedPositionIndex(i,r),h=[l,0].concat(n);r.splice.apply(r,h),this.initRowsHandler(),s?(s.collapsed=!1,this.flushRowFrom(s.tg_view_index+l)):this.flushRowFrom(l),this.onNextUpdated((function(){this.trigger(y.onRowAdded,n)}));const a={type:"rows"};return o&&(a.scrollRow=n[n.length-1]),this.render(a),!0},deleteRow:function(t){const e=d.toList(t),i=[];if(e.forEach((t=>{const e=this.getRowItem(t);e&&i.push(e)})),!i.length)return!1;const o=this.removeRowsHandler(i);this.initRowsHandler();const n=this.getRemovedMinIndex(o);return this.flushRowFrom(n),this.onNextUpdated((function(){this.trigger(y.onRowRemoved,i)})),this.render("rows"),!0},getRemovedMinIndex:function(t){let e=0;const i=t[t.length-1];if(this.isInvisible(i))return e;e=i.tg_view_index,e>0&&(e-=1);let o=i.tg_parent;for(;o;)o.collapsed&&(e=o.tg_view_index),o=o.tg_parent;return e},removeRowsHandler:function(t){const e=[].concat(t);e.sort((function(t,e){return e.tg_index-t.tg_index}));const i=[];return e.forEach((t=>{this.getRowParentSubs(t).splice(t.tg_sub_index,1),i.push(t)})),i}},Tt={renderCollapseAllState:function(){this.hasTreeColumn&&(this.asyncRenderCollapseAllState||(this.asyncRenderCollapseAllState=d.microtask(this.renderCollapseAllStateSync)),this.asyncRenderCollapseAllState.apply(this,arguments))},renderCollapseAllStateSync:function(){const t=this.$header.find(".tg-tree-header");this.rowsInfo.isTree?t.addClass("tg-tree-header-indent"):t.removeClass("tg-tree-header-indent"),this.renderCollapseAllIcon()},checkCollapseAllState:function(t){if(t!==this.allRowsCollapsed){if(t){let t=0;const e=this.rows.length;for(;t{if(e.tg_group&&e.tg_subs_length&&e.collapsed)return t=!0,!1})),t)return}this.allRowsCollapsed=t,this.renderCollapseAllIcon()}},expandAllRows:function(){return this.renderAllRowsCollapsed(!1)},collapseAllRows:function(){return this.renderAllRowsCollapsed(!0)},toggleAllRows:function(){return this.allRowsCollapsed?this.expandAllRows():this.collapseAllRows()},renderAllRowsCollapsed:function(t){const e=this.updateAllRowsCollapsed(t);return e.length?(this.flushBody(),this.onNextUpdated((()=>{this.renderCollapseAllIcon(),t?this.trigger(y.onRowCollapsed,e):this.trigger(y.onRowExpanded,e)})),this.render("rows"),this):this},updateAllRowsCollapsed:function(t){this.allRowsCollapsed=t;const e=[];return this.forEachRow((i=>{i.subs&&i.tg_subs_length&&this.isCollapsedChanged(i,t)&&(i.collapsed=t,e.push(i))})),e},expandRow:function(t){const e=this.getRowItem(t);return e?this.isEmptyGroup(e)?(this.trigger(y.onRowSubsRequest,e),this):this.isCollapsedChanged(e,!1)?(e.collapsed=!1,this.flushRowFrom(e.tg_view_index),this.renderCollapseIcon(e),this.onNextUpdated((()=>{this.checkCollapseAllState(!1),this.trigger(y.onRowExpanded,e)})),this.render("rows"),this):this:this},collapseRow:function(t){const e=this.getRowItem(t);return e&&e.subs&&e.tg_subs_length&&this.isCollapsedChanged(e,!0)?(e.collapsed=!0,this.flushRowFrom(e.tg_view_index),this.renderCollapseIcon(e),this.onNextUpdated((()=>{this.checkCollapseAllState(!0),this.trigger(y.onRowCollapsed,e)})),this.render("rows"),this):this},toggleRow:function(t){const e=this.getRowItem(t);return e?(e.collapsed?this.expandRow(e):this.collapseRow(e),this):this},expandRowLevel:function(t){t=d.toNum(t,!0);const e=[],i=[];return this.forEachRow((o=>{o.subs&&o.tg_subs_length&&(o.tg_level<=t?this.isCollapsedChanged(o,!1)&&(o.collapsed=!1,i.push(o)):this.isCollapsedChanged(o,!0)&&(o.collapsed=!0,e.push(o)))})),e.length||i.length?(this.flushBody(),this.onNextUpdated((()=>{e.length&&this.trigger(y.onRowCollapsed,e),i.length&&this.trigger(y.onRowExpanded,i)})),this.render("rows"),this):this},renderCollapseAllIcon:function(){if(!this.options.collapseAllVisible||!this.hasTreeColumn)return;const t=this.$header.find(".tg-tree-icon-all");this.renderTreeIcon(t,this.allRowsCollapsed)},renderCollapseIcon:function(t){if(!this.headerCreated)return;const e=this.getRowNodesByIndex(t.tg_view_index);if(!e)return;const i=e.find(".tg-tree-icon");this.renderTreeIcon(i,t.collapsed)},renderTreeIcon:function(t,e){t&&(e?t.removeClass("tg-tree-icon-expanded").addClass("tg-tree-icon-collapsed"):t.removeClass("tg-tree-icon-collapsed").addClass("tg-tree-icon-expanded"))}},Et={rowDragStartHandler:function(t,e){this.removeSortColumn();const i=e.rowItem;if(!i)return;const o=this.getRowNodesByIndex(i.tg_view_index);if(!o)return;e.dragCloneNodes=this.getRowDragCloneNodes(o),e.dropPlaceholder=this.getRowDropPlaceholder(o),e.dragStartTop=this.getRowTop(i),e.dragRowHeight=this.getRowHeight(i),e.dragStartScrollTop=this.scrollTop,e.dragMaxScrollTop=this.scrollPane.getMaxScrollTop();const n={e:t,rowItem:i};this.trigger(y.onRowDragged,n),this.isDefaultPrevented(n)||("touch"===e.type&&d.preventDefault(e.e),this.setRowState(i,"dragging"),this.setTextSelectable(!1),this.rowDropListHandler(e),this.updateDragCloneRowPosition(e))},rowDragMoveHandler:function(t,e){"touch"===e.type&&d.preventDefault(e.e),this.updateDragCloneRowPosition(e),this.updateDragPlaceholderPosition(e),this.rowDragAutoScrollHandler(e)},rowDragEndHandler:function(t,e){"touch"===e.type&&(this.protectedItem=null,d.preventDefault(e.e)),this.autoScrollStop(),this.setRowState(e.rowItem,"dragging",!1),this.setTextSelectable(!0),e.dragCloneNodes&&(e.dragCloneNodes.remove(),e.dragCloneNodes=null),e.dropPlaceholder&&(e.dropPlaceholder.remove(),e.dropPlaceholder=null),e.changed&&this.rowDropHandler(e)},updateDragCloneRowPosition:function(t){const e=this.scrollTop-t.dragStartScrollTop,i=t.dragStartTop+t.offsetY+e,o=i-this.scrollTopOffset;t.dragCloneNodes&&t.dragCloneNodes.css("top",o).show(),t.dragCurrentPosition=i+.5*t.dragRowHeight},getRowDragCloneNodes:function(t){const e=w();return t.each((function(t){const i=w(t),o=i.clone();o.appendTo(i.parent()),e.add(o)})),e.addClass("tg-clone").hide(),e},getRowDropPlaceholder:function(t){const e=w();return t.each((function(t){const i=w(t),o=w("
").addClass("tg-row-placeholder").hide(),n=i.parent();n.find(".tg-row-placeholder").remove(),o.appendTo(n),e.add(o)})),e},updateDragPlaceholderPosition:function(t){this.rowDropItemHandler(t);const e=t.dropItem;if(!e)return;let i=t.dropPosition-1;t.dropBottom?e.tg_view_last&&(i=t.dropPosition-2):e.tg_view_index-this.frozenInfo.rows==0&&(i=t.dropPosition);const o=i-this.scrollTopOffset;t.dropPlaceholder&&t.dropPlaceholder.css("top",o).show()},rowDragAutoScrollHandler:function(t){const e=t.dragCurrentPosition,i=this.scrollTop,o=this.bodyHeight-this.frozenRowsHeight,n=i+o,s=this.options.rowHeight,r=Math.min(3*s,.5*o);if(!(rn-r){const i=e-(n-r),o=this.getAutoScrollOffset(i,r);this.autoScrollStart(o,t)}else this.autoScrollStop()},getAutoScrollOffset:function(t,e){return Math.floor(t/e*20)},autoScrollStop:function(){this.autoScrollMotion&&(this.autoScrollMotion.destroy(),this.autoScrollMotion=null)},autoScrollStart:function(t,e){this.autoScrollStop();const i=e.dragMaxScrollTop;this.autoScrollMotion=new B,this.autoScrollMotion.bind(B.EVENT.MOTION_MOVE,(()=>{const o=d.clamp(this.scrollTop+t,0,i);o!==this.scrollTop?(this.setScrollTop(o),this.updateDragCloneRowPosition(e),this.updateDragPlaceholderPosition(e)):this.autoScrollStop()})),this.autoScrollMotion.once(B.EVENT.MOTION_END,(()=>{this.autoScrollStart(t,e)})),this.autoScrollMotion.start({duration:200})},rowDropListHandler:function(t){const e=this.getRowDropList(t);if(!d.isList(e))return;const i=t.rowItem,o=e.filter((t=>{if(t===i)return!1;if(t.tg_frozen)return!1;let e=t.tg_parent;for(;e;){if(e===i)return!1;e=e.tg_parent}return!0}));if(!d.isList(o))return;const n=[];o.forEach((t=>{const e=this.getRowTop(t),i=this.getRowHeight(t);n.push({rowItem:t,position:e}),n.push({rowItem:t,position:e+i-1,dropBottom:!0})})),t.dropList=n},getRowDropList:function(t){const e=this.options.rowDragCrossLevel;return e?"function"==typeof e?e.call(this,t):this.viewRows:this.getRowParentSubs(t.rowItem)},rowDropItemHandler:function(t){const e=t.dropList;if(!e)return;const i=t.dragCurrentPosition;let o=Number.MAX_VALUE;for(let n=0,s=e.length;no)break;o=r,t.dropItem=s.rowItem,t.dropBottom=s.dropBottom,t.dropPosition=s.position}},rowDragDropPositionHandler:function(t,e,i){const o=this.getRowParentSubs(t),n=t.tg_sub_index;let s,r;return this.isDropIntoGroupFirstChild(e,i)?(s=e.subs,r=0):(s=this.getRowParentSubs(e),r=e.tg_sub_index,o===s&&n{this.trigger(y.onRowDropped,n)})),this.render({type:"rows",scrollRow:i})}},It={getMoveFocusRow:function(t,e){let i=t[0];return e>0&&(i=t[t.length-1]),i},getMoveLengthInList:function(t,e){let i=0;return t.forEach((t=>{this.getRowParentSubs(t)===e&&(i+=1)})),i},getMoveInfo:function(t,e,i){const o=this.getRowParentSubs(i);let n=i.tg_sub_index+e;const s=i.tg_parent;if(s&&this.options.rowMoveCrossLevel){const e=0,i=s.tg_subs_length-1;if(ni){const e=n-i;return this.getMoveInfo(t,e,s)}}if(e>0){n-=this.getMoveLengthInList(t,o)-1}return n=d.clamp(n,0,o.length),{list:o,index:n}},moveRowsHandler:function(t,e){(t=this.removeRowsHandler(t)).reverse();const i=this.getMoveFocusRow(t,e),o=this.getMoveInfo(t,e,i),n=[o.index,0].concat(t);return o.list.splice.apply(o.list,n),this.initRowsHandler(),this.onNextUpdated((function(){this.scrollRowIntoView(i),this.trigger(y.onRowMoved,t)})),this.removeSortColumn(),this.update(),!0},moveRows:function(t,e){t=d.toList(t);const i=[];return t.forEach((t=>{const e=this.getRowItem(t);e&&i.push(e)})),!!i.length&&(!(i.length>=this.getRowsLength())&&(0!==(e=d.toNum(e,!0))&&this.moveRowsHandler(i,e)))},moveRowsUp:function(t){return this.moveRows(t,-1)},moveRowsDown:function(t){return this.moveRows(t,1)},moveRowsToTop:function(t){return this.moveRows(t,-this.getRowsLength(!0))},moveRowsToBottom:function(t){return this.moveRows(t,this.getRowsLength(!0))},moveSelectedRowsUp:function(){return this.moveRows(this.getSelectedRows(),-1)},moveSelectedRowsDown:function(){return this.moveRows(this.getSelectedRows(),1)},moveSelectedRowsToTop:function(){return this.moveRows(this.getSelectedRows(),-this.getRowsLength(!0))},moveSelectedRowsToBottom:function(){return this.moveRows(this.getSelectedRows(),this.getRowsLength(!0))}},Lt={getSelectedRow:function(){let t=null;return this.forEachSelectableRow((function(e){if(e.selected)return t=e,!1})),t},getSelectedRows:function(){const t=[];return this.forEachSelectableRow((function(e){e.selected&&t.push(e)})),t.length>1&&t.sort((function(t,e){const i=t.tg_selected_index,o=e.tg_selected_index;return i>o?1:i0&&void 0!==arguments[0])||arguments[0];if(t=Boolean(t),this.globalSelectedIndex=0,t&&!this.options.selectMultiple)return this;const e=this.getAllSelectedChangedList(t);return e.length?(this.updateRowsSelectedState(e),this):this},setRowSelected:function(){return(this.options.selectMultiple?this.setRowMultipleSelected:this.setRowSingleSelected).apply(this,arguments)},setRowSingleSelected:function(t){const e=this.getRowItem(t);if(!e)return this;if(!this.isRowSelectable(e))return this;if(e.selected)return this;const i=[],o=this.getSelectedRow();return o&&o.selected&&i.push(o),e.selected||i.push(e),i.length?(this.updateRowsSelectedState(i),this):this},setRowMultipleSelected:function(t,e){if(0===arguments.length)return this;if(1===arguments.length&&!1===arguments[0])return this.selectAll(!1);const i=this.toRowItemList(t,(t=>this.isRowSelectable(t)));return i.length?!1===e?(this.setRowListUnselected(i),this):d.hasShiftKey(e)&&1===i.length?(this.setRowBetweenListSelected(i[0]),this):(this.updateRowsSelectedState(i),this):this},setRowListUnselected:function(t){const e=this.getSelectedChangedList(t,!1);e.length&&this.updateRowsSelectedState(e)},setRowBetweenListSelected:function(t){const e=this.previousSelectedRow;if(e&&e!==t){const i=this.getBetweenSelectedChangedList(e,t);if(!i.length)return;this.updateRowsSelectedState(i,!0)}else this.updateRowsSelectedState([t])},getAllSelectedChangedList:function(t){const e=[];return this.forEachSelectableRow((i=>{this.isSelectedChanged(i,t)&&e.push(i)})),e},getSelectedChangedList:function(t,e){const i=[];return t.forEach((t=>{this.isSelectedChanged(t,e)&&i.push(t)})),i},getBetweenSelectedChangedList:function(t,e){const i=t.tg_index,o=e.tg_index,n=[];if(i=o;)n.push(t),t--}return this.toRowItemList(n,(t=>this.isRowSelectable(t)&&!t.selected))},updateRowsSelectedState:function(t,e){let i;t.forEach((t=>{const e=!t.selected;t.selected=e,e&&(t.tg_selected_index=this.globalSelectedIndex++,i=t),this.renderRowSelectedState(t)})),e||(this.previousSelectedRow=i),this.renderSelectAllState(),this.onNextUpdated((()=>{this.trigger(y.onSelectChanged,t)})),this.render()},renderRowSelectedState:function(t){const e=t.tg_view_index;this.viewport.rows.includes(e)&&(this.renderRowState(t,"selected"),this.flushCell(e,this.selectColumn.tg_view_index))},renderSelectAllState:function(){this.isSelectAllVisible()&&(this.asyncRenderSelectAllState||(this.asyncRenderSelectAllState=d.microtask(this.renderSelectAllStateSync)),this.asyncRenderSelectAllState.apply(this,arguments))},renderSelectAllStateSync:function(){const t=this.getSelectAllState();if(t===this.previousSelectAllState)return;this.previousSelectAllState=t;const e=this.selectColumn,i=w(this.getColumnHeaderNode(e)).find(".tg-select-icon-all");i.length&&(i.removeClass("tg-selected tg-mixed"),t&&i.addClass(`tg-${t}`))},getSelectAllState:function(){let t=0;this.forEachSelectableRow((e=>{t+=1}));const e=this.getSelectedRows().length;let i="mixed";return 0===e?(i="",this.previousSelectedRow=null):e===t&&(i="selected"),i},isSelectAllVisible:function(){const t=this.options;return!!(t.selectVisible&&t.selectAllVisible&&t.selectMultiple)}},xt={setRowHover:function(t,e){const i=this.getRowItem(t);return i?(this.renderRowHover(i,e),this):this},renderRowHover:function(t,e){if(this.previousHover&&(this.previousHover.removeClass("tg-hover"),this.previousHover=null),!e)return this;if(!1===this.rowHoverable)return;if(!1===t.hoverable)return this;if(t.tg_frozen&&!this.options.frozenRowHoverable)return this;const i=t.tg_view_index;return this.previousHover=this.$body.find(`.tg-row[row='${i}']`).addClass("tg-hover"),this},setRowState:function(t,e){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];const o=this.getRowItem(t);return o?(o.tg_state_names||(o.tg_state_names=new Set),o.tg_state_names.add(e),o[e]=i,this.renderRowState(o,e),this):this},renderRowState:function(t,e){const i=this.getRowNodesByIndex(t.tg_view_index);if(i){const o=`tg-${e}`;t[e]?i.addClass(o):i.removeClass(o)}}},zt={getRowItem:function(t){return d.isNum(t)?(t<0&&(t=this.rowsInfo.length+t),this.rowsInfo.indexCache[t]):t?d.isNum(t.tg_index)?t:this.getRowItemById(t.id||t):void 0},getRowItemById:function(t){return this.getRowItemBy("id",t)},getRowItemBy:function(t,e){if(void 0!==e)return this.rowsInfo.indexCache.find((i=>i[t]===e))},getRowsLength:function(t){return t?this.rowsInfo.length:this.viewRows.length},getViewRowItem:function(t){return this.viewRows[t]},getPreRenderRowInfo:function(t){const e={rows:[],rowNotFound:!1,benchmark:0};if(!t.length)return 0===this.getRowsLength()&&(e.rowNotFound=!0),e;const i=[],o=this.frozenInfo.row;return t.forEach((t=>{this.getRowCache(t)?t>o&&i.push(t):e.rows.push(t)})),i.length&&(e.benchmark=Math.min.apply(Math,i)),e.rows.sort((function(t,i){return t{this.renderRowNodes(t,e.benchmark)}))},createRowNode:function(t,e,i,o,n,s){const r=document.createElement("div");return r.setAttribute("row",t),r.className=i,o&&(r.style.cssText=o),r.style.top=`${n}px`,s!==this.options.rowHeight&&(r.style.height=`${s}px`,r.style.lineHeight=`${s}px`),this.setNodeDataCache(r,{row:t,rowItem:e,rowNode:r}),r},appendRowNode:function(t,e,i,o){ithis.frozenInfo.row))return e;e-=this.frozenRowsHeight}return e-=this.scrollTopOffset,e},getRowTop:function(t){let e=t.tg_top;return t.tg_frozen||(e-=this.frozenRowsHeight),e},getRowVPos:function(t){const e=this.frozenInfo.bottom,i=this.frozenInfo.row;let o="top";return this.frozenInfo.rows&&(t<=i?e&&(o="bottom"):e||(o="bottom")),o},getRowCanvas:function(t,e){return"top"===t?"left"===e?this.$bodyTL:this.$bodyTR:"left"===e?this.$bodyBL:this.$bodyBR}},Mt={CHANGE:"change",START:"start",END:"end"},Pt={h:{type:"h",className:"tg-scrollbar-h",offset:"left",size:"width",page:"pageX",axis:"x",offsetName:"offsetX"},v:{type:"v",className:"tg-scrollbar-v",offset:"top",size:"height",page:"pageY",axis:"y",offsetName:"offsetY"}};class Nt extends k{static EVENT=Mt;static H="h";static V="v";type="h";settings={};size=0;viewSize=0;bodySize=0;trackSize=0;position=0;scale=0;thumbPosition=0;thumbScale=0;constructor(t,e){super(),this.settings=Pt[t]||Pt.h,this.type=this.settings.type,this.id=d.uid(4,`tg-scrollbar-${this.type}-`),this.$holder=w(e),this.$holder.find(`.${this.settings.className}`).remove(),this.options=this.generateOptions()}generateOptions(t){return d.merge({size:15,round:!1,blank:!1,motionDuration:200},t)}updateOptions(t){this.options=this.generateOptions(t);let e=this.options.size;d.isNum(e)||(e=d.toNum(e)),e=Math.round(e),e=Math.max(e,0),e=Math.min(e,30),this.size=e}create(){this.$container=w('').appendTo(this.$holder),this.$container.attr("id",this.id),this.$container.addClass(d.classMap(["tg-scrollbar",this.settings.className,{"tg-scrollbar-round":this.options.round}])),this.$track=this.$container.find(".tg-scrollbar-track"),this.$thumb=this.$container.find(".tg-scrollbar-thumb"),this.thumbDrag=new O,this.thumbDrag.bind(O.EVENT.DRAG_START,((t,e)=>{this.thumbDragStart(e)})).bind(O.EVENT.DRAG_MOVE,((t,e)=>{this.thumbDragMove(e)})).bind(O.EVENT.DRAG_END,((t,e)=>{this.thumbDragEnd(e)}));const t=this.$container.get(0);return this.scrollEvents={mousedown:{handler:e=>{e.target.classList.contains("tg-scrollbar-thumb")?this.thumbMouseDownHandler(e):(this.trackEvents={mouseup:{handler:t=>{this.trackMouseupHandler(t)},options:{once:!0}}},d.bindEvents(this.trackEvents,t),this.trackMousedownHandler(e))},options:!0},selectstart:{handler:t=>{d.preventDefault(t)},options:!0}},d.bindEvents(this.scrollEvents,t),this}getBlank(){return this.options.blank}getSize(){return this.size}getViewSize(){return this.viewSize}getBodySize(){return this.bodySize}getTrackMouseDirection(){let t=1;return this.trackMousePosition0){const i=this.getMaxThumbPosition();t=Math.round(i*this.position/e),t=d.clamp(t,0,i)}return this.setThumbPosition(t),this}trackMousedownHandler(t){return this.motionStop(),this.trackMousePosition=this.getTrackMousePos(t),this.motionStart(),this}trackMouseupHandler(t){return d.unbindEvents(this.trackEvents),this.motionStop(),this.motionStarted||(this.trackMousePosition=this.getTrackMousePos(t),this.trackScrollHandler(),this.triggerEvent()),this}trackScrollHandler(){const t=Math.max(0,this.viewSize-20)*this.getTrackMouseDirection();return this.setOffset(t),this}motionStop(){return this.motion&&(this.motion.destroy(),this.motion=null),this}motionStart(){const t=this.position,e=Math.round(this.trackMousePosition/this.viewSize*this.getMaxPosition());return this.motionStarted=!1,this.motion=new B,this.motion.bind(B.EVENT.MOTION_START,((t,e)=>{this.motionStarted=!0})),this.motion.bind(B.EVENT.MOTION_MOVE,((t,e)=>{this.motionUpdateHandler(t,e)})),this.motion.start({duration:this.options.motionDuration,from:t,till:e}),this}motionUpdateHandler(t,e){e!==this.position&&(this.setPosition(e),this.triggerEvent())}thumbMouseDownHandler(t){this.$thumb.addClass("tg-scrollbar-thumb-hold"),this.thumbDrag.start(t,{target:this.$thumb})}thumbDragStart(t){this.motionStop(),t.thumbPositionStart=this.thumbPosition,this.trigger(Mt.START)}thumbDragMove(t){let e=t.thumbPositionStart+t[this.settings.offsetName];const i=this.getMaxThumbPosition();e=d.clamp(e,0,i),this.setThumbPosition(e);let o=0;i>0&&(o=d.per(e/i)*this.getMaxPosition(),o=Math.round(o)),this.position=o,this.triggerEvent()}thumbDragEnd(t){this.$thumb&&this.$thumb.removeClass("tg-scrollbar-thumb-hold"),this.trigger(Mt.END)}triggerEvent(){this.trigger(Mt.CHANGE,this.position)}getPosition(){return this.position}setPosition(t){t=d.toNum(t,!0);const e=this.getMaxPosition();t=d.clamp(t,0,e),this.position=t,this.updateThumbPosition()}getMaxPosition(){return this.bodySize-this.viewSize}updatePosition(){const t=this.getMaxPosition(),e=d.clamp(this.position,0,t);this.position=e}setOffset(t){t=d.toNum(t);const e=this.position+t;return this.setPosition(e),this}getScale(){return this.scale}setScale(t){return t=d.per(t),this.scale=t,this.scaleChangeHandler(),this}scaleChangeHandler(){let t=Math.round(this.viewSize*this.scale);if(t=Math.max(t,Math.round(1.5*this.options.size)),t=Math.min(t,this.viewSize-1),this.thumbSize=t,this.$thumb){const t={};"h"===this.type?(t.height=this.size,t.width=this.thumbSize):(t.width=this.size,t.height=this.thumbSize),this.$thumb.css(t)}}updateTrackSize(){const t={};return"h"===this.type?(t.width=this.trackSize,t.height=this.size):(t.height=this.trackSize,t.width=this.size),this.$container.css(t),this}updateThumbSize(){let t=0;return this.bodySize&&(t=this.trackSize/this.bodySize),this.setScale(t),this}parseSize(t){return t=d.toNum(t),t=Math.round(t),t=Math.max(t,0)}updateSize(t,e,i){t=this.parseSize(t),this.viewSize=t,e=this.parseSize(e),this.bodySize=e,i=d.isNum(i)?this.parseSize(i):t,this.trackSize=i,this.previousFadeIn=null}fade(t){return!(!this.$container||!this.size)&&(this.previousFadeIn!==t&&(this.previousFadeIn=t,t?this.$container.hasClass("tg-fade-out")&&this.$container.removeClass("tg-fade-out").addClass("tg-fade-in"):this.$container.removeClass("tg-fade-in").addClass("tg-fade-out"),!0))}show(){if(this.updatePosition(),!this.getBlank())return!this.$container&&this.size>0&&this.create(),this.$container?(this.updateTrackSize(),this.updateThumbSize(),this):this;this.remove()}hide(){return this.updatePosition(),this.remove(),this}remove(){if(this.motionStop(),d.unbindEvents(this.scrollEvents),d.unbindEvents(this.trackEvents),this.thumbDrag&&(this.thumbDrag.destroy(),this.thumbDrag=null),!this.$container)return this;this.$thumb=null,this.$track=null,this.$container.remove(),this.$container=null}destroy(){return this.remove(),this}}const _t={CHANGE:"change",START:"start",END:"end"};class kt extends k{static EVENT=_t;visible=!0;constructor(t,e){super(),this.id=d.uid(4,`tg-scroll-pane-${e}-`),this.gradientInfo=[],this.$container=w(t).attr("id",this.id),this.$container.addClass("tg-scroll-pane"),this.$scrollView=this.$container.find(".tg-scroll-view"),this.$scrollBody=this.$scrollView.find(".tg-scroll-body"),this.scrollbarH=new Nt(Nt.H,this.$container),this.scrollbarH.bind(Nt.EVENT.CHANGE,((t,e)=>{this.scrollHChangeHandler()})).bind(Nt.EVENT.START,(t=>{this.scrollStartEndHandler(!0)})).bind(Nt.EVENT.END,(t=>{this.scrollStartEndHandler()})),this.scrollbarV=new Nt(Nt.V,this.$container),this.scrollbarV.bind(Nt.EVENT.CHANGE,((t,e)=>{this.scrollVChangeHandler()})).bind(Nt.EVENT.START,(t=>{this.scrollStartEndHandler(!0)})).bind(Nt.EVENT.END,(t=>{this.scrollStartEndHandler()})),this.options=this.generateOptions()}generateOptions(t){return d.merge({scrollbarH:{},scrollbarV:{},scrollbarFade:!1,scrollSizeOnKeyPress:20,gradient:30},t)}scrollStartEndHandler(t){t?this.trigger(_t.START):this.trigger(_t.END)}show(){return this.$container.show(),this.visible=!0,this}hide(){return this.$container.hide(),this.visible=!1,this}width(){return this.scrollPaneW}height(){return this.scrollPaneH}render(t){return this.visible?(this.options=this.generateOptions(t),this.update(),this):this}update(){this.scrollPaneW=this.options.scrollPaneW,this.scrollPaneH=this.options.scrollPaneH,this.scrollBodyW=this.options.scrollBodyW,this.scrollBodyH=this.options.scrollBodyH,this.updateScrollbar()}setGroupH(t){this.groupH=d.toList(t)}setGroupV(t){this.groupV=d.toList(t)}updateGroupH(){if(!d.isList(this.groupH))return this;const t=this.scrollbarH.getPosition();return this.groupH.forEach((function(e){e&&e.updateScrollHFromGroup(t)})),this}updateGroupV(){if(!d.isList(this.groupV))return this;const t=this.scrollbarV.getPosition();return this.groupV.forEach((function(e){e&&e.updateScrollVFromGroup(t)})),this}updateGroupList(){this.updateGroupH(),this.updateGroupV()}updateScrollHFromGroup(t){this.scrollbarH.getPosition()!==t&&(this.scrollbarH.setPosition(t),this.updateScrollLeft(),this.triggerEvent())}updateScrollVFromGroup(t){this.scrollbarV.getPosition()!==t&&(this.scrollbarV.setPosition(t),this.updateScrollTop(),this.triggerEvent())}setPosition(t,e){return this.scrollbarH.setPosition(t),this.scrollbarV.setPosition(e),this.updateScrollLeft(),this.updateScrollTop(),this.updateGroupList(),this}updateScrollbar(){this.scrollbarH.updateOptions(this.options.scrollbarH),this.scrollbarV.updateOptions(this.options.scrollbarV),this.updateScrollState(),this.updateScrollView(),this.updateScrollTrack(),this.scrollbarH.updateSize(this.scrollViewW,this.scrollBodyW,this.scrollTrackW),this.scrollbarV.updateSize(this.scrollViewH,this.scrollBodyH,this.scrollTrackH),this.hasScrollH?(this.scrollbarH.show(),this.scrollbarH.setPosition(this.scrollbarH.getPosition())):this.scrollbarH.hide(),this.hasScrollV?(this.scrollbarV.show(),this.scrollbarV.setPosition(this.scrollbarV.getPosition())):this.scrollbarV.hide(),this.updateScrollLeft(),this.updateScrollTop(),this.updateGroupList()}updateScrollState(){const t=this.scrollbarH.getSize(),e=this.scrollbarV.getSize(),i=this.scrollbarH.getBlank(),o=this.scrollbarV.getBlank(),n=this.options.scrollbarFade;let s=!1,r=0;(function(){(this.scrollPaneWe&&t.push("left"),ie&&t.push("top"),o{const i=`tg-gradient-${e}`;t.includes(e)?this.$container.addClass(i):this.$container.removeClass(i)})))}getScrollLeft(){return this.scrollbarH.getPosition()}getScrollTop(){return this.scrollbarV.getPosition()}getMaxScrollLeft(){return this.scrollbarH.getMaxPosition()}getMaxScrollTop(){return this.scrollbarV.getMaxPosition()}getScrollTopOffset(){const t=this.getScrollTop();return t-t%1e4}triggerEvent(){this.trigger(_t.CHANGE,{scrollLeft:this.getScrollLeft(),scrollTop:this.getScrollTop()})}scrollHChangeHandler(){this.updateScrollLeft(),this.updateGroupList(),this.triggerEvent()}scrollVChangeHandler(){this.updateScrollTop(),this.updateGroupList(),this.triggerEvent()}setOffsetH(t){const e=this.getScrollLeft();this.scrollbarH.setOffset(t);return this.getScrollLeft()!==e&&(this.updateScrollLeft(),this.updateGroupList(),this.triggerEvent(),!0)}setOffsetV(t){const e=this.getScrollTop();this.scrollbarV.setOffset(t);return this.getScrollTop()!==e&&(this.updateScrollTop(),this.updateGroupList(),this.triggerEvent(),!0)}mouseWheelHandler(t){const e=t.deltaX,i=t.deltaY,o=Math.abs(e);if(o>Math.abs(i)){if(this.hasScrollH)return this.setOffsetH(e)}else{if(this.hasScrollV)return this.setOffsetV(i);if(this.hasScrollH&&!o)return this.setOffsetH(i)}return!1}keyPageUpHandler(t){return this.setOffsetV(-this.scrollViewH)}keyPageDownHandler(t){return this.setOffsetV(this.scrollViewH)}keyEndHandler(t){return this.setOffsetV(this.scrollBodyH)}keyHomeHandler(t){return this.setOffsetV(-this.scrollBodyH)}keyLeftHandler(t){return this.setOffsetH(-this.options.scrollSizeOnKeyPress)}keyUpHandler(t){return this.setOffsetV(-this.options.scrollSizeOnKeyPress)}keyRightHandler(t){return this.setOffsetH(this.options.scrollSizeOnKeyPress)}keyDownHandler(t){return this.setOffsetV(this.options.scrollSizeOnKeyPress)}destroy(){return this.visible=!1,this.groupH=null,this.groupV=null,this.scrollbarV&&(this.scrollbarV.destroy(),this.scrollbarV=null),this.scrollbarH&&(this.scrollbarH.destroy(),this.scrollbarH=null),this.$container=null,this.$scrollView=null,this.$scrollBody=null,this}}const Vt={initScrollPane:function(){this.initFrozenStyle(),this.createScrollPane()},initFrozenStyle:function(){const t={HL:{container:this.$paneHL,cls:[]},HR:{container:this.$paneHR,cls:[]},TL:{container:this.$paneTL,cls:[]},TR:{container:this.$paneTR,cls:[]},BL:{container:this.$paneBL,cls:[]},BR:{container:this.$paneBR,cls:[]}},e="tg-frozen-h";this.frozenInfo.rows&&(this.frozenInfo.bottom?(t.BL.cls.push(e),t.BR.cls.push(e)):(t.TL.cls.push(e),t.TR.cls.push(e)));const i="tg-frozen-v",o="tg-frozen-line-v";this.frozenInfo.columns&&(this.frozenInfo.right?(t.HR.cls.push(i),t.TR.cls.push(i),t.BR.cls.push(i)):(t.HL.cls.push(i),t.TL.cls.push(i),t.BL.cls.push(i)),t.HL.cls.push(o),t.TL.cls.push(o),t.BL.cls.push(o));const n="tg-frozen",s=[n,e,i,o].join(" ");Object.keys(t).forEach((function(e){const i=t[e],o=i.container;o.removeClass(s);const r=i.cls;if(!r.length)return;const l=[n].concat(r).join(" ");o.addClass(l)}))},createScrollPane:function(){this.removeScrollPane(),this.scrollPaneMap={HL:new kt(this.$paneHL,"header-left"),HR:new kt(this.$paneHR,"header-right"),TL:new kt(this.$paneTL,"top-left"),TR:new kt(this.$paneTR,"top-right"),BL:new kt(this.$paneBL,"bottom-left"),BR:new kt(this.$paneBR,"bottom-right")},this.scrollPaneMap.BR.setGroupH([this.scrollPaneMap.HR,this.scrollPaneMap.TR]),this.scrollPaneMap.TR.setGroupH([this.scrollPaneMap.HR,this.scrollPaneMap.BR]),this.scrollPaneMap.BL.setGroupH([this.scrollPaneMap.HL,this.scrollPaneMap.TL]),this.scrollPaneMap.TL.setGroupH([this.scrollPaneMap.HL,this.scrollPaneMap.BL]),this.scrollPaneMap.BR.setGroupV(this.scrollPaneMap.BL),this.scrollPaneMap.BL.setGroupV(this.scrollPaneMap.BR),this.scrollPaneMap.TR.setGroupV(this.scrollPaneMap.TL),this.scrollPaneMap.TL.setGroupV(this.scrollPaneMap.TR),this.initActiveScrollPane(),this.initPaneVisibility()},initActiveScrollPane:function(){const t=this.getScrollPaneVP(),e=this.getScrollPaneHP(),i=`${t}${e}`;this.scrollPane=this.scrollPaneMap[i],this.scrollPane.bind(kt.EVENT.CHANGE,((t,e)=>{this.scrollPaneChangeHandler(t,e)})).bind(kt.EVENT.START,(t=>{this.rowHoverable=!1})).bind(kt.EVENT.END,(t=>{this.rowHoverable=!0}));let o={L:"L",R:"L"};this.frozenInfo.columns&&this.frozenInfo.right&&(o={L:"R",R:"L"});const n=`${t}${o[e]}`;this.scrollPaneFrozen=this.scrollPaneMap[n]},getScrollPaneVP:function(){return this.frozenInfo.rows&&!this.frozenInfo.bottom?"B":"T"},getScrollPaneHP:function(){return this.frozenInfo.columns&&!this.frozenInfo.right?"R":"L"},initPaneVisibility:function(){this.scrollPaneMap.HL.show(),this.scrollPaneMap.TL.show(),this.frozenInfo.columns?(this.scrollPaneMap.HR.show(),this.scrollPaneMap.TR.show(),this.frozenInfo.rows?(this.scrollPaneMap.BL.show(),this.scrollPaneMap.BR.show()):(this.scrollPaneMap.BL.hide(),this.scrollPaneMap.BR.hide())):(this.scrollPaneMap.HR.hide(),this.scrollPaneMap.TR.hide(),this.scrollPaneMap.BR.hide(),this.frozenInfo.rows?this.scrollPaneMap.BL.show():this.scrollPaneMap.BL.hide())},scrollPaneChangeHandler:function(t,e){this.hideColumnLine(),this.scrollLeft=e.scrollLeft,this.scrollTop=e.scrollTop,this.scrollRenderHandler()},scrollbarFadeInOutHandler:function(t,e){this.options.scrollbarFade&&(e?this.updateScrollPaneFade(!0):this.options.scrollbarFadeTimeout||this.updateScrollPaneFade(!1))},updateScrollPaneFade:function(t){if(!this.options.scrollbarFade)return;this.updateScrollPaneFadeSync(t);const e=this.options.scrollbarFadeTimeout;e&&(clearTimeout(this.timeout_fade),this.timeout_fade=setTimeout((()=>{this.updateScrollPaneFadeSync(!1)}),e))},updateScrollPaneFadeSync:function(t){if(this.previousScrollbarFadeIn===t)return;this.previousScrollbarFadeIn=t;const e=[];Object.keys(this.scrollPaneMap).forEach((t=>{const i=this.scrollPaneMap[t];i.hasScrollbar()&&e.push(i)})),e.length&&e.forEach((function(e){e.fade(t)}))},updateScrollPane:function(){const t=this.getScrollbarOptions();this.scrollPaneMap.HL.render(this.getScrollPaneOptions({scrollPaneW:this.paneWidthL,scrollPaneH:this.headerHeight,scrollBodyW:this.bodyWidthL,scrollBodyH:this.headerHeight,scrollbarV:t.HLV,scrollbarH:t.HLH})),this.scrollPaneMap.HR.render(this.getScrollPaneOptions({scrollPaneW:this.paneWidthR,scrollPaneH:this.headerHeight,scrollBodyW:this.bodyWidthR,scrollBodyH:this.headerHeight,scrollbarV:t.HRV,scrollbarH:t.HRH})),this.scrollPaneMap.TL.render(this.getScrollPaneOptions({scrollPaneW:this.paneWidthL,scrollPaneH:this.paneHeightT,scrollBodyW:this.bodyWidthL,scrollBodyH:this.bodyHeightT,scrollbarV:t.TLV,scrollbarH:t.TLH})),this.scrollPaneMap.TR.render(this.getScrollPaneOptions({scrollPaneW:this.paneWidthR,scrollPaneH:this.paneHeightT,scrollBodyW:this.bodyWidthR,scrollBodyH:this.bodyHeightT,scrollbarV:t.TRV,scrollbarH:t.TRH})),this.scrollPaneMap.BL.render(this.getScrollPaneOptions({scrollPaneW:this.paneWidthL,scrollPaneH:this.paneHeightB,scrollBodyW:this.bodyWidthL,scrollBodyH:this.bodyHeightB,scrollbarV:t.BLV,scrollbarH:t.BLH})),this.scrollPaneMap.BR.render(this.getScrollPaneOptions({scrollPaneW:this.paneWidthR,scrollPaneH:this.paneHeightB,scrollBodyW:this.bodyWidthR,scrollBodyH:this.bodyHeightB,scrollbarV:t.BRV,scrollbarH:t.BRH})),this.scrollLeft=this.getScrollLeft(),this.scrollTop=this.getScrollTop(),this.updateScrollPaneFade(Boolean(this.options.scrollbarFadeTimeout))},getScrollPaneOptions:function(t){const e=this.options;return t.scrollbarFade=e.scrollbarFade,t.gradient=d.clamp(d.toNum(e.scrollPaneGradient,!0),0,100),t},getScrollbarOptions:function(){const t=this.options.scrollbarRound,e={};return["HLH","HLV","HRH","HRV","TLH","TLV","TRH","TRV","BLH","BLV","BRH","BRV"].forEach((function(i){e[i]={size:0,round:t,blank:!1}})),this.scrollbarOptionsHandler(e),this.scrollbarFadeHandler(e),e},scrollbarOptionsHandler:function(t){const e=this.scrollbarSizeH,i=this.scrollbarSizeV;this.scrollbarHeaderHandler(t,e,i),this.frozenInfo.columns?this.frozenInfo.rows?this.scrollbarC1R1Handler(t,e,i):this.scrollbarC1R0Handler(t,e,i):this.frozenInfo.rows?this.scrollbarC0R1Handler(t,e,i):this.scrollbarC0R0Handler(t,e,i)},scrollbarFadeHandler:function(t){if(this.options.scrollbarFade)for(const e in t)if(d.hasOwn(t,e)){const i=t[e];i.size>0&&i.blank&&(i.blank=!1,i.size=0)}},scrollbarHeaderHandler:function(t,e,i){this.hasVScroll&&(this.frozenInfo.columns?(t.HRV.size=i,t.HRV.blank=1):(t.HLV.size=i,t.HLV.blank=1))},scrollbarC0R0Handler:function(t,e,i){t.TLH.size=e,t.TLV.size=i},scrollbarC0R1Handler:function(t,e,i){this.frozenInfo.bottom?this.scrollbarC0R1B1Handler(t,e,i):this.scrollbarC0R1B0Handler(t,e,i)},scrollbarC0R1B1Handler:function(t,e,i){t.BLH.size=e,t.TLV.size=i,this.hasVScroll&&(t.BLV.size=i,t.BLV.blank=1)},scrollbarC0R1B0Handler:function(t,e,i){t.BLH.size=e,t.BLV.size=i,this.hasVScroll&&(t.TLV.size=i,t.TLV.blank=1)},scrollbarC1R0Handler:function(t,e,i){this.frozenInfo.right?this.scrollbarC1R0R1Handler(t,e,i):this.scrollbarC1R0R0Handler(t,e,i)},scrollbarC1R0R1Handler:function(t,e,i){this.hasHScroll&&(t.TLH.size=e,this.scrollPaneHidden?(t.TRH.size=e,t.TLH.blank=!0):(t.TRH.size=e,t.TRH.blank=!0)),t.TRV.size=i},scrollbarC1R0R0Handler:function(t,e,i){this.hasHScroll&&(t.TRH.size=e,this.scrollPaneHidden?(t.TLH.size=e,t.TRH.blank=!0):(t.TLH.size=e,t.TLH.blank=!0)),t.TRV.size=i},scrollbarC1R1Handler:function(t,e,i){this.frozenInfo.right?this.frozenInfo.bottom?this.scrollbarC1R1R1B1Handler(t,e,i):this.scrollbarC1R1R1B0Handler(t,e,i):this.frozenInfo.bottom?this.scrollbarC1R1R0B1Handler(t,e,i):this.scrollbarC1R1R0B0Handler(t,e,i)},scrollbarC1R1R1B1Handler:function(t,e,i){this.hasHScroll&&(t.BLH.size=e,this.scrollPaneHidden&&(t.BRH.size=e,t.BLH.blank=!0)),t.TRV.size=i,this.hasVScroll&&(t.BRV.size=i,t.BRV.blank=1)},scrollbarC1R1R1B0Handler:function(t,e,i){this.hasHScroll&&(t.BLH.size=e,this.scrollPaneHidden?(t.BRH.size=e,t.BLH.blank=!0):(t.BRH.size=e,t.BRH.blank=!0)),t.BRV.size=i,this.hasVScroll&&(t.TRV.size=i,t.TRV.blank=1)},scrollbarC1R1R0B1Handler:function(t,e,i){this.hasHScroll&&(t.BRH.size=e,this.scrollPaneHidden&&(t.BLH.size=e,t.BRH.blank=!0)),t.TRV.size=i,this.hasVScroll&&(t.BRV.size=i,t.BRV.blank=1)},scrollbarC1R1R0B0Handler:function(t,e,i){this.hasHScroll&&(t.BRH.size=e,this.scrollPaneHidden?(t.BLH.size=e,t.BRH.blank=!0):(t.BLH.size=e,t.BLH.blank=!0)),t.BRV.size=i,this.hasVScroll&&(t.TRV.size=i,t.TRV.blank=1)},removeScrollPane:function(){clearTimeout(this.timeout_fade),this.previousScrollbarFadeIn=null,this.scrollPaneMap&&(Object.keys(this.scrollPaneMap).forEach((t=>{const e=this.scrollPaneMap[t];e&&e.destroy()})),this.scrollPaneMap=null,this.scrollPane=null,this.scrollPaneFrozen=null)}},Ot={updateScrollState:function(){this.updateGlobalScrollInfo(),this.updateHScrollState(),this.updateVScrollState(),this.updateBlankColumnWidth(),this.scrollStateChanged=!1,this.previousHasHScroll===this.hasHScroll&&this.previousHasVScroll===this.hasVScroll||(this.scrollStateChanged=!0,this.previousHasHScroll=this.hasHScroll,this.previousHasVScroll=this.hasVScroll,this.trigger(y.onScrollStateChanged,{hasHScroll:this.hasHScroll,hasVScroll:this.hasVScroll}))},updateGlobalScrollInfo:function(){this.totalRowsLength=this.getRowsLength(),this.totalRowsHeight=this.getRowsHeight(),this.frozenRowsHeight=this.getFrozenRowsHeight(),this.scrollRowsHeight=this.totalRowsHeight-this.frozenRowsHeight,this.totalRowsHeight=Math.max(this.totalRowsHeight,1),this.scrollRowsHeight=Math.max(this.scrollRowsHeight,1),this.flushRowFrom(this.totalRowsLength)},updateHScrollState:function(){if(this.hasHScroll=!0,this.updateScrollPaneHiddenState(),this.updateHScrollByScrollPaneHidden(),this.scrollPaneHidden)return;this.containerWidth-this.columnsWidth>=0&&(this.hasHScroll=!1)},getScrollPaneCurrentWidth:function(){return this.frozenInfo.right?this.bodyWidth-this.columnsWidthR:this.bodyWidth-this.columnsWidthL},updateHScrollByScrollPaneHidden:function(){if(this.scrollPaneHidden){this.hasHScroll=!1;this.getScrollPaneCurrentWidth()=this.totalRowsHeight&&(this.hasVScroll=!1)}},updateBlankColumnWidth:function(){let t=this.containerWidth-this.columnsWidth;!this.hasVScroll||this.hasHScroll||this.options.scrollbarFade||(t-=this.scrollbarSizeV),this.scrollPaneHidden&&(t=0),this.hasHScroll||(t>=0?(this.frozenInfo.columns?this.columnsWidthR+=t:this.columnsWidthL+=t,this.blankColumn.tg_width=t):this.hasHScroll=!0)}},$t={scrollToRow:function(t){const e=this.getRowItem(t);return this.scrollToItem(e,null),this},scrollToColumn:function(t){const e=this.getColumnItem(t);return this.scrollToItem(null,e),this},scrollToCell:function(t,e){const i=this.getRowItem(t),o=this.getColumnItem(e);return this.scrollToItem(i,o),this},scrollToFirstRow:function(){return this.setScrollTop(0),this},scrollToLastRow:function(){const t=this.getViewRows(),e=t[t.length-1],i=this.getScrollRowPosition(e);if(d.isNum(i))return this.setScrollTop(i),this},scrollToFirstColumn:function(){return this.setScrollLeft(0),this},scrollToLastColumn:function(t){const e=this.getViewColumns();let i=e[e.length-2];t&&(i=e[e.length-1]);const o=this.getScrollColumnPosition(i);if(d.isNum(o))return this.setScrollLeft(o),this},scrollRowIntoView:function(t){const e=this.getRowItem(t);return this.scrollItemIntoView(e,null),this},scrollColumnIntoView:function(t){const e=this.getColumnItem(t);return this.scrollItemIntoView(null,e),this},scrollCellIntoView:function(t,e){const i=this.getRowItem(t),o=this.getColumnItem(e);return this.scrollItemIntoView(i,o),this},setScroll:function(t,e){return t===this.scrollLeft&&e===this.scrollTop||(this.scrollLeft=t,this.scrollTop=e,this.scrollHandler()),this},setScrollLeft:function(t){return t===this.scrollLeft||(this.scrollLeft=t,this.scrollHandler()),this},setScrollTop:function(t){return t===this.scrollTop||(this.scrollTop=t,this.scrollHandler()),this},getScrollRowPosition:function(t){if(!t)return;let e=t.tg_view_index;return e-=this.frozenInfo.rows,e>=0?this.getRowTop(t):void 0},getScrollColumnPosition:function(t){if(!t)return;let e=t.tg_left;return this.frozenInfo.columns&&(e-=this.bodyWidthL),e>=0?e:void 0},scrollToItem:function(t,e){return this.scrollToChanged=!1,this.scrollToRowHandler(t),this.scrollToColumnHandler(e),this.scrollToChanged?(this.scrollHandler(),this):this},scrollToRowHandler:function(t){if(!t)return;const e=this.getScrollRowPosition(t);d.isNum(e)&&e!==this.scrollTop&&(this.scrollTop=e,this.scrollToChanged=!0)},scrollToColumnHandler:function(t){if(!t)return;const e=this.getScrollColumnPosition(t);d.isNum(e)&&e!==this.scrollLeft&&(this.scrollLeft=e,this.scrollToChanged=!0)},scrollItemIntoView:function(t,e){return this.scrollIntoViewChanged=!1,this.scrollRowIntoViewHandler(t),this.scrollColumnIntoViewHandler(e),this.scrollIntoViewChanged?(this.scrollHandler(),this):this},scrollRowIntoViewHandler:function(t){if(!t)return;const e=this.getScrollRowPosition(t);if(!d.isNum(e))return;if(ethis.scrollTop+o){const t=e-(o-i);this.scrollTop=t,this.scrollIntoViewChanged=!0}},scrollColumnIntoViewHandler:function(t){if(!t)return;const e=this.getScrollColumnPosition(t);if(!d.isNum(e))return;if(ethis.scrollLeft+o){const t=e-(o-i);this.scrollLeft=t,this.scrollIntoViewChanged=!0}},scrollOnInit:function(){const{scrollLeft:t,scrollTop:e,scrollColumn:i,scrollRow:o}=this.renderSettings;this.scrollIntoViewChanged=!1,Number.isInteger(t)&&t!==this.scrollLeft&&(this.scrollLeft=t,this.scrollIntoViewChanged=!0),Number.isInteger(e)&&e!==this.scrollTop&&(this.scrollTop=e,this.scrollIntoViewChanged=!0),i&&this.scrollColumnIntoViewHandler(i),o&&this.scrollRowIntoViewHandler(o),this.scrollIntoViewChanged&&this.scrollPane.setPosition(this.scrollLeft,this.scrollTop)},scrollHandler:function(){this.scrollPane.setPosition(this.scrollLeft,this.scrollTop),this.scrollRenderHandler()},scrollRenderHandler:function(){this.previousScrollLeft===this.scrollLeft&&this.previousScrollTop===this.scrollTop||(this.previousScrollLeft=this.scrollLeft,this.previousScrollTop=this.scrollTop,this.onNextUpdated((()=>{this.updateScrollPaneFade(!0),this.trigger(y.onScroll,{scrollLeft:this.scrollLeft,scrollTop:this.scrollTop})})),this.render())},scrollTouchStartHandler:function(t,e){this.hideColumnLine(),this.scrollTouchLeft=this.getScrollLeft(),this.scrollTouchTop=this.getScrollTop(),this.scrollMaxTouchLeft=this.getMaxScrollLeft(),this.scrollMaxTouchTop=this.getMaxScrollTop()},getTouchOrientation:function(t){return t.orientation?t.orientation:[e.LEFT,e.RIGHT].includes(t.direction)?(t.orientation||(t.orientation="Y"),t.orientation):[e.UP,e.DOWN].includes(t.direction)?(t.orientation||(t.orientation="X"),t.orientation):void 0},scrollTouchMoveHandler:function(t,e){if(e.touchLength>1)return;let i=e.offsetX,o=e.offsetY;const n=this.getTouchOrientation(e);"X"===n?i=0:"Y"===n&&(o=0);let s=this.scrollTouchLeft-i,r=this.scrollTouchTop-o;s=d.clamp(s,0,this.scrollMaxTouchLeft),r=d.clamp(r,0,this.scrollMaxTouchTop);let l=!1;this.scrollPaneHidden&&(l=this.scrollPaneFrozen.setOffsetH(-e.moveX),s=0);const h=this.getScrollLeft(),a=this.getScrollTop();(s!==h||r!==a||l)&&(d.preventDefault(e.e),this.setScroll(s,r))},scrollTouchEndHandler:function(){this.protectedItem=null},scrollTouchInertiaHandler:function(t,e){const i=this.getScrollLeft(),o=this.getScrollTop(),n=i-e.touchInertiaX,s=o-e.touchInertiaY;this.setScroll(n,s)},getScrollViewWidth:function(){let t=this.getScrollPaneWidth();return this.frozenInfo.right||(t-=this.getScrollbarWidth()),t},getScrollViewHeight:function(){let t=this.getScrollPaneHeight();return this.frozenInfo.bottom||(t-=this.getScrollbarHeight()),t},getScrollPaneWidth:function(){return this.scrollPane.width()},getScrollPaneHeight:function(){return this.scrollPane.height()},getScrollbarWidth:function(){return this.hasVScroll&&!this.options.scrollbarFade?this.scrollbarSizeV:0},getScrollbarHeight:function(){return this.hasHScroll&&!this.options.scrollbarFade?this.scrollbarSizeH:0},getScrollLeft:function(){return this.scrollPane.getScrollLeft()},getScrollTop:function(){return this.scrollPane.getScrollTop()},getMaxScrollLeft:function(){return this.scrollPane.getMaxScrollLeft()},getMaxScrollTop:function(){return this.scrollPane.getMaxScrollTop()}};class Dt{constructor(t){this.options=this.generateOptions(t)}generateOptions(t){return d.merge({ignore:null,sortField:"",sortFactor:1,sortBlankFactor:1,sortComparer:null},t)}sortList(t){if(!d.isList(t)||1===t.length)return!1;this.ignoreExcludeHandler(t);const e=this.comparerHandler(t);return this.ignoreIncludeHandler(t),e}getDefaultComparer(t){return(ft[t]||ft.string).bind(this)}comparerHandler(t){const e=this.options,i=e.sortField,o=e.sortFactor,n=e.sortBlankFactor,s=e.sortComparer;return"function"==typeof s&&(t.sort(((t,e)=>s.call(this,t,e,{sortField:i,sortFactor:o,sortBlankFactor:n}))),!0)}ignoreExcludeHandler(t){const e=this.options.ignore;this.ignoreListTop=[],this.ignoreListBottom=[];const i=[];for(let o=0,n=t.length;o{t.unshift(e.item)})),this.ignoreListBottom.forEach((e=>{t.push(e.item)}))}}const Bt={removeSortColumn:function(){return this.sortColumn=null,this.$header&&this.$header.find(".tg-column-sorted").removeClass("tg-column-sorted"),this},setSortColumn:function(t){if(!(t=this.getColumnItem(t)))return;if(!this.isColumnSortable(t))return;t===this.sortColumn?t.sortAsc=!t.sortAsc:d.hasOwn(t,"sortAsc")||(t.sortAsc=this.options.sortAsc),this.sortColumn=t;if(this.getRowsLength()-this.frozenInfo.rows<2)return;if(!this.headerCreated)return;this.updateRowsSort()&&(this.renderHeaderSort(),this.flushSort(),this.render("rows"))},renderHeaderSort:function(){const t=this.sortColumn;if(!t)return this;if(!this.isColumnSortable(t))return this;this.$header.find(".tg-column-sorted").removeClass("tg-column-sorted");const e=t.tg_view_index,i=this.$header.find(`.tg-header-item[column='${e}']`).find(".tg-column-header").addClass("tg-column-sorted");return t.sortAsc?i.removeClass("tg-sort-desc").addClass("tg-sort-asc"):i.removeClass("tg-sort-asc").addClass("tg-sort-desc"),this},getSortComparer:function(t){const e=t.comparer;if("function"==typeof e)return e;const i=this.options.sortComparers,o=i[e||t.type];return"function"==typeof o?o:i.string},updateRowsSort:function(){const t=this.sortColumn;if(!t)return!1;const e=t.id;return!!e&&this.sortRows(e,t)},sortRows:function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=e.sortAsc?-1:1,o=this.options.sortBlankValueBottom?1:i,n=this.getSortComparer(e);let s=!1;const r=new Dt({ignore:function(t){return t.tg_frozen?{item:t,top:!0}:t.sortFixed?{item:t,top:"top"===t.sortFixed}:void 0},sortField:t,sortFactor:i,sortBlankFactor:o,sortComparer:n}),l=function(t){r.sortList(t)&&(s=!0),t.forEach((function(t,e){t.tg_sub_index=e,t.subs&&l(t.subs)}))};return l(this.rows),s&&this.initRowsHandler(),s}},At={default:{},lightblue:{rowHeight:35,scrollbarSize:10,scrollbarRound:!0},dark:{}},Wt={getAllThemes:function(){return Object.keys(At)},getThemeOptions:function(t){return At[t]}},Ft={update:function(){return this.flushBody(),this.render("rows"),this},updateRow:function(t,e){const i=this.getRowItem(t);if(!i)return this;if(e&&"object"==typeof e){const t=this.getItemSnapshot(e);Object.keys(t).forEach((function(e){i[e]=t[e]}))}return this.flushRow(i.tg_view_index),this.render("rows"),this},updateCell:function(t,e,i){const o=this.getRowItem(t);if(!o)return this;const n=this.getColumnItem(e);return n?(arguments.length>2&&(o[n.id]=i),this.flushCell(o.tg_view_index,n.tg_view_index),this.render("rows"),this):this},onNextUpdated:function(t){return"function"!=typeof t||this.once(y.onUpdated,t),this}},Gt={getViewport:function(){this.scrollLeft=this.getScrollLeft(),this.scrollTop=this.getScrollTop();return{rows:this.getViewportRows(),columns:this.getViewportColumns()}},getViewportRows:function(){const t=[],e=this.viewRows,i=e.length;if(!i)return t;let o=this.options.rowCacheLength;o=d.clamp(d.toNum(o,!0),0,i);const n=this.frozenInfo.rows;if(n){let e=0;for(;e1;){const n=Math.floor(.5*(e+i)),s=t[n],r=this.getRowTop(s),l=this.getRowHeight(s);if(or+l))return n;e=n}}const n=t[i];return o=e)return[];const i=[],o=this.frozenInfo.columns,n=this.viewColumns;for(let s=o,r=n.length;s0;){const n=t[0]-1;n>o&&t.unshift(n);const s=t[t.length-1]+1;si)&&!(n0&&(e.rows.length=o),i=t.options}return this.data=e,this.dataOptions=i,this}setDataSnapshot(t){return this.setData(this.generateDataSnapshot(t)),this}getData(){return this.data}toString(){return"[object Grid]"}}var Ut;Ut=jt.prototype,[v,R,S,T,E,I,L,x,z,F,G,j,K,q,J,Z,tt,et,pt,mt,bt,wt,vt,Ht,{keyTabHandler:function(t){},keyEnterHandler:function(t){},keyEscHandler:function(t){},keyPageUpHandler:function(t){return this.scrollPane.keyPageUpHandler(t)},keyPageDownHandler:function(t){return this.scrollPane.keyPageDownHandler(t)},keyEndHandler:function(t){return this.scrollPane.keyEndHandler(t)},keyHomeHandler:function(t){return this.scrollPane.keyHomeHandler(t)},keyLeftHandler:function(t){return this.scrollPaneHidden?this.scrollPaneFrozen.keyLeftHandler(t):this.scrollPane.keyLeftHandler(t)},keyUpHandler:function(t){return this.scrollPane.keyUpHandler(t)},keyRightHandler:function(t){return this.scrollPaneHidden?this.scrollPaneFrozen.keyRightHandler(t):this.scrollPane.keyRightHandler(t)},keyDownHandler:function(t){return this.scrollPane.keyDownHandler(t)}},Ct,yt,Rt,St,Tt,{showRow:function(t){return this.updateRowsInvisible(this.toRowItemList(t),!1)},hideRow:function(t){return this.updateRowsInvisible(this.toRowItemList(t),!0)},updateRowsInvisible:function(t,e){if(!t.length)return!1;const i=[];return t.forEach((t=>{t.invisible!==e&&(t.invisible=e,t.tg_invisible=e,i.push(t))})),!!i.length&&(this.update(),!0)}},Et,It,Lt,xt,zt,Vt,Ot,$t,Bt,Wt,Ft,Gt].forEach((t=>{for(const e in t){if(d.hasOwn(Ut,e))throw new Error(`ERROR: extends with an existing key: "${e}"`);Ut[e]=t[e]}}));const Xt=jt,Yt=e.VERSION,Kt=e.TIMESTAMP,qt={VERSION:Yt,TIMESTAMP:Kt,Grid:Xt,$:w,CONST:e,EventBase:k,Icon:X,Motion:B,ScrollPane:kt,Util:d}})();var n=o.$,s=o.MP,r=o._d,l=o.xA,h=o.In,a=o.T8,c=o.Gr,d=o.ht,u=o.J0,g=o.xv,f=o.Ay;export{n as $,s as CONST,r as EventBase,l as Grid,h as Icon,a as Motion,c as ScrollPane,d as TIMESTAMP,u as Util,g as VERSION,f as default};
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/json-checker.py b/custom_nodes/ComfyUI-Manager/json-checker.py
new file mode 100644
index 000000000..a6c1317ff
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/json-checker.py
@@ -0,0 +1,23 @@
+import json
+import argparse
+
+def check_json_syntax(file_path):
+ try:
+ with open(file_path, 'r') as file:
+ json_str = file.read()
+ json.loads(json_str)
+ print(f"[ OK ] {file_path}")
+ except json.JSONDecodeError as e:
+ print(f"[FAIL] {file_path}\n\n {e}\n")
+ except FileNotFoundError:
+ print(f"[FAIL] {file_path}\n\n File not found\n")
+
+def main():
+ parser = argparse.ArgumentParser(description="JSON File Syntax Checker")
+ parser.add_argument("file_path", type=str, help="Path to the JSON file for syntax checking")
+
+ args = parser.parse_args()
+ check_json_syntax(args.file_path)
+
+if __name__ == "__main__":
+ main()
diff --git a/custom_nodes/ComfyUI-Manager/misc/Impact.pack b/custom_nodes/ComfyUI-Manager/misc/Impact.pack
new file mode 100644
index 000000000..93fd32847
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/misc/Impact.pack
@@ -0,0 +1,444 @@
+{
+ "Impact::MAKE_BASIC_PIPE": {
+ "category": "",
+ "config": {
+ "1": {
+ "input": {
+ "text": {
+ "name": "Positive prompt"
+ }
+ }
+ },
+ "2": {
+ "input": {
+ "text": {
+ "name": "Negative prompt"
+ }
+ }
+ }
+ },
+ "datetime": 1705418802481,
+ "external": [],
+ "links": [
+ [
+ 0,
+ 1,
+ 1,
+ 0,
+ 1,
+ "CLIP"
+ ],
+ [
+ 0,
+ 1,
+ 2,
+ 0,
+ 1,
+ "CLIP"
+ ],
+ [
+ 0,
+ 0,
+ 3,
+ 0,
+ 1,
+ "MODEL"
+ ],
+ [
+ 0,
+ 1,
+ 3,
+ 1,
+ 1,
+ "CLIP"
+ ],
+ [
+ 0,
+ 2,
+ 3,
+ 2,
+ 1,
+ "VAE"
+ ],
+ [
+ 1,
+ 0,
+ 3,
+ 3,
+ 3,
+ "CONDITIONING"
+ ],
+ [
+ 2,
+ 0,
+ 3,
+ 4,
+ 4,
+ "CONDITIONING"
+ ]
+ ],
+ "nodes": [
+ {
+ "flags": {},
+ "index": 0,
+ "mode": 0,
+ "order": 0,
+ "outputs": [
+ {
+ "links": [],
+ "name": "MODEL",
+ "shape": 3,
+ "slot_index": 0,
+ "type": "MODEL"
+ },
+ {
+ "links": [],
+ "name": "CLIP",
+ "shape": 3,
+ "slot_index": 1,
+ "type": "CLIP"
+ },
+ {
+ "links": [],
+ "name": "VAE",
+ "shape": 3,
+ "slot_index": 2,
+ "type": "VAE"
+ }
+ ],
+ "pos": [
+ 550,
+ 360
+ ],
+ "properties": {
+ "Node name for S&R": "CheckpointLoaderSimple"
+ },
+ "size": {
+ "0": 315,
+ "1": 98
+ },
+ "type": "CheckpointLoaderSimple",
+ "widgets_values": [
+ "SDXL/sd_xl_base_1.0_0.9vae.safetensors"
+ ]
+ },
+ {
+ "flags": {},
+ "index": 1,
+ "inputs": [
+ {
+ "link": null,
+ "name": "clip",
+ "type": "CLIP"
+ }
+ ],
+ "mode": 0,
+ "order": 1,
+ "outputs": [
+ {
+ "links": [],
+ "name": "CONDITIONING",
+ "shape": 3,
+ "slot_index": 0,
+ "type": "CONDITIONING"
+ }
+ ],
+ "pos": [
+ 940,
+ 480
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "size": {
+ "0": 263,
+ "1": 99
+ },
+ "title": "Positive",
+ "type": "CLIPTextEncode",
+ "widgets_values": [
+ ""
+ ]
+ },
+ {
+ "flags": {},
+ "index": 2,
+ "inputs": [
+ {
+ "link": null,
+ "name": "clip",
+ "type": "CLIP"
+ }
+ ],
+ "mode": 0,
+ "order": 2,
+ "outputs": [
+ {
+ "links": [],
+ "name": "CONDITIONING",
+ "shape": 3,
+ "slot_index": 0,
+ "type": "CONDITIONING"
+ }
+ ],
+ "pos": [
+ 940,
+ 640
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "size": {
+ "0": 263,
+ "1": 99
+ },
+ "title": "Negative",
+ "type": "CLIPTextEncode",
+ "widgets_values": [
+ ""
+ ]
+ },
+ {
+ "flags": {},
+ "index": 3,
+ "inputs": [
+ {
+ "link": null,
+ "name": "model",
+ "type": "MODEL"
+ },
+ {
+ "link": null,
+ "name": "clip",
+ "type": "CLIP"
+ },
+ {
+ "link": null,
+ "name": "vae",
+ "type": "VAE"
+ },
+ {
+ "link": null,
+ "name": "positive",
+ "type": "CONDITIONING"
+ },
+ {
+ "link": null,
+ "name": "negative",
+ "type": "CONDITIONING"
+ }
+ ],
+ "mode": 0,
+ "order": 3,
+ "outputs": [
+ {
+ "links": null,
+ "name": "basic_pipe",
+ "shape": 3,
+ "slot_index": 0,
+ "type": "BASIC_PIPE"
+ }
+ ],
+ "pos": [
+ 1320,
+ 360
+ ],
+ "properties": {
+ "Node name for S&R": "ToBasicPipe"
+ },
+ "size": {
+ "0": 241.79998779296875,
+ "1": 106
+ },
+ "type": "ToBasicPipe"
+ }
+ ],
+ "packname": "Impact",
+ "version": "1.0"
+ },
+ "Impact::SIMPLE_DETAILER_PIPE": {
+ "category": "",
+ "config": {
+ "0": {
+ "output": {
+ "0": {
+ "visible": false
+ },
+ "1": {
+ "visible": false
+ }
+ }
+ },
+ "2": {
+ "input": {
+ "Select to add LoRA": {
+ "visible": false
+ },
+ "Select to add Wildcard": {
+ "visible": false
+ },
+ "wildcard": {
+ "visible": false
+ }
+ }
+ }
+ },
+ "datetime": 1705419147116,
+ "external": [],
+ "links": [
+ [
+ null,
+ 0,
+ 2,
+ 0,
+ 6,
+ "BASIC_PIPE"
+ ],
+ [
+ 0,
+ 0,
+ 2,
+ 1,
+ 13,
+ "BBOX_DETECTOR"
+ ],
+ [
+ 1,
+ 0,
+ 2,
+ 2,
+ 15,
+ "SAM_MODEL"
+ ]
+ ],
+ "nodes": [
+ {
+ "flags": {},
+ "index": 0,
+ "mode": 0,
+ "order": 2,
+ "outputs": [
+ {
+ "links": [],
+ "name": "BBOX_DETECTOR",
+ "shape": 3,
+ "type": "BBOX_DETECTOR"
+ },
+ {
+ "links": null,
+ "name": "SEGM_DETECTOR",
+ "shape": 3,
+ "type": "SEGM_DETECTOR"
+ }
+ ],
+ "pos": [
+ 590,
+ 830
+ ],
+ "properties": {
+ "Node name for S&R": "UltralyticsDetectorProvider"
+ },
+ "size": {
+ "0": 315,
+ "1": 78
+ },
+ "type": "UltralyticsDetectorProvider",
+ "widgets_values": [
+ "bbox/Eyeful_v1.pt"
+ ]
+ },
+ {
+ "flags": {},
+ "index": 1,
+ "mode": 0,
+ "order": 3,
+ "outputs": [
+ {
+ "links": [],
+ "name": "SAM_MODEL",
+ "shape": 3,
+ "type": "SAM_MODEL"
+ }
+ ],
+ "pos": [
+ 590,
+ 960
+ ],
+ "properties": {
+ "Node name for S&R": "SAMLoader"
+ },
+ "size": {
+ "0": 315,
+ "1": 82
+ },
+ "type": "SAMLoader",
+ "widgets_values": [
+ "sam_vit_b_01ec64.pth",
+ "AUTO"
+ ]
+ },
+ {
+ "flags": {},
+ "index": 2,
+ "inputs": [
+ {
+ "link": null,
+ "name": "basic_pipe",
+ "type": "BASIC_PIPE"
+ },
+ {
+ "link": null,
+ "name": "bbox_detector",
+ "slot_index": 1,
+ "type": "BBOX_DETECTOR"
+ },
+ {
+ "link": null,
+ "name": "sam_model_opt",
+ "slot_index": 2,
+ "type": "SAM_MODEL"
+ },
+ {
+ "link": null,
+ "name": "segm_detector_opt",
+ "type": "SEGM_DETECTOR"
+ },
+ {
+ "link": null,
+ "name": "detailer_hook",
+ "type": "DETAILER_HOOK"
+ }
+ ],
+ "mode": 0,
+ "order": 5,
+ "outputs": [
+ {
+ "links": null,
+ "name": "detailer_pipe",
+ "shape": 3,
+ "type": "DETAILER_PIPE"
+ }
+ ],
+ "pos": [
+ 1044,
+ 812
+ ],
+ "properties": {
+ "Node name for S&R": "BasicPipeToDetailerPipe"
+ },
+ "size": {
+ "0": 400,
+ "1": 204
+ },
+ "type": "BasicPipeToDetailerPipe",
+ "widgets_values": [
+ "",
+ "Select the LoRA to add to the text",
+ "Select the Wildcard to add to the text"
+ ]
+ }
+ ],
+ "packname": "Impact",
+ "version": "1.0"
+ }
+}
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/misc/custom-nodes.jpg b/custom_nodes/ComfyUI-Manager/misc/custom-nodes.jpg
new file mode 100644
index 000000000..74c2a8bf5
Binary files /dev/null and b/custom_nodes/ComfyUI-Manager/misc/custom-nodes.jpg differ
diff --git a/custom_nodes/ComfyUI-Manager/misc/main.jpg b/custom_nodes/ComfyUI-Manager/misc/main.jpg
new file mode 100644
index 000000000..ec31f76fc
Binary files /dev/null and b/custom_nodes/ComfyUI-Manager/misc/main.jpg differ
diff --git a/custom_nodes/ComfyUI-Manager/misc/menu.jpg b/custom_nodes/ComfyUI-Manager/misc/menu.jpg
new file mode 100644
index 000000000..c83540a9d
Binary files /dev/null and b/custom_nodes/ComfyUI-Manager/misc/menu.jpg differ
diff --git a/custom_nodes/ComfyUI-Manager/misc/missing-list.jpg b/custom_nodes/ComfyUI-Manager/misc/missing-list.jpg
new file mode 100644
index 000000000..ead976372
Binary files /dev/null and b/custom_nodes/ComfyUI-Manager/misc/missing-list.jpg differ
diff --git a/custom_nodes/ComfyUI-Manager/misc/missing-menu.jpg b/custom_nodes/ComfyUI-Manager/misc/missing-menu.jpg
new file mode 100644
index 000000000..455ea6fc0
Binary files /dev/null and b/custom_nodes/ComfyUI-Manager/misc/missing-menu.jpg differ
diff --git a/custom_nodes/ComfyUI-Manager/misc/models.png b/custom_nodes/ComfyUI-Manager/misc/models.png
new file mode 100644
index 000000000..9e985fb49
Binary files /dev/null and b/custom_nodes/ComfyUI-Manager/misc/models.png differ
diff --git a/custom_nodes/ComfyUI-Manager/misc/nickname.jpg b/custom_nodes/ComfyUI-Manager/misc/nickname.jpg
new file mode 100644
index 000000000..e3cfdcac5
Binary files /dev/null and b/custom_nodes/ComfyUI-Manager/misc/nickname.jpg differ
diff --git a/custom_nodes/ComfyUI-Manager/misc/portable-install.png b/custom_nodes/ComfyUI-Manager/misc/portable-install.png
new file mode 100644
index 000000000..177174513
Binary files /dev/null and b/custom_nodes/ComfyUI-Manager/misc/portable-install.png differ
diff --git a/custom_nodes/ComfyUI-Manager/misc/share-setting.jpg b/custom_nodes/ComfyUI-Manager/misc/share-setting.jpg
new file mode 100644
index 000000000..631794a38
Binary files /dev/null and b/custom_nodes/ComfyUI-Manager/misc/share-setting.jpg differ
diff --git a/custom_nodes/ComfyUI-Manager/misc/share.jpg b/custom_nodes/ComfyUI-Manager/misc/share.jpg
new file mode 100644
index 000000000..97c0ae7de
Binary files /dev/null and b/custom_nodes/ComfyUI-Manager/misc/share.jpg differ
diff --git a/custom_nodes/ComfyUI-Manager/misc/snapshot.jpg b/custom_nodes/ComfyUI-Manager/misc/snapshot.jpg
new file mode 100644
index 000000000..33269564b
Binary files /dev/null and b/custom_nodes/ComfyUI-Manager/misc/snapshot.jpg differ
diff --git a/custom_nodes/ComfyUI-Manager/model-list.json b/custom_nodes/ComfyUI-Manager/model-list.json
new file mode 100644
index 000000000..a09be8633
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/model-list.json
@@ -0,0 +1,3364 @@
+{
+ "models": [
+ {
+ "name": "TAESD3 Decoder",
+ "type": "TAESD",
+ "base": "SDXL",
+ "save_path": "vae_approx",
+ "description": "(SD3 Verison) To view the preview in high quality while running samples in ComfyUI, you will need this model.",
+ "reference": "https://github.com/madebyollin/taesd",
+ "filename": "taesd3_decoder.pth",
+ "url": "https://github.com/madebyollin/taesd/raw/main/taesd3_decoder.pth",
+ "size": "4.94MB"
+ },
+ {
+ "name": "TAESD3 Encoder",
+ "type": "TAESD",
+ "base": "SDXL",
+ "save_path": "vae_approx",
+ "description": "(SD3 Verison) To view the preview in high quality while running samples in ComfyUI, you will need this model.",
+ "reference": "https://github.com/madebyollin/taesd",
+ "filename": "taesd3_encoder.pth",
+ "url": "https://github.com/madebyollin/taesd/raw/main/taesd3_encoder.pth",
+ "size": "4.94MB"
+ },
+ {
+ "name": "TAESDXL Decoder",
+ "type": "TAESD",
+ "base": "SDXL",
+ "save_path": "vae_approx",
+ "description": "(SDXL Verison) To view the preview in high quality while running samples in ComfyUI, you will need this model.",
+ "reference": "https://github.com/madebyollin/taesd",
+ "filename": "taesdxl_decoder.pth",
+ "url": "https://github.com/madebyollin/taesd/raw/main/taesdxl_decoder.pth",
+ "size": "4.91MB"
+ },
+ {
+ "name": "TAESDXL Encoder",
+ "type": "TAESD",
+ "base": "SDXL",
+ "save_path": "vae_approx",
+ "description": "(SDXL Verison) To view the preview in high quality while running samples in ComfyUI, you will need this model.",
+ "reference": "https://github.com/madebyollin/taesd",
+ "filename": "taesdxl_encoder.pth",
+ "url": "https://github.com/madebyollin/taesd/raw/main/taesdxl_encoder.pth",
+ "size": "4.91MB"
+ },
+ {
+ "name": "TAESD Decoder",
+ "type": "TAESD",
+ "base": "SD1.x",
+ "save_path": "vae_approx",
+ "description": "To view the preview in high quality while running samples in ComfyUI, you will need this model.",
+ "reference": "https://github.com/madebyollin/taesd",
+ "filename": "taesd_decoder.pth",
+ "url": "https://github.com/madebyollin/taesd/raw/main/taesd_decoder.pth",
+ "size": "4.91MB"
+ },
+ {
+ "name": "TAESD Encoder",
+ "type": "TAESD",
+ "base": "SD1.x",
+ "save_path": "vae_approx",
+ "description": "To view the preview in high quality while running samples in ComfyUI, you will need this model.",
+ "reference": "https://github.com/madebyollin/taesd",
+ "filename": "taesd_encoder.pth",
+ "url": "https://github.com/madebyollin/taesd/raw/main/taesd_encoder.pth",
+ "size": "4.91MB"
+ },
+ {
+ "name": "RealESRGAN x2",
+ "type": "upscale",
+ "base": "upscale",
+ "save_path": "default",
+ "description": "RealESRGAN x2 upscaler model",
+ "reference": "https://huggingface.co/ai-forever/Real-ESRGAN",
+ "filename": "RealESRGAN_x2.pth",
+ "url": "https://huggingface.co/ai-forever/Real-ESRGAN/resolve/main/RealESRGAN_x2.pth",
+ "size": "67.1MB"
+ },
+ {
+ "name": "RealESRGAN x4",
+ "type": "upscale",
+ "base": "upscale",
+ "save_path": "default",
+ "description": "RealESRGAN x4 upscaler model",
+ "reference": "https://huggingface.co/ai-forever/Real-ESRGAN",
+ "filename": "RealESRGAN_x4.pth",
+ "url": "https://huggingface.co/ai-forever/Real-ESRGAN/resolve/main/RealESRGAN_x4.pth",
+ "size": "67.0MB"
+ },
+ {
+ "name": "ESRGAN x4",
+ "type": "upscale",
+ "base": "upscale",
+ "save_path": "default",
+ "description": "ESRGAN x4 upscaler model",
+ "reference": "https://huggingface.co/Afizi/ESRGAN_4x.pth",
+ "filename": "ESRGAN_4x.pth",
+ "url": "https://huggingface.co/Afizi/ESRGAN_4x.pth/resolve/main/ESRGAN_4x.pth",
+ "size": "66.9MB"
+ },
+ {
+ "name": "4x_foolhardy_Remacri",
+ "type": "upscale",
+ "base": "upscale",
+ "save_path": "default",
+ "description": "4x_foolhardy_Remacri upscaler model",
+ "reference": "https://huggingface.co/FacehugmanIII/4x_foolhardy_Remacri",
+ "filename": "4x_foolhardy_Remacri.pth",
+ "url": "https://huggingface.co/FacehugmanIII/4x_foolhardy_Remacri/resolve/main/4x_foolhardy_Remacri.pth",
+ "size": "67.0MB"
+ },
+ {
+ "name": "4x-AnimeSharp",
+ "type": "upscale",
+ "base": "upscale",
+ "save_path": "default",
+ "description": "4x-AnimeSharp upscaler model",
+ "reference": "https://huggingface.co/Kim2091/AnimeSharp/",
+ "filename": "4x-AnimeSharp.pth",
+ "url": "https://huggingface.co/Kim2091/AnimeSharp/resolve/main/4x-AnimeSharp.pth",
+ "size": "67.0MB"
+ },
+ {
+ "name": "4x-UltraSharp",
+ "type": "upscale",
+ "base": "upscale",
+ "save_path": "default",
+ "description": "4x-UltraSharp upscaler model",
+ "reference": "https://huggingface.co/Kim2091/UltraSharp/",
+ "filename": "4x-UltraSharp.pth",
+ "url": "https://huggingface.co/Kim2091/UltraSharp/resolve/main/4x-UltraSharp.pth",
+ "size": "67.0MB"
+ },
+ {
+ "name": "4x_NMKD-Siax_200k",
+ "type": "upscale",
+ "base": "upscale",
+ "save_path": "default",
+ "description": "4x_NMKD-Siax_200k upscaler model",
+ "reference": "https://huggingface.co/gemasai/4x_NMKD-Siax_200k",
+ "filename": "4x_NMKD-Siax_200k.pth",
+ "url": "https://huggingface.co/gemasai/4x_NMKD-Siax_200k/resolve/main/4x_NMKD-Siax_200k.pth",
+ "size": "67.0MB"
+ },
+ {
+ "name": "8x_NMKD-Superscale_150000_G",
+ "type": "upscale",
+ "base": "upscale",
+ "save_path": "default",
+ "description": "8x_NMKD-Superscale_150000_G upscaler model",
+ "reference": "https://huggingface.co/uwg/upscaler",
+ "filename": "8x_NMKD-Superscale_150000_G.pth",
+ "url": "https://huggingface.co/uwg/upscaler/resolve/main/ESRGAN/8x_NMKD-Superscale_150000_G.pth",
+ "size": "67.1MB"
+ },
+ {
+ "name": "8x_NMKD-Faces_160000_G",
+ "type": "upscale",
+ "base": "upscale",
+ "save_path": "default",
+ "description": "8x_NMKD-Faces_160000_G upscaler model",
+ "reference": "https://huggingface.co/gemasai/8x_NMKD-Faces_160000_G/tree/main",
+ "filename": "8x_NMKD-Faces_160000_G.pth",
+ "url": "https://huggingface.co/gemasai/8x_NMKD-Faces_160000_G/resolve/main/8x_NMKD-Faces_160000_G.pth",
+ "size": "67.2MB"
+ },
+ {
+ "name": "LDSR(Latent Diffusion Super Resolution)",
+ "type": "upscale",
+ "base": "upscale",
+ "save_path": "upscale_models/ldsr",
+ "description": "LDSR upscale model. Through the [a/ComfyUI-Flowty-LDSR](https://github.com/flowtyone/ComfyUI-Flowty-LDSR) extension, the upscale model can be utilized.",
+ "reference": "https://github.com/CompVis/latent-diffusion",
+ "filename": "last.ckpt",
+ "url": "https://heibox.uni-heidelberg.de/f/578df07c8fc04ffbadf3/?dl=1",
+ "size": "2.04GB"
+ },
+ {
+ "name": "stabilityai/stable-diffusion-x4-upscaler",
+ "type": "checkpoints",
+ "base": "upscale",
+ "save_path": "checkpoints/upscale",
+ "description": "This upscaling model is a latent text-guided diffusion model and should be used with SD_4XUpscale_Conditioning and KSampler.",
+ "reference": "https://huggingface.co/stabilityai/stable-diffusion-x4-upscaler",
+ "filename": "x4-upscaler-ema.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-diffusion-x4-upscaler/resolve/main/x4-upscaler-ema.safetensors",
+ "size": "3.53GB"
+ },
+ {
+ "name": "Inswapper-fp16 (face swap)",
+ "type": "insightface",
+ "base": "inswapper",
+ "save_path": "insightface",
+ "description": "Checkpoint of the insightface swapper model\n(used by ComfyUI-FaceSwap, comfyui-reactor-node, CharacterFaceSwap,\nComfyUI roop and comfy_mtb)",
+ "reference": "https://github.com/facefusion/facefusion-assets",
+ "filename": "inswapper_128_fp16.onnx",
+ "url": "https://github.com/facefusion/facefusion-assets/releases/download/models/inswapper_128_fp16.onnx",
+ "size": "277.7MB"
+ },
+ {
+ "name": "Inswapper (face swap)",
+ "type": "insightface",
+ "base": "inswapper",
+ "save_path": "insightface",
+ "description": "Checkpoint of the insightface swapper model\n(used by ComfyUI-FaceSwap, comfyui-reactor-node, CharacterFaceSwap,\nComfyUI roop and comfy_mtb)",
+ "reference": "https://github.com/facefusion/facefusion-assets",
+ "filename": "inswapper_128.onnx",
+ "url": "https://github.com/facefusion/facefusion-assets/releases/download/models/inswapper_128.onnx",
+ "size": "555.3MB"
+ },
+ {
+ "name": "Deepbump",
+ "type": "deepbump",
+ "base": "deepbump",
+ "save_path": "deepbump",
+ "description": "Checkpoint of the deepbump model to generate height and normal maps textures from an image (requires comfy_mtb)",
+ "reference": "https://github.com/HugoTini/DeepBump",
+ "filename": "deepbump256.onnx",
+ "url": "https://github.com/HugoTini/DeepBump/raw/master/deepbump256.onnx",
+ "size": "26.7MB"
+ },
+ {
+ "name": "GFPGAN 1.3",
+ "type": "face_restore",
+ "base": "face_restore",
+ "save_path": "face_restore",
+ "description": "Face restoration",
+ "reference": "https://github.com/TencentARC/GFPGAN",
+ "filename": "GFPGANv1.3.pth",
+ "url": "https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth",
+ "size": "348.6MB"
+ },
+ {
+ "name": "GFPGAN 1.4",
+ "type": "face_restore",
+ "base": "face_restore",
+ "save_path": "face_restore",
+ "description": "Face restoration",
+ "reference": "https://github.com/TencentARC/GFPGAN",
+ "filename": "GFPGANv1.4.pth",
+ "url": "https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.4.pth",
+ "size": "348.6MB"
+ },
+ {
+ "name": "RestoreFormer",
+ "type": "face_restore",
+ "base": "face_restore",
+ "save_path": "face_restore",
+ "description": "Face restoration",
+ "reference": "https://github.com/TencentARC/GFPGAN",
+ "filename": "RestoreFormer.pth",
+ "url": "https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/RestoreFormer.pth",
+ "size": "290.8MB"
+ },
+ {
+ "name": "Stable Video Diffusion Image-to-Video",
+ "type": "checkpoints",
+ "base": "SVD",
+ "save_path": "checkpoints/SVD",
+ "description": "Stable Video Diffusion (SVD) Image-to-Video is a diffusion model that takes in a still image as a conditioning frame, and generates a video from it.\nNOTE: 14 frames @ 576x1024",
+ "reference": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid",
+ "filename": "svd.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid/resolve/main/svd.safetensors",
+ "size": "9.56GB"
+ },
+ {
+ "name": "stabilityai/Stable Zero123",
+ "type": "zero123",
+ "base": "zero123",
+ "save_path": "checkpoints/zero123",
+ "description": "Stable Zero123 is a model for view-conditioned image generation based on [a/Zero123](https://github.com/cvlab-columbia/zero123).",
+ "reference": "https://huggingface.co/stabilityai/stable-zero123",
+ "filename": "stable_zero123.ckpt",
+ "url": "https://huggingface.co/stabilityai/stable-zero123/resolve/main/stable_zero123.ckpt",
+ "size": "8.58GB"
+ },
+ {
+ "name": "Stable Video Diffusion Image-to-Video (XT)",
+ "type": "checkpoints",
+ "base": "SVD",
+ "save_path": "checkpoints/SVD",
+ "description": "Stable Video Diffusion (SVD) Image-to-Video is a diffusion model that takes in a still image as a conditioning frame, and generates a video from it.\nNOTE: 25 frames @ 576x1024 ",
+ "reference": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt",
+ "filename": "svd_xt.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt/resolve/main/svd_xt.safetensors",
+ "size": "9.56GB"
+ },
+ {
+ "name": "negative_hand Negative Embedding",
+ "type": "embeddings",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "If you use this embedding with negatives, you can solve the issue of damaging your hands.",
+ "reference": "https://civitai.com/models/56519/negativehand-negative-embedding",
+ "filename": "negative_hand-neg.pt",
+ "url": "https://civitai.com/api/download/models/60938",
+ "size": "25KB"
+ },
+ {
+ "name": "bad_prompt Negative Embedding",
+ "type": "embeddings",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "The idea behind this embedding was to somehow train the negative prompt as an embedding, thus unifying the basis of the negative prompt into one word or embedding.",
+ "reference": "https://civitai.com/models/55700/badprompt-negative-embedding",
+ "filename": "bad_prompt_version2-neg.pt",
+ "url": "https://civitai.com/api/download/models/60095",
+ "size": "25KB"
+ },
+ {
+ "name": "Deep Negative V1.75",
+ "type": "embeddings",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "These embedding learn what disgusting compositions and color patterns are, including faulty human anatomy, offensive color schemes, upside-down spatial structures, and more. Placing it in the negative can go a long way to avoiding these things.",
+ "reference": "https://civitai.com/models/4629/deep-negative-v1x",
+ "filename": "ng_deepnegative_v1_75t.pt",
+ "url": "https://civitai.com/api/download/models/5637",
+ "size": "226KB"
+ },
+ {
+ "name": "EasyNegative",
+ "type": "embeddings",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "This embedding should be used in your NEGATIVE prompt. Adjust the strength as desired (seems to scale well without any distortions), the strength required may vary based on positive and negative prompts.",
+ "reference": "https://civitai.com/models/7808/easynegative",
+ "filename": "easynegative.safetensors",
+ "url": "https://civitai.com/api/download/models/9208",
+ "size": "25KB"
+ },
+ {
+ "name": "stabilityai/comfyui_checkpoints/stable_cascade_stage_b.safetensors",
+ "type": "checkpoints",
+ "base": "Stable Cascade",
+ "save_path": "checkpoints/Stable-Cascade",
+ "description": "Stable Cascade stage_b checkpoints",
+ "reference": "https://huggingface.co/stabilityai/stable-cascade",
+ "filename": "stable_cascade_stage_b.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/comfyui_checkpoints/stable_cascade_stage_b.safetensors",
+ "size": "4.55GB"
+ },
+ {
+ "name": "stabilityai/comfyui_checkpoints/stable_cascade_stage_c.safetensors",
+ "type": "checkpoints",
+ "base": "Stable Cascade",
+ "save_path": "checkpoints/Stable-Cascade",
+ "description": "Stable Cascade stage_c checkpoints",
+ "reference": "https://huggingface.co/stabilityai/stable-cascade",
+ "filename": "stable_cascade_stage_c.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/comfyui_checkpoints/stable_cascade_stage_c.safetensors",
+ "size": "9.22GB"
+ },
+ {
+ "name": "stabilityai/Stable Cascade: stage_a.safetensors (VAE)",
+ "type": "VAE",
+ "base": "Stable Cascade",
+ "save_path": "vae/Stable-Cascade",
+ "description": "Stable Cascade: stage_a",
+ "reference": "https://huggingface.co/stabilityai/stable-cascade",
+ "filename": "stage_a.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_a.safetensors",
+ "size": "73.7MB"
+ },
+ {
+ "name": "stabilityai/Stable Cascade: effnet_encoder.safetensors (VAE)",
+ "type": "VAE",
+ "base": "Stable Cascade",
+ "save_path": "vae/Stable-Cascade",
+ "description": "Stable Cascade: effnet_encoder.\nVAE encoder for stage_c latent.",
+ "reference": "https://huggingface.co/stabilityai/stable-cascade",
+ "filename": "effnet_encoder.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/effnet_encoder.safetensors",
+ "size": "81.5MB"
+ },
+ {
+ "name": "stabilityai/Stable Cascade: stage_b.safetensors (UNET)",
+ "type": "unet",
+ "base": "Stable Cascade",
+ "save_path": "unet/Stable-Cascade",
+ "description": "Stable Cascade: stage_b",
+ "reference": "https://huggingface.co/stabilityai/stable-cascade",
+ "filename": "stage_b.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b.safetensors",
+ "size": "6.25GB"
+ },
+ {
+ "name": "stabilityai/Stable Cascade: stage_b_bf16.safetensors (UNET)",
+ "type": "unet",
+ "base": "Stable Cascade",
+ "save_path": "unet/Stable-Cascade",
+ "description": "Stable Cascade: stage_b/bf16",
+ "reference": "https://huggingface.co/stabilityai/stable-cascade",
+ "filename": "stage_b_bf16.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b_bf16.safetensors",
+ "size": "3.13GB"
+ },
+ {
+ "name": "stabilityai/Stable Cascade: stage_b_lite.safetensors (UNET)",
+ "type": "unet",
+ "base": "Stable Cascade",
+ "save_path": "unet/Stable-Cascade",
+ "description": "Stable Cascade: stage_b/lite",
+ "reference": "https://huggingface.co/stabilityai/stable-cascade",
+ "filename": "stage_b_lite.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b_lite.safetensors",
+ "size": "2.80GB"
+ },
+ {
+ "name": "stabilityai/Stable Cascade: stage_b_lite.safetensors (UNET)",
+ "type": "unet",
+ "base": "Stable Cascade",
+ "save_path": "unet/Stable-Cascade",
+ "description": "Stable Cascade: stage_b/bf16,lite",
+ "reference": "https://huggingface.co/stabilityai/stable-cascade",
+ "filename": "stage_b_lite_bf16.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b_lite_bf16.safetensors",
+ "size": "1.40GB"
+ },
+ {
+ "name": "stabilityai/Stable Cascade: stage_c.safetensors (UNET)",
+ "type": "unet",
+ "base": "Stable Cascade",
+ "save_path": "unet/Stable-Cascade",
+ "description": "Stable Cascade: stage_c",
+ "reference": "https://huggingface.co/stabilityai/stable-cascade",
+ "filename": "stage_c.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c.safetensors",
+ "size": "14.4GB"
+ },
+ {
+ "name": "stabilityai/Stable Cascade: stage_c_bf16.safetensors (UNET)",
+ "type": "unet",
+ "base": "Stable Cascade",
+ "save_path": "unet/Stable-Cascade",
+ "description": "Stable Cascade: stage_c/bf16",
+ "reference": "https://huggingface.co/stabilityai/stable-cascade",
+ "filename": "stage_c_bf16.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c_bf16.safetensors",
+ "size": "7.18GB"
+ },
+ {
+ "name": "stabilityai/Stable Cascade: stage_c_lite.safetensors (UNET)",
+ "type": "unet",
+ "base": "Stable Cascade",
+ "save_path": "unet/Stable-Cascade",
+ "description": "Stable Cascade: stage_c/lite",
+ "reference": "https://huggingface.co/stabilityai/stable-cascade",
+ "filename": "stage_c_lite.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c_lite.safetensors",
+ "size": "4.12GB"
+ },
+ {
+ "name": "stabilityai/Stable Cascade: stage_c_lite.safetensors (UNET)",
+ "type": "unet",
+ "base": "Stable Cascade",
+ "save_path": "unet/Stable-Cascade",
+ "description": "Stable Cascade: stage_c/bf16,lite",
+ "reference": "https://huggingface.co/stabilityai/stable-cascade",
+ "filename": "stage_c_lite_bf16.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c_lite_bf16.safetensors",
+ "size": "2.06GB"
+ },
+ {
+ "name": "stabilityai/Stable Cascade: text_encoder (CLIP)",
+ "type": "clip",
+ "base": "Stable Cascade",
+ "save_path": "clip/Stable-Cascade",
+ "description": "Stable Cascade: text_encoder",
+ "reference": "https://huggingface.co/stabilityai/stable-cascade",
+ "filename": "model.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/text_encoder/model.safetensors",
+ "size": "1.39GB"
+ },
+ {
+ "name": "SDXL-Turbo 1.0 (fp16)",
+ "type": "checkpoints",
+ "base": "SDXL",
+ "save_path": "checkpoints/SDXL-TURBO",
+ "description": "SDXL-Turbo 1.0 fp16",
+ "reference": "https://huggingface.co/stabilityai/sdxl-turbo",
+ "filename": "sd_xl_turbo_1.0_fp16.safetensors",
+ "url": "https://huggingface.co/stabilityai/sdxl-turbo/resolve/main/sd_xl_turbo_1.0_fp16.safetensors",
+ "size": "6.94GB"
+ },
+ {
+ "name": "SDXL-Turbo 1.0",
+ "type": "checkpoints",
+ "base": "SDXL",
+ "save_path": "checkpoints/SDXL-TURBO",
+ "description": "SDXL-Turbo 1.0",
+ "reference": "https://huggingface.co/stabilityai/sdxl-turbo",
+ "filename": "sd_xl_turbo_1.0.safetensors",
+ "url": "https://huggingface.co/stabilityai/sdxl-turbo/resolve/main/sd_xl_turbo_1.0.safetensors",
+ "size": "13.9GB"
+ },
+ {
+ "name": "sd_xl_base_1.0_0.9vae.safetensors",
+ "type": "checkpoints",
+ "base": "SDXL",
+ "save_path": "default",
+ "description": "Stable Diffusion XL base model (VAE 0.9)",
+ "reference": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0",
+ "filename": "sd_xl_base_1.0_0.9vae.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0_0.9vae.safetensors",
+ "size": "6.94GB"
+ },
+ {
+ "name": "sd_xl_base_1.0.safetensors",
+ "type": "checkpoints",
+ "base": "SDXL",
+ "save_path": "default",
+ "description": "Stable Diffusion XL base model",
+ "reference": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0",
+ "filename": "sd_xl_base_1.0.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors",
+ "size": "6.94GB"
+ },
+ {
+ "name": "sd_xl_refiner_1.0_0.9vae.safetensors",
+ "type": "checkpoints",
+ "base": "SDXL",
+ "save_path": "default",
+ "description": "Stable Diffusion XL refiner model (VAE 0.9)",
+ "reference": "https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0",
+ "filename": "sd_xl_refiner_1.0_0.9vae.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0_0.9vae.safetensors",
+ "size": "6.08GB"
+ },
+ {
+ "name": "stable-diffusion-xl-refiner-1.0",
+ "type": "checkpoints",
+ "base": "SDXL",
+ "save_path": "default",
+ "description": "Stable Diffusion XL refiner model",
+ "reference": "https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0",
+ "filename": "sd_xl_refiner_1.0.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors",
+ "size": "6.08GB"
+ },
+ {
+ "name": "diffusers/stable-diffusion-xl-1.0-inpainting-0.1 (UNET/fp16)",
+ "type": "unet",
+ "base": "SDXL",
+ "save_path": "unet/xl-inpaint-0.1",
+ "description": "Stable Diffusion XL inpainting model 0.1. You need UNETLoader instead of CheckpointLoader.",
+ "reference": "https://huggingface.co/diffusers/stable-diffusion-xl-1.0-inpainting-0.1",
+ "filename": "diffusion_pytorch_model.fp16.safetensors",
+ "url": "https://huggingface.co/diffusers/stable-diffusion-xl-1.0-inpainting-0.1/resolve/main/unet/diffusion_pytorch_model.fp16.safetensors",
+ "size": "5.14GB"
+ },
+ {
+ "name": "diffusers/stable-diffusion-xl-1.0-inpainting-0.1 (UNET)",
+ "type": "unet",
+ "base": "SDXL",
+ "save_path": "unet/xl-inpaint-0.1",
+ "description": "Stable Diffusion XL inpainting model 0.1. You need UNETLoader instead of CheckpointLoader.",
+ "reference": "https://huggingface.co/diffusers/stable-diffusion-xl-1.0-inpainting-0.1",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/diffusers/stable-diffusion-xl-1.0-inpainting-0.1/resolve/main/unet/diffusion_pytorch_model.safetensors",
+ "size": "10.3GB"
+ },
+ {
+ "name": "sd_xl_offset_example-lora_1.0.safetensors",
+ "type": "lora",
+ "base": "SDXL",
+ "save_path": "default",
+ "description": "Stable Diffusion XL offset LoRA",
+ "reference": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0",
+ "filename": "sd_xl_offset_example-lora_1.0.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_offset_example-lora_1.0.safetensors",
+ "size": "49.6MB"
+ },
+ {
+ "name": "SDXL Lightning LoRA (2step)",
+ "type": "lora",
+ "base": "SDXL",
+ "save_path": "loras/SDXL-Lightning",
+ "description": "SDXL Lightning LoRA (2step)",
+ "reference": "https://huggingface.co/ByteDance/SDXL-Lightning",
+ "filename": "sdxl_lightning_2step_lora.safetensors",
+ "url": "https://huggingface.co/ByteDance/SDXL-Lightning/resolve/main/sdxl_lightning_2step_lora.safetensors",
+ "size": "393.9MB"
+ },
+ {
+ "name": "SDXL Lightning LoRA (4step)",
+ "type": "lora",
+ "base": "SDXL",
+ "save_path": "loras/SDXL-Lightning",
+ "description": "SDXL Lightning LoRA (4step)",
+ "reference": "https://huggingface.co/ByteDance/SDXL-Lightning",
+ "filename": "sdxl_lightning_4step_lora.safetensors",
+ "url": "https://huggingface.co/ByteDance/SDXL-Lightning/resolve/main/sdxl_lightning_4step_lora.safetensors",
+ "size": "393.9MB"
+ },
+ {
+ "name": "SDXL Lightning LoRA (8step)",
+ "type": "lora",
+ "base": "SDXL",
+ "save_path": "loras/SDXL-Lightning",
+ "description": "SDXL Lightning LoRA (8tep)",
+ "reference": "https://huggingface.co/ByteDance/SDXL-Lightning",
+ "filename": "sdxl_lightning_8step_lora.safetensors",
+ "url": "https://huggingface.co/ByteDance/SDXL-Lightning/resolve/main/sdxl_lightning_8step_lora.safetensors",
+ "size": "393.9MB"
+ },
+
+ {
+ "name": "google-t5/t5-base",
+ "type": "clip",
+ "base": "t5-base",
+ "save_path": "clip/t5-base",
+ "description": "T5 Base: Text-To-Text Transfer Transformer. This model can be loaded via CLIPLoader for Stable Audio workflow.",
+ "reference": "https://huggingface.co/google-t5/t5-base",
+ "filename": "model.safetensors",
+ "url": "https://huggingface.co/google-t5/t5-base/resolve/main/model.safetensors",
+ "size": "892MB"
+ },
+
+ {
+ "name": "v1-5-pruned-emaonly.ckpt",
+ "type": "checkpoints",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "Stable Diffusion 1.5 base model",
+ "reference": "https://huggingface.co/runwayml/stable-diffusion-v1-5",
+ "filename": "v1-5-pruned-emaonly.ckpt",
+ "url": "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt",
+ "size": "4.27GB"
+ },
+ {
+ "name": "v2-1_512-ema-pruned.safetensors",
+ "type": "checkpoints",
+ "base": "SD2",
+ "save_path": "default",
+ "description": "Stable Diffusion 2 base model (512)",
+ "reference": "https://huggingface.co/stabilityai/stable-diffusion-2-1-base",
+ "filename": "v2-1_512-ema-pruned.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.safetensors",
+ "size": "5.21GB"
+ },
+ {
+ "name": "v2-1_768-ema-pruned.safetensors",
+ "type": "checkpoints",
+ "base": "SD2",
+ "save_path": "default",
+ "description": "Stable Diffusion 2 base model (768)",
+ "reference": "https://huggingface.co/stabilityai/stable-diffusion-2-1",
+ "filename": "v2-1_768-ema-pruned.safetensors",
+ "url": "https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors",
+ "size": "5.21GB"
+ },
+ {
+ "name": "AbyssOrangeMix2 (hard)",
+ "type": "checkpoints",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "AbyssOrangeMix2 - hard version (anime style)",
+ "reference": "https://huggingface.co/WarriorMama777/OrangeMixs",
+ "filename": "AbyssOrangeMix2_hard.safetensors",
+ "url": "https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors",
+ "size": "5.57GB"
+ },
+ {
+ "name": "AbyssOrangeMix3 A1",
+ "type": "checkpoints",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "AbyssOrangeMix3 - A1 (anime style)",
+ "reference": "https://huggingface.co/WarriorMama777/OrangeMixs",
+ "filename": "AOM3A1_orangemixs.safetensors",
+ "url": "https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A1_orangemixs.safetensors",
+ "size": "2.13GB"
+ },
+ {
+ "name": "AbyssOrangeMix3 A3",
+ "type": "checkpoints",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "AbyssOrangeMix - A3 (anime style)",
+ "reference": "https://huggingface.co/WarriorMama777/OrangeMixs",
+ "filename": "AOM3A3_orangemixs.safetensors",
+ "url": "https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A3_orangemixs.safetensors",
+ "size": "2.13GB"
+ },
+ {
+ "name": "Waifu Diffusion 1.5 Beta3 (fp16)",
+ "type": "checkpoints",
+ "base": "SD2.1",
+ "save_path": "default",
+ "description": "Waifu Diffusion 1.5 Beta3",
+ "reference": "https://huggingface.co/waifu-diffusion/wd-1-5-beta3",
+ "filename": "wd-illusion-fp16.safetensors",
+ "url": "https://huggingface.co/waifu-diffusion/wd-1-5-beta3/resolve/main/wd-illusion-fp16.safetensors",
+ "size": "2.58GB"
+ },
+ {
+ "name": "illuminatiDiffusionV1_v11 unCLIP model",
+ "type": "unclip",
+ "base": "SD2.1",
+ "save_path": "default",
+ "description": "Mix model (SD2.1 unCLIP + illuminatiDiffusionV1_v11)",
+ "reference": "https://huggingface.co/comfyanonymous/illuminatiDiffusionV1_v11_unCLIP",
+ "filename": "illuminatiDiffusionV1_v11-unclip-h-fp16.safetensors",
+ "url": "https://huggingface.co/comfyanonymous/illuminatiDiffusionV1_v11_unCLIP/resolve/main/illuminatiDiffusionV1_v11-unclip-h-fp16.safetensors",
+ "size": "3.98GB"
+ },
+ {
+ "name": "Waifu Diffusion 1.5 unCLIP model",
+ "type": "unclip",
+ "base": "SD2.1",
+ "save_path": "default",
+ "description": "Mix model (SD2.1 unCLIP + Waifu Diffusion 1.5)",
+ "reference": "https://huggingface.co/comfyanonymous/wd-1.5-beta2_unCLIP",
+ "filename": "wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors",
+ "url": "https://huggingface.co/comfyanonymous/wd-1.5-beta2_unCLIP/resolve/main/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors",
+ "size": "3.98GB"
+ },
+ {
+ "name": "sdxl_vae.safetensors",
+ "type": "VAE",
+ "base": "SDXL VAE",
+ "save_path": "default",
+ "description": "SDXL-VAE",
+ "reference": "https://huggingface.co/stabilityai/sdxl-vae",
+ "filename": "sdxl_vae.safetensors",
+ "url": "https://huggingface.co/stabilityai/sdxl-vae/resolve/main/sdxl_vae.safetensors",
+ "size": "334.6MB"
+ },
+ {
+ "name": "vae-ft-mse-840000-ema-pruned",
+ "type": "VAE",
+ "base": "SD1.5 VAE",
+ "save_path": "default",
+ "description": "vae-ft-mse-840000-ema-pruned",
+ "reference": "https://huggingface.co/stabilityai/sd-vae-ft-mse-original",
+ "filename": "vae-ft-mse-840000-ema-pruned.safetensors",
+ "url": "https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors",
+ "size": "334.6MB"
+ },
+ {
+ "name": "orangemix.vae",
+ "type": "VAE",
+ "base": "SD1.5 VAE",
+ "save_path": "default",
+ "description": "orangemix vae model",
+ "reference": "https://huggingface.co/WarriorMama777/OrangeMixs",
+ "filename": "orangemix.vae.pt",
+ "url": "https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt",
+ "size": "822.8MB"
+ },
+ {
+ "name": "kl-f8-anime2",
+ "type": "VAE",
+ "base": "SD2.1 VAE",
+ "save_path": "default",
+ "description": "kl-f8-anime2 vae model",
+ "reference": "https://huggingface.co/hakurei/waifu-diffusion-v1-4",
+ "filename": "kl-f8-anime2.ckpt",
+ "url": "https://huggingface.co/hakurei/waifu-diffusion-v1-4/resolve/main/vae/kl-f8-anime2.ckpt",
+ "size": "404.7MB"
+ },
+ {
+ "name": "OpenAI Consistency Decoder",
+ "type": "VAE",
+ "base": "SD1.5 VAE",
+ "save_path": "vae/openai_consistency_decoder",
+ "description": "OpenAI Consistency Decoder. Improved decoding for stable diffusion vaes.",
+ "reference": "https://github.com/openai/consistencydecoder",
+ "filename": "decoder.pt",
+ "url": "https://openaipublic.azureedge.net/diff-vae/c9cebd3132dd9c42936d803e33424145a748843c8f716c0814838bdc8a2fe7cb/decoder.pt",
+ "size": "2.49GB"
+ },
+ {
+ "name": "LCM LoRA SD1.5",
+ "type": "lora",
+ "base": "SD1.5",
+ "save_path": "loras/lcm/SD1.5",
+ "description": "Latent Consistency LoRA for SD1.5",
+ "reference": "https://huggingface.co/latent-consistency/lcm-lora-sdv1-5",
+ "filename": "pytorch_lora_weights.safetensors",
+ "url": "https://huggingface.co/latent-consistency/lcm-lora-sdv1-5/resolve/main/pytorch_lora_weights.safetensors",
+ "size": "134.6MB"
+ },
+ {
+ "name": "LCM LoRA SSD-1B",
+ "type": "lora",
+ "base": "SSD-1B",
+ "save_path": "loras/lcm/SSD-1B",
+ "description": "Latent Consistency LoRA for SSD-1B",
+ "reference": "https://huggingface.co/latent-consistency/lcm-lora-ssd-1b",
+ "filename": "pytorch_lora_weights.safetensors",
+ "url": "https://huggingface.co/latent-consistency/lcm-lora-ssd-1b/resolve/main/pytorch_lora_weights.safetensors",
+ "size": "210.0MB"
+ },
+ {
+ "name": "LCM LoRA SDXL",
+ "type": "lora",
+ "base": "SSD-1B",
+ "save_path": "loras/lcm/SDXL",
+ "description": "Latent Consistency LoRA for SDXL",
+ "reference": "https://huggingface.co/latent-consistency/lcm-lora-sdxl",
+ "filename": "pytorch_lora_weights.safetensors",
+ "url": "https://huggingface.co/latent-consistency/lcm-lora-sdxl/resolve/main/pytorch_lora_weights.safetensors",
+ "size": "393.9MB"
+ },
+ {
+ "name": "Segmind-Vega",
+ "type": "checkpoints",
+ "base": "segmind-vega",
+ "save_path": "checkpoints/segmind-vega",
+ "description": "The Segmind-Vega Model is a distilled version of the Stable Diffusion XL (SDXL), offering a remarkable 70% reduction in size and an impressive 100% speedup while retaining high-quality text-to-image generation capabilities.",
+ "reference": "https://huggingface.co/segmind/Segmind-Vega",
+ "filename": "segmind-vega.safetensors",
+ "url": "https://huggingface.co/segmind/Segmind-Vega/resolve/main/segmind-vega.safetensors",
+ "size": "3.29GB"
+ },
+ {
+ "name": "Segmind-VegaRT - Latent Consistency Model (LCM) LoRA of Segmind-Vega",
+ "type": "lora",
+ "base": "segmind-vega",
+ "save_path": "loras/segmind-vega",
+ "description": "Segmind-VegaRT a distilled consistency adapter for Segmind-Vega that allows to reduce the number of inference steps to only between 2 - 8 steps.",
+ "reference": "https://huggingface.co/segmind/Segmind-VegaRT",
+ "filename": "pytorch_lora_weights.safetensors",
+ "url": "https://huggingface.co/segmind/Segmind-VegaRT/resolve/main/pytorch_lora_weights.safetensors",
+ "size": "239.2MB"
+ },
+ {
+ "name": "Theovercomer8's Contrast Fix (SD2.1)",
+ "type": "lora",
+ "base": "SD2.1",
+ "save_path": "default",
+ "description": "LORA: Theovercomer8's Contrast Fix (SD2.1)",
+ "reference": "https://civitai.com/models/8765/theovercomer8s-contrast-fix-sd15sd21-768",
+ "filename": "theovercomer8sContrastFix_sd21768.safetensors",
+ "url": "https://civitai.com/api/download/models/10350",
+ "size": "163MB"
+ },
+ {
+ "name": "Theovercomer8's Contrast Fix (SD1.5)",
+ "type": "lora",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "LORA: Theovercomer8's Contrast Fix (SD1.5)",
+ "reference": "https://civitai.com/models/8765/theovercomer8s-contrast-fix-sd15sd21-768",
+ "filename": "theovercomer8sContrastFix_sd15.safetensors",
+ "url": "https://civitai.com/api/download/models/10638",
+ "size": "113MB"
+ },
+ {
+ "name": "T2I-Adapter (depth)",
+ "type": "T2I-Adapter",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter for depth",
+ "reference": "https://huggingface.co/TencentARC/T2I-Adapter",
+ "filename": "t2iadapter_depth_sd14v1.pth",
+ "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_depth_sd14v1.pth",
+ "size": "309.5MB"
+ },
+ {
+ "name": "T2I-Adapter (seg)",
+ "type": "T2I-Adapter",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter for seg",
+ "reference": "https://huggingface.co/TencentARC/T2I-Adapter",
+ "filename": "t2iadapter_seg_sd14v1.pth",
+ "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_seg_sd14v1.pth",
+ "size": "309.5MB"
+ },
+ {
+ "name": "T2I-Adapter (sketch)",
+ "type": "T2I-Adapter",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter for sketch",
+ "reference": "https://huggingface.co/TencentARC/T2I-Adapter",
+ "filename": "t2iadapter_sketch_sd14v1.pth",
+ "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_sketch_sd14v1.pth",
+ "size": "308.0MB"
+ },
+ {
+ "name": "T2I-Adapter (keypose)",
+ "type": "T2I-Adapter",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter for keypose",
+ "reference": "https://huggingface.co/TencentARC/T2I-Adapter",
+ "filename": "t2iadapter_keypose_sd14v1.pth",
+ "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_keypose_sd14v1.pth",
+ "size": "309.5MB"
+ },
+ {
+ "name": "T2I-Adapter (openpose)",
+ "type": "T2I-Adapter",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter for openpose",
+ "reference": "https://huggingface.co/TencentARC/T2I-Adapter",
+ "filename": "t2iadapter_openpose_sd14v1.pth",
+ "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_openpose_sd14v1.pth",
+ "size": "309.5MB"
+ },
+ {
+ "name": "T2I-Adapter (color)",
+ "type": "T2I-Adapter",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter for color",
+ "reference": "https://huggingface.co/TencentARC/T2I-Adapter",
+ "filename": "t2iadapter_color_sd14v1.pth",
+ "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_color_sd14v1.pth",
+ "size": "74.8MB"
+ },
+ {
+ "name": "T2I-Adapter (canny)",
+ "type": "T2I-Adapter",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter for canny",
+ "reference": "https://huggingface.co/TencentARC/T2I-Adapter",
+ "filename": "t2iadapter_canny_sd14v1.pth",
+ "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_canny_sd14v1.pth",
+ "size": "308.0MB"
+ },
+ {
+ "name": "T2I-Style model",
+ "type": "T2I-Style",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter style model. Need to download CLIPVision model.",
+ "reference": "https://huggingface.co/TencentARC/T2I-Adapter",
+ "filename": "t2iadapter_style_sd14v1.pth",
+ "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_style_sd14v1.pth",
+ "size": "154.4MB"
+ },
+ {
+ "name": "T2I-Adapter XL (lineart) FP16",
+ "type": "T2I-Adapter",
+ "base": "SDXL 1.0",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter XL for lineart",
+ "reference": "https://huggingface.co/TencentARC/t2i-adapter-lineart-sdxl-1.0",
+ "filename": "t2i-adapter-lineart-sdxl-1.0.fp16.safetensors",
+ "url": "https://huggingface.co/TencentARC/t2i-adapter-lineart-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors",
+ "size": "158.1MB"
+ },
+ {
+ "name": "T2I-Adapter XL (canny) FP16",
+ "type": "T2I-Adapter",
+ "base": "SDXL 1.0",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter XL for canny",
+ "reference": "https://huggingface.co/TencentARC/t2i-adapter-canny-sdxl-1.0",
+ "filename": "t2i-adapter-canny-sdxl-1.0.fp16.safetensors",
+ "url": "https://huggingface.co/TencentARC/t2i-adapter-canny-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors",
+ "size": "158.1MB"
+ },
+ {
+ "name": "T2I-Adapter XL (depth-zoe) FP16",
+ "type": "T2I-Adapter",
+ "base": "SDXL 1.0",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter XL for depth-zoe",
+ "reference": "https://huggingface.co/TencentARC/t2i-adapter-depth-zoe-sdxl-1.0",
+ "filename": "t2i-adapter-depth-zoe-sdxl-1.0.fp16.safetensors",
+ "url": "https://huggingface.co/TencentARC/t2i-adapter-depth-zoe-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors",
+ "size": "158.1MB"
+ },
+ {
+ "name": "T2I-Adapter XL (depth-midas) FP16",
+ "type": "T2I-Adapter",
+ "base": "SDXL 1.0",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter XL for depth-midas",
+ "reference": "https://huggingface.co/TencentARC/t2i-adapter-depth-midas-sdxl-1.0",
+ "filename": "t2i-adapter-depth-midas-sdxl-1.0.fp16.safetensors",
+ "url": "https://huggingface.co/TencentARC/t2i-adapter-depth-midas-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors",
+ "size": "158.1MB"
+ },
+ {
+ "name": "T2I-Adapter XL (sketch) FP16",
+ "type": "T2I-Adapter",
+ "base": "SDXL 1.0",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter XL for sketch",
+ "reference": "https://huggingface.co/TencentARC/t2i-adapter-sketch-sdxl-1.0",
+ "filename": "t2i-adapter-sketch-sdxl-1.0.fp16.safetensors",
+ "url": "https://huggingface.co/TencentARC/t2i-adapter-sketch-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors",
+ "size": "158.1MB"
+ },
+ {
+ "name": "T2I-Adapter XL (lineart)",
+ "type": "T2I-Adapter",
+ "base": "SDXL 1.0",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter XL for lineart",
+ "reference": "https://huggingface.co/TencentARC/t2i-adapter-lineart-sdxl-1.0",
+ "filename": "t2i-adapter-lineart-sdxl-1.0.safetensors",
+ "url": "https://huggingface.co/TencentARC/t2i-adapter-lineart-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "316.1MB"
+ },
+ {
+ "name": "T2I-Adapter XL (canny)",
+ "type": "T2I-Adapter",
+ "base": "SDXL 1.0",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter XL for canny",
+ "reference": "https://huggingface.co/TencentARC/t2i-adapter-canny-sdxl-1.0",
+ "filename": "t2i-adapter-canny-sdxl-1.0.safetensors",
+ "url": "https://huggingface.co/TencentARC/t2i-adapter-canny-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "316.1MB"
+ },
+ {
+ "name": "T2I-Adapter XL (depth-zoe)",
+ "type": "T2I-Adapter",
+ "base": "SDXL 1.0",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter XL for depth-zoe",
+ "reference": "https://huggingface.co/TencentARC/t2i-adapter-depth-zoe-sdxl-1.0",
+ "filename": "t2i-adapter-depth-zoe-sdxl-1.0.safetensors",
+ "url": "https://huggingface.co/TencentARC/t2i-adapter-depth-zoe-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "316.1MB"
+ },
+ {
+ "name": "T2I-Adapter XL (depth-midas)",
+ "type": "T2I-Adapter",
+ "base": "SDXL 1.0",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter XL for depth-midas",
+ "reference": "https://huggingface.co/TencentARC/t2i-adapter-depth-midas-sdxl-1.0",
+ "filename": "t2i-adapter-depth-midas-sdxl-1.0.safetensors",
+ "url": "https://huggingface.co/TencentARC/t2i-adapter-depth-midas-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "316.1MB"
+ },
+ {
+ "name": "T2I-Adapter XL (sketch)",
+ "type": "T2I-Adapter",
+ "base": "SDXL 1.0",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter XL for sketch",
+ "reference": "https://huggingface.co/TencentARC/t2i-adapter-sketch-sdxl-1.0",
+ "filename": "t2i-adapter-sketch-sdxl-1.0.safetensors",
+ "url": "https://huggingface.co/TencentARC/t2i-adapter-sketch-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "316.1MB"
+ },
+ {
+ "name": "T2I-Adapter XL (openpose)",
+ "type": "T2I-Adapter",
+ "base": "SDXL 1.0",
+ "save_path": "default",
+ "description": "ControlNet T2I-Adapter XL for openpose",
+ "reference": "https://huggingface.co/TencentARC/t2i-adapter-openpose-sdxl-1.0",
+ "filename": "t2i-adapter-openpose-sdxl-1.0.safetensors",
+ "url": "https://huggingface.co/TencentARC/t2i-adapter-openpose-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "316.1MB"
+ },
+ {
+ "name": "CiaraRowles/TemporalNet2",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "TemporalNet was a ControlNet model designed to enhance the temporal consistency of generated outputs",
+ "reference": "https://huggingface.co/CiaraRowles/TemporalNet2",
+ "filename": "temporalnetversion2.safetensors",
+ "url": "https://huggingface.co/CiaraRowles/TemporalNet2/resolve/main/temporalnetversion2.safetensors",
+ "size": "5.71GB"
+ },
+ {
+ "name": "CiaraRowles/TemporalNet1XL (1.0)",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "controlnet/TemporalNet1XL",
+ "description": "This is TemporalNet1XL, it is a re-train of the controlnet TemporalNet1 with Stable Diffusion XL.",
+ "reference": "https://huggingface.co/CiaraRowles/controlnet-temporalnet-sdxl-1.0",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/CiaraRowles/controlnet-temporalnet-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "5.00GB"
+ },
+ {
+ "name": "CLIPVision model (stabilityai/clip_vision_g)",
+ "type": "clip_vision",
+ "base": "vit-g",
+ "save_path": "clip_vision",
+ "description": "clip_g vision model",
+ "reference": "https://huggingface.co/stabilityai/control-lora",
+ "filename": "clip_vision_g.safetensors",
+ "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/revision/clip_vision_g.safetensors",
+ "size": "3.69GB"
+ },
+ {
+ "name": "CLIPVision model (openai/clip-vit-large)",
+ "type": "clip_vision",
+ "base": "ViT-L",
+ "save_path": "clip_vision",
+ "description": "CLIPVision model (needed for styles model)",
+ "reference": "https://huggingface.co/openai/clip-vit-large-patch14",
+ "filename": "clip-vit-large-patch14.bin",
+ "url": "https://huggingface.co/openai/clip-vit-large-patch14/resolve/main/model.safetensors",
+ "size": "1.71GB"
+ },
+ {
+ "name": "CLIPVision model (IP-Adapter) CLIP-ViT-H-14-laion2B-s32B-b79K",
+ "type": "clip_vision",
+ "base": "ViT-H",
+ "save_path": "clip_vision",
+ "description": "CLIPVision model (needed for IP-Adapter)",
+ "reference": "https://huggingface.co/h94/IP-Adapter",
+ "filename": "CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors",
+ "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/image_encoder/model.safetensors",
+ "size": "2.53GB"
+ },
+ {
+ "name": "CLIPVision model (IP-Adapter) CLIP-ViT-bigG-14-laion2B-39B-b160k",
+ "type": "clip_vision",
+ "base": "ViT-G",
+ "save_path": "clip_vision",
+ "description": "CLIPVision model (needed for IP-Adapter)",
+ "reference": "https://huggingface.co/h94/IP-Adapter",
+ "filename": "CLIP-ViT-bigG-14-laion2B-39B-b160k.safetensors",
+ "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/image_encoder/model.safetensors",
+ "size": "3.69GB"
+ },
+ {
+ "name": "stabilityai/control-lora-canny-rank128.safetensors",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "default",
+ "description": "Control-LoRA: canny rank128",
+ "reference": "https://huggingface.co/stabilityai/control-lora",
+ "filename": "control-lora-canny-rank128.safetensors",
+ "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank128/control-lora-canny-rank128.safetensors",
+ "size": "395.7MB"
+ },
+ {
+ "name": "stabilityai/control-lora-depth-rank128.safetensors",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "default",
+ "description": "Control-LoRA: depth rank128",
+ "reference": "https://huggingface.co/stabilityai/control-lora",
+ "filename": "control-lora-depth-rank128.safetensors",
+ "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank128/control-lora-depth-rank128.safetensors",
+ "size": "395.7MB"
+ },
+ {
+ "name": "stabilityai/control-lora-recolor-rank128.safetensors",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "default",
+ "description": "Control-LoRA: recolor rank128",
+ "reference": "https://huggingface.co/stabilityai/control-lora",
+ "filename": "control-lora-recolor-rank128.safetensors",
+ "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank128/control-lora-recolor-rank128.safetensors",
+ "size": "395.7MB"
+ },
+ {
+ "name": "stabilityai/control-lora-sketch-rank128-metadata.safetensors",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "default",
+ "description": "Control-LoRA: sketch rank128 metadata",
+ "reference": "https://huggingface.co/stabilityai/control-lora",
+ "filename": "control-lora-sketch-rank128-metadata.safetensors",
+ "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank128/control-lora-sketch-rank128-metadata.safetensors",
+ "size": "395.7MB"
+ },
+ {
+ "name": "stabilityai/control-lora-canny-rank256.safetensors",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "default",
+ "description": "Control-LoRA: canny rank256",
+ "reference": "https://huggingface.co/stabilityai/control-lora",
+ "filename": "control-lora-canny-rank256.safetensors",
+ "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-canny-rank256.safetensors",
+ "size": "774.5MB"
+ },
+ {
+ "name": "stabilityai/control-lora-depth-rank256.safetensors",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "default",
+ "description": "Control-LoRA: depth rank256",
+ "reference": "https://huggingface.co/stabilityai/control-lora",
+ "filename": "control-lora-depth-rank256.safetensors",
+ "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-depth-rank256.safetensors",
+ "size": "774.4MB"
+ },
+ {
+ "name": "stabilityai/control-lora-recolor-rank256.safetensors",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "default",
+ "description": "Control-LoRA: recolor rank256",
+ "reference": "https://huggingface.co/stabilityai/control-lora",
+ "filename": "control-lora-recolor-rank256.safetensors",
+ "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-recolor-rank256.safetensors",
+ "size": "774.4MB"
+ },
+ {
+ "name": "stabilityai/control-lora-sketch-rank256.safetensors",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "default",
+ "description": "Control-LoRA: sketch rank256",
+ "reference": "https://huggingface.co/stabilityai/control-lora",
+ "filename": "control-lora-sketch-rank256.safetensors",
+ "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-sketch-rank256.safetensors",
+ "size": "774.5MB"
+ },
+ {
+ "name": "kohya-ss/ControlNet-LLLite: SDXL Canny Anime",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "custom_nodes/ControlNet-LLLite-ComfyUI/models",
+ "description": "An extremely compactly designed controlnet model (a.k.a. ControlNet-LLLite). Note: The model structure is highly experimental and may be subject to change in the future.",
+ "reference": "https://huggingface.co/kohya-ss/controlnet-lllite",
+ "filename": "controllllite_v01032064e_sdxl_canny_anime.safetensors",
+ "url": "https://huggingface.co/kohya-ss/controlnet-lllite/resolve/main/controllllite_v01032064e_sdxl_canny_anime.safetensors",
+ "size": "46.2MB"
+ },
+ {
+ "name": "SDXL-controlnet: OpenPose (v2)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "default",
+ "description": "ControlNet openpose model for SDXL",
+ "reference": "https://huggingface.co/thibaud/controlnet-openpose-sdxl-1.0",
+ "filename": "OpenPoseXL2.safetensors",
+ "url": "https://huggingface.co/thibaud/controlnet-openpose-sdxl-1.0/resolve/main/OpenPoseXL2.safetensors",
+ "size": "5.00GB"
+ },
+ {
+ "name": "controlnet-SargeZT/controlnet-sd-xl-1.0-softedge-dexined",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "default",
+ "description": "ControlNet softedge model for SDXL",
+ "reference": "https://huggingface.co/SargeZT/controlnet-sd-xl-1.0-softedge-dexined",
+ "filename": "controlnet-sd-xl-1.0-softedge-dexined.safetensors",
+ "url": "https://huggingface.co/SargeZT/controlnet-sd-xl-1.0-softedge-dexined/resolve/main/controlnet-sd-xl-1.0-softedge-dexined.safetensors",
+ "size": "5.00GB"
+ },
+ {
+ "name": "controlnet-SargeZT/controlnet-sd-xl-1.0-depth-16bit-zoe",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "default",
+ "description": "ControlNet depth-zoe model for SDXL",
+ "reference": "https://huggingface.co/SargeZT/controlnet-sd-xl-1.0-depth-16bit-zoe",
+ "filename": "depth-zoe-xl-v1.0-controlnet.safetensors",
+ "url": "https://huggingface.co/SargeZT/controlnet-sd-xl-1.0-depth-16bit-zoe/resolve/main/depth-zoe-xl-v1.0-controlnet.safetensors",
+ "size": "5.00GB"
+ },
+ {
+ "name": "ControlNet-v1-1 (ip2p; fp16)",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (ip2p)",
+ "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors",
+ "filename": "control_v11e_sd15_ip2p_fp16.safetensors",
+ "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_ip2p_fp16.safetensors",
+ "size": "722.6MB"
+ },
+ {
+ "name": "ControlNet-v1-1 (shuffle; fp16)",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (shuffle)",
+ "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors",
+ "filename": "control_v11e_sd15_shuffle_fp16.safetensors",
+ "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_shuffle_fp16.safetensors",
+ "size": "722.6MB"
+ },
+ {
+ "name": "ControlNet-v1-1 (canny; fp16)",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (canny)",
+ "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors",
+ "filename": "control_v11p_sd15_canny_fp16.safetensors",
+ "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_canny_fp16.safetensors",
+ "size": "722.6MB"
+ },
+ {
+ "name": "ControlNet-v1-1 (depth; fp16)",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (depth)",
+ "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors",
+ "filename": "control_v11f1p_sd15_depth_fp16.safetensors",
+ "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1p_sd15_depth_fp16.safetensors",
+ "size": "722.6MB"
+ },
+ {
+ "name": "ControlNet-v1-1 (inpaint; fp16)",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (inpaint)",
+ "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors",
+ "filename": "control_v11p_sd15_inpaint_fp16.safetensors",
+ "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_inpaint_fp16.safetensors",
+ "size": "722.6MB"
+ },
+ {
+ "name": "ControlNet-v1-1 (lineart; fp16)",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (lineart)",
+ "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors",
+ "filename": "control_v11p_sd15_lineart_fp16.safetensors",
+ "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_lineart_fp16.safetensors",
+ "size": "722.6MB"
+ },
+ {
+ "name": "ControlNet-v1-1 (mlsd; fp16)",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (mlsd)",
+ "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors",
+ "filename": "control_v11p_sd15_mlsd_fp16.safetensors",
+ "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_mlsd_fp16.safetensors",
+ "size": "722.6MB"
+ },
+ {
+ "name": "ControlNet-v1-1 (normalbae; fp16)",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (normalbae)",
+ "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors",
+ "filename": "control_v11p_sd15_normalbae_fp16.safetensors",
+ "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_normalbae_fp16.safetensors",
+ "size": "722.6MB"
+ },
+ {
+ "name": "ControlNet-v1-1 (openpose; fp16)",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (openpose)",
+ "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors",
+ "filename": "control_v11p_sd15_openpose_fp16.safetensors",
+ "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_openpose_fp16.safetensors",
+ "size": "722.6MB"
+ },
+ {
+ "name": "ControlNet-v1-1 (scribble; fp16)",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (scribble)",
+ "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors",
+ "filename": "control_v11p_sd15_scribble_fp16.safetensors",
+ "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors",
+ "size": "722.6MB"
+ },
+ {
+ "name": "ControlNet-v1-1 (seg; fp16)",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (seg)",
+ "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors",
+ "filename": "control_v11p_sd15_seg_fp16.safetensors",
+ "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_seg_fp16.safetensors",
+ "size": "722.6MB"
+ },
+ {
+ "name": "ControlNet-v1-1 (softedge; fp16)",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (softedge)",
+ "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors",
+ "filename": "control_v11p_sd15_softedge_fp16.safetensors",
+ "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_softedge_fp16.safetensors",
+ "size": "722.6MB"
+ },
+ {
+ "name": "ControlNet-v1-1 (anime; fp16)",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (anime)",
+ "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors",
+ "filename": "control_v11p_sd15s2_lineart_anime_fp16.safetensors",
+ "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15s2_lineart_anime_fp16.safetensors",
+ "size": "722.6MB"
+ },
+ {
+ "name": "ControlNet-v1-1 (tile; fp16; v11u)",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (tile) / v11u",
+ "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors",
+ "filename": "control_v11u_sd15_tile_fp16.safetensors",
+ "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11u_sd15_tile_fp16.safetensors",
+ "size": "722.6MB"
+ },
+ {
+ "name": "ControlNet-v1-1 (tile; fp16; v11f1e)",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (tile) / v11f1e\nYou need to this model for Tiled Resample ",
+ "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors",
+ "filename": "control_v11f1e_sd15_tile_fp16.safetensors",
+ "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1e_sd15_tile_fp16.safetensors",
+ "size": "722.6MB"
+ },
+ {
+ "name": "ControlNet-HandRefiner-pruned (inpaint-depth-hand; fp16)",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "This inpaint-depth controlnet model is specialized for the hand refiner.",
+ "reference": "https://huggingface.co/hr16/ControlNet-HandRefiner-pruned",
+ "filename": "control_sd15_inpaint_depth_hand_fp16.safetensors",
+ "url": "https://huggingface.co/hr16/ControlNet-HandRefiner-pruned/resolve/main/control_sd15_inpaint_depth_hand_fp16.safetensors",
+ "size": "722.6MB"
+ },
+ {
+ "name": "control_boxdepth_LooseControlfp16 (fp16)",
+ "type": "controlnet",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "Loose ControlNet model",
+ "reference": "https://huggingface.co/ioclab/LooseControl_WebUICombine",
+ "filename": "control_boxdepth_LooseControlfp16.safetensors",
+ "url": "https://huggingface.co/ioclab/LooseControl_WebUICombine/resolve/main/control_boxdepth_LooseControlfp16.safetensors",
+ "size": "722.6MB"
+ },
+ {
+ "name": "GLIGEN textbox (fp16; pruned)",
+ "type": "gligen",
+ "base": "SD1.5",
+ "save_path": "default",
+ "description": "GLIGEN textbox model",
+ "reference": "https://huggingface.co/comfyanonymous/GLIGEN_pruned_safetensors",
+ "filename": "gligen_sd14_textbox_pruned_fp16.safetensors",
+ "url": "https://huggingface.co/comfyanonymous/GLIGEN_pruned_safetensors/resolve/main/gligen_sd14_textbox_pruned_fp16.safetensors",
+ "size": "418.2MB"
+ },
+ {
+ "name": "ViT-H SAM model",
+ "type": "sam",
+ "base": "SAM",
+ "save_path": "sams",
+ "description": "Segmenty Anything SAM model (ViT-H)",
+ "reference": "https://github.com/facebookresearch/segment-anything#model-checkpoints",
+ "filename": "sam_vit_h_4b8939.pth",
+ "url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth",
+ "size": "2.56GB"
+ },
+ {
+ "name": "ViT-L SAM model",
+ "type": "sam",
+ "base": "SAM",
+ "save_path": "sams",
+ "description": "Segmenty Anything SAM model (ViT-L)",
+ "reference": "https://github.com/facebookresearch/segment-anything#model-checkpoints",
+ "filename": "sam_vit_l_0b3195.pth",
+ "url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_l_0b3195.pth",
+ "size": "1.25GB"
+ },
+ {
+ "name": "ViT-B SAM model",
+ "type": "sam",
+ "base": "SAM",
+ "save_path": "sams",
+ "description": "Segmenty Anything SAM model (ViT-B)",
+ "reference": "https://github.com/facebookresearch/segment-anything#model-checkpoints",
+ "filename": "sam_vit_b_01ec64.pth",
+ "url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_b_01ec64.pth",
+ "size": "375.0MB"
+ },
+ {
+ "name": "seecoder v1.0",
+ "type": "seecoder",
+ "base": "SEECODER",
+ "save_path": "seecoders",
+ "description": "SeeCoder model",
+ "reference": "https://huggingface.co/shi-labs/prompt-free-diffusion/tree/main/pretrained/pfd/seecoder",
+ "filename": "seecoder-v1-0.safetensors",
+ "url": "https://huggingface.co/shi-labs/prompt-free-diffusion/resolve/main/pretrained/pfd/seecoder/seecoder-v1-0.safetensors",
+ "size": "1.18GB"
+ },
+ {
+ "name": "seecoder pa v1.0",
+ "type": "seecoder",
+ "base": "SEECODER",
+ "save_path": "seecoders",
+ "description": "SeeCoder model",
+ "reference": "https://huggingface.co/shi-labs/prompt-free-diffusion/tree/main/pretrained/pfd/seecoder",
+ "filename": "seecoder-pa-v1-0.safetensors",
+ "url": "https://huggingface.co/shi-labs/prompt-free-diffusion/resolve/main/pretrained/pfd/seecoder/seecoder-pa-v1-0.safetensors",
+ "size": "1.19GB"
+ },
+ {
+ "name": "seecoder anime v1.0",
+ "type": "seecoder",
+ "base": "SEECODER",
+ "save_path": "seecoders",
+ "description": "SeeCoder model",
+ "reference": "https://huggingface.co/shi-labs/prompt-free-diffusion/tree/main/pretrained/pfd/seecoder",
+ "filename": "seecoder-anime-v1-0.safetensors",
+ "url": "https://huggingface.co/shi-labs/prompt-free-diffusion/resolve/main/pretrained/pfd/seecoder/seecoder-anime-v1-0.safetensors",
+ "size": "1.18GB"
+ },
+ {
+ "name": "face_yolov8m (bbox)",
+ "type": "Ultralytics",
+ "base": "Ultralytics",
+ "save_path": "ultralytics/bbox",
+ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.",
+ "reference": "https://huggingface.co/Bingsu/adetailer/tree/main",
+ "filename": "face_yolov8m.pt",
+ "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/face_yolov8m.pt",
+ "size": "52.0MB"
+ },
+ {
+ "name": "face_yolov8n (bbox)",
+ "type": "Ultralytics",
+ "base": "Ultralytics",
+ "save_path": "ultralytics/bbox",
+ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.",
+ "reference": "https://huggingface.co/Bingsu/adetailer/tree/main",
+ "filename": "face_yolov8n.pt",
+ "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/face_yolov8n.pt",
+ "size": "6.23MB"
+ },
+ {
+ "name": "face_yolov8n_v2 (bbox)",
+ "type": "Ultralytics",
+ "base": "Ultralytics",
+ "save_path": "ultralytics/bbox",
+ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.",
+ "reference": "https://huggingface.co/Bingsu/adetailer/tree/main",
+ "filename": "face_yolov8n_v2.pt",
+ "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/face_yolov8n_v2.pt",
+ "size": "6.24MB"
+ },
+ {
+ "name": "face_yolov8s (bbox)",
+ "type": "Ultralytics",
+ "base": "Ultralytics",
+ "save_path": "ultralytics/bbox",
+ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.",
+ "reference": "https://huggingface.co/Bingsu/adetailer/tree/main",
+ "filename": "face_yolov8s.pt",
+ "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/face_yolov8s.pt",
+ "size": "22.5MB"
+ },
+ {
+ "name": "hand_yolov8n (bbox)",
+ "type": "Ultralytics",
+ "base": "Ultralytics",
+ "save_path": "ultralytics/bbox",
+ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.",
+ "reference": "https://huggingface.co/Bingsu/adetailer/tree/main",
+ "filename": "hand_yolov8n.pt",
+ "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/hand_yolov8n.pt",
+ "size": "6.24MB"
+ },
+ {
+ "name": "hand_yolov8s (bbox)",
+ "type": "Ultralytics",
+ "base": "Ultralytics",
+ "save_path": "ultralytics/bbox",
+ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.",
+ "reference": "https://huggingface.co/Bingsu/adetailer/tree/main",
+ "filename": "hand_yolov8s.pt",
+ "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/hand_yolov8s.pt",
+ "size": "22.5MB"
+ },
+ {
+ "name": "person_yolov8m (segm)",
+ "type": "Ultralytics",
+ "base": "Ultralytics",
+ "save_path": "ultralytics/segm",
+ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.",
+ "reference": "https://huggingface.co/Bingsu/adetailer/tree/main",
+ "filename": "person_yolov8m-seg.pt",
+ "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/person_yolov8m-seg.pt",
+ "size": "54.8MB"
+ },
+ {
+ "name": "person_yolov8n (segm)",
+ "type": "Ultralytics",
+ "base": "Ultralytics",
+ "save_path": "ultralytics/segm",
+ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.",
+ "reference": "https://huggingface.co/Bingsu/adetailer/tree/main",
+ "filename": "person_yolov8n-seg.pt",
+ "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/person_yolov8n-seg.pt",
+ "size": "6.78MB"
+ },
+ {
+ "name": "person_yolov8s (segm)",
+ "type": "Ultralytics",
+ "base": "Ultralytics",
+ "save_path": "ultralytics/segm",
+ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.",
+ "reference": "https://huggingface.co/Bingsu/adetailer/tree/main",
+ "filename": "person_yolov8s-seg.pt",
+ "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/person_yolov8s-seg.pt",
+ "size": "23.9MB"
+ },
+ {
+ "name": "deepfashion2_yolov8s (segm)",
+ "type": "Ultralytics",
+ "base": "Ultralytics",
+ "save_path": "ultralytics/segm",
+ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.",
+ "reference": "https://huggingface.co/Bingsu/adetailer/tree/main",
+ "filename": "deepfashion2_yolov8s-seg.pt",
+ "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/deepfashion2_yolov8s-seg.pt",
+ "size": "23.9MB"
+ },
+ {
+ "name": "face_yolov8m-seg_60.pt (segm)",
+ "type": "Ultralytics",
+ "base": "Ultralytics",
+ "save_path": "ultralytics/segm",
+ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.",
+ "reference": "https://github.com/hben35096/assets/releases/tag/yolo8",
+ "filename": "face_yolov8m-seg_60.pt",
+ "url": "https://github.com/hben35096/assets/releases/download/yolo8/face_yolov8m-seg_60.pt",
+ "size": "54.8MB"
+ },
+ {
+ "name": "face_yolov8n-seg2_60.pt (segm)",
+ "type": "Ultralytics",
+ "base": "Ultralytics",
+ "save_path": "ultralytics/segm",
+ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.",
+ "reference": "https://github.com/hben35096/assets/releases/tag/yolo8",
+ "filename": "face_yolov8n-seg2_60.pt",
+ "url": "https://github.com/hben35096/assets/releases/download/yolo8/face_yolov8n-seg2_60.pt",
+ "size": "6.77MB"
+ },
+ {
+ "name": "hair_yolov8n-seg_60.pt (segm)",
+ "type": "Ultralytics",
+ "base": "Ultralytics",
+ "save_path": "ultralytics/segm",
+ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.",
+ "reference": "https://github.com/hben35096/assets/releases/tag/yolo8",
+ "filename": "hair_yolov8n-seg_60.pt",
+ "url": "https://github.com/hben35096/assets/releases/download/yolo8/hair_yolov8n-seg_60.pt",
+ "size": "6.77MB"
+ },
+ {
+ "name": "skin_yolov8m-seg_400.pt (segm)",
+ "type": "Ultralytics",
+ "base": "Ultralytics",
+ "save_path": "ultralytics/segm",
+ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.",
+ "reference": "https://github.com/hben35096/assets/releases/tag/yolo8",
+ "filename": "skin_yolov8m-seg_400.pt",
+ "url": "https://github.com/hben35096/assets/releases/download/yolo8/skin_yolov8m-seg_400.pt",
+ "size": "54.9MB"
+ },
+ {
+ "name": "skin_yolov8n-seg_400.pt (segm)",
+ "type": "Ultralytics",
+ "base": "Ultralytics",
+ "save_path": "ultralytics/segm",
+ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.",
+ "reference": "https://github.com/hben35096/assets/releases/tag/yolo8",
+ "filename": "skin_yolov8n-seg_400.pt",
+ "url": "https://github.com/hben35096/assets/releases/download/yolo8/skin_yolov8n-seg_400.pt",
+ "size": "6.83MB"
+ },
+ {
+ "name": "skin_yolov8n-seg_800.pt (segm)",
+ "type": "Ultralytics",
+ "base": "Ultralytics",
+ "save_path": "ultralytics/segm",
+ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.",
+ "reference": "https://github.com/hben35096/assets/releases/tag/yolo8",
+ "filename": "skin_yolov8n-seg_800.pt",
+ "url": "https://github.com/hben35096/assets/releases/download/yolo8/skin_yolov8n-seg_800.pt",
+ "size": "6.84MB"
+ },
+ {
+ "name": "animatediff/mmd_sd_v14.ckpt (comfyui-animatediff) (Updated path)",
+ "type": "animatediff",
+ "base": "SD1.x",
+ "save_path": "AnimateDiff",
+ "description": "Pressing 'install' directly downloads the model from the ArtVentureX/AnimateDiff extension node.",
+ "reference": "https://huggingface.co/guoyww/animatediff",
+ "filename": "mm_sd_v14.ckpt",
+ "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v14.ckpt",
+ "size": "1.67GB"
+ },
+ {
+ "name": "animatediff/mm_sd_v15.ckpt (comfyui-animatediff) (Updated path)",
+ "type": "animatediff",
+ "base": "SD1.x",
+ "save_path": "AnimateDiff",
+ "description": "Pressing 'install' directly downloads the model from the ArtVentureX/AnimateDiff extension node.",
+ "reference": "https://huggingface.co/guoyww/animatediff",
+ "filename": "mm_sd_v15.ckpt",
+ "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v15.ckpt",
+ "size": "1.67GB"
+ },
+ {
+ "name": "animatediff/mmd_sd_v14.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "animatediff",
+ "base": "SD1.x",
+ "save_path": "animatediff_models",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/guoyww/animatediff",
+ "filename": "mm_sd_v14.ckpt",
+ "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v14.ckpt",
+ "size": "1.67GB"
+ },
+ {
+ "name": "animatediff/mm_sd_v15.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "animatediff",
+ "base": "SD1.x",
+ "save_path": "animatediff_models",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/guoyww/animatediff",
+ "filename": "mm_sd_v15.ckpt",
+ "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v15.ckpt",
+ "size": "1.67GB"
+ },
+ {
+ "name": "animatediff/mm_sd_v15_v2.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "animatediff",
+ "base": "SD1.x",
+ "save_path": "animatediff_models",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/guoyww/animatediff",
+ "filename": "mm_sd_v15_v2.ckpt",
+ "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v15_v2.ckpt",
+ "size": "1.82GB"
+ },
+ {
+ "name": "animatediff/v3_sd15_mm.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "animatediff",
+ "base": "SD1.x",
+ "save_path": "animatediff_models",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/guoyww/animatediff",
+ "filename": "v3_sd15_mm.ckpt",
+ "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_mm.ckpt",
+ "size": "1.67GB"
+ },
+ {
+ "name": "animatediff/mm_sdxl_v10_beta.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "animatediff",
+ "base": "SDXL",
+ "save_path": "animatediff_models",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/guoyww/animatediff",
+ "filename": "mm_sdxl_v10_beta.ckpt",
+ "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sdxl_v10_beta.ckpt",
+ "size": "950.1MB"
+ },
+ {
+ "name": "AD_Stabilized_Motion/mm-Stabilized_high.pth (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "animatediff",
+ "base": "SD1.x",
+ "save_path": "animatediff_models",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/manshoety/AD_Stabilized_Motion",
+ "filename": "mm-Stabilized_high.pth",
+ "url": "https://huggingface.co/manshoety/AD_Stabilized_Motion/resolve/main/mm-Stabilized_high.pth",
+ "size": "1.67GB"
+ },
+ {
+ "name": "AD_Stabilized_Motion/mm-Stabilized_mid.pth (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "animatediff",
+ "base": "SD1.x",
+ "save_path": "animatediff_models",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/manshoety/AD_Stabilized_Motion",
+ "filename": "mm-Stabilized_mid.pth",
+ "url": "https://huggingface.co/manshoety/AD_Stabilized_Motion/resolve/main/mm-Stabilized_mid.pth",
+ "size": "1.67GB"
+ },
+ {
+ "name": "CiaraRowles/temporaldiff-v1-animatediff.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "animatediff",
+ "base": "SD1.x",
+ "save_path": "animatediff_models",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/CiaraRowles/TemporalDiff",
+ "filename": "temporaldiff-v1-animatediff.ckpt",
+ "url": "https://huggingface.co/CiaraRowles/TemporalDiff/resolve/main/temporaldiff-v1-animatediff.ckpt",
+ "size": "1.67GB"
+ },
+ {
+ "name": "animatediff/v2_lora_PanLeft.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "motion lora",
+ "base": "SD1.x",
+ "save_path": "animatediff_motion_lora",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/guoyww/animatediff",
+ "filename": "v2_lora_PanLeft.ckpt",
+ "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_PanLeft.ckpt",
+ "size": "77.5MB"
+ },
+ {
+ "name": "animatediff/v2_lora_PanRight.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "motion lora",
+ "base": "SD1.x",
+ "save_path": "animatediff_motion_lora",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/guoyww/animatediff",
+ "filename": "v2_lora_PanRight.ckpt",
+ "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_PanRight.ckpt",
+ "size": "77.5MB"
+ },
+ {
+ "name": "animatediff/v2_lora_RollingAnticlockwise.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "motion lora",
+ "base": "SD1.x",
+ "save_path": "animatediff_motion_lora",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/guoyww/animatediff",
+ "filename": "v2_lora_RollingAnticlockwise.ckpt",
+ "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_RollingAnticlockwise.ckpt",
+ "size": "77.5MB"
+ },
+ {
+ "name": "animatediff/v2_lora_RollingClockwise.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "motion lora",
+ "base": "SD1.x",
+ "save_path": "animatediff_motion_lora",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/guoyww/animatediff",
+ "filename": "v2_lora_RollingClockwise.ckpt",
+ "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_RollingClockwise.ckpt",
+ "size": "77.5MB"
+ },
+ {
+ "name": "animatediff/v2_lora_TiltDown.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "motion lora",
+ "base": "SD1.x",
+ "save_path": "animatediff_motion_lora",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/guoyww/animatediff",
+ "filename": "v2_lora_TiltDown.ckpt",
+ "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_TiltDown.ckpt",
+ "size": "77.5MB"
+ },
+ {
+ "name": "animatediff/v2_lora_TiltUp.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "motion lora",
+ "base": "SD1.x",
+ "save_path": "animatediff_motion_lora",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/guoyww/animatediff",
+ "filename": "v2_lora_TiltUp.ckpt",
+ "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_TiltUp.ckpt",
+ "size": "77.5MB"
+ },
+ {
+ "name": "animatediff/v2_lora_ZoomIn.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "motion lora",
+ "base": "SD1.x",
+ "save_path": "animatediff_motion_lora",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/guoyww/animatediff",
+ "filename": "v2_lora_ZoomIn.ckpt",
+ "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_ZoomIn.ckpt",
+ "size": "77.5MB"
+ },
+ {
+ "name": "animatediff/v2_lora_ZoomOut.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "motion lora",
+ "base": "SD1.x",
+ "save_path": "animatediff_motion_lora",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/guoyww/animatediff",
+ "filename": "v2_lora_ZoomOut.ckpt",
+ "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_ZoomOut.ckpt",
+ "size": "77.5MB"
+ },
+ {
+ "name": "LongAnimatediff/lt_long_mm_32_frames.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "animatediff",
+ "base": "SD1.x",
+ "save_path": "animatediff_models",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/Lightricks/LongAnimateDiff",
+ "filename": "lt_long_mm_32_frames.ckpt",
+ "url": "https://huggingface.co/Lightricks/LongAnimateDiff/resolve/main/lt_long_mm_32_frames.ckpt",
+ "size": "1.82GB"
+ },
+ {
+ "name": "LongAnimatediff/lt_long_mm_16_64_frames.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "animatediff",
+ "base": "SD1.x",
+ "save_path": "animatediff_models",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/Lightricks/LongAnimateDiff",
+ "filename": "lt_long_mm_16_64_frames.ckpt",
+ "url": "https://huggingface.co/Lightricks/LongAnimateDiff/resolve/main/lt_long_mm_16_64_frames.ckpt",
+ "size": "1.83GB"
+ },
+ {
+ "name": "LongAnimatediff/lt_long_mm_16_64_frames_v1.1.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)",
+ "type": "animatediff",
+ "base": "SD1.x",
+ "save_path": "animatediff_models",
+ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.",
+ "reference": "https://huggingface.co/Lightricks/LongAnimateDiff",
+ "filename": "lt_long_mm_16_64_frames_v1.1.ckpt",
+ "url": "https://huggingface.co/Lightricks/LongAnimateDiff/resolve/main/lt_long_mm_16_64_frames_v1.1.ckpt",
+ "size": "1.83GB"
+ },
+ {
+ "name": "animatediff/v3_sd15_sparsectrl_rgb.ckpt (ComfyUI-AnimateDiff-Evolved)",
+ "type": "controlnet",
+ "base": "SD1.x",
+ "save_path": "controlnet/SD1.5/animatediff",
+ "description": "AnimateDiff SparseCtrl RGB ControlNet model",
+ "reference": "https://huggingface.co/guoyww/animatediff",
+ "filename": "v3_sd15_sparsectrl_rgb.ckpt",
+ "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_sparsectrl_rgb.ckpt",
+ "size": "1.99GB"
+ },
+ {
+ "name": "animatediff/v3_sd15_sparsectrl_scribble.ckpt",
+ "type": "controlnet",
+ "base": "SD1.x",
+ "save_path": "controlnet/SD1.5/animatediff",
+ "description": "AnimateDiff SparseCtrl Scribble ControlNet model",
+ "reference": "https://huggingface.co/guoyww/animatediff",
+ "filename": "v3_sd15_sparsectrl_scribble.ckpt",
+ "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_sparsectrl_scribble.ckpt",
+ "size": "1.99GB"
+ },
+ {
+ "name": "animatediff/v3_sd15_adapter.ckpt",
+ "type": "lora",
+ "base": "SD1.x",
+ "save_path": "loras/SD1.5/animatediff",
+ "description": "AnimateDiff Adapter LoRA (SD1.5)",
+ "reference": "https://huggingface.co/guoyww/animatediff",
+ "filename": "v3_sd15_adapter.ckpt",
+ "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_adapter.ckpt",
+ "size": "102.1MB"
+ },
+ {
+ "name": "TencentARC/motionctrl.pth",
+ "type": "checkpoints",
+ "base": "MotionCtrl",
+ "save_path": "checkpoints/motionctrl",
+ "description": "To use the ComfyUI-MotionCtrl extension, downloading this model is required.",
+ "reference": "https://huggingface.co/TencentARC/MotionCtrl",
+ "filename": "motionctrl.pth",
+ "url": "https://huggingface.co/TencentARC/MotionCtrl/resolve/main/motionctrl.pth",
+ "size": "4.02GB"
+ },
+ {
+ "name": "ip-adapter_sd15.safetensors",
+ "type": "IP-Adapter",
+ "base": "SD1.5",
+ "save_path": "ipadapter",
+ "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.",
+ "reference": "https://huggingface.co/h94/IP-Adapter",
+ "filename": "ip-adapter_sd15.safetensors",
+ "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15.safetensors",
+ "size": "44.6MB"
+ },
+ {
+ "name": "ip-adapter_sd15_light_v11.bin",
+ "type": "IP-Adapter",
+ "base": "SD1.5",
+ "save_path": "ipadapter",
+ "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.",
+ "reference": "https://huggingface.co/h94/IP-Adapter",
+ "filename": "ip-adapter_sd15_light_v11.bin",
+ "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15_light_v11.bin",
+ "size": "44.6MB"
+ },
+ {
+ "name": "ip-adapter_sd15_light.safetensors [DEPRECATED]",
+ "type": "IP-Adapter",
+ "base": "SD1.5",
+ "save_path": "ipadapter",
+ "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.",
+ "reference": "https://huggingface.co/h94/IP-Adapter",
+ "filename": "ip-adapter_sd15_light.safetensors",
+ "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15_light.safetensors",
+ "size": "44.6MB"
+ },
+ {
+ "name": "ip-adapter-plus_sd15.safetensors",
+ "type": "IP-Adapter",
+ "base": "SD1.5",
+ "save_path": "ipadapter",
+ "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.",
+ "reference": "https://huggingface.co/h94/IP-Adapter",
+ "filename": "ip-adapter-plus_sd15.safetensors",
+ "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus_sd15.safetensors",
+ "size": "98.2MB"
+ },
+ {
+ "name": "ip-adapter-plus-face_sd15.safetensors",
+ "type": "IP-Adapter",
+ "base": "SD1.5",
+ "save_path": "ipadapter",
+ "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.",
+ "reference": "https://huggingface.co/h94/IP-Adapter",
+ "filename": "ip-adapter-plus-face_sd15.safetensors",
+ "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus-face_sd15.safetensors",
+ "size": "98.2MB"
+ },
+ {
+ "name": "ip-adapter-full-face_sd15.safetensors",
+ "type": "IP-Adapter",
+ "base": "SD1.5",
+ "save_path": "ipadapter",
+ "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.",
+ "reference": "https://huggingface.co/h94/IP-Adapter",
+ "filename": "ip-adapter-full-face_sd15.safetensors",
+ "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-full-face_sd15.safetensors",
+ "size": "43.6MB"
+ },
+ {
+ "name": "ip-adapter_sd15_vit-G.safetensors",
+ "type": "IP-Adapter",
+ "base": "SD1.5",
+ "save_path": "ipadapter",
+ "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.",
+ "reference": "https://huggingface.co/h94/IP-Adapter",
+ "filename": "ip-adapter_sd15_vit-G.safetensors",
+ "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15_vit-G.safetensors",
+ "size": "46.2MB"
+ },
+ {
+ "name": "ip-adapter-faceid_sd15.bin",
+ "type": "IP-Adapter",
+ "base": "SD1.5",
+ "save_path": "ipadapter",
+ "description": "IP-Adapter-FaceID Model (SD1.5) [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter-FaceID",
+ "filename": "ip-adapter-faceid_sd15.bin",
+ "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sd15.bin",
+ "size": "96.7MB"
+ },
+ {
+ "name": "ip-adapter-faceid-plusv2_sd15.bin",
+ "type": "IP-Adapter",
+ "base": "SD1.5",
+ "save_path": "ipadapter",
+ "description": "IP-Adapter-FaceID Plus V2 Model (SD1.5) [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter-FaceID",
+ "filename": "ip-adapter-faceid-plusv2_sd15.bin",
+ "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sd15.bin",
+ "size": "156.6MB"
+ },
+ {
+ "name": "ip-adapter-faceid-plus_sd15.bin [DEPRECATED]",
+ "type": "IP-Adapter",
+ "base": "SD1.5",
+ "save_path": "ipadapter",
+ "description": "IP-Adapter-FaceID Plus Model (SD1.5) [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter-FaceID",
+ "filename": "ip-adapter-faceid-plus_sd15.bin",
+ "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plus_sd15.bin",
+ "size": "156.6MB"
+ },
+ {
+ "name": "ip-adapter-faceid-portrait-v11_sd15.bin",
+ "type": "IP-Adapter",
+ "base": "SD1.5",
+ "save_path": "ipadapter",
+ "description": "IP-Adapter-FaceID Portrait V11 Model (SD1.5) [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter-FaceID",
+ "filename": "ip-adapter-faceid-portrait-v11_sd15.bin",
+ "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait-v11_sd15.bin",
+ "size": "64.6MB"
+ },
+ {
+ "name": "ip-adapter-faceid-portrait_sd15.bin [DEPRECATED]",
+ "type": "IP-Adapter",
+ "base": "SD1.5",
+ "save_path": "ipadapter",
+ "description": "IP-Adapter-FaceID Portrait Model (SD1.5) [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter-FaceID",
+ "filename": "ip-adapter-faceid-portrait_sd15.bin",
+ "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait_sd15.bin",
+ "size": "64.6MB"
+ },
+ {
+ "name": "ip-adapter-faceid_sdxl.bin",
+ "type": "IP-Adapter",
+ "base": "SD1.5",
+ "save_path": "ipadapter",
+ "description": "IP-Adapter-FaceID Model (SDXL) [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter-FaceID",
+ "filename": "ip-adapter-faceid_sdxl.bin",
+ "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sdxl.bin",
+ "size": "1.07GB"
+ },
+ {
+ "name": "ip-adapter-faceid-plusv2_sdxl.bin",
+ "type": "IP-Adapter",
+ "base": "SD1.5",
+ "save_path": "ipadapter",
+ "description": "IP-Adapter-FaceID Plus Model (SDXL) [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter-FaceID",
+ "filename": "ip-adapter-faceid-plusv2_sdxl.bin",
+ "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sdxl.bin",
+ "size": "1.49GB"
+ },
+ {
+ "name": "ip-adapter-faceid-portrait_sdxl.bin",
+ "type": "IP-Adapter",
+ "base": "SDXL",
+ "save_path": "ipadapter",
+ "description": "IP-Adapter-FaceID Portrait Model (SDXL) [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter-FaceID",
+ "filename": "ip-adapter-faceid-portrait_sdxl.bin",
+ "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait_sdxl.bin",
+ "size": "749.8MB"
+ },
+ {
+ "name": "ip-adapter-faceid-portrait_sdxl_unnorm.bin",
+ "type": "IP-Adapter",
+ "base": "SDXL",
+ "save_path": "ipadapter",
+ "description": "IP-Adapter-FaceID Portrait Model (SDXL/unnorm) [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter-FaceID",
+ "filename": "ip-adapter-faceid-portrait_sdxl_unnorm.bin",
+ "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait_sdxl_unnorm.bin",
+ "size": "1.01GB"
+ },
+ {
+ "name": "ip-adapter-faceid_sd15_lora.safetensors",
+ "type": "lora",
+ "base": "SD1.5",
+ "save_path": "loras/ipadapter",
+ "description": "IP-Adapter-FaceID LoRA Model (SD1.5) [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter-FaceID",
+ "filename": "ip-adapter-faceid_sd15_lora.safetensors",
+ "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sd15_lora.safetensors",
+ "size": "51.1MB"
+ },
+ {
+ "name": "ip-adapter-faceid-plus_sd15_lora.safetensors [DEPRECATED]",
+ "type": "lora",
+ "base": "SD1.5",
+ "save_path": "loras/ipadapter",
+ "description": "IP-Adapter-FaceID Plus LoRA Model (SD1.5) [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter-FaceID",
+ "filename": "ip-adapter-faceid-plus_sd15_lora.safetensors",
+ "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plus_sd15_lora.safetensors",
+ "size": "51.1MB"
+ },
+ {
+ "name": "ip-adapter-faceid-plusv2_sd15_lora.safetensors",
+ "type": "lora",
+ "base": "SD1.5",
+ "save_path": "loras/ipadapter",
+ "description": "IP-Adapter-FaceID-Plus V2 LoRA Model (SD1.5) [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter-FaceID",
+ "filename": "ip-adapter-faceid-plusv2_sd15_lora.safetensors",
+ "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sd15_lora.safetensors",
+ "size": "51.1MB"
+ },
+ {
+ "name": "ip-adapter-faceid_sdxl_lora.safetensors",
+ "type": "lora",
+ "base": "SDXL",
+ "save_path": "loras/ipadapter",
+ "description": "IP-Adapter-FaceID LoRA Model (SDXL) [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter-FaceID",
+ "filename": "ip-adapter-faceid_sdxl_lora.safetensors",
+ "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sdxl_lora.safetensors",
+ "size": "371.8MB"
+ },
+ {
+ "name": "ip-adapter-faceid-plusv2_sdxl_lora.safetensors",
+ "type": "lora",
+ "base": "SDXL",
+ "save_path": "loras/ipadapter",
+ "description": "IP-Adapter-FaceID-Plus V2 LoRA Model (SDXL) [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter-FaceID",
+ "filename": "ip-adapter-faceid-plusv2_sdxl_lora.safetensors",
+ "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sdxl_lora.safetensors",
+ "size": "371.8MB"
+ },
+ {
+ "name": "ip-adapter_sdxl.safetensors",
+ "type": "IP-Adapter",
+ "base": "SDXL",
+ "save_path": "ipadapter",
+ "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.",
+ "reference": "https://huggingface.co/h94/IP-Adapter",
+ "filename": "ip-adapter_sdxl.safetensors",
+ "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter_sdxl.safetensors",
+ "size": "702.6MB"
+ },
+ {
+ "name": "ip-adapter_sdxl_vit-h.safetensors",
+ "type": "IP-Adapter",
+ "base": "SDXL",
+ "save_path": "ipadapter",
+ "description": "This model requires the use of the SD1.5 encoder despite being for SDXL checkpoints [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter",
+ "filename": "ip-adapter_sdxl_vit-h.safetensors",
+ "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter_sdxl_vit-h.safetensors",
+ "size": "698.4MB"
+ },
+ {
+ "name": "ip-adapter-plus_sdxl_vit-h.safetensors",
+ "type": "IP-Adapter",
+ "base": "SDXL",
+ "save_path": "ipadapter",
+ "description": "This model requires the use of the SD1.5 encoder despite being for SDXL checkpoints [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter",
+ "filename": "ip-adapter-plus_sdxl_vit-h.safetensors",
+ "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter-plus_sdxl_vit-h.safetensors",
+ "size": "847.5MB"
+ },
+ {
+ "name": "ip-adapter-plus-face_sdxl_vit-h.safetensors",
+ "type": "IP-Adapter",
+ "base": "SDXL",
+ "save_path": "ipadapter",
+ "description": "This model requires the use of the SD1.5 encoder despite being for SDXL checkpoints [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter",
+ "filename": "ip-adapter-plus-face_sdxl_vit-h.safetensors",
+ "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter-plus-face_sdxl_vit-h.safetensors",
+ "size": "847.5MB"
+ },
+ {
+ "name": "ip_plus_composition_sd15.safetensors",
+ "type": "IP-Adapter",
+ "base": "SD1.5",
+ "save_path": "ipadapter",
+ "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.",
+ "reference": "https://huggingface.co/ostris/ip-composition-adapter",
+ "filename": "ip_plus_composition_sd15.safetensors",
+ "url": "https://huggingface.co/ostris/ip-composition-adapter/resolve/main/ip_plus_composition_sd15.safetensors",
+ "size": "98.2MB"
+ },
+ {
+ "name": "ip_plus_composition_sdxl.safetensors",
+ "type": "IP-Adapter",
+ "base": "SDXL",
+ "save_path": "ipadapter",
+ "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.",
+ "reference": "https://huggingface.co/ostris/ip-composition-adapter",
+ "filename": "ip_plus_composition_sdxl.safetensors",
+ "url": "https://huggingface.co/ostris/ip-composition-adapter/resolve/main/ip_plus_composition_sdxl.safetensors",
+ "size": "847.5MB"
+ },
+ {
+ "name": "pfg-novel-n10.pt",
+ "type": "PFG",
+ "base": "SD1.5",
+ "save_path": "custom_nodes/pfg-ComfyUI/models",
+ "description": "Pressing 'install' directly downloads the model from the pfg-ComfyUI/models extension node. (Note: Requires ComfyUI-Manager V0.24 or above)",
+ "reference": "https://huggingface.co/furusu/PFG",
+ "filename": "pfg-novel-n10.pt",
+ "url": "https://huggingface.co/furusu/PFG/resolve/main/pfg-novel-n10.pt",
+ "size": "23.6MB"
+ },
+ {
+ "name": "pfg-wd14-n10.pt",
+ "type": "PFG",
+ "base": "SD1.5",
+ "save_path": "custom_nodes/pfg-ComfyUI/models",
+ "description": "Pressing 'install' directly downloads the model from the pfg-ComfyUI/models extension node. (Note: Requires ComfyUI-Manager V0.24 or above)",
+ "reference": "https://huggingface.co/furusu/PFG",
+ "filename": "pfg-wd14-n10.pt",
+ "url": "https://huggingface.co/furusu/PFG/resolve/main/pfg-wd14-n10.pt",
+ "size": "31.5MB"
+ },
+ {
+ "name": "pfg-wd15beta2-n10.pt",
+ "type": "PFG",
+ "base": "SD1.5",
+ "save_path": "custom_nodes/pfg-ComfyUI/models",
+ "description": "Pressing 'install' directly downloads the model from the pfg-ComfyUI/models extension node. (Note: Requires ComfyUI-Manager V0.24 or above)",
+ "reference": "https://huggingface.co/furusu/PFG",
+ "filename": "pfg-wd15beta2-n10.pt",
+ "url": "https://huggingface.co/furusu/PFG/resolve/main/pfg-wd15beta2-n10.pt",
+ "size": "31.5MB"
+ },
+ {
+ "name": "GFPGANv1.4.pth",
+ "type": "GFPGAN",
+ "base": "GFPGAN",
+ "save_path": "facerestore_models",
+ "description": "Face Restoration Models. Download the model required for using the 'Facerestore CF (Code Former)' custom node.",
+ "reference": "https://github.com/TencentARC/GFPGAN/releases",
+ "filename": "GFPGANv1.4.pth",
+ "url": "https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/GFPGANv1.4.pth",
+ "size": "348.6MB"
+ },
+ {
+ "name": "codeformer.pth",
+ "type": "CodeFormer",
+ "base": "CodeFormer",
+ "save_path": "facerestore_models",
+ "description": "Face Restoration Models. Download the model required for using the 'Facerestore CF (Code Former)' custom node.",
+ "reference": "https://github.com/sczhou/CodeFormer/releases",
+ "filename": "codeformer.pth",
+ "url": "https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/codeformer.pth",
+ "size": "376.6MB"
+ },
+ {
+ "name": "detection_Resnet50_Final.pth",
+ "type": "facexlib",
+ "base": "facexlib",
+ "save_path": "facerestore_models",
+ "description": "Face Detection Models. Download the model required for using the 'Facerestore CF (Code Former)' custom node.",
+ "reference": "https://github.com/xinntao/facexlib",
+ "filename": "detection_Resnet50_Final.pth",
+ "url": "https://github.com/xinntao/facexlib/releases/download/v0.1.0/detection_Resnet50_Final.pth",
+ "size": "109.5MB"
+ },
+ {
+ "name": "detection_mobilenet0.25_Final.pth",
+ "type": "facexlib",
+ "base": "facexlib",
+ "save_path": "facerestore_models",
+ "description": "Face Detection Models. Download the model required for using the 'Facerestore CF (Code Former)' custom node.",
+ "reference": "https://github.com/xinntao/facexlib",
+ "filename": "detection_mobilenet0.25_Final.pth",
+ "url": "https://github.com/xinntao/facexlib/releases/download/v0.1.0/detection_mobilenet0.25_Final.pth",
+ "size": "1.79MB"
+ },
+ {
+ "name": "yolov5l-face.pth",
+ "type": "facexlib",
+ "base": "facexlib",
+ "save_path": "facedetection",
+ "description": "Face Detection Models. Download the model required for using the 'Facerestore CF (Code Former)' custom node.",
+ "reference": "https://github.com/xinntao/facexlib",
+ "filename": "yolov5l-face.pth",
+ "url": "https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/yolov5l-face.pth",
+ "size": "187.0MB"
+ },
+ {
+ "name": "yolov5n-face.pth",
+ "type": "facexlib",
+ "base": "facexlib",
+ "save_path": "facedetection",
+ "description": "Face Detection Models. Download the model required for using the 'Facerestore CF (Code Former)' custom node.",
+ "reference": "https://github.com/xinntao/facexlib",
+ "filename": "yolov5n-face.pth",
+ "url": "https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/yolov5n-face.pth",
+ "size": "7.15MB"
+ },
+ {
+ "name": "photomaker-v1.bin",
+ "type": "photomaker",
+ "base": "SDXL",
+ "save_path": "photomaker",
+ "description": "PhotoMaker model. This model is compatible with SDXL.",
+ "reference": "https://huggingface.co/TencentARC/PhotoMaker",
+ "filename": "photomaker-v1.bin",
+ "url": "https://huggingface.co/TencentARC/PhotoMaker/resolve/main/photomaker-v1.bin",
+ "size": "934.1MB"
+ },
+ {
+ "name": "1k3d68.onnx",
+ "type": "insightface",
+ "base": "inswapper",
+ "save_path": "insightface/models/antelopev2",
+ "description": "Antelopev2 1k3d68.onnx model for InstantId. (InstantId needs all Antelopev2 models)",
+ "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation",
+ "filename": "1k3d68.onnx",
+ "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/1k3d68.onnx",
+ "size": "143.6MB"
+ },
+ {
+ "name": "2d106det.onnx",
+ "type": "insightface",
+ "base": "inswapper",
+ "save_path": "insightface/models/antelopev2",
+ "description": "Antelopev2 2d106det.onnx model for InstantId. (InstantId needs all Antelopev2 models)",
+ "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation",
+ "filename": "2d106det.onnx",
+ "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/2d106det.onnx",
+ "size": "5.03MB"
+ },
+ {
+ "name": "genderage.onnx",
+ "type": "insightface",
+ "base": "inswapper",
+ "save_path": "insightface/models/antelopev2",
+ "description": "Antelopev2 genderage.onnx model for InstantId. (InstantId needs all Antelopev2 models)",
+ "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation",
+ "filename": "genderage.onnx",
+ "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/genderage.onnx",
+ "size": "1.32MB"
+ },
+ {
+ "name": "glintr100.onnx",
+ "type": "insightface",
+ "base": "inswapper",
+ "save_path": "insightface/models/antelopev2",
+ "description": "Antelopev2 glintr100.onnx model for InstantId. (InstantId needs all Antelopev2 models)",
+ "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation",
+ "filename": "glintr100.onnx",
+ "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/glintr100.onnx",
+ "size": "260.7MB"
+ },
+ {
+ "name": "scrfd_10g_bnkps.onnx",
+ "type": "insightface",
+ "base": "inswapper",
+ "save_path": "insightface/models/antelopev2",
+ "description": "Antelopev2 scrfd_10g_bnkps.onnx model for InstantId. (InstantId needs all Antelopev2 models)",
+ "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation",
+ "filename": "scrfd_10g_bnkps.onnx",
+ "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/scrfd_10g_bnkps.onnx",
+ "size": "16.9MB"
+ },
+ {
+ "name": "ip-adapter.bin",
+ "type": "instantid",
+ "base": "SDXL",
+ "save_path": "instantid",
+ "description": "InstantId main model based on IpAdapter",
+ "reference": "https://huggingface.co/InstantX/InstantID",
+ "filename": "ip-adapter.bin",
+ "url": "https://huggingface.co/InstantX/InstantID/resolve/main/ip-adapter.bin",
+ "size": "1.69GB"
+ },
+ {
+ "name": "diffusion_pytorch_model.safetensors",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/instantid",
+ "description": "InstantId controlnet model",
+ "reference": "https://huggingface.co/InstantX/InstantID",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/InstantX/InstantID/resolve/main/ControlNetModel/diffusion_pytorch_model.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "efficient_sam_s_cpu.jit [ComfyUI-YoloWorld-EfficientSAM]",
+ "type": "efficient_sam",
+ "base": "efficient_sam",
+ "save_path": "custom_nodes/ComfyUI-YoloWorld-EfficientSAM",
+ "description": "Install efficient_sam_s_cpu.jit into ComfyUI-YoloWorld-EfficientSAM",
+ "reference": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/tree/main",
+ "filename": "efficient_sam_s_cpu.jit",
+ "url": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/resolve/main/efficient_sam_s_cpu.jit",
+ "size": "106.0MB"
+ },
+ {
+ "name": "efficient_sam_s_gpu.jit [ComfyUI-YoloWorld-EfficientSAM]",
+ "type": "efficient_sam",
+ "base": "efficient_sam",
+ "save_path": "custom_nodes/ComfyUI-YoloWorld-EfficientSAM",
+ "description": "Install efficient_sam_s_gpu.jit into ComfyUI-YoloWorld-EfficientSAM",
+ "reference": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/tree/main",
+ "filename": "efficient_sam_s_gpu.jit",
+ "url": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/resolve/main/efficient_sam_s_gpu.jit",
+ "size": "106.0MB"
+ },
+ {
+ "name": "shape_predictor_68_face_landmarks.dat [Face Analysis]",
+ "type": "Shape Predictor",
+ "base": "DLIB",
+ "save_path": "custom_nodes/ComfyUI_FaceAnalysis/dlib",
+ "description": "To use the Face Analysis for ComfyUI custom node, installation of this model is needed.",
+ "reference": "https://huggingface.co/matt3ounstable/dlib_predictor_recognition/tree/main",
+ "filename": "shape_predictor_68_face_landmarks.dat",
+ "url": "https://huggingface.co/matt3ounstable/dlib_predictor_recognition/resolve/main/shape_predictor_68_face_landmarks.dat",
+ "size": "99.7MB"
+ },
+ {
+ "name": "dlib_face_recognition_resnet_model_v1.dat [Face Analysis]",
+ "type": "Face Recognition",
+ "base": "DLIB",
+ "save_path": "custom_nodes/ComfyUI_FaceAnalysis/dlib",
+ "description": "To use the Face Analysis for ComfyUI custom node, installation of this model is needed.",
+ "reference": "https://huggingface.co/matt3ounstable/dlib_predictor_recognition/tree/main",
+ "filename": "dlib_face_recognition_resnet_model_v1.dat",
+ "url": "https://huggingface.co/matt3ounstable/dlib_predictor_recognition/resolve/main/dlib_face_recognition_resnet_model_v1.dat",
+ "size": "22.5MB"
+ },
+ {
+ "name": "InstanceDiffusion/fusers",
+ "type": "InstanceDiffusion",
+ "base": "SD1.5",
+ "save_path": "instance_models/fuser_models",
+ "description": "Fusers checkpoints for multi-object prompting with InstanceDiffusion.",
+ "reference": "https://huggingface.co/logtd/instance_diffusion",
+ "filename": "fusers.ckpt",
+ "url": "https://huggingface.co/logtd/instance_diffusion/resolve/main/fusers.ckpt",
+ "size": "832.1MB"
+ },
+ {
+ "name": "InstanceDiffusion/position_net",
+ "type": "InstanceDiffusion",
+ "base": "SD1.5",
+ "save_path": "instance_models/positionnet_models",
+ "description": "PositionNet checkpoints for multi-object prompting with InstanceDiffusion.",
+ "reference": "https://huggingface.co/logtd/instance_diffusion",
+ "filename": "position_net.ckpt",
+ "url": "https://huggingface.co/logtd/instance_diffusion/resolve/main/position_net.ckpt",
+ "size": "643.2MB"
+ },
+ {
+ "name": "InstanceDiffusion/scaleu",
+ "type": "InstanceDiffusion",
+ "base": "SD1.5",
+ "save_path": "instance_models/scaleu_models",
+ "description": "ScaleU checkpoints for multi-object prompting with InstanceDiffusion.",
+ "reference": "https://huggingface.co/logtd/instance_diffusion",
+ "filename": "scaleu.ckpt",
+ "url": "https://huggingface.co/logtd/instance_diffusion/resolve/main/scaleu.ckpt",
+ "size": "53.1KB"
+ },
+ {
+ "name": "1k3d68.onnx",
+ "type": "insightface",
+ "base": "inswapper",
+ "save_path": "insightface/models/buffalo_l",
+ "description": "Buffalo_l 1k3d68.onnx model for IpAdapterPlus",
+ "reference": "https://github.com/cubiq/ComfyUI_IPAdapter_plus?tab=readme-ov-file#faceid",
+ "filename": "1k3d68.onnx",
+ "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/1k3d68.onnx",
+ "size": "143.6MB"
+ },
+ {
+ "name": "2d106det.onnx",
+ "type": "insightface",
+ "base": "inswapper",
+ "save_path": "insightface/models/buffalo_l",
+ "description": "Buffalo_l 2d106det.onnx model for IpAdapterPlus",
+ "reference": "https://github.com/cubiq/ComfyUI_IPAdapter_plus?tab=readme-ov-file#faceid",
+ "filename": "2d106det.onnx",
+ "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/2d106det.onnx",
+ "size": "5.03MB"
+ },
+ {
+ "name": "det_10g.onnx",
+ "type": "insightface",
+ "base": "inswapper",
+ "save_path": "insightface/models/buffalo_l",
+ "description": "Buffalo_l det_10g.onnx model for IpAdapterPlus",
+ "reference": "https://github.com/cubiq/ComfyUI_IPAdapter_plus?tab=readme-ov-file#faceid",
+ "filename": "det_10g.onnx",
+ "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/det_10g.onnx",
+ "size": "16.9MB"
+ },
+ {
+ "name": "genderage.onnx",
+ "type": "insightface",
+ "base": "inswapper",
+ "save_path": "insightface/models/buffalo_l",
+ "description": "Buffalo_l genderage.onnx model for IpAdapterPlus",
+ "reference": "https://github.com/cubiq/ComfyUI_IPAdapter_plus?tab=readme-ov-file#faceid",
+ "filename": "genderage.onnx",
+ "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/genderage.onnx",
+ "size": "1.32MB"
+ },
+ {
+ "name": "w600k_r50.onnx",
+ "type": "insightface",
+ "base": "inswapper",
+ "save_path": "insightface/models/buffalo_l",
+ "description": "Buffalo_l w600k_r50.onnx model for IpAdapterPlus",
+ "reference": "https://github.com/cubiq/ComfyUI_IPAdapter_plus?tab=readme-ov-file#faceid",
+ "filename": "w600k_r50.onnx",
+ "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/w600k_r50.onnx",
+ "size": "174.4MB"
+ },
+ {
+ "name": "BLIP ImageCaption (COCO) w/ ViT-B and CapFilt-L",
+ "type": "BLIP_MODEL",
+ "base": "blip_model",
+ "save_path": "blip",
+ "description": "BLIP ImageCaption (COCO) w/ ViT-B and CapFilt-L",
+ "reference": "https://github.com/salesforce/BLIP",
+ "filename": "model_base_capfilt_large.pth",
+ "url": "https://storage.googleapis.com/sfr-vision-language-research/BLIP/models/model_base_capfilt_large.pth",
+ "size": "2.12GB"
+ },
+ {
+ "name": "GroundingDINO SwinT OGC - Model",
+ "type": "GroundingDINO",
+ "base": "DINO",
+ "save_path": "groundingdino",
+ "description": "GroundingDINO SwinT OGC Model",
+ "reference": "https://huggingface.co/ShilongLiu/GroundingDINO",
+ "filename": "groundingdino_swint_ogc.pth",
+ "url": "https://huggingface.co/ShilongLiu/GroundingDINO/resolve/main/groundingdino_swint_ogc.pth",
+ "size": "694.0MB"
+ },
+ {
+ "name": "GroundingDINO SwinT OGC - CFG File",
+ "type": "GroundingDINO",
+ "base": "DINO",
+ "save_path": "groundingdino",
+ "description": "GroundingDINO SwinT OGC CFG File",
+ "reference": "https://huggingface.co/ShilongLiu/GroundingDINO/resolve/main/GroundingDINO_SwinT_OGC.cfg.py",
+ "filename": "GroundingDINO_SwinT_OGC.cfg.py",
+ "url": "https://huggingface.co/ShilongLiu/GroundingDINO/raw/main/GroundingDINO_SwinT_OGC.cfg.py",
+ "size": "1.01KB"
+ },
+ {
+ "name": "ViT-H SAM model",
+ "type": "sam",
+ "base": "SAM",
+ "save_path": "sams",
+ "description": "Segmenty Anything SAM model (ViT-H)",
+ "reference": "https://github.com/facebookresearch/segment-anything#model-checkpoints",
+ "filename": "sam_vit_h_4b8939.pth",
+ "url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth",
+ "size": "2.56GB"
+ },
+ {
+ "name": "ViT-L SAM model",
+ "type": "sam",
+ "base": "SAM",
+ "save_path": "sams",
+ "description": "Segmenty Anything SAM model (ViT-L)",
+ "reference": "https://github.com/facebookresearch/segment-anything#model-checkpoints",
+ "filename": "sam_vit_l_0b3195.pth",
+ "url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_l_0b3195.pth",
+ "size": "1.25GB"
+ },
+ {
+ "name": "MobileSAM",
+ "type": "sam",
+ "base": "SAM",
+ "save_path": "sams",
+ "description": "MobileSAM",
+ "reference": "https://github.com/ChaoningZhang/MobileSAM/",
+ "filename": "mobile_sam.pt",
+ "url": "https://github.com/ChaoningZhang/MobileSAM/blob/master/weights/mobile_sam.pt",
+ "size": "38.8MB"
+ },
+ {
+ "name": "DynamiCrafter 1024 bf16 safetensors",
+ "type": "checkpoints",
+ "base": "DynamiCrafter",
+ "save_path": "checkpoints/dynamicrafter",
+ "description": "DynamiCrafter image2video model 1024x575",
+ "reference": "https://huggingface.co/Kijai/DynamiCrafter_pruned/",
+ "filename": "dynamicrafter_1024_v1_bf16.safetensors",
+ "url": "https://huggingface.co/Kijai/DynamiCrafter_pruned/resolve/main/dynamicrafter_1024_v1_bf16.safetensors",
+ "size": "5.22GB"
+ },
+ {
+ "name": "DynamiCrafter 512 interpolation bf16 safetensors",
+ "type": "checkpoints",
+ "base": "DynamiCrafter",
+ "save_path": "checkpoints/dynamicrafter",
+ "description": "DynamiCrafter image2video interpolation model 512",
+ "reference": "https://huggingface.co/Kijai/DynamiCrafter_pruned/",
+ "filename": "dynamicrafter_512_interp_v1_bf16.safetensors",
+ "url": "https://huggingface.co/Kijai/DynamiCrafter_pruned/resolve/main/dynamicrafter_512_interp_v1_bf16.safetensors",
+ "size": "5.22GB"
+ },
+ {
+ "name": "monster-labs - Controlnet QR Code Monster v1 For SDXL",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "default",
+ "description": "monster-labs - Controlnet QR Code Monster v1 For SDXL",
+ "reference": "https://huggingface.co/monster-labs/control_v1p_sdxl_qrcode_monster",
+ "filename": "control_v1p_sdxl_qrcode_monster.safetensors",
+ "url": "https://huggingface.co/monster-labs/control_v1p_sdxl_qrcode_monster/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "5.00GB"
+ },
+ {
+ "name": "Depth-FM-v1 fp16 safetensors",
+ "type": "checkpoints",
+ "base": "Depth-FM",
+ "save_path": "checkpoints/depthfm",
+ "description": "Depth-FM monocular depth estimation model",
+ "reference": "https://huggingface.co/Kijai/depth-fm-pruned",
+ "filename": "depthfm-v1_fp16.safetensors",
+ "url": "https://huggingface.co/Kijai/depth-fm-pruned/resolve/main/depthfm-v1_fp16.safetensors",
+ "size": "1.73GB"
+ },
+ {
+ "name": "Depth-FM-v1 fp32 safetensors",
+ "type": "checkpoints",
+ "base": "Depth-FM",
+ "save_path": "checkpoints/depthfm",
+ "description": "Depth-FM monocular depth estimation model",
+ "reference": "https://huggingface.co/Kijai/depth-fm-pruned",
+ "filename": "depthfm-v1_fp32.safetensors",
+ "url": "https://huggingface.co/Kijai/depth-fm-pruned/resolve/main/depthfm-v1_fp32.safetensors",
+ "size": "3.46GB"
+ },
+ {
+ "name": "SUPIR-v0F.ckpt",
+ "type": "checkpoints",
+ "base": "SUPIR",
+ "save_path": "checkpoints/SUPIR",
+ "description": "SUPIR checkpoint model",
+ "reference": "https://huggingface.co/camenduru/SUPIR/tree/main",
+ "filename": "SUPIR-v0F.ckpt",
+ "url": "https://huggingface.co/camenduru/SUPIR/resolve/main/SUPIR-v0F.ckpt",
+ "size": "5.33GB"
+ },
+ {
+ "name": "SUPIR-v0Q.ckpt",
+ "type": "checkpoints",
+ "base": "SUPIR",
+ "save_path": "checkpoints/SUPIR",
+ "description": "SUPIR checkpoint model",
+ "reference": "https://huggingface.co/camenduru/SUPIR/tree/main",
+ "filename": "SUPIR-v0Q.ckpt",
+ "url": "https://huggingface.co/camenduru/SUPIR/resolve/main/SUPIR-v0Q.ckpt",
+ "size": "5.33GB"
+ },
+ {
+ "name": "Kijai/SUPIR-v0F_fp16.safetensors (pruned)",
+ "type": "checkpoints",
+ "base": "SUPIR",
+ "save_path": "checkpoints/SUPIR",
+ "description": "SUPIR checkpoint model",
+ "reference": "https://huggingface.co/Kijai/SUPIR_pruned/tree/main",
+ "filename": "SUPIR-v0F_fp16.safetensors",
+ "url": "https://huggingface.co/Kijai/SUPIR_pruned/resolve/main/SUPIR-v0F_fp16.safetensors",
+ "size": "2.66GB"
+ },
+ {
+ "name": "Kijai/SUPIR-v0Q_fp16.safetensors (pruned)",
+ "type": "checkpoints",
+ "base": "SUPIR",
+ "save_path": "checkpoints/SUPIR",
+ "description": "SUPIR checkpoint model",
+ "reference": "https://huggingface.co/Kijai/SUPIR_pruned/tree/main",
+ "filename": "SUPIR-v0Q_fp16.safetensors",
+ "url": "https://huggingface.co/Kijai/SUPIR_pruned/resolve/main/SUPIR-v0Q_fp16.safetensors",
+ "size": "2.66GB"
+ },
+ {
+ "name": "RAM",
+ "type": "RAM",
+ "base": "RAM",
+ "save_path": "rams",
+ "description": "RAM Recognize Anything Model",
+ "reference": "https://huggingface.co/xinyu1205/recognize_anything_model",
+ "filename": "ram_swin_large_14m.pth",
+ "url": "https://huggingface.co/xinyu1205/recognize_anything_model/resolve/main/ram_swin_large_14m.pth",
+ "size": "5.63GB"
+ },
+ {
+ "name": "RAM++",
+ "type": "RAM",
+ "base": "RAM",
+ "save_path": "rams",
+ "description": "RAM++ Recognize Anything Model",
+ "reference": "https://huggingface.co/xinyu1205/recognize-anything-plus-model",
+ "filename": "ram_plus_swin_large_14m.pth",
+ "url": "https://huggingface.co/xinyu1205/recognize-anything-plus-model/resolve/main/ram_plus_swin_large_14m.pth",
+ "size": "3.01GB"
+ },
+ {
+ "name": "tag2text",
+ "type": "RAM",
+ "base": "RAM",
+ "save_path": "rams",
+ "description": "tag2text Recognize Anything Model",
+ "reference": "https://huggingface.co/xinyu1205/recognize_anything_model",
+ "filename": "tag2text_swin_14m.pth",
+ "url": "https://huggingface.co/xinyu1205/recognize_anything_model/resolve/main/tag2text_swin_14m.pth",
+ "size": "4.48GB"
+ },
+ {
+ "name": "Zero123 3D object Model",
+ "type": "Zero123",
+ "base": "Zero123",
+ "save_path": "checkpoints/zero123",
+ "description": "model that been trained on 10M+ 3D objects from Objaverse-XL, used for generated rotated CamView",
+ "reference": "https://objaverse.allenai.org/docs/zero123-xl/",
+ "filename": "zero123-xl.ckpt",
+ "url": "https://huggingface.co/kealiu/zero123-xl/resolve/main/zero123-xl.ckpt",
+ "size": "15.5GB"
+ },
+ {
+ "name": "Zero123 3D object Model",
+ "type": "Zero123",
+ "base": "Zero123",
+ "save_path": "checkpoints/zero123",
+ "description": "Stable Zero123 is a model for view-conditioned image generation based on [a/Zero123](https://github.com/cvlab-columbia/zero123).",
+ "reference": "https://huggingface.co/stabilityai/stable-zero123",
+ "filename": "stable_zero123.ckpt",
+ "url": "https://huggingface.co/stabilityai/stable-zero123/resolve/main/stable_zero123.ckpt",
+ "size": "8.58GB"
+ },
+ {
+ "name": "Zero123 3D object Model",
+ "type": "Zero123",
+ "base": "Zero123",
+ "save_path": "checkpoints/zero123",
+ "description": "Zero123 original checkpoints in 105000 steps.",
+ "reference": "https://huggingface.co/cvlab/zero123-weights",
+ "filename": "zero123-105000.ckpt",
+ "url": "https://huggingface.co/cvlab/zero123-weights/resolve/main/105000.ckpt",
+ "size": "15.5GB"
+ },
+ {
+ "name": "Zero123 3D object Model",
+ "type": "Zero123",
+ "base": "Zero123",
+ "save_path": "checkpoints/zero123",
+ "description": "Zero123 original checkpoints in 165000 steps.",
+ "reference": "https://huggingface.co/cvlab/zero123-weights",
+ "filename": "zero123-165000.ckpt",
+ "url": "https://huggingface.co/cvlab/zero123-weights/resolve/main/165000.ckpt",
+ "size": "15.5GB"
+ },
+ {
+ "name": "InstantID/ip-adapter",
+ "type": "instantid",
+ "base": "SDXL",
+ "save_path": "instantid/SDXL",
+ "description": "ip-adapter model for cubiq/InstantID",
+ "reference": "https://huggingface.co/InstantX/InstantID",
+ "filename": "ip-adapter.bin",
+ "url": "https://huggingface.co/InstantX/InstantID/resolve/main/ip-adapter.bin",
+ "size": "1.69GB"
+ },
+ {
+ "name": "InstantID/ControlNet",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL/instantid",
+ "description": "instantid controlnet model for cubiq/InstantID",
+ "reference": "https://huggingface.co/InstantX/InstantID",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/InstantX/InstantID/resolve/main/ControlNetModel/diffusion_pytorch_model.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "MonsterMMORPG/insightface (for InstantID)",
+ "type": "insightface",
+ "base": "SDXL",
+ "save_path": "insightface/models",
+ "description": "MonsterMMORPG insightface model for cubiq/InstantID",
+ "reference": "https://huggingface.co/MonsterMMORPG/tools/tree/main",
+ "filename": "antelopev2.zip",
+ "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/antelopev2.zip",
+ "size": "360.7MB"
+ },
+ {
+ "name": "IC-Light/fc",
+ "type": "IC-Light",
+ "base": "SD1.5",
+ "save_path": "unet/IC-Light",
+ "description": "The default relighting model, conditioned on text and foreground",
+ "reference": "https://huggingface.co/lllyasviel/ic-light",
+ "filename": "iclight_sd15_fc.safetensors",
+ "url": "https://huggingface.co/lllyasviel/ic-light/resolve/main/iclight_sd15_fc.safetensors",
+ "size": "1.72GB"
+ },
+ {
+ "name": "IC-Light/fbc",
+ "type": "IC-Light",
+ "base": "SD1.5",
+ "save_path": "unet/IC-Light",
+ "description": "Relighting model conditioned with text, foreground, and background",
+ "reference": "https://huggingface.co/lllyasviel/ic-light",
+ "filename": "iclight_sd15_fbc.safetensors",
+ "url": "https://huggingface.co/lllyasviel/ic-light/resolve/main/iclight_sd15_fbc.safetensors",
+ "size": "1.72GB"
+ },
+ {
+ "name": "IC-Light/fcon",
+ "type": "IC-Light",
+ "base": "SD1.5",
+ "save_path": "unet/IC-Light",
+ "description": "Same as iclight_sd15_fc.safetensors, but trained with offset noise",
+ "reference": "https://huggingface.co/lllyasviel/ic-light",
+ "filename": "iclight_sd15_fcon.safetensors",
+ "url": "https://huggingface.co/lllyasviel/ic-light/resolve/main/iclight_sd15_fcon.safetensors",
+ "size": "1.72GB"
+ },
+ {
+ "name": "ID-Animator/animator.ckpt",
+ "type": "ID-Animator",
+ "base": "SD1.5",
+ "save_path": "custom_nodes/ComfyUI_ID_Animator/models",
+ "description": "ID-Animator checkpoint",
+ "reference": "https://huggingface.co/spaces/ID-Animator/ID-Animator",
+ "filename": "animator.ckpt",
+ "url": "https://huggingface.co/spaces/ID-Animator/ID-Animator/resolve/main/animator.ckpt",
+ "size": "247.3MB"
+ },
+ {
+ "name": "ID-Animator/mm_sd_v15_v2.ckpt",
+ "type": "ID-Animator",
+ "base": "SD1.5",
+ "save_path": "custom_nodes/ComfyUI_ID_Animator/models/animatediff_models",
+ "description": "AnimateDiff checkpoint for ID-Animator",
+ "reference": "https://huggingface.co/spaces/ID-Animator/ID-Animator",
+ "filename": "mm_sd_v15_v2.ckpt",
+ "url": "https://huggingface.co/spaces/ID-Animator/ID-Animator/resolve/main/mm_sd_v15_v2.ckpt",
+ "size": "1.82GB"
+ },
+ {
+ "name": "ID-Animator/image_encoder",
+ "type": "ID-Animator",
+ "base": "SD1.5",
+ "save_path": "custom_nodes/ComfyUI_ID_Animator/models/image_encoder",
+ "description": "CLIP Image encoder for ID-Animator",
+ "reference": "https://huggingface.co/spaces/ID-Animator/ID-Animator",
+ "filename": "model.safetensors",
+ "url": "https://huggingface.co/spaces/ID-Animator/ID-Animator/resolve/main/image_encoder/model.safetensors",
+ "size": "2.53GB"
+ },
+ {
+ "name": "TencentARC/CustomNet",
+ "type": "CustomNet",
+ "base": "CustomNet",
+ "save_path": "custom_nodes/ComfyUI_CustomNet/pretrain",
+ "description": "CustomNet pretrained model for ComfyUI_CustomNet",
+ "reference": "https://huggingface.co/TencentARC/CustomNet/tree/main",
+ "filename": "customnet_v1.pt",
+ "url": "https://huggingface.co/TencentARC/CustomNet/resolve/main/customnet_v1.pt",
+ "size": "5.71GB"
+ },
+ {
+ "name": "TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic v2 (fp16)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "Controlnet SDXL Tile model realistic version.",
+ "reference": "https://huggingface.co/TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic",
+ "filename": "TTPLANET_Controlnet_Tile_realistic_v2_fp16.safetensors",
+ "url": "https://huggingface.co/TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic/resolve/main/TTPLANET_Controlnet_Tile_realistic_v2_fp16.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic v2 (rank256)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "Controlnet SDXL Tile model realistic version.",
+ "reference": "https://huggingface.co/TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic",
+ "filename": "TTPLANET_Controlnet_Tile_realistic_v2_rank256.safetensors",
+ "url": "https://huggingface.co/TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic/resolve/main/TTPLANET_Controlnet_Tile_realistic_v2_rank256.safetensors",
+ "size": "774.4MB"
+ },
+ {
+ "name": "ViperYX/RGT_x2.pth",
+ "type": "RGT",
+ "base": "RGT",
+ "save_path": "RGT/RGT",
+ "description": "RGT x2 upscale model for ComfyUI-RGT",
+ "reference": "https://huggingface.co/ViperYX/RGT/tree/main",
+ "filename": "RGT_x2.pth",
+ "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT/RGT_x2.pth",
+ "size": "179.8MB"
+ },
+ {
+ "name": "ViperYX/RGT_x3.pth",
+ "type": "RGT",
+ "base": "RGT",
+ "save_path": "RGT/RGT",
+ "description": "RGT x3 upscale model for ComfyUI-RGT",
+ "reference": "https://huggingface.co/ViperYX/RGT/tree/main",
+ "filename": "RGT_x3.pth",
+ "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT/RGT_x3.pth",
+ "size": "180.5MB"
+ },
+ {
+ "name": "ViperYX/RGT_x4.pth",
+ "type": "RGT",
+ "base": "RGT",
+ "save_path": "RGT/RGT",
+ "description": "RGT_S x4 upscale model for ComfyUI-RGT",
+ "reference": "https://huggingface.co/ViperYX/RGT/tree/main",
+ "filename": "RGT_x4.pth",
+ "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT/RGT_x4.pth",
+ "size": "180.4MB"
+ },
+ {
+ "name": "ViperYX/RGT_S_x2.pth",
+ "type": "RGT",
+ "base": "RGT",
+ "save_path": "RGT/RGT_S",
+ "description": "RGT_S x2 upscale model for ComfyUI-RGT",
+ "reference": "https://huggingface.co/ViperYX/RGT/tree/main",
+ "filename": "RGT_S_x2.pth",
+ "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT_S/RGT_S_x2.pth",
+ "size": "135.4MB"
+ },
+ {
+ "name": "ViperYX/RGT_S_x3.pth",
+ "type": "RGT",
+ "base": "RGT",
+ "save_path": "RGT/RGT_S",
+ "description": "RGT_S x3 upscale model for ComfyUI-RGT",
+ "reference": "https://huggingface.co/ViperYX/RGT/tree/main",
+ "filename": "RGT_S_x3.pth",
+ "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT_S/RGT_S_x3.pth",
+ "size": "136.1MB"
+ },
+ {
+ "name": "ViperYX/RGT_S_x4.pth",
+ "type": "RGT",
+ "base": "RGT",
+ "save_path": "RGT/RGT_S",
+ "description": "RGT_S x4 upscale model for ComfyUI-RGT",
+ "reference": "https://huggingface.co/ViperYX/RGT/tree/main",
+ "filename": "RGT_S_x4.pth",
+ "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT_S/RGT_S_x4.pth",
+ "size": "136.0MB"
+ },
+ {
+ "name": "Doubiiu/ToonCrafter model checkpoint",
+ "type": "checkpoint",
+ "base": "ToonCrafter",
+ "save_path": "custom_nodes/ComfyUI-ToonCrafter/ToonCrafter/checkpoints/tooncrafter_512_interp_v1",
+ "description": "ToonCrafter checkpoint model for ComfyUI-ToonCrafter",
+ "reference": "https://huggingface.co/Doubiiu/ToonCrafter/tree/main",
+ "filename": "model.ckpt",
+ "url": "https://huggingface.co/Doubiiu/ToonCrafter/resolve/main/model.ckpt",
+ "size": "10.5GB"
+ },
+
+ {
+ "name": "xinsir/ControlNet++: All-in-one ControlNet",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL/controlnet-union-sdxl-1.0",
+ "description": "All-in-one ControlNet for image generations and editing!",
+ "reference": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "xinsir/Controlnet-Scribble-Sdxl-1.0",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL/controlnet-scribble-sdxl-1.0",
+ "description": "Controlnet SDXL Scribble model.",
+ "reference": "https://huggingface.co/xinsir/controlnet-scribble-sdxl-1.0",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/xinsir/controlnet-scribble-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "xinsir/Controlnet-Canny-Sdxl-1.0 (V2)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL/controlnet-canny-sdxl-1.0",
+ "description": "Controlnet SDXL Canny model.",
+ "reference": "https://huggingface.co/xinsir/controlnet-canny-sdxl-1.0",
+ "filename": "diffusion_pytorch_model_V2.safetensors",
+ "url": "https://huggingface.co/xinsir/controlnet-canny-sdxl-1.0/resolve/main/diffusion_pytorch_model_V2.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "xinsir/Controlnet-Openpose-Sdxl-1.0",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL/controlnet-openpose-sdxl-1.0",
+ "description": "Controlnet SDXL Openpose model.",
+ "reference": "https://huggingface.co/xinsir/controlnet-openpose-sdxl-1.0",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/xinsir/controlnet-openpose-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "xinsir/Controlnet-Openpose-Sdxl-1.0 (Ver. twins)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL/controlnet-openpose-sdxl-1.0",
+ "description": "Controlnet SDXL Openpose model. (Ver. twins)",
+ "reference": "https://huggingface.co/xinsir/controlnet-openpose-sdxl-1.0",
+ "filename": "diffusion_pytorch_model_twins.safetensors",
+ "url": "https://huggingface.co/xinsir/controlnet-openpose-sdxl-1.0/resolve/main/diffusion_pytorch_model_twins.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "xinsir/Controlnet-Scribble-Sdxl-1.0-Anime",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL/controlnet-scribble-sdxl-1.0-anime",
+ "description": "Controlnet SDXL Scribble model. (Ver. anime)",
+ "reference": "https://huggingface.co/xinsir/anime-painter",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/xinsir/anime-painter/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "xinsir/ControlNet Depth SDXL, support zoe, midias",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL/controlnet-depth-sdxl-1.0",
+ "description": "Controlnet SDXL Depth model.",
+ "reference": "https://huggingface.co/xinsir/controlnet-depth-sdxl-1.0",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/xinsir/controlnet-depth-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "xinsir/ControlNet Tile SDXL",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL/controlnet-tile-sdxl-1.0",
+ "description": "Controlnet SDXL Tile model.",
+ "reference": "https://huggingface.co/xinsir/controlnet-tile-sdxl-1.0",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/xinsir/controlnet-tile-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "2.50GB"
+ },
+
+ {
+ "name": "InstantX/SD3-Controlnet-Canny",
+ "type": "controlnet",
+ "base": "SD3",
+ "save_path": "controlnet/SD3/InstantX-Controlnet-Canny",
+ "description": "Controlnet SD3 Canny model.",
+ "reference": "https://huggingface.co/InstantX/SD3-Controlnet-Canny",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/InstantX/SD3-Controlnet-Canny/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "1.19GB"
+ },
+ {
+ "name": "InstantX/SD3-Controlnet-Pose",
+ "type": "controlnet",
+ "base": "SD3",
+ "save_path": "controlnet/SD3/InstantX-Controlnet-Pose",
+ "description": "Controlnet SD3 Pose model.",
+ "reference": "https://huggingface.co/InstantX/SD3-Controlnet-Pose",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/InstantX/SD3-Controlnet-Pose/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "1.19GB"
+ },
+ {
+ "name": "InstantX/SD3-Controlnet-Tile",
+ "type": "controlnet",
+ "base": "SD3",
+ "save_path": "controlnet/SD3/InstantX-Controlnet-Tile",
+ "description": "Controlnet SD3 Tile model.",
+ "reference": "https://huggingface.co/InstantX/SD3-Controlnet-Tile",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/InstantX/SD3-Controlnet-Tile/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "1.19GB"
+ },
+
+ {
+ "name": "Kijai/ToonCrafter model checkpoint (interpolation fp16)",
+ "type": "checkpoint",
+ "base": "ToonCrafter",
+ "save_path": "checkpoints/ToonCrafter",
+ "description": "ToonCrafter checkpoint model for ComfyUI-DynamiCrafterWrapper",
+ "reference": "https://huggingface.co/Kijai/DynamiCrafter_pruned",
+ "filename": "tooncrafter_512_interp-fp16.safetensors",
+ "url": "https://huggingface.co/Kijai/DynamiCrafter_pruned/resolve/main/tooncrafter_512_interp-fp16.safetensors",
+ "size": "5.25GB"
+ },
+ {
+ "name": "CN-anytest_v4-marged.safetensors",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "AnyTest Controlnet. A model for style transfer.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v4-marged.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "CN-anytest_v4-marged_am_dim256.safetensors (dim256/Animagine)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "AnyTest Controlnet Lora (dim256) for Animagine. A model for style transfer.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v4-marged_am_dim256.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged_am_dim256.safetensors",
+ "size": "774.4MB"
+ },
+ {
+ "name": "CN-anytest_v4-marged_am_dim128.safetensors (dim128/Animagine)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "AnyTest Controlnet Lora (dim128) for Animagine. A model for style transfer.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v4-marged_am_dim128.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged_am_dim128.safetensors",
+ "size": "395.7MB"
+ },
+ {
+ "name": "CN-anytest_v4-marged_pn_dim256.safetensors (dim256/Pony)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "AnyTest Controlnet Lora (dim256) for Pony. A model for style transfer.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v4-marged_pn_dim256.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged_pn_dim256.safetensors",
+ "size": "774.4MB"
+ },
+ {
+ "name": "CN-anytest_v4-marged_pn_dim128.safetensors (dim128/Pony)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "AnyTest Controlnet Lora (dim128) for Pony. A model for style transfer.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v4-marged_pn_dim128.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged_pn_dim128.safetensors",
+ "size": "395.7MB"
+ },
+ {
+ "name": "CN-anytest_v3-50000_fp16.safetensors (fp16)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "AnyTest Controlnet. A strict control model.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v3-50000_fp16.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_fp16.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "CN-anytest_v3-50000_am_dim256.safetensors (dim256/Animagine)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "AnyTest Controlnet Lora (dim256) for Animagine. A strict control model.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v3-50000_am_dim256.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_am_dim256.safetensors",
+ "size": "774.4MB"
+ },
+ {
+ "name": "CN-anytest_v3-50000_am_dim128.safetensors (dim128/Animagine)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "AnyTest Controlnet Lora (dim128) for Animagine. A strict control model.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v3-50000_am_dim128.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_am_dim128.safetensors",
+ "size": "395.7MB"
+ },
+ {
+ "name": "CN-anytest_v3-50000_pn_dim256.safetensors (dim256/Pony)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "AnyTest Controlnet Lora (dim256) for Pony. A strict control model.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v3-50000_pn_dim256.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_pn_dim256.safetensors",
+ "size": "774.4MB"
+ },
+ {
+ "name": "CN-anytest_v3-50000_pn_dim128.safetensors (dim128/Pony)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "AnyTest Controlnet Lora (dim128) for Pony. A strict control model.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v3-50000_pn_dim128.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_pn_dim128.safetensors",
+ "size": "395.7MB"
+ },
+ {
+ "name": "kijai/DepthAnythingV2 (vitb/fp16)",
+ "type": "depthanything",
+ "base": "depthanything",
+ "save_path": "depthanything",
+ "description": "DepthAnythingV2 model",
+ "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main",
+ "filename": "depth_anything_v2_vitb_fp16.safetensors",
+ "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vitb_fp16.safetensors",
+ "size": "195.0MB"
+ },
+ {
+ "name": "kijai/DepthAnythingV2 (vitb/fp32)",
+ "type": "depthanything",
+ "base": "depthanything",
+ "save_path": "depthanything",
+ "description": "DepthAnythingV2 model",
+ "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main",
+ "filename": "depth_anything_v2_vitb_fp32.safetensors",
+ "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vitb_fp32.safetensors",
+ "size": "389.9MB"
+ },
+ {
+ "name": "kijai/DepthAnythingV2 (vitl/fp16)",
+ "type": "depthanything",
+ "base": "depthanything",
+ "save_path": "depthanything",
+ "description": "DepthAnythingV2 model",
+ "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main",
+ "filename": "depth_anything_v2_vitl_fp16.safetensors",
+ "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vitl_fp16.safetensors",
+ "size": "670.7MB"
+ },
+ {
+ "name": "kijai/DepthAnythingV2 (vitl/fp32)",
+ "type": "depthanything",
+ "base": "depthanything",
+ "save_path": "depthanything",
+ "description": "DepthAnythingV2 model",
+ "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main",
+ "filename": "depth_anything_v2_vitl_fp32.safetensors",
+ "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vitl_fp32.safetensors",
+ "size": "1.34GB"
+ },
+ {
+ "name": "kijai/DepthAnythingV2 (vits/fp16)",
+ "type": "depthanything",
+ "base": "depthanything",
+ "save_path": "depthanything",
+ "description": "DepthAnythingV2 model",
+ "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main",
+ "filename": "depth_anything_v2_vits_fp16.safetensors",
+ "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vits_fp16.safetensors",
+ "size": "49.6MB"
+ },
+ {
+ "name": "kijai/DepthAnythingV2 (vitb/fp32)",
+ "type": "depthanything",
+ "base": "depthanything",
+ "save_path": "depthanything",
+ "description": "DepthAnythingV2 model",
+ "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main",
+ "filename": "depth_anything_v2_vits_fp32.safetensors",
+ "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vits_fp32.safetensors",
+ "size": "99.2MB"
+ },
+ {
+ "name": "PixArt-Sigma-XL-2-1024-MS.pth",
+ "type": "checkpoint",
+ "base": "pixart-sigma",
+ "save_path": "checkpoints/PixArt-Sigma",
+ "description": "PixArt-Sigma Checkpoint model",
+ "reference": "https://huggingface.co/PixArt-alpha/PixArt-Sigma/tree/main",
+ "filename": "PixArt-Sigma-XL-2-1024-MS.pth",
+ "url": "https://huggingface.co/PixArt-alpha/PixArt-Sigma/resolve/main/PixArt-Sigma-XL-2-1024-MS.pth",
+ "size": "2.47GB"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/node_db/dev/custom-node-list.json b/custom_nodes/ComfyUI-Manager/node_db/dev/custom-node-list.json
new file mode 100644
index 000000000..6478121c1
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/dev/custom-node-list.json
@@ -0,0 +1,1750 @@
+{
+ "custom_nodes": [
+ {
+ "author": "#NOTICE_1.13",
+ "title": "NOTICE: This channel is not the default channel.",
+ "reference": "https://github.com/ltdrdata/ComfyUI-Manager",
+ "files": [],
+ "install_type": "git-clone",
+ "description": "If you see this message, your ComfyUI-Manager is outdated.\nDev channel provides only the list of the developing nodes. If you want to find the complete node list, please go to the Default channel."
+ },
+
+
+ {
+ "author": "tom-doerr",
+ "title": "DSPy Nodes [WIP]",
+ "reference": "https://github.com/tom-doerr/dspy_nodes",
+ "files": [
+ "https://github.com/tom-doerr/dspy_nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "This is an attempt to make all DSPy features available in ComfyUI. Using an UI to devlop DSPy programs should be way faster since it makes it easier to see what is happening and allows to quickly iterate on the DSPy program structure."
+ },
+ {
+ "author": "Grant-CP",
+ "title": "ComfyUI-LivePortraitKJ-MPS",
+ "reference": "https://github.com/Grant-CP/ComfyUI-LivePortraitKJ-MPS",
+ "files": [
+ "https://github.com/Grant-CP/ComfyUI-LivePortraitKJ-MPS"
+ ],
+ "install_type": "git-clone",
+ "description": "If you wish to incorporate these changes into your repo, feel free to open an issue and ask. The commits should be pretty clear, and I also label almost all changes with #HACK so a full text search will work too.\nPlease let me know if you decide to incorporate any of these changes into your LivePortrait implementation so I can direct people to you repository. I do not intend to maintain this repo.\nSome operations are simply not supported on MPS and I didn't rewrite them. Most of my changes are just to .cuda calls and that sort of thing. Many operations are still done on CPU, so don't expect awesome performance."
+ },
+ {
+ "author": "justUmen",
+ "title": "Bjornulf_custom_nodes [WIP]",
+ "reference": "https://github.com/justUmen/Bjornulf_custom_nodes",
+ "files": [
+ "https://github.com/justUmen/Bjornulf_custom_nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: ollamaLoader, ShowText, ShowInt, LoopTexts, LoopFloat, LoopInteger, ..."
+ },
+ {
+ "author": "807502278",
+ "title": "ComfyUI-3D-MeshTool [WIP]",
+ "reference": "https://github.com/807502278/ComfyUI-3D-MeshTool",
+ "files": [
+ "https://github.com/807502278/ComfyUI-3D-MeshTool"
+ ],
+ "install_type": "git-clone",
+ "description": "Introduction: A simple 3D model processing tool within ComfyUI"
+ },
+ {
+ "author": "thderoo",
+ "title": "_topfun_s_nodes",
+ "reference": "https://github.com/thderoo/ComfyUI-_topfun_s_nodes",
+ "files": [
+ "https://github.com/thderoo/ComfyUI-_topfun_s_nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Conditioning Perturbation"
+ },
+ {
+ "author": "willblaschko",
+ "title": "ComfyUI-Unload-Models",
+ "reference": "https://github.com/willblaschko/ComfyUI-Unload-Models",
+ "files": [
+ "https://github.com/willblaschko/ComfyUI-Unload-Models"
+ ],
+ "install_type": "git-clone",
+ "description": "This repository provides developers with a way to better manage their ComfyUI model memory. It includes nodes that allow developers to either unload all models or unload one model at a time. These nodes are designed as pass-through nodes, so they can be used anywhere in the flow. The nodes can be found in the 'Unload Model' section.[w/These are massive hammers, and it could be possible to break things, please don't use them if you need finesse.]"
+ },
+ {
+ "author": "GeekyGhost",
+ "title": "ComfyUI-GeekyRemB v2",
+ "reference": "https://github.com/GeekyGhost/ComfyUI-GeekyRemB",
+ "files": [
+ "https://github.com/GeekyGhost/ComfyUI-GeekyRemB/raw/SketchUITest/GeekyRembv2.py"
+ ],
+ "install_type": "copy",
+ "description": "GeekyRemB Node Description: GeekyRemB is a powerful and versatile image processing node for ComfyUI, designed to remove backgrounds from images with advanced customization options. This node leverages the rembg library and offers a wide range of features for fine-tuning the background removal process and enhancing the resulting images."
+ },
+ {
+ "author": "AIFSH",
+ "title": "ComfyUI-OpenDIT [WIP]",
+ "id": "opendit",
+ "reference": "https://github.com/AIFSH/ComfyUI-OpenDIT",
+ "files": [
+ "https://github.com/AIFSH/ComfyUI-OpenDIT"
+ ],
+ "install_type": "git-clone",
+ "description": "make [a/OpenDIT](https://github.com/NUS-HPC-AI-Lab/OpenDiT) avaliable in ComfyUI"
+ },
+ {
+ "author": "alexisrolland",
+ "title": "alexisrolland/ComfyUI-AuraSR",
+ "id": "aurasr-alexisrolland",
+ "reference": "https://github.com/alexisrolland/ComfyUI-AuraSR",
+ "files": [
+ "https://github.com/alexisrolland/ComfyUI-AuraSR"
+ ],
+ "install_type": "git-clone",
+ "description": "Custom ComfyUI nodes to run [a/fal-ai/AuraSR](https://huggingface.co/fal-ai/AuraSR) model.[w/This node cannot be installed simultaneously with AIFSH/ComfyUI-AuraSR due to overlapping repository names.]"
+ },
+ {
+ "author": "mingqizhang",
+ "title": "ComfyUI_AEMatter_zmq",
+ "id": "aematter",
+ "reference": "https://github.com/mingqizhang/ComfyUI_AEMatter_zmq",
+ "files": [
+ "https://github.com/mingqizhang/ComfyUI_AEMatter_zmq"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:AEMatter_ModelLoader, Create_Trimap, AEMatter_Apply, Mask_Transfor, Replace_Background, Gaussian_Filter, Guide_Filter, Improved_Aplha_Composite"
+ },
+ {
+ "author": "m-ai-studio",
+ "title": "mai-prompt-progress",
+ "reference": "https://github.com/m-ai-studio/mai-prompt-progress",
+ "files": [
+ "https://github.com/m-ai-studio/mai-prompt-progress"
+ ],
+ "install_type": "git-clone",
+ "description": "mai-prompt-progress"
+ },
+ {
+ "author": "linhusyung",
+ "title": "ComfyUI Build and Train Your Network [WIP]",
+ "id": "cfgpp",
+ "reference": "https://github.com/linhusyung/comfyui-Build-and-train-your-network",
+ "files": [
+ "https://github.com/linhusyung/comfyui-Build-and-train-your-network"
+ ],
+ "install_type": "git-clone",
+ "description": "Stable Diffusion is an image generation technique based on diffusion models. Its core idea involves simulating diffusion processes by iteratively adding noise and using neural networks to predict and remove the noise, thereby generating high-quality images. This approach is not limited to image generation; with appropriate network architecture and training data, it can be adapted for various other tasks. The application of neural networks extends beyond image generation. By adjusting network structures and loss functions, neural networks can also perform tasks such as classification and regression. This flexibility makes neural networks a powerful tool for handling a wide range of machine learning tasks. This project aims to expand custom neural network layers (such as linear layers, convolutional layers, etc.) within ComfyUI and provide simplified task training functionalities. Through this project, users can easily construct custom neural network layers and perform training in ComfyUI using a graphical interface."
+ },
+ {
+ "author": "alexgenovese",
+ "title": "comfyui_CfgPlusPlus [WIP]",
+ "id": "cfgpp",
+ "reference": "https://gitea.com/NotEvilGirl/cfgpp",
+ "files": [
+ "https://gitea.com/NotEvilGirl/cfgpp"
+ ],
+ "install_type": "git-clone",
+ "description": "CFG++ implemented according to [a/https://cfgpp-diffusion.github.io](https://cfgpp-diffusion.github.io). Basically modified DDIM sampler that makes sampling work at low CFG values (0 ~ 2). Read the CFG++ paper for more details"
+ },
+ {
+ "author": "Fucci-Mateo",
+ "title": "ComfyUI-Airtable [WIP]",
+ "id": "airtable",
+ "reference": "https://github.com/Fucci-Mateo/ComfyUI-Airtable",
+ "files": [
+ "https://github.com/Fucci-Mateo/ComfyUI-Airtable"
+ ],
+ "install_type": "git-clone",
+ "description": "A simple node to load image from local path or http url. You can find this node from 'image' category."
+ },
+ {
+ "author": "mingqizhang",
+ "title": "ComfyUI_AEMatter_zmq",
+ "id": "aematter-zmq",
+ "reference": "https://github.com/mingqizhang/ComfyUI_AEMatter_zmq",
+ "files": [
+ "https://github.com/mingqizhang/ComfyUI_AEMatter_zmq"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:AEMatter_ModelLoader, Create_Trimap, AEMatter_Apply, Mask_Transfor, Replace_Background, Gaussian_Filter, Guide_Filter"
+ },
+ {
+ "author": "majorsauce",
+ "title": "comfyui_indieTools [WIP]",
+ "id": "indie-tools",
+ "reference": "https://github.com/majorsauce/comfyui_indieTools",
+ "files": [
+ "https://github.com/majorsauce/comfyui_indieTools"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:[Indie] Cut by Mask, [Indie] Paste Image, [Indie] Local Scale, [Indie] Solidify, [Indie] Yolo Detector.[w/Install may fail due to invliad requirements.txt file]"
+ },
+ {
+ "author": "AIFSH",
+ "title": "ComfyUI-ViViD",
+ "id": "vivid",
+ "reference": "https://github.com/AIFSH/ComfyUI-ViViD",
+ "files": [
+ "https://github.com/AIFSH/ComfyUI-ViViD"
+ ],
+ "install_type": "git-clone",
+ "description": "a comfyui custom node for ViViD"
+ },
+ {
+ "author": "NeuralNotW0rk",
+ "title": "ComfyUI-Waveform-Extensions",
+ "reference": "https://github.com/NeuralNotW0rk/ComfyUI-Waveform-Extensions",
+ "files": [
+ "https://github.com/NeuralNotW0rk/ComfyUI-Waveform-Extensions/raw/main/EXT_VariationUtils.py",
+ "https://github.com/NeuralNotW0rk/ComfyUI-Waveform-Extensions/raw/main/EXT_AudioManipulation.py"
+ ],
+ "install_type": "copy",
+ "description": "Some additional audio utilites for use on top of Sample Diffusion ComfyUI Extension"
+ },
+ {
+ "author": "mingqizhang",
+ "title": "ComfyUI_AEMatter_zmq",
+ "reference": "https://github.com/mingqizhang/ComfyUI_AEMatter_zmq",
+ "files": [
+ "https://github.com/mingqizhang/ComfyUI_AEMatter_zmq"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:AEMatter_ModelLoader, Create_Trimap, AEMatter_Apply, Mask_Transfor, Replace_Background, Gaussian_Filter, Guide_Filter."
+ },
+ {
+ "author": "nat-chan",
+ "title": "comfyui-paint",
+ "reference": "https://github.com/nat-chan/comfyui-paint",
+ "files": [
+ "https://github.com/nat-chan/comfyui-paint"
+ ],
+ "install_type": "git-clone",
+ "description": "comfyui-paint\n[w/You need to clone submodule manually after clone. There is permission issue.]"
+ },
+ {
+ "author": "prabinpebam",
+ "title": "anyPython [UNSAFE]",
+ "reference": "https://github.com/prabinpebam/anyPython",
+ "files": [
+ "https://github.com/prabinpebam/anyPython"
+ ],
+ "install_type": "git-clone",
+ "description": "This node was inspired by AnyNode. I wanted to have a node where I can paste any python script and execute it. That way I can use this node in combination with a Custom node like the Ollama node that can generate the python code and feed into this node. This also makes it much easier to debug or modify the code iteratively. As of the current version, I've created separate nodes for no input, 1 input and 2 inputs. The input also currently takes only sting as input. Let me know in the discussion how you would use this node.\n[w/This extension allows the execution of arbitrary Python code from a workflow.]"
+ },
+ {
+ "author": "kijai",
+ "title": "ComfyUI DiffSynth wrapper nodes",
+ "id": "diffsynth-wrapper",
+ "reference": "https://github.com/kijai/ComfyUI-DiffSynthWrapper",
+ "files": [
+ "https://github.com/kijai/ComfyUI-DiffSynthWrapper"
+ ],
+ "install_type": "git-clone",
+ "description": "Currently only the new extended SVD model 'ExVideo' is supported.\nOriginal repo:[a/https://github.com/modelscope/DiffSynth-Studio](https://github.com/modelscope/DiffSynth-Studio)"
+ },
+ {
+ "author": "AllenEdgarPoe",
+ "title": "ComfyUI-Xorbis-nodes",
+ "id": "xorbis",
+ "reference": "https://github.com/AllenEdgarPoe/ComfyUI-Xorbis-nodes",
+ "files": [
+ "https://github.com/AllenEdgarPoe/ComfyUI-Xorbis-nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "This repository is for MuseumX Update. We use ComfyUI as our framework, and the nodes are built for my comfort."
+ },
+ {
+ "author": "mikeymcfish",
+ "title": "LaserCutterFull and Deptherize Nodes",
+ "id": "fishtools",
+ "reference": "https://github.com/mikeymcfish/FishTools",
+ "files": [
+ "https://github.com/mikeymcfish/FishTools"
+ ],
+ "install_type": "git-clone",
+ "description": "This repository contains two custom nodes, LaserCutterFull and Deptherize, designed for use in image processing workflows. The LaserCutterFull node processes input images to generate layers for laser cutting, while the Deptherize node converts SVG data into a depth map image."
+ },
+ {
+ "author": "pzzmyc",
+ "title": "comfyui-sd3-simple-simpletuner",
+ "id": "simpletuner",
+ "reference": "https://github.com/pzzmyc/comfyui-sd3-simple-simpletuner",
+ "files": [
+ "https://github.com/pzzmyc/comfyui-sd3-simple-simpletuner"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:sd3 simple simpletuner by hhy."
+ },
+ {
+ "author": "horidream",
+ "title": "ComfyUI-Horidream",
+ "id": "horidream",
+ "reference": "https://github.com/horidream/ComfyUI-Horidream",
+ "files": [
+ "https://github.com/horidream/ComfyUI-Horidream"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Pass Through With Sound."
+ },
+ {
+ "author": "kijai",
+ "title": "ComfyUI-DiffusersSD3Wrapper",
+ "id": "diffusers-sd3-wrapper",
+ "reference": "https://github.com/kijai/ComfyUI-DiffusersSD3Wrapper",
+ "files": [
+ "https://github.com/kijai/ComfyUI-DiffusersSD3Wrapper"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Load SD3DiffusersPipeline, SD3 ControlNet Sampler"
+ },
+ {
+ "author": "AustinMroz",
+ "title": "ComfyUI-SD3-Medium-CN-Diffusers [WIP]",
+ "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SD3-Medium-CN-Diffusers",
+ "files": [
+ "https://github.com/AustinMroz/ComfyUI-WorkflowCheckpointing"
+ ],
+ "install_type": "git-clone",
+ "description": "ComfyUI SD3-Medium ControlNet (Diffusers)"
+ },
+ {
+ "author": "redhottensors",
+ "title": "ComfyUI-ODE",
+ "id": "ode",
+ "reference": "https://github.com/redhottensors/ComfyUI-ODE",
+ "files": [
+ "https://github.com/redhottensors/ComfyUI-ODE"
+ ],
+ "install_type": "git-clone",
+ "description": "ODE Solvers for ComfyUI\nThis node enables use of torchdiffeq ODE solvers with models. Intended for use with Stable Diffusion 3 and similar flow models."
+ },
+ {
+ "author": "maruhidd",
+ "title": "Transparent Background for ComfyUI",
+ "id": "transparent-bg",
+ "reference": "https://github.com/maruhidd/ComfyUI_Transparent-Background",
+ "files": [
+ "https://github.com/maruhidd/ComfyUI_Transparent-Background"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Remove Background, Fill Transparent"
+ },
+ {
+ "author": "baicai99",
+ "title": "ComfyUI-FrameSkipping",
+ "id": "frame-skipping",
+ "reference": "https://github.com/baicai99/ComfyUI-FrameSkipping",
+ "files": [
+ "https://github.com/baicai99/ComfyUI-FrameSkipping"
+ ],
+ "install_type": "git-clone",
+ "description": "This plugin can precisely control the rendering between frames, completing the synthesis of multiple frames in a single load. My homepage includes my attached workflow."
+ },
+ {
+ "author": "ejektaflex",
+ "title": "ComfyUI - Ty",
+ "id": "ty-nodes",
+ "reference": "https://github.com/ejektaflex/ComfyUI-Ty",
+ "files": [
+ "https://github.com/ejektaflex/ComfyUI-Ty"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Lora Block Weight Regex Loader"
+ },
+ {
+ "author": "jtydhr88",
+ "title": "ComfyUI-Unique3D [WIP]",
+ "id": "unique3d",
+ "reference": "https://github.com/jtydhr88/ComfyUI-Unique3D",
+ "files": [
+ "https://github.com/jtydhr88/ComfyUI-Unique3D"
+ ],
+ "install_type": "git-clone",
+ "description": "ComfyUI Unique3D is custom nodes that running [a/AiuniAI/Unique3D](https://github.com/AiuniAI/Unique3D) into ComfyUI."
+ },
+ {
+ "author": "kycg",
+ "title": "comfyui-Kwtoolset",
+ "id": "kwtoolset",
+ "reference": "https://github.com/kycg/comfyui-Kwtoolset",
+ "files": [
+ "https://github.com/kycg/comfyui-Kwtoolset"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:KwtoolsetLoraLoaderwithpreview, KwtoolsetCheckpointLoaderwithpreview, KwtoolsetLoadCheckpointsBatch, KwtoolsetGrowMaskPlus, KwtoolsetGetHipMask, KwtoolsetGetHipMasktest, KwtoolsetGetImageSize, KWPositiveString, KWNagetiveString, KWanywhereString, KwtoolsetChangeOpenpose, ..."
+ },
+ {
+ "author": "mashb1t",
+ "title": "ComfyUI mashb1t nodes",
+ "id": "mashb1t",
+ "reference": "https://github.com/mashb1t/comfyui-nodes-mashb1t",
+ "files": [
+ "https://github.com/mashb1t/comfyui-nodes-mashb1t"
+ ],
+ "install_type": "git-clone",
+ "description": "This Python script is an optional add-on to the Comfy UI stable diffusion client."
+ },
+ {
+ "author": "immersiveexperience",
+ "title": "ie-comfyui-color-nodes",
+ "reference": "https://github.com/immersiveexperience/ie-comfyui-color-nodes",
+ "files": [
+ "https://github.com/immersiveexperience/ie-comfyui-color-nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Custom ComfyUI nodes for simple color correction."
+ },
+ {
+ "author": "LZpenguin",
+ "title": "ComfyUI-Text",
+ "id": "comfy-text",
+ "reference": "https://github.com/LZpenguin/ComfyUI-Text",
+ "files": [
+ "https://github.com/LZpenguin/ComfyUI-Text"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Add_text_by_mask.[w/This custom node cannot be installed simultaneously as it has the same repository name as MarkoCa1/ComfyUI-Text.]"
+ },
+ {
+ "author": "yushan777",
+ "title": "Y7 Nodes for ComfyUI",
+ "id": "y7nodes",
+ "reference": "https://github.com/yushan777/ComfyUI-Y7Nodes",
+ "files": [
+ "https://github.com/yushan777/ComfyUI-Y7Nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Count_Tokens_(Y7)"
+ },
+ {
+ "author": "norgeous",
+ "title": "UI Builder [WIP]",
+ "id": "norgeous",
+ "reference": "https://github.com/norgeous/ComfyUI-UI-Builder",
+ "files": [
+ "https://github.com/norgeous/ComfyUI-UI-Builder"
+ ],
+ "install_type": "git-clone",
+ "description": "Alternative configurable React UI overlay for Comfy UI."
+ },
+ {
+ "author": "Shinsplat",
+ "title": "ComfyUI-Shinsplat [UNSAFE]",
+ "id": "shinsplat",
+ "reference": "https://github.com/Shinsplat/ComfyUI-Shinsplat",
+ "files": [
+ "https://github.com/Shinsplat/ComfyUI-Shinsplat"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: Clip Text Encode (Shinsplat), Clip Text Encode SDXL (Shinsplat), Lora Loader (Shinsplat).\n[w/This extension poses a risk of executing arbitrary commands through workflow execution. Please be cautious.]"
+ },
+ {
+ "author": "NitramDom",
+ "title": "ComfyUI_FacialFlip",
+ "id": "facialflip",
+ "reference": "https://github.com/NitramDom/ComfyUI_FacialFlip",
+ "files": [
+ "https://github.com/NitramDom/ComfyUI_FacialFlip"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Swapper"
+ },
+ {
+ "author": "hy134300",
+ "title": "comfyui-hydit",
+ "reference": "https://github.com/hy134300/comfyui-hydit",
+ "files": [
+ "https://github.com/hy134300/comfyui-hydit"
+ ],
+ "install_type": "git-clone",
+ "description": "This repository contains a customized node and workflow designed specifically for HunYuan DIT. The official tests conducted on DDPM, DDIM, and DPMMS have consistently yielded results that align with those obtained through the Diffusers library. However, it's important to note that we cannot assure the consistency of results from other ComfyUI native samplers with the Diffusers inference. We cordially invite users to explore our workflow and are open to receiving any inquiries or suggestions you may have."
+ },
+ {
+ "author": "corbin-hayden13",
+ "title": "ComfyUI-Better-Dimensions",
+ "id": "better-dim",
+ "reference": "https://github.com/corbin-hayden13/ComfyUI-Better-Dimensions",
+ "files": [
+ "https://github.com/corbin-hayden13/ComfyUI-Better-Dimensions"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:BetterImageDimensions, SDXLDimensions, PureRatio"
+ },
+ {
+ "author": "endman100",
+ "title": "ComfyUI Nodes: SaveConditioning and LoadConditioning",
+ "id": "save-load-conditioning",
+ "reference": "https://github.com/endman100/ComfyUI-SaveAndLoadPromptCondition",
+ "files": [
+ "https://github.com/endman100/ComfyUI-SaveAndLoadPromptCondition"
+ ],
+ "install_type": "git-clone",
+ "description": "The SaveConditioning node is designed to save conditioning data to binary files. This is useful for storing and reusing conditioning information across different sessions or applications.\n[w/This node can only handle very limited conditioning at the text prompt level.]"
+ },
+ {
+ "author": "marduk191",
+ "title": "comfyui-marnodes",
+ "id": "marnodes",
+ "reference": "https://github.com/marduk191/comfyui-marnodes",
+ "files": [
+ "https://github.com/marduk191/comfyui-marnodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:marduk191_workflow_settings"
+ },
+ {
+ "author": "kijai",
+ "title": "ComfyUI-CV-VAE",
+ "id": "cv-vae",
+ "reference": "https://github.com/kijai/ComfyUI-CV-VAE",
+ "files": [
+ "https://github.com/kijai/ComfyUI-CV-VAE"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:CV_VAE_Load, CV_VAE_Encode, CV_VAE_Decode"
+ },
+ {
+ "author": "GentlemanHu",
+ "title": "ComfyUI Notifier",
+ "id": "notifier",
+ "reference": "https://github.com/GentlemanHu/ComfyUI-Notifier",
+ "files": [
+ "https://github.com/GentlemanHu/ComfyUI-Notifier"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:GentlemanHu_Notifier"
+ },
+ {
+ "author": "jimmm-ai",
+ "title": "TimeUi a ComfyUI Timeline Node System [WIP]",
+ "id": "timeline",
+ "reference": "https://github.com/jimmm-ai/TimeUi-a-ComfyUi-Timeline-Node",
+ "files": [
+ "https://github.com/jimmm-ai/TimeUi-a-ComfyUi-Timeline-Node"
+ ],
+ "install_type": "git-clone",
+ "description": "I've been working on the UX/UI of a timeline custom node system for ComfyUI over the past two weeks. The goal is to create a timeline similar to video/animation editing tools, without relying on traditional timeframe code. You can effortlessly add, delete, or rearrange rows, providing a streamlined user experience."
+ },
+ {
+ "author": "jh-leon-kim",
+ "title": "ComfyUI-JHK-utils",
+ "id": "jhk",
+ "reference": "https://github.com/jh-leon-kim/ComfyUI-JHK-utils",
+ "files": [
+ "https://github.com/jh-leon-kim/ComfyUI-JHK-utils"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:JHK_Utils_LoadEmbed, JHK_Utils_string_merge, JHK_Utils_ImageRemoveBackground"
+ },
+ {
+ "author": "StartHua",
+ "title": "Comfyui_CXH_CRM",
+ "id": "cxh-crm",
+ "reference": "https://github.com/StartHua/Comfyui_CXH_CRM",
+ "files": [
+ "https://github.com/StartHua/Comfyui_CXH_CRM"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:CRM"
+ },
+ {
+ "author": "comfypod",
+ "title": "ComfyUI-Comflow",
+ "id": "comflow",
+ "reference": "https://github.com/comfypod/ComfyUI-Comflow",
+ "files": [
+ "https://github.com/comfypod/ComfyUI-Comflow"
+ ],
+ "install_type": "git-clone",
+ "description": "ComfyUI-Comflow."
+ },
+ {
+ "author": "pamparamm",
+ "title": "ComfyUI-ppm",
+ "id": "ppm",
+ "reference": "https://github.com/pamparamm/ComfyUI-ppm",
+ "files": [
+ "https://github.com/pamparamm/ComfyUI-ppm"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Empty Latent Image (Aspect Ratio), Token Counter, Random Prompt Generator, StableCascade_AutoCompLatent, CLIPTextEncode, CLIPMicroConditioning, CLIPNegPip"
+ },
+ {
+ "author": "Scorpinaus",
+ "title": "ComfyUI-DiffusersLoader",
+ "id": "diffusersloader",
+ "reference": "https://github.com/Scorpinaus/ComfyUI-DiffusersLoader",
+ "files": [
+ "https://github.com/Scorpinaus/ComfyUI-DiffusersLoader"
+ ],
+ "install_type": "git-clone",
+ "description": "The purpose of this package is to understand how loading of diffusers format checkpoints are done in comfyUI and to create a loader that works for SDXL."
+ },
+ {
+ "author": "FoundD-oka",
+ "title": "ComfyUI KISEKAE-OOTD",
+ "id": "kisekae-ootd",
+ "reference": "https://github.com/FoundD-oka/ComfyUI-kisekae-OOTD",
+ "files": [
+ "https://github.com/FoundD-oka/ComfyUI-kisekae-OOTD"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:LoadOOTDPipeline, LoadOOTDPipelineHub, LoadOOTDPipelineHub."
+ },
+ {
+ "author": "bruce007lee",
+ "title": "comfyui-tiny-utils",
+ "id": "tiny-utils",
+ "reference": "https://github.com/bruce007lee/comfyui-tiny-utils",
+ "files": [
+ "https://github.com/bruce007lee/comfyui-tiny-utils"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:FaceAlign, FaceAlignImageProcess, FaceAlignMaskProcess"
+ },
+ {
+ "author": "zmwv823",
+ "title": "ComfyUI-AnyText [UNSTABLE]",
+ "id": "anytext",
+ "reference": "https://github.com/zmwv823/ComfyUI-AnyText",
+ "files": [
+ "https://github.com/zmwv823/ComfyUI-AnyText"
+ ],
+ "install_type": "git-clone",
+ "description": "Unofficial Simple And Rough Implementation Of [a/AnyText](https://github.com/tyxsspa/AnyText)"
+ },
+ {
+ "author": "brycegoh",
+ "title": "brycegoh/comfyui-custom-nodes",
+ "reference": "https://github.com/brycegoh/comfyui-custom-nodes",
+ "files": [
+ "https://github.com/brycegoh/comfyui-custom-nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:MaskAreaComparisonSegment, FillMaskedArea, OCRAndMask, CombineTwoImageIntoOne"
+ },
+ {
+ "author": "LykosAI",
+ "title": "ComfyUI Nodes for Inference.Core",
+ "id": "inference-core",
+ "reference": "https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes",
+ "files": [
+ "https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Primary Nodes for Inference.Core and Stability Matrix. With a focus on not impacting startup performance and using fully qualified Node names. [w/This custom node is likely to conflict with many other nodes.]"
+ },
+ {
+ "author": "blepping",
+ "title": "comfyui_overly_complicated_sampling",
+ "reference": "https://github.com/blepping/comfyui_overly_complicated_sampling",
+ "files": [
+ "https://github.com/blepping/comfyui_overly_complicated_sampling"
+ ],
+ "install_type": "git-clone",
+ "description": "Very unstable, experimental and mathematically unsound sampling for ComfyUI.\nCurrent status: In flux, not suitable for general use."
+ },
+ {
+ "author": "tracerstar",
+ "title": "comfyui-p5js-node",
+ "id": "p5js",
+ "reference": "https://github.com/tracerstar/comfyui-p5js-node",
+ "files": [
+ "https://github.com/tracerstar/comfyui-p5js-node"
+ ],
+ "install_type": "git-clone",
+ "description": "A simple proof of concept node to pass a p5js canvas through ComfyUI for img2img generation use."
+ },
+ {
+ "author": "chaojie",
+ "title": "ComfyUI-mobvoi-openapi",
+ "id": "mobvoi-openapi",
+ "reference": "https://github.com/chaojie/ComfyUI-mobvoi-openapi",
+ "files": [
+ "https://github.com/chaojie/ComfyUI-mobvoi-openapi"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:MobvoiOpenapiMetamanText, MobvoiOpenapiMetamanAudio, MobvoiOpenapiTts, HtmlViewer, OssUploadImage, OssUploadAudio"
+ },
+ {
+ "author": "immersiveexperience",
+ "title": "ie-comfyui-color-nodes",
+ "id": "ie-color-nodes",
+ "reference": "https://github.com/immersiveexperience/ie-comfyui-color-nodes",
+ "files": [
+ "https://github.com/immersiveexperience/ie-comfyui-color-nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Custom ComfyUI nodes for simple color correction."
+ },
+ {
+ "author": "beyastard",
+ "title": "ComfyUI_BeySoft",
+ "reference": "https://github.com/beyastard/ComfyUI_BeySoft",
+ "files": [
+ "https://github.com/beyastard/ComfyUI_BeySoft"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:BeySoft"
+ },
+ {
+ "author": "christian-byrne",
+ "title": "🌌 Infinite Parallax Nodes [WIP]",
+ "reference": "https://github.com/christian-byrne/infinite-zoom-parallax-nodes",
+ "files": [
+ "https://github.com/christian-byrne/infinite-zoom-parallax-nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Parallax Config, Load Parallax Frame, Save Parallax Object Layers, Layer Shifter for Parallax Outpainting, Save Parallax Frame, Shrink and Pad for Outpainting, Create Infinite Zoom Video"
+ },
+ {
+ "author": "flyingdogsoftware",
+ "title": "Gyre for ComfyUI",
+ "id": "gyre",
+ "reference": "https://github.com/flyingdogsoftware/gyre_for_comfyui",
+ "files": [
+ "https://github.com/flyingdogsoftware/gyre_for_comfyui"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:GyreLoopStart, GyreLoopEnd, GyreIfElse"
+ },
+ {
+ "author": "githubYiheng",
+ "title": "comfyui_median_filter",
+ "id": "median-filter",
+ "reference": "https://github.com/githubYiheng/comfyui_median_filter",
+ "files": [
+ "https://github.com/githubYiheng/comfyui_median_filter"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Apply Median Filter. [w/This has been updated to be equivalent to the comfyui_kmeans_filter node. Mistake?]"
+ },
+ {
+ "author": "nat-chan",
+ "title": "comfyui-eval [UNSAFE]",
+ "id": "evalnode",
+ "reference": "https://github.com/nat-chan/comfyui-eval",
+ "files": [
+ "https://github.com/nat-chan/comfyui-eval"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:EvalNode [w/Please do not use the node that executes arbitrary code and outputs in any type, as it is dangerous.]"
+ },
+ {
+ "author": "haofanwang",
+ "title": "ComfyUI-InstantStyle",
+ "id": "instantstyle",
+ "reference": "https://github.com/haofanwang/ComfyUI-InstantStyle",
+ "files": [
+ "https://github.com/haofanwang/ComfyUI-InstantStyle"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:PromptLoader, BaseModelLoader, InstantStyleLoader, InstantStyleGenerationNode"
+ },
+ {
+ "author": "jp0215",
+ "title": "comfyUI_padding-resize_node",
+ "reference": "https://github.com/jp0215/comfyUI_padding-resize_node",
+ "files": [
+ "https://github.com/jp0215/comfyUI_padding-resize_node/raw/main/PaddingNode.py",
+ "https://github.com/jp0215/comfyUI_padding-resize_node/raw/main/ResizeNode.py"
+ ],
+ "install_type": "copy",
+ "description": "Padding image to 8x: input image and mask, if the side length is not an integer multiple of 8, expand the side length to the smallest multiple of 8 greater than the original side length. Output padding image and mask. Resize to the origin: input the generated image and the original image, crop the generated image to the size of the original image, output the cropped image."
+ },
+ {
+ "author": "Quasimondo",
+ "title": "ComfyUI-QuasimondoNodes [WIP]",
+ "id": "quasimondo-nodes",
+ "reference": "https://github.com/Quasimondo/ComfyUI-QuasimondoNodes",
+ "files": [
+ "https://github.com/Quasimondo/ComfyUI-QuasimondoNodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Custom Shader, Spring Mesh"
+ },
+ {
+ "author": "TSFSean",
+ "title": "ComfyUI-TSFNodes",
+ "id": "tsfnodes",
+ "reference": "https://github.com/TSFSean/ComfyUI-TSFNodes",
+ "files": [
+ "https://github.com/TSFSean/ComfyUI-TSFNodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:GyroOSC"
+ },
+ {
+ "author": "blib-la",
+ "title": "ComfyUI-Captain-Extensions",
+ "id": "captain",
+ "reference": "https://github.com/blib-la/ComfyUI-Captain-Extensions",
+ "files": [
+ "https://github.com/blib-la/ComfyUI-Captain-Extensions"
+ ],
+ "install_type": "git-clone",
+ "description": "ComfyUI extensions for better [a/Captain](https://github.com/blib-la/captain) integration."
+ },
+ {
+ "author": "ejektaflex",
+ "title": "ComfyUI-Ty",
+ "reference": "https://github.com/ejektaflex/ComfyUI-Ty",
+ "files": [
+ "https://github.com/ejektaflex/ComfyUI-Ty"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Lora Block Weight Regex Loader"
+ },
+ {
+ "author": "christian-byrne",
+ "title": "Python Interpreter ComfyUI Node [UNSAFE]",
+ "reference": "https://github.com/christian-byrne/python-interpreter-node",
+ "files": [
+ "https://github.com/christian-byrne/python-interpreter-node"
+ ],
+ "install_type": "git-clone",
+ "description": "For debugging, parsing data, generating random values, converting types, testing custom nodes faster.\nReference and use variables in the code using the same names as the inputs in the UI\nWrapper class around tensors with operator overloading for doing common image manipulation tasks.I might remove this aspect\n[w/This extension allows you to run programs through Python code in your workflow, which may not be secure. Use with caution.]"
+ },
+ {
+ "author": "sofakid",
+ "title": "dandy [UNSAFE]",
+ "reference": "https://github.com/sofakid/dandy",
+ "files": [
+ "https://github.com/sofakid/dandy"
+ ],
+ "install_type": "git-clone",
+ "description": "Dandy is a JavaScript bridge for ComfyUI. It includes everything you need to make JavaScript enabled extensions, or just load and code in little editor nodes right in ComfyUI.[w/This code can cause security issues because it allows for the execution of arbitrary JavaScript input.]"
+ },
+ {
+ "author": "tachyon-beep",
+ "title": "comfyui-simplefeed [UNSAFE]",
+ "reference": "https://github.com/tachyon-beep/comfyui-simplefeed",
+ "files": [
+ "https://github.com/tachyon-beep/comfyui-simplefeed"
+ ],
+ "install_type": "git-clone",
+ "description": "A simple image feed for comfyUI which is easily configurable and easily extensible.\nUse the filter button to select which nodes write to the feed. Under settings, there are options that allow you: Position the feed. Set a max iamge count for the feed. Set oldest to newest or newest to oldest."
+ },
+ {
+ "author": "shadowcz007",
+ "title": "ComfyUI-PuLID [TEST]",
+ "reference": "https://github.com/shadowcz007/ComfyUI-PuLID-Test",
+ "files": [
+ "https://github.com/shadowcz007/ComfyUI-PuLID-Test"
+ ],
+ "install_type": "git-clone",
+ "description": "[a/PuLID](https://github.com/ToTheBeginning/PuLID) ComfyUI native implementation."
+ },
+ {
+ "author": "sangeet",
+ "title": "comfyui-testui [TEST]",
+ "reference": "https://github.com/sangeet/comfyui-testui",
+ "files": [
+ "https://github.com/sangeet/comfyui-testui"
+ ],
+ "install_type": "git-clone",
+ "description": "Simple Frontend For ComfyUI workflow"
+ },
+ {
+ "author": "Elawphant",
+ "title": "ComfyUI-MusicGen [WIP]",
+ "id": "musicgen",
+ "reference": "https://github.com/Elawphant/ComfyUI-MusicGen",
+ "files": [
+ "https://github.com/Elawphant/ComfyUI-MusicGen"
+ ],
+ "install_type": "git-clone",
+ "description": "ComfyUI for Meta MusicGen."
+ },
+ {
+ "author": "jtscmw01",
+ "title": "ComfyUI-DiffBIR",
+ "id": "diffbir",
+ "reference": "https://github.com/jtscmw01/ComfyUI-DiffBIR",
+ "files": [
+ "https://github.com/jtscmw01/ComfyUI-DiffBIR"
+ ],
+ "install_type": "git-clone",
+ "description": "This extension provides [a/DiffBIR](https://github.com/XPixelGroup/DiffBIR) feature."
+ },
+ {
+ "author": "ericbeyer",
+ "title": "guidance_interval",
+ "reference": "https://github.com/ericbeyer/guidance_interval",
+ "files": [
+ "https://github.com/ericbeyer/guidance_interval"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Guidance Interval\nNOTE: Because the sampling function is replaced, you must restart after executing this custom node to restore the original state."
+ },
+ {
+ "author": "GraftingRayman",
+ "title": "ComfyUI-GR",
+ "reference": "https://github.com/GraftingRayman/ComfyUI_GR_PromptSelector",
+ "files": [
+ "https://github.com/GraftingRayman/ComfyUI_GR_PromptSelector"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:GR Prompt Selector"
+ },
+ {
+ "author": "oztrkoguz",
+ "title": "Kosmos2_BBox_Cutter Models",
+ "reference": "https://github.com/oztrkoguz/ComfyUI_Kosmos2_BBox_Cutter",
+ "files": [
+ "https://github.com/oztrkoguz/ComfyUI_Kosmos2_BBox_Cutter"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:KosmosLoader, Kosmos2SamplerSimple, Write"
+ },
+ {
+ "author": "ZHO-ZHO-ZHO",
+ "title": "ComfyUI-PuLID-ZHO [WIP]",
+ "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PuLID-ZHO",
+ "files": [
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PuLID-ZHO"
+ ],
+ "install_type": "git-clone",
+ "description": "Unofficial implementation of [a/PuLID](https://github.com/ToTheBeginning/PuLID)(diffusers) for ComfyUI"
+ },
+ {
+ "author": "longgui0318",
+ "title": "comfyui-one-more-step [WIP]",
+ "reference": "https://github.com/longgui0318/comfyui-one-more-step",
+ "files": [
+ "https://github.com/longgui0318/comfyui-one-more-step"
+ ],
+ "install_type": "git-clone",
+ "description": "[a/(OMS)mhh0318/OneMoreStep](https://github.com/mhh0318/OneMoreStep) comfyui support ."
+ },
+ {
+ "author": "unknown",
+ "title": "CLIPTextEncodeAndEnhancev4 (shirazdesigner)",
+ "reference": "https://github.com/shirazdesigner/CLIPTextEncodeAndEnhancev4",
+ "files": [
+ "https://github.com/shirazdesigner/CLIPTextEncodeAndEnhancev4"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:CLIPTextEncodeAndEnhance.\nNOTE:Translation:This is a wrapper that simply makes it easy to install an existing node via git."
+ },
+ {
+ "author": "umisetokikaze",
+ "title": "comfyui_mergekit [WIP]",
+ "reference": "https://github.com/umisetokikaze/comfyui_mergekit",
+ "files": [
+ "https://github.com/umisetokikaze/comfyui_mergekit"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:DefineSaveName, SetModels, get_skip, LoadLR, LoadTarget, SetTokenizer, Merge, SetLayer, SetModels"
+ },
+ {
+ "author": "Video3DGenResearch",
+ "title": "ComfyUI Batch Input Node",
+ "reference": "https://github.com/Video3DGenResearch/comfyui-batch-input-node",
+ "files": [
+ "https://github.com/Video3DGenResearch/comfyui-batch-input-node"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:BatchInputText"
+ },
+ {
+ "author": "kijai",
+ "title": "ComfyUI nodes to use DeepSeek-VL",
+ "reference": "https://github.com/kijai/ComfyUI-DeepSeek-VL",
+ "files": [
+ "https://github.com/kijai/ComfyUI-DeepSeek-VL"
+ ],
+ "install_type": "git-clone",
+ "description": "[a/https://huggingface.co/deepseek-ai](https://huggingface.co/deepseek-ai)"
+ },
+ {
+ "author": "GentlemanHu",
+ "title": "ComfyUI-Notifier",
+ "reference": "https://github.com/GentlemanHu/ComfyUI-Notifier",
+ "files": [
+ "https://github.com/GentlemanHu/ComfyUI-Notifier"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:GentlemanHu_Notifier"
+ },
+ {
+ "author": "nat-chan",
+ "title": "comfyui-in-memory-transceiver",
+ "reference": "https://github.com/nat-chan/comfyui-in-memory-transceiver",
+ "files": [
+ "https://github.com/nat-chan/comfyui-in-memory-transceiver"
+ ],
+ "install_type": "git-clone",
+ "description": "Why? When processing a large number of requests, the SaveImage and LoadImage nodes may be IO-limited, and using shared memory improves performance by passing images only through memory access, not through IO."
+ },
+ {
+ "author": "DrMWeigand",
+ "title": "ComfyUI_LineBreakInserter",
+ "reference": "https://github.com/DrMWeigand/ComfyUI_LineBreakInserter",
+ "files": [
+ "https://github.com/DrMWeigand/ComfyUI_LineBreakInserter"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Line Break Inserter"
+ },
+ {
+ "author": "WilliamStanford",
+ "title": "visuallabs_comfyui_nodes",
+ "reference": "https://github.com/WilliamStanford/visuallabs_comfyui_nodes",
+ "files": [
+ "https://github.com/WilliamStanford/visuallabs_comfyui_nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:PointStringFromFloatArray"
+ },
+ {
+ "author": "bruce007lee",
+ "title": "comfyui-cleaner",
+ "reference": "https://github.com/bruce007lee/comfyui-cleaner",
+ "files": [
+ "https://github.com/bruce007lee/comfyui-cleaner"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:cleaner"
+ },
+ {
+ "author": "ExponentialML",
+ "title": "ComfyUI_LiveDirector (WIP)",
+ "reference": "https://github.com/ExponentialML/ComfyUI_LiveDirector",
+ "files": [
+ "https://github.com/ExponentialML/ComfyUI_LiveDirector"
+ ],
+ "install_type": "git-clone",
+ "description": "Experimental method to use reference video to drive motion in generations without training in ComfyUI."
+ },
+ {
+ "author": "logtd",
+ "title": "ComfyUI-MotionThiefExperiment",
+ "reference": "https://github.com/logtd/ComfyUI-MotionThiefExperiment",
+ "files": [
+ "https://github.com/logtd/ComfyUI-MotionThiefExperiment"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:This is an experimental node pack to test using reference videos for their motion.\nIt isn't compatible with a lot of things as this is a hacky implementation for experiments only."
+ },
+ {
+ "author": "hy134300",
+ "title": "comfyui-hb-node",
+ "reference": "https://github.com/hy134300/comfyui-hb-node",
+ "files": [
+ "https://github.com/hy134300/comfyui-hb-node"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:sound voice, text concat, latent to list, movie generate, movie batch, hy save image, generate story"
+ },
+ {
+ "author": "gameltb",
+ "title": "io_comfyui",
+ "reference": "https://github.com/gameltb/io_comfyui",
+ "files": [
+ "https://github.com/gameltb/io_comfyui"
+ ],
+ "install_type": "git-clone",
+ "description": "Let Blender work with ComfyUI by ComfyScript. This addon is still in development."
+ },
+ {
+ "author": "ALatentPlace",
+ "title": "YANC- Yet Another Node Collection",
+ "reference": "https://github.com/ALatentPlace/ComfyUI_yanc",
+ "files": [
+ "https://github.com/ALatentPlace/ComfyUI_yanc"
+ ],
+ "install_type": "git-clone",
+ "description": "This is another node collection for ComfyUI. It includes some basic nodes that I find useful, and I've also created them to meet my personal needs."
+ },
+ {
+ "author": "Jiffies-64",
+ "title": "ComfyUI-SaveImagePlus",
+ "reference": "https://github.com/Jiffies-64/ComfyUI-SaveImagePlus",
+ "files": [
+ "https://github.com/Jiffies-64/ComfyUI-SaveImagePlus"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:SaveImagePlus"
+ },
+ {
+ "author": "kadirnar",
+ "title": "ComfyUI-Adapter [WIP]",
+ "reference": "https://github.com/kadirnar/ComfyUI-Adapter",
+ "files": [
+ "https://github.com/kadirnar/ComfyUI-Adapter"
+ ],
+ "install_type": "git-clone",
+ "description": "WIP"
+ },
+ {
+ "author": "Beinsezii",
+ "title": "comfyui-amd-go-fast",
+ "reference": "https://github.com/Beinsezii/comfyui-amd-go-fast",
+ "files": [
+ "https://github.com/Beinsezii/comfyui-amd-go-fast"
+ ],
+ "install_type": "git-clone",
+ "description": "This contains all-in-one 'principled' nodes for T2I, I2I, refining, and scaling. Additionally it has many tools for directly manipulating the color of latents, high res fix math, and scripted image post-processing."
+ },
+ {
+ "author": "sugarkwork",
+ "title": "comfyui_psd [WIP]",
+ "reference": "https://github.com/sugarkwork/comfyui_psd",
+ "files": [
+ "https://github.com/sugarkwork/comfyui_psd"
+ ],
+ "install_type": "git-clone",
+ "description": "Not working yet."
+ },
+ {
+ "author": "SadaleNet",
+ "title": "ComfyUI Port for Google's Prompt-to-Prompt",
+ "reference": "https://github.com/SadaleNet/ComfyUI-Prompt-To-Prompt",
+ "files": [
+ "https://github.com/SadaleNet/ComfyUI-Prompt-To-Prompt"
+ ],
+ "install_type": "git-clone",
+ "description": "This is a PoC port of [a/Google's Prompt-to-Prompt](https://github.com/google/prompt-to-prompt/) to ComfyUI. It isn't feature complete. But it's good enough for evaluating if prompt-to-prompt is of any good."
+ },
+ {
+ "author": "MushroomFleet",
+ "title": "DJZ-Nodes",
+ "reference": "https://github.com/MushroomFleet/DJZ-Nodes",
+ "files": [
+ "https://github.com/MushroomFleet/DJZ-Nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Aspect Size. Drift Johnsons Custom nodes for ComfyUI"
+ },
+ {
+ "author": "stavsap",
+ "title": "ComfyUI Ollama [WIP]",
+ "reference": "https://github.com/stavsap/ComfyUI-React-SDK",
+ "files": [
+ "https://github.com/stavsap/ComfyUI-React-SDK"
+ ],
+ "install_type": "git-clone",
+ "description": "This project is for building React application as an overlay upon ComfyUI.\nProviding and ability to provide desired UI with ComfyUI API and workflows.\nInspired by: [a/https://github.com/cubiq/Comfy_Dungeon](https://github.com/cubiq/Comfy_Dungeon)"
+ },
+ {
+ "author": "chaojie",
+ "title": "ComfyUI DynamiCrafter",
+ "reference": "https://github.com/chaojie/ComfyUI-DynamiCrafter",
+ "files": [
+ "https://github.com/chaojie/ComfyUI-DynamiCrafter"
+ ],
+ "install_type": "git-clone",
+ "description": "ComfyUI [a/DynamiCrafter](https://github.com/Doubiiu/DynamiCrafter)"
+ },
+ {
+ "author": "cubiq",
+ "title": "Comfy Dungeon [WIP]",
+ "reference": "https://github.com/cubiq/Comfy_Dungeon",
+ "files": [
+ "https://github.com/cubiq/Comfy_Dungeon"
+ ],
+ "install_type": "git-clone",
+ "description": "Build D&D Character Portraits with ComfyUI.\nIMPORTANT: At the moment this is mostly a tech demo to show how to build a web app on top of ComfyUI. The code is very messy and the application doesn't guaratee consistent results."
+ },
+ {
+ "author": "dfl",
+ "title": "comfyui-stylegan",
+ "reference": "https://github.com/dfl/comfyui-stylegan",
+ "files": [
+ "https://github.com/dfl/comfyui-stylegan"
+ ],
+ "install_type": "git-clone",
+ "description": "Generator for StyleGAN 3"
+ },
+ {
+ "author": "A719689614",
+ "title": "ComfyUI_AC_FUNV8Beta1",
+ "reference": "https://github.com/A719689614/ComfyUI_AC_FUNV8Beta1",
+ "files": [
+ "https://github.com/A719689614/ComfyUI_AC_FUNV8Beta1"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:AC_Super_Controlnet/Checkpoint/Loras/Lora&LCM/KSampler/UpKSampler/SaveImage/PreviewImage/CKPT&LCM/CLIPEN/EmptLatent, AC_FUN_SUPER_LARGE, AC_Super_Come_Ckpt, AC_Super_Come_Lora"
+ },
+ {
+ "author": "houdinii",
+ "title": "comfy-magick [WIP]",
+ "reference": "https://github.com/houdinii/comfy-magick",
+ "files": [
+ "https://github.com/houdinii/comfy-magick"
+ ],
+ "install_type": "git-clone",
+ "description": "This is a way to implement ImageMagick functionality in ComfyUI, which is generally PIL (pillow) based. I'm not sure the best way to handle this, as batch images make it a lot more complex, but the general idea will be two nodes to translate the IMAGE type, a torch.tensor of shape [batch, height, width, channels], or [1, 600, 800, 3] for a single 800x600 image, into/from a wand Image object."
+ },
+ {
+ "author": "tjorbogarden",
+ "title": "my-useful-comfyui-custom-nodes",
+ "reference": "https://github.com/tjorbogarden/my-useful-comfyui-custom-nodes",
+ "files": [
+ "https://github.com/tjorbogarden/my-useful-comfyui-custom-nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:My-Image Sizer, KSamplerSDXLAdvanced."
+ },
+ {
+ "author": "DeTK",
+ "title": "ComfyUI Node Switcher",
+ "reference": "https://github.com/DeTK/ComfyUI-Switch",
+ "files": [
+ "https://github.com/DeTK/ComfyUI-Switch"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:NodeSwitch."
+ },
+ {
+ "author": "GrindHouse66",
+ "title": "GH Tools for ComfyUI",
+ "reference": "https://github.com/GrindHouse66/ComfyUI-GH_Tools",
+ "files": [
+ "https://github.com/GrindHouse66/ComfyUI-GH_Tools"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:GH Tools Image Sizer, GH Tools Simple Scale. Simple quality of life Tools for ComfyUI. Basically, If it makes my life easier, it will be here. The list will grow over time."
+ },
+ {
+ "author": "sdfxai",
+ "title": "SDFXBridgeForComfyUI - ComfyUI Custom Node for SDFX Integration",
+ "reference": "https://github.com/sdfxai/SDFXBridgeForComfyUI",
+ "files": [
+ "https://github.com/sdfxai/SDFXBridgeForComfyUI"
+ ],
+ "install_type": "git-clone",
+ "description": "SDFXBridgeForComfyUI is a custom node designed for seamless integration between ComfyUI and the SDFX solution. This custom node allows users to make ComfyUI compatible with SDFX when running the ComfyUI instance on their local machines."
+ },
+ {
+ "author": "Beinsezii",
+ "title": "comfyui-amd-go-fast",
+ "reference": "https://github.com/Beinsezii/comfyui-amd-go-fast",
+ "files": [
+ "https://github.com/Beinsezii/comfyui-amd-go-fast"
+ ],
+ "install_type": "git-clone",
+ "description": "See details: [a/link](https://github.com/Beinsezii/comfyui-amd-go-fast?tab=readme-ov-file)"
+ },
+ {
+ "author": "SeedV",
+ "title": "ComfyUI-SeedV-Nodes [UNSAFE]",
+ "reference": "https://github.com/SeedV/ComfyUI-SeedV-Nodes",
+ "files": [
+ "https://github.com/SeedV/ComfyUI-SeedV-Nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Script.\n[w/This extension poses a risk of executing arbitrary commands through workflow execution. Please be cautious.]"
+ },
+ {
+ "author": "mut-ex",
+ "title": "ComfyUI GLIGEN GUI Node",
+ "reference": "https://github.com/mut-ex/comfyui-gligengui-node",
+ "files": [
+ "https://github.com/mut-ex/comfyui-gligengui-node"
+ ],
+ "install_type": "git-clone",
+ "description": "This is a simple, straightforward ComfyUI node to be used along with the [a/GLIGEN GUI](https://github.com/mut-ex/gligen-gui) I developed.\nNOTE:[a/Make sure you have the GLIGEN GUI up and running](https://github.com/mut-ex/gligen-gui/tree/main)"
+ },
+ {
+ "author": "unanan",
+ "title": "ComfyUI-Dist [WIP]",
+ "reference": "https://github.com/unanan/ComfyUI-Dist",
+ "files": [
+ "https://github.com/unanan/ComfyUI-Dist"
+ ],
+ "install_type": "git-clone",
+ "description": "For distributed processing ComfyUI workflows within a local area network.\nNot Finished Yet."
+ },
+ {
+ "author": "NicholasKao1029",
+ "title": "comfyui-hook",
+ "reference": "https://github.com/NicholasKao1029/comfyui-hook",
+ "files": [
+ "https://github.com/NicholasKao1029/comfyui-hook"
+ ],
+ "install_type": "git-clone",
+ "description": "This extension provides additional API"
+ },
+ {
+ "author": "Extraltodeus",
+ "title": "Conditioning-token-experiments-for-ComfyUI",
+ "reference": "https://github.com/Extraltodeus/Conditioning-token-experiments-for-ComfyUI",
+ "files": [
+ "https://github.com/Extraltodeus/Conditioning-token-experiments-for-ComfyUI"
+ ],
+ "install_type": "git-clone",
+ "description": "I made these nodes for experimenting so it's far from perfect but at least it is entertaining!\nIt uses cosine similarities or smallest euclidean distances to find the closest tokens."
+ },
+ {
+ "author": "shadowcz007",
+ "title": "comfyui-llamafile [WIP]",
+ "reference": "https://github.com/shadowcz007/comfyui-llamafile",
+ "files": [
+ "https://github.com/shadowcz007/comfyui-llamafile"
+ ],
+ "install_type": "git-clone",
+ "description": "This node is an experimental node aimed at exploring the collaborative way of human-machine creation."
+ },
+ {
+ "author": "gameltb",
+ "title": "ComfyUI paper playground",
+ "reference": "https://github.com/gameltb/ComfyUI_paper_playground",
+ "files": [
+ "https://github.com/gameltb/ComfyUI_paper_playground"
+ ],
+ "install_type": "git-clone",
+ "description": "Evaluate some papers in ComfyUI, just playground.\nNOTE: Various models need to be installed, so please visit the repository to check."
+ },
+ {
+ "author": "huizhang0110",
+ "title": "ComfyUI_Easy_Nodes_hui",
+ "reference": "https://github.com/huizhang0110/ComfyUI_Easy_Nodes_hui",
+ "files": [
+ "https://github.com/huizhang0110/ComfyUI_Easy_Nodes_hui"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:EasyEmptyLatentImage"
+ },
+ {
+ "author": "tuckerdarby",
+ "title": "ComfyUI-TDNodes [WIP]",
+ "reference": "https://github.com/tuckerdarby/ComfyUI-TDNodes",
+ "files": [
+ "https://github.com/tuckerdarby/ComfyUI-TDNodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:KSampler (RAVE), KSampler (TF), Object Tracker, KSampler Batched, Video Tracker Prompt, TemporalNet Preprocessor, Instance Tracker Prompt, Instance Diffusion Loader, Hand Tracker Node"
+ },
+ {
+ "author": "shadowcz007",
+ "title": "comfyui-musicgen",
+ "reference": "https://github.com/shadowcz007/comfyui-musicgen",
+ "files": [
+ "https://github.com/shadowcz007/comfyui-musicgen"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Musicgen"
+ },
+ {
+ "author": "shadowcz007",
+ "title": "comfyui-CLIPSeg",
+ "reference": "https://github.com/shadowcz007/comfyui-CLIPSeg",
+ "files": [
+ "https://github.com/shadowcz007/comfyui-CLIPSeg"
+ ],
+ "install_type": "git-clone",
+ "description": "Download [a/CLIPSeg](https://huggingface.co/CIDAS/clipseg-rd64-refined/tree/main), move to : models/clipseg"
+ },
+ {
+ "author": "stutya",
+ "title": "ComfyUI-Terminal [UNSAFE]",
+ "reference": "https://github.com/stutya/ComfyUI-Terminal",
+ "files": [
+ "https://github.com/stutya/ComfyUI-Terminal"
+ ],
+ "install_type": "git-clone",
+ "description": "Run Terminal Commands from ComfyUI.\n[w/This extension poses a risk of executing arbitrary commands through workflow execution. Please be cautious.]"
+ },
+ {
+ "author": "marcueberall",
+ "title": "ComfyUI-BuildPath",
+ "reference": "https://github.com/marcueberall/ComfyUI-BuildPath",
+ "files": [
+ "https://github.com/marcueberall/ComfyUI-BuildPath"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: Build Path Adv."
+ },
+ {
+ "author": "LotzF",
+ "title": "ComfyUI simple ChatGPT completion [UNSAFE]",
+ "reference": "https://github.com/LotzF/ComfyUI-Simple-Chat-GPT-completion",
+ "files": [
+ "https://github.com/LotzF/ComfyUI-Simple-Chat-GPT-completion"
+ ],
+ "install_type": "git-clone",
+ "description": "A simple node to request ChatGPT completions. [w/Do not share your workflows including the API key! I'll take no responsibility for your leaked keys.]"
+ },
+ {
+ "author": "kappa54m",
+ "title": "ComfyUI_Usability (WIP)",
+ "reference": "https://github.com/kappa54m/ComfyUI_Usability",
+ "files": [
+ "https://github.com/kappa54m/ComfyUI_Usability"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: Load Image Dedup, Load Image By Path."
+ },
+ {
+ "author": "17Retoucher",
+ "title": "ComfyUI_Fooocus",
+ "reference": "https://github.com/17Retoucher/ComfyUI_Fooocus",
+ "files": [
+ "https://github.com/17Retoucher/ComfyUI_Fooocus"
+ ],
+ "install_type": "git-clone",
+ "description": "Custom nodes that help reproduce image generation in Fooocus."
+ },
+ {
+ "author": "nkchocoai",
+ "title": "ComfyUI-PromptUtilities",
+ "reference": "https://github.com/nkchocoai/ComfyUI-PromptUtilities",
+ "files": [
+ "https://github.com/nkchocoai/ComfyUI-PromptUtilities"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: Format String, Join String List, Load Preset, Load Preset (Advanced), Const String, Const String (multi line). Add useful nodes related to prompt."
+ },
+ {
+ "author": "BadCafeCode",
+ "title": "execution-inversion-demo-comfyui",
+ "reference": "https://github.com/BadCafeCode/execution-inversion-demo-comfyui",
+ "files": [
+ "https://github.com/BadCafeCode/execution-inversion-demo-comfyui"
+ ],
+ "install_type": "git-clone",
+ "description": "execution-inversion-demo-comfyui"
+ },
+ {
+ "author": "unanan",
+ "title": "ComfyUI-clip-interrogator [WIP]",
+ "reference": "https://github.com/unanan/ComfyUI-clip-interrogator",
+ "files": [
+ "https://github.com/unanan/ComfyUI-clip-interrogator"
+ ],
+ "install_type": "git-clone",
+ "description": "Unofficial ComfyUI extension of clip-interrogator"
+ },
+ {
+ "author": "prismwastaken",
+ "title": "prism-tools",
+ "reference": "https://github.com/prismwastaken/comfyui-tools",
+ "files": [
+ "https://github.com/prismwastaken/comfyui-tools"
+ ],
+ "install_type": "git-clone",
+ "description": "prism-tools"
+ },
+ {
+ "author": "poisenbery",
+ "title": "NudeNet-Detector-Provider [WIP]",
+ "reference": "https://github.com/poisenbery/NudeNet-Detector-Provider",
+ "files": [
+ "https://github.com/poisenbery/NudeNet-Detector-Provider"
+ ],
+ "install_type": "git-clone",
+ "description": "BBOX Detector Provider for NudeNet. Bethesda version of NudeNet V3 detector provider to work with Impact Pack ComfyUI."
+ },
+ {
+ "author": "LarryJane491",
+ "title": "ComfyUI-ModelUnloader",
+ "reference": "https://github.com/LarryJane491/ComfyUI-ModelUnloader",
+ "files": [
+ "https://github.com/LarryJane491/ComfyUI-ModelUnloader"
+ ],
+ "install_type": "git-clone",
+ "description": "A simple custom node that unloads all models. Useful for developers or users who want to free some memory."
+ },
+ {
+ "author": "AIGODLIKE",
+ "title": "AIGODLIKE/ComfyUI-Model-Manager [WIP]",
+ "reference": "https://github.com/AIGODLIKE/ComfyUI-Studio",
+ "files": [
+ "https://github.com/AIGODLIKE/ComfyUI-Studio"
+ ],
+ "install_type": "git-clone",
+ "description": "WIP"
+ },
+ {
+ "author": "MrAdamBlack",
+ "title": "CheckProgress [WIP]",
+ "reference": "https://github.com/MrAdamBlack/CheckProgress",
+ "files": [
+ "https://github.com/MrAdamBlack/CheckProgress"
+ ],
+ "install_type": "git-clone",
+ "description": "I was looking for a node to put in place to ensure my prompt etc where going as expected before the rest of the flow executed. To end the session, I just return the input image as None (see expected error). Recommend using it alongside PreviewImage, then output to the rest of the flow and Save Image."
+ },
+ {
+ "author": "birnam",
+ "title": "Gen Data Tester [WIP]",
+ "reference": "https://github.com/birnam/ComfyUI-GenData-Pack",
+ "files": [
+ "https://github.com/birnam/ComfyUI-GenData-Pack"
+ ],
+ "install_type": "git-clone",
+ "description": "This answers the itch for being able to easily paste [a/CivitAI.com](https://civitai.com/) generated data (or other simple metadata) into Comfy in a way that makes it easy to test with multiple checkpoints."
+ },
+ {
+ "author": "ZHO-ZHO-ZHO",
+ "title": "ComfyUI-AnyText [WIP]",
+ "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-AnyText",
+ "files": [
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-AnyText"
+ ],
+ "install_type": "git-clone",
+ "description": "Unofficial implementation of [a/AnyText](https://github.com/tyxsspa/AnyText/tree/825bcc54687206b15bd7e28ba1a8b095989d58e3) for ComfyUI(EXP)"
+ },
+ {
+ "author": "nidefawl",
+ "title": "ComfyUI-nidefawl [UNSAFE]",
+ "reference": "https://github.com/nidefawl/ComfyUI-nidefawl",
+ "files": [
+ "https://github.com/nidefawl/ComfyUI-nidefawl"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:PythonScript, BlendImagesWithBoundedMasks, CropImagesWithMasks, VAELoaderDataType, ModelSamplerTonemapNoiseTest, gcLatentTunnel, ReferenceOnlySimple, EmptyImageWithColor, MaskFromColor, SetLatentCustomNoise, LatentToImage, ImageToLatent, LatentScaledNoise, DisplayAnyType, SamplerCustomCallback, CustomCallback, SplitCustomSigmas, SamplerDPMPP_2M_SDE_nidefawl, LatentPerlinNoise. [w/This node is an unsafe node that includes the capability to execute arbitrary python script.]"
+ },
+ {
+ "author": "kadirnar",
+ "title": "comfyui_helpers",
+ "reference": "https://github.com/kadirnar/comfyui_helpers",
+ "files": [
+ "https://github.com/kadirnar/comfyui_helpers"
+ ],
+ "install_type": "git-clone",
+ "description": "A collection of nodes randomly selected and gathered, related to noise. NOTE: SD-Advanced-Noise, noise_latent_perlinpinpin, comfy-plasma"
+ },
+ {
+ "author": "foglerek",
+ "title": "comfyui-cem-tools",
+ "reference": "https://github.com/foglerek/comfyui-cem-tools",
+ "files": [
+ "https://github.com/foglerek/comfyui-cem-tools"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:ProcessImageBatch"
+ },
+ {
+ "author": "komojini",
+ "title": "ComfyUI_Prompt_Template_CustomNodes",
+ "reference": "https://github.com/komojini/ComfyUI_Prompt_Template_CustomNodes",
+ "files": [
+ "https://github.com/komojini/ComfyUI_Prompt_Template_CustomNodes/raw/main/prompt_with_template.py"
+ ],
+ "install_type": "copy",
+ "description": "Nodes:Prompt with Template"
+ },
+ {
+ "author": "talesofai",
+ "title": "comfyui-supersave [WIP]",
+ "reference": "https://github.com/talesofai/comfyui-supersave",
+ "files": [
+ "https://github.com/talesofai/comfyui-supersave"
+ ],
+ "install_type": "git-clone",
+ "description": "WIP"
+ },
+ {
+ "author": "Sai-ComfyUI",
+ "title": "ComfyUI-MS-Nodes [WIP]",
+ "reference": "https://github.com/Sai-ComfyUI/ComfyUI-MS-Nodes",
+ "files": [
+ "https://github.com/Sai-ComfyUI/ComfyUI-MS-Nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "WIP"
+ },
+ {
+ "author": "eigenpunk",
+ "title": "ComfyUI-audio",
+ "reference": "https://github.com/eigenpunk/ComfyUI-audio",
+ "files": [
+ "https://github.com/eigenpunk/ComfyUI-audio"
+ ],
+ "install_type": "git-clone",
+ "description": "generative audio tools for ComfyUI. highly experimental-expect things to break."
+ },
+ {
+ "author": "Jaxkr",
+ "title": "comfyui-terminal-command [UNSAFE]",
+ "reference": "https://github.com/Jaxkr/comfyui-terminal-command",
+ "files": [
+ "https://github.com/Jaxkr/comfyui-terminal-command"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: Run Terminal Command. [w/This node is an unsafe node that includes the capability to execute terminal commands.]"
+ },
+ {
+ "author": "BlueDangerX",
+ "title": "ComfyUI-BDXNodes [WIP]",
+ "reference": "https://github.com/BlueDangerX/ComfyUI-BDXNodes",
+ "files": [
+ "https://github.com/BlueDangerX/ComfyUI-BDXNodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: Node Jumper. Various quality of life testing nodes"
+ },
+ {
+ "author": "ilovejohnwhite",
+ "title": "TatToolkit",
+ "reference": "https://github.com/ilovejohnwhite/UncleBillyGoncho",
+ "files": [
+ "https://github.com/ilovejohnwhite/UncleBillyGoncho"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:UWU TTK Preprocessor, Pixel Perfect Resolution, Generation Resolution From Image, Generation Resolution From Latent, Enchance And Resize Hint Images, ..."
+ },
+ {
+ "author": "IvanZhd",
+ "title": "comfyui-codeformer [WIP]",
+ "reference": "https://github.com/IvanZhd/comfyui-codeformer",
+ "files": [
+ "https://github.com/IvanZhd/comfyui-codeformer"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Image Inverter"
+ },
+ {
+ "author": "alt-key-project",
+ "title": "Dream Project Video Batches [WIP]",
+ "reference": "https://github.com/alt-key-project/comfyui-dream-video-batches",
+ "files": [
+ "https://github.com/alt-key-project/comfyui-dream-video-batches"
+ ],
+ "install_type": "git-clone",
+ "description": "NOTE: This is currently work in progress. Expect nodes to break (or be broken) until 1.0 release."
+ },
+ {
+ "author": "oyvindg",
+ "title": "ComfyUI-TrollSuite",
+ "reference": "https://github.com/oyvindg/ComfyUI-TrollSuite",
+ "files": [
+ "https://github.com/oyvindg/ComfyUI-TrollSuite"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: BinaryImageMask, ImagePadding, LoadLastCreatedImage, RandomMask, TransparentImage."
+ },
+ {
+ "author": "romeobuilderotti",
+ "title": "ComfyUI-EZ-Pipes",
+ "reference": "https://github.com/romeobuilderotti/ComfyUI-EZ-Pipes",
+ "files": [
+ "https://github.com/romeobuilderotti/ComfyUI-EZ-Pipes"
+ ],
+ "install_type": "git-clone",
+ "description": "ComfyUI-EZ-Pipes is a set of custom pipe nodes for ComfyUI. It provides a set of Input/Edit/Output nodes for each pipe type."
+ },
+ {
+ "author": "wormley",
+ "title": "comfyui-wormley-nodes",
+ "reference": "https://github.com/wormley/comfyui-wormley-nodes",
+ "files": [
+ "https://github.com/wormley/comfyui-wormley-nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: CheckpointVAELoaderSimpleText, CheckpointVAESelectorText, LoRA_Tag_To_Stack"
+ },
+ {
+ "author": "dnl13",
+ "title": "ComfyUI-dnl13-seg",
+ "reference": "https://github.com/dnl13/ComfyUI-dnl13-seg",
+ "files": [
+ "https://github.com/dnl13/ComfyUI-dnl13-seg"
+ ],
+ "install_type": "git-clone",
+ "description": "After discovering @storyicon implementation here of Segment Anything, I realized its potential as a powerful tool for ComfyUI if implemented correctly. I delved into the SAM and Dino models. The following is my own adaptation of sam_hq for ComfyUI."
+ },
+ {
+ "author": "Brandelan",
+ "title": "ComfyUI_bd_customNodes",
+ "reference": "https://github.com/Brandelan/ComfyUI_bd_customNodes",
+ "files": [
+ "https://github.com/Brandelan/ComfyUI_bd_customNodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: BD Random Range, BD Settings, BD Sequencer."
+ },
+ {
+ "author": "Jordach",
+ "title": "comfy-consistency-vae",
+ "reference": "https://github.com/Jordach/comfy-consistency-vae",
+ "files": [
+ "https://github.com/Jordach/comfy-consistency-vae"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: Comfy_ConsistencyVAE"
+ },
+ {
+ "author": "gameltb",
+ "title": "ComfyUI_stable_fast",
+ "reference": "https://github.com/gameltb/ComfyUI_stable_fast",
+ "files": [
+ "https://github.com/gameltb/ComfyUI_stable_fast"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:ApplyStableFastUnet. Experimental usage of stable-fast."
+ },
+ {
+ "author": "jn-jairo",
+ "title": "jn_node_suite_comfyui [WIP]",
+ "reference": "https://github.com/jn-jairo/jn_node_suite_comfyui",
+ "files": [
+ "https://github.com/jn-jairo/jn_node_suite_comfyui"
+ ],
+ "install_type": "git-clone",
+ "description": "Image manipulation nodes, Temperature control nodes, Tiling nodes, Primitive and operation nodes, ..."
+ },
+ {
+ "author": "PluMaZero",
+ "title": "ComfyUI-SpaceFlower",
+ "reference": "https://github.com/PluMaZero/ComfyUI-SpaceFlower",
+ "files": [
+ "https://github.com/PluMaZero/ComfyUI-SpaceFlower"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: SpaceFlower_Prompt, SpaceFlower_HangulPrompt, ..."
+ },
+ {
+ "author": "laksjdjf",
+ "title": "ssd-1b-comfyui",
+ "reference": "https://github.com/laksjdjf/ssd-1b-comfyui",
+ "files": [
+ "https://github.com/laksjdjf/ssd-1b-comfyui"
+ ],
+ "install_type": "git-clone",
+ "description": "Experimental node for SSD-1B. This node is not need for latest comfyui."
+ },
+ {
+ "author": "flowtyone",
+ "title": "comfyui-flowty-lcm",
+ "reference": "https://github.com/flowtyone/comfyui-flowty-lcm",
+ "files": [
+ "https://github.com/flowtyone/comfyui-flowty-lcm"
+ ],
+ "install_type": "git-clone",
+ "description": "This is a comfyui early testing node for LCM, adapted from [a/https://github.com/0xbitches/sd-webui-lcm](https://github.com/0xbitches/sd-webui-lcm). It uses the diffusers backend unfortunately and not comfy's model loading mechanism. But the intention here is just to be able to execute lcm inside comfy.\nNOTE: 0xbitches's 'Latent Consistency Model for ComfyUI' is original implementation."
+ },
+ {
+ "author": "doucx",
+ "title": "ComfyUI_WcpD_Utility_Kit",
+ "reference": "https://github.com/doucx/ComfyUI_WcpD_Utility_Kit",
+ "files": [
+ "https://github.com/doucx/ComfyUI_WcpD_Utility_Kit"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: MergeStrings, ExecStrAsCode, RandnLatentImage. [w/NOTE: This extension includes the ability to execute code as a string in nodes. Be cautious during installation, as it can pose a security risk.]"
+ },
+ {
+ "author": "WSJUSA",
+ "title": "pre-comfyui-stablsr",
+ "reference": "https://github.com/WSJUSA/Comfyui-StableSR",
+ "files": [
+ "https://github.com/WSJUSA/Comfyui-StableSR"
+ ],
+ "install_type": "git-clone",
+ "description": "This is a development respository for debugging migration of StableSR to Comfyui"
+ },
+ {
+ "author": "Dr.Lt.Data",
+ "title": "ComfyUI-Workflow-Component [WIP]",
+ "reference": "https://github.com/ltdrdata/ComfyUI-Workflow-Component",
+ "files": [
+ "https://github.com/ltdrdata/ComfyUI-Workflow-Component"
+ ],
+ "install_type": "git-clone",
+ "description": "This extension provides the capability to use ComfyUI Workflow as a component and the ability to use the Image Refiner functionality based on components. NOTE: This is an experimental extension feature with no consideration for backward compatibility and can be highly unstable."
+ }
+ ]
+}
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/node_db/dev/extension-node-map.json b/custom_nodes/ComfyUI-Manager/node_db/dev/extension-node-map.json
new file mode 100644
index 000000000..b6f2a587d
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/dev/extension-node-map.json
@@ -0,0 +1,2119 @@
+{
+ "https://github.com/17Retoucher/ComfyUI_Fooocus": [
+ [
+ "BasicScheduler",
+ "CLIPLoader",
+ "CLIPMergeSimple",
+ "CLIPSave",
+ "CLIPSetLastLayer",
+ "CLIPTextEncode",
+ "CLIPTextEncodeSDXL",
+ "CLIPTextEncodeSDXLRefiner",
+ "CLIPVisionEncode",
+ "CLIPVisionLoader",
+ "Canny",
+ "CheckpointLoader",
+ "CheckpointLoaderSimple",
+ "CheckpointSave",
+ "ConditioningAverage",
+ "ConditioningCombine",
+ "ConditioningConcat",
+ "ConditioningSetArea",
+ "ConditioningSetAreaPercentage",
+ "ConditioningSetMask",
+ "ConditioningSetTimestepRange",
+ "ConditioningZeroOut",
+ "ControlNetApply",
+ "ControlNetApplyAdvanced",
+ "ControlNetLoader",
+ "CropMask",
+ "DiffControlNetLoader",
+ "DiffusersLoader",
+ "DualCLIPLoader",
+ "EmptyImage",
+ "EmptyLatentImage",
+ "ExponentialScheduler",
+ "FeatherMask",
+ "FlipSigmas",
+ "Fooocus Controlnet",
+ "Fooocus Hirefix",
+ "Fooocus KSampler",
+ "Fooocus Loader",
+ "Fooocus LoraStack",
+ "Fooocus PreKSampler",
+ "Fooocus negative",
+ "Fooocus positive",
+ "Fooocus stylesSelector",
+ "FreeU",
+ "FreeU_V2",
+ "GLIGENLoader",
+ "GLIGENTextBoxApply",
+ "GrowMask",
+ "HyperTile",
+ "HypernetworkLoader",
+ "ImageBatch",
+ "ImageBlend",
+ "ImageBlur",
+ "ImageColorToMask",
+ "ImageCompositeMasked",
+ "ImageCrop",
+ "ImageInvert",
+ "ImageOnlyCheckpointLoader",
+ "ImagePadForOutpaint",
+ "ImageQuantize",
+ "ImageScale",
+ "ImageScaleBy",
+ "ImageScaleToTotalPixels",
+ "ImageSharpen",
+ "ImageToMask",
+ "ImageUpscaleWithModel",
+ "InvertMask",
+ "JoinImageWithAlpha",
+ "KSampler",
+ "KSamplerAdvanced",
+ "KSamplerSelect",
+ "KarrasScheduler",
+ "LatentAdd",
+ "LatentBatch",
+ "LatentBlend",
+ "LatentComposite",
+ "LatentCompositeMasked",
+ "LatentCrop",
+ "LatentFlip",
+ "LatentFromBatch",
+ "LatentInterpolate",
+ "LatentMultiply",
+ "LatentRotate",
+ "LatentSubtract",
+ "LatentUpscale",
+ "LatentUpscaleBy",
+ "LoadImage",
+ "LoadImageMask",
+ "LoadLatent",
+ "LoraLoader",
+ "LoraLoaderModelOnly",
+ "MaskComposite",
+ "MaskToImage",
+ "ModelMergeAdd",
+ "ModelMergeBlocks",
+ "ModelMergeSimple",
+ "ModelMergeSubtract",
+ "ModelSamplingContinuousEDM",
+ "ModelSamplingDiscrete",
+ "PatchModelAddDownscale",
+ "PerpNeg",
+ "PolyexponentialScheduler",
+ "PorterDuffImageComposite",
+ "PreviewImage",
+ "RebatchImages",
+ "RebatchLatents",
+ "RepeatImageBatch",
+ "RepeatLatentBatch",
+ "RescaleCFG",
+ "SDTurboScheduler",
+ "SVD_img2vid_Conditioning",
+ "SamplerCustom",
+ "SamplerDPMPP_2M_SDE",
+ "SamplerDPMPP_SDE",
+ "SaveAnimatedPNG",
+ "SaveAnimatedWEBP",
+ "SaveImage",
+ "SaveLatent",
+ "SelfAttentionGuidance",
+ "SetLatentNoiseMask",
+ "SolidMask",
+ "SplitImageWithAlpha",
+ "SplitSigmas",
+ "StableZero123_Conditioning",
+ "StyleModelApply",
+ "StyleModelLoader",
+ "TomePatchModel",
+ "UNETLoader",
+ "UpscaleModelLoader",
+ "VAEDecode",
+ "VAEDecodeTiled",
+ "VAEEncode",
+ "VAEEncodeForInpaint",
+ "VAEEncodeTiled",
+ "VAELoader",
+ "VAESave",
+ "VPScheduler",
+ "VideoLinearCFGGuidance",
+ "unCLIPCheckpointLoader",
+ "unCLIPConditioning"
+ ],
+ {
+ "title_aux": "ComfyUI_Fooocus"
+ }
+ ],
+ "https://github.com/A719689614/ComfyUI_AC_FUNV8Beta1": [
+ [
+ "\u2b1b(TODO)AC_Super_Come_Ckpt",
+ "\u2b1c(TODO)AC_Super_Come_Lora",
+ "\u2b55AC_FUN_SUPER_LARGE",
+ "\ud83c\ude35AC_Super_Checkpoint",
+ "\ud83c\ude35AC_Super_Loras",
+ "\ud83c\udfabAC_Super_PreviewImage",
+ "\ud83c\udfb0AC_Super_Controlnet",
+ "\ud83d\udcb6AC_Super_EmptLatent",
+ "\ud83d\udcbcAC_Super_Lora&LCM",
+ "\ud83d\udcbeAC_Super_SaveImage",
+ "\ud83d\udcc4AC_Super_CLIPEN",
+ "\ud83d\udcc8AC_Super_UpKSampler",
+ "\ud83d\udcdfAC_Super_CKPT&LCM",
+ "\ud83d\ude80AC_Super_KSampler"
+ ],
+ {
+ "title_aux": "ComfyUI_AC_FUNV8Beta1"
+ }
+ ],
+ "https://github.com/ALatentPlace/ComfyUI_yanc": [
+ [
+ "> Clear Text",
+ "> Float to Int",
+ "> Get Mean Color",
+ "> Int",
+ "> Int to Text",
+ "> Light Source Mask",
+ "> Load Image",
+ "> Load Image From Folder",
+ "> Mask Curves",
+ "> NIKSampler",
+ "> Noise From Image",
+ "> Normal Map Lighting",
+ "> RGB Color",
+ "> Resolution by Aspect Ratio",
+ "> Rotate Image",
+ "> Save Image",
+ "> Scale Image to Side",
+ "> Text",
+ "> Text Combine",
+ "> Text Pick Random Line",
+ "> Text Random Weights",
+ "> Text Replace"
+ ],
+ {
+ "title_aux": "YANC- Yet Another Node Collection"
+ }
+ ],
+ "https://github.com/AllenEdgarPoe/ComfyUI-Xorbis-nodes": [
+ [
+ "Add Human Styler",
+ "Save Log Info"
+ ],
+ {
+ "title_aux": "ComfyUI-Xorbis-nodes"
+ }
+ ],
+ "https://github.com/BadCafeCode/execution-inversion-demo-comfyui": [
+ [
+ "AccumulateNode",
+ "AccumulationGetItemNode",
+ "AccumulationGetLengthNode",
+ "AccumulationHeadNode",
+ "AccumulationSetItemNode",
+ "AccumulationTailNode",
+ "AccumulationToListNode",
+ "BoolOperationNode",
+ "ComponentInput",
+ "ComponentMetadata",
+ "ComponentOutput",
+ "DebugPrint",
+ "ExecutionBlocker",
+ "FloatConditions",
+ "ForLoopClose",
+ "ForLoopOpen",
+ "IntConditions",
+ "IntMathOperation",
+ "InversionDemoAdvancedPromptNode",
+ "InversionDemoFakeAdvancedPromptNode",
+ "InversionDemoLazyConditional",
+ "InversionDemoLazyIndexSwitch",
+ "InversionDemoLazyMixImages",
+ "InversionDemoLazySwitch",
+ "ListToAccumulationNode",
+ "MakeListNode",
+ "StringConditions",
+ "ToBoolNode",
+ "WhileLoopClose",
+ "WhileLoopOpen"
+ ],
+ {
+ "title_aux": "execution-inversion-demo-comfyui"
+ }
+ ],
+ "https://github.com/BlueDangerX/ComfyUI-BDXNodes": [
+ [
+ "BDXTestInt",
+ "ColorMatch",
+ "ColorToMask",
+ "ConditioningMultiCombine",
+ "ConditioningSetMaskAndCombine",
+ "ConditioningSetMaskAndCombine3",
+ "ConditioningSetMaskAndCombine4",
+ "ConditioningSetMaskAndCombine5",
+ "CreateAudioMask",
+ "CreateFadeMask",
+ "CreateFluidMask",
+ "CreateGradientMask",
+ "CreateTextMask",
+ "CrossFadeImages",
+ "EmptyLatentImagePresets",
+ "GrowMaskWithBlur",
+ "SomethingToString",
+ "VRAM_Debug"
+ ],
+ {
+ "author": "BlueDangerX",
+ "title": "BDXNodes",
+ "title_aux": "ComfyUI-BDXNodes [WIP]"
+ }
+ ],
+ "https://github.com/Brandelan/ComfyUI_bd_customNodes": [
+ [
+ "BD Random Range",
+ "BD Random Settings",
+ "BD Sequencer",
+ "BD Settings"
+ ],
+ {
+ "title_aux": "ComfyUI_bd_customNodes"
+ }
+ ],
+ "https://github.com/DeTK/ComfyUI-Switch": [
+ [
+ "NodeSwitch"
+ ],
+ {
+ "title_aux": "ComfyUI Node Switcher"
+ }
+ ],
+ "https://github.com/DrMWeigand/ComfyUI_LineBreakInserter": [
+ [
+ "LineBreakInserter"
+ ],
+ {
+ "title_aux": "ComfyUI_LineBreakInserter"
+ }
+ ],
+ "https://github.com/Elawphant/ComfyUI-MusicGen": [
+ [
+ "AudioLoader",
+ "MusicGen"
+ ],
+ {
+ "title_aux": "ComfyUI-MusicGen [WIP]"
+ }
+ ],
+ "https://github.com/ExponentialML/ComfyUI_LiveDirector": [
+ [
+ "LiveDirector"
+ ],
+ {
+ "title_aux": "ComfyUI_LiveDirector (WIP)"
+ }
+ ],
+ "https://github.com/Extraltodeus/Conditioning-token-experiments-for-ComfyUI": [
+ [
+ "Automatic wildcards",
+ "Conditioning (Cosine similarities)",
+ "Conditioning (Maximum absolute)",
+ "Conditioning (Maximum absolute) text inputs",
+ "Conditioning (Scale by absolute sum)",
+ "Conditioning merge clip g/l",
+ "Conditioning similar tokens recombine",
+ "Conditioning to text",
+ "Quick and dirty text encode",
+ "encode_all_tokens_SDXL"
+ ],
+ {
+ "title_aux": "Conditioning-token-experiments-for-ComfyUI"
+ }
+ ],
+ "https://github.com/GentlemanHu/ComfyUI-Notifier": [
+ [
+ "GentlemanHu_Notifier"
+ ],
+ {
+ "title_aux": "ComfyUI-Notifier"
+ }
+ ],
+ "https://github.com/GraftingRayman/ComfyUI_GR_PromptSelector": [
+ [
+ "GR Checkered Board",
+ "GR Flip Tile Random Inverted",
+ "GR Flip Tile Random Red Ring",
+ "GR Image Details Displayer",
+ "GR Image Details Saver",
+ "GR Image Resize",
+ "GR Image Resize Methods",
+ "GR Image Size",
+ "GR Image/Depth Mask",
+ "GR Mask Create",
+ "GR Mask Create Random",
+ "GR Mask Resize",
+ "GR Multi Mask Create",
+ "GR Onomatopoeia",
+ "GR Prompt Selector",
+ "GR Prompt Selector Multi",
+ "GR Stack Image",
+ "GR Text Overlay",
+ "GR Tile and Border Image",
+ "GR Tile and Border Image Random Flip"
+ ],
+ {
+ "title_aux": "ComfyUI-GR"
+ }
+ ],
+ "https://github.com/GrindHouse66/ComfyUI-GH_Tools": [
+ [
+ "GHImg_Sizer",
+ "GHSimple_Scale"
+ ],
+ {
+ "title_aux": "GH Tools for ComfyUI"
+ }
+ ],
+ "https://github.com/IvanZhd/comfyui-codeformer": [
+ [
+ "RedBeanie_CustomImageInverter"
+ ],
+ {
+ "title_aux": "comfyui-codeformer [WIP]"
+ }
+ ],
+ "https://github.com/Jaxkr/comfyui-terminal-command": [
+ [
+ "Terminal"
+ ],
+ {
+ "title_aux": "comfyui-terminal-command [UNSAFE]"
+ }
+ ],
+ "https://github.com/Jiffies-64/ComfyUI-SaveImagePlus": [
+ [
+ "SaveImagePlus"
+ ],
+ {
+ "title_aux": "ComfyUI-SaveImagePlus"
+ }
+ ],
+ "https://github.com/Jordach/comfy-consistency-vae": [
+ [
+ "Comfy_ConsistencyVAE"
+ ],
+ {
+ "title_aux": "comfy-consistency-vae"
+ }
+ ],
+ "https://github.com/LZpenguin/ComfyUI-Text": [
+ [
+ "Add_text_by_mask"
+ ],
+ {
+ "title_aux": "ComfyUI-Text"
+ }
+ ],
+ "https://github.com/LarryJane491/ComfyUI-ModelUnloader": [
+ [
+ "Model Unloader"
+ ],
+ {
+ "title_aux": "ComfyUI-ModelUnloader"
+ }
+ ],
+ "https://github.com/LotzF/ComfyUI-Simple-Chat-GPT-completion": [
+ [
+ "ChatGPTCompletion"
+ ],
+ {
+ "title_aux": "ComfyUI simple ChatGPT completion [UNSAFE]"
+ }
+ ],
+ "https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes": [
+ [
+ "AIO_Preprocessor",
+ "AnimalPosePreprocessor",
+ "AnimeFace_SemSegPreprocessor",
+ "AnimeLineArtPreprocessor",
+ "BAE-NormalMapPreprocessor",
+ "BinaryPreprocessor",
+ "CannyEdgePreprocessor",
+ "ColorPreprocessor",
+ "DWPreprocessor",
+ "DensePosePreprocessor",
+ "DepthAnythingPreprocessor",
+ "DiffusionEdge_Preprocessor",
+ "FacialPartColoringFromPoseKps",
+ "FakeScribblePreprocessor",
+ "HEDPreprocessor",
+ "HintImageEnchance",
+ "ImageGenResolutionFromImage",
+ "ImageGenResolutionFromLatent",
+ "ImageIntensityDetector",
+ "ImageLuminanceDetector",
+ "InpaintPreprocessor",
+ "LayeredDiffusionApply",
+ "LayeredDiffusionCondApply",
+ "LayeredDiffusionCondJointApply",
+ "LayeredDiffusionDecode",
+ "LayeredDiffusionDecodeRGBA",
+ "LayeredDiffusionDecodeSplit",
+ "LayeredDiffusionDiffApply",
+ "LayeredDiffusionJointApply",
+ "LeReS-DepthMapPreprocessor",
+ "LineArtPreprocessor",
+ "LineartStandardPreprocessor",
+ "M-LSDPreprocessor",
+ "Manga2Anime_LineArt_Preprocessor",
+ "MaskOptFlow",
+ "MediaPipe-FaceMeshPreprocessor",
+ "MeshGraphormer-DepthMapPreprocessor",
+ "MiDaS-DepthMapPreprocessor",
+ "MiDaS-NormalMapPreprocessor",
+ "ModelMergeBlockNumber",
+ "ModelMergeSDXL",
+ "ModelMergeSDXLDetailedTransformers",
+ "ModelMergeSDXLTransformers",
+ "ModelSamplerTonemapNoiseTest",
+ "OneFormer-ADE20K-SemSegPreprocessor",
+ "OneFormer-COCO-SemSegPreprocessor",
+ "OpenposePreprocessor",
+ "PiDiNetPreprocessor",
+ "PixelPerfectResolution",
+ "PromptExpansion",
+ "ReferenceOnlySimple",
+ "RescaleClassifierFreeGuidanceTest",
+ "SAMPreprocessor",
+ "SavePoseKpsAsJsonFile",
+ "ScribblePreprocessor",
+ "Scribble_XDoG_Preprocessor",
+ "SemSegPreprocessor",
+ "ShufflePreprocessor",
+ "TEEDPreprocessor",
+ "TilePreprocessor",
+ "TonemapNoiseWithRescaleCFG",
+ "UniFormer-SemSegPreprocessor",
+ "Unimatch_OptFlowPreprocessor",
+ "Zoe-DepthMapPreprocessor",
+ "Zoe_DepthAnythingPreprocessor"
+ ],
+ {
+ "author": "tstandley",
+ "title_aux": "ComfyUI Nodes for Inference.Core"
+ }
+ ],
+ "https://github.com/MrAdamBlack/CheckProgress": [
+ [
+ "CHECK_PROGRESS"
+ ],
+ {
+ "title_aux": "CheckProgress [WIP]"
+ }
+ ],
+ "https://github.com/MushroomFleet/DJZ-Nodes": [
+ [
+ "AspectSize"
+ ],
+ {
+ "title_aux": "DJZ-Nodes"
+ }
+ ],
+ "https://github.com/NeuralNotW0rk/ComfyUI-Waveform-Extensions/raw/main/EXT_VariationUtils.py": [
+ [
+ "BatchToList",
+ "ConcatAudioList",
+ "SequenceVariation",
+ "SliceAudio"
+ ],
+ {
+ "title_aux": "ComfyUI-Waveform-Extensions"
+ }
+ ],
+ "https://github.com/NitramDom/ComfyUI_FacialFlip": [
+ [
+ "Swapper"
+ ],
+ {
+ "title_aux": "ComfyUI_FacialFlip"
+ }
+ ],
+ "https://github.com/PluMaZero/ComfyUI-SpaceFlower": [
+ [
+ "SpaceFlower_HangulPrompt",
+ "SpaceFlower_Prompt"
+ ],
+ {
+ "title_aux": "ComfyUI-SpaceFlower"
+ }
+ ],
+ "https://github.com/Quasimondo/ComfyUI-QuasimondoNodes": [
+ [
+ "CPPN Generator",
+ "Color Match",
+ "Custom Shader",
+ "Folder Queue Manager",
+ "Image Blend by Mask (Batch)",
+ "Image Noise Generator",
+ "Perlin Noise Generator",
+ "Random Image Generator",
+ "Spring Mesh",
+ "Video Queue Manager"
+ ],
+ {
+ "title_aux": "ComfyUI-QuasimondoNodes [WIP]"
+ }
+ ],
+ "https://github.com/SadaleNet/ComfyUI-Prompt-To-Prompt": [
+ [
+ "CLIPTextEncodePromptToPrompt",
+ "KSamplerPromptToPrompt",
+ "KSamplerPromptToPromptAttentionMapLogger",
+ "LocalBlendLayerPresetPromptToPrompt"
+ ],
+ {
+ "title_aux": "ComfyUI Port for Google's Prompt-to-Prompt"
+ }
+ ],
+ "https://github.com/Sai-ComfyUI/ComfyUI-MS-Nodes": [
+ [
+ "FloatMath",
+ "MS_Boolean",
+ "MS_Float",
+ "MS_GenerateSeed",
+ "MS_NP_Vector3",
+ "PowerFractalCrossHatchNode",
+ "PowerFractalNoiseNode",
+ "VectorMath"
+ ],
+ {
+ "title_aux": "ComfyUI-MS-Nodes [WIP]"
+ }
+ ],
+ "https://github.com/Scorpinaus/ComfyUI-DiffusersLoader": [
+ [
+ "CombinedDiffusersLoader",
+ "DiffusersClipLoader",
+ "DiffusersUNETLoader",
+ "DiffusersVAELoader"
+ ],
+ {
+ "title_aux": "ComfyUI-DiffusersLoader"
+ }
+ ],
+ "https://github.com/SeedV/ComfyUI-SeedV-Nodes": [
+ [
+ "CheckpointLoaderSimpleShared //SeedV",
+ "ControlNetLoaderAdvancedShared",
+ "LoraLoader //SeedV",
+ "Script"
+ ],
+ {
+ "title_aux": "ComfyUI-SeedV-Nodes [UNSAFE]"
+ }
+ ],
+ "https://github.com/Shinsplat/ComfyUI-Shinsplat": [
+ [
+ "Clip Text Encode (Shinsplat)",
+ "Clip Text Encode SD3 (Shinsplat)",
+ "Clip Text Encode SDXL (Shinsplat)",
+ "Clip Text Encode T5 (Shinsplat)",
+ "Clip Tokens Encode (Shinsplat)",
+ "Green Box (Shinsplat)",
+ "Hex To Other (Shinsplat)",
+ "Lora Loader (Shinsplat)",
+ "Python (Shinsplat)",
+ "Python - More Inputs (Shinsplat)",
+ "String Interpolated (Shinsplat)",
+ "Sum Wrap (Shinsplat)",
+ "Test Node (Shinsplat)",
+ "Text To Tokens (Shinsplat)",
+ "Variables (Shinsplat)"
+ ],
+ {
+ "author": "Shinsplat",
+ "description": "",
+ "nickname": "shinsplat",
+ "title": "ComfyUI-Shinsplat",
+ "title_aux": "ComfyUI-Shinsplat [UNSAFE]"
+ }
+ ],
+ "https://github.com/StartHua/Comfyui_CXH_CRM": [
+ [
+ "CRM"
+ ],
+ {
+ "title_aux": "Comfyui_CXH_CRM"
+ }
+ ],
+ "https://github.com/TSFSean/ComfyUI-TSFNodes": [
+ [
+ "GyroOSC"
+ ],
+ {
+ "title_aux": "ComfyUI-TSFNodes"
+ }
+ ],
+ "https://github.com/Video3DGenResearch/comfyui-batch-input-node": [
+ [
+ "BatchImageAndPrompt",
+ "BatchInputCSV",
+ "BatchInputText"
+ ],
+ {
+ "title_aux": "ComfyUI Batch Input Node"
+ }
+ ],
+ "https://github.com/WSJUSA/Comfyui-StableSR": [
+ [
+ "ColorFix",
+ "StableSRUpscalerPipe"
+ ],
+ {
+ "author": "WSJUSA",
+ "description": "This module enables StableSR in Comgfyui. Ported work of sd-webui-stablesr. Original work for Auotmaatic1111 version of this module and StableSR credit to LIightChaser and Jianyi Wang.",
+ "nickname": "StableSR",
+ "title": "StableSR",
+ "title_aux": "pre-comfyui-stablsr"
+ }
+ ],
+ "https://github.com/WilliamStanford/visuallabs_comfyui_nodes": [
+ [
+ "CreateFadeMaskAdvancedVL",
+ "PointStringFromFloatArray",
+ "RescaleFloatArray",
+ "StringFromFloatArray"
+ ],
+ {
+ "title_aux": "visuallabs_comfyui_nodes"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-AnyText": [
+ [
+ "AnyTextNode_Zho"
+ ],
+ {
+ "title_aux": "ComfyUI-AnyText [WIP]"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PuLID-ZHO": [
+ [
+ "PuLID_Zho"
+ ],
+ {
+ "title_aux": "ComfyUI-PuLID-ZHO [WIP]"
+ }
+ ],
+ "https://github.com/alt-key-project/comfyui-dream-video-batches": [
+ [
+ "Blended Transition [DVB]",
+ "Calculation [DVB]",
+ "Create Frame Set [DVB]",
+ "Divide [DVB]",
+ "Fade From Black [DVB]",
+ "Fade To Black [DVB]",
+ "Float Input [DVB]",
+ "For Each Done [DVB]",
+ "For Each Filename [DVB]",
+ "Frame Set Append [DVB]",
+ "Frame Set Frame Dimensions Scaled [DVB]",
+ "Frame Set Index Offset [DVB]",
+ "Frame Set Merger [DVB]",
+ "Frame Set Reindex [DVB]",
+ "Frame Set Repeat [DVB]",
+ "Frame Set Reverse [DVB]",
+ "Frame Set Split Beginning [DVB]",
+ "Frame Set Split End [DVB]",
+ "Frame Set Splitter [DVB]",
+ "Generate Inbetween Frames [DVB]",
+ "Int Input [DVB]",
+ "Linear Camera Pan [DVB]",
+ "Linear Camera Roll [DVB]",
+ "Linear Camera Zoom [DVB]",
+ "Load Image From Path [DVB]",
+ "Multiply [DVB]",
+ "Sine Camera Pan [DVB]",
+ "Sine Camera Roll [DVB]",
+ "Sine Camera Zoom [DVB]",
+ "String Input [DVB]",
+ "Text Input [DVB]",
+ "Trace Memory Allocation [DVB]",
+ "Unwrap Frame Set [DVB]"
+ ],
+ {
+ "title_aux": "Dream Project Video Batches [WIP]"
+ }
+ ],
+ "https://github.com/baicai99/ComfyUI-FrameSkipping": [
+ [
+ "FrameSelector",
+ "FrameSkipping",
+ "FrameTruncating",
+ "IntOperationsNode",
+ "MaskFrameSkipping",
+ "MaskGenerator",
+ "MaskSelector"
+ ],
+ {
+ "title_aux": "ComfyUI-FrameSkipping"
+ }
+ ],
+ "https://github.com/beyastard/ComfyUI_BeySoft": [
+ [
+ "BeySoft"
+ ],
+ {
+ "title_aux": "ComfyUI_BeySoft"
+ }
+ ],
+ "https://github.com/birnam/ComfyUI-GenData-Pack": [
+ [
+ "Checkpoint From String \ud83d\udc69\u200d\ud83d\udcbb",
+ "Checkpoint Rerouter \ud83d\udc69\u200d\ud83d\udcbb",
+ "Checkpoint Selector Stacker \ud83d\udc69\u200d\ud83d\udcbb",
+ "Checkpoint Selector \ud83d\udc69\u200d\ud83d\udcbb",
+ "Checkpoint to String \ud83d\udc69\u200d\ud83d\udcbb",
+ "Crop Recombine \ud83d\udc69\u200d\ud83d\udcbb",
+ "Crop|IP|Inpaint \ud83d\udc69\u200d\ud83d\udcbb",
+ "Crop|IP|Inpaint|SDXL \ud83d\udc69\u200d\ud83d\udcbb",
+ "Decode GenData \ud83d\udc69\u200d\ud83d\udcbb",
+ "Encode GenData \ud83d\udc69\u200d\ud83d\udcbb",
+ "GenData Stacker \ud83d\udc69\u200d\ud83d\udcbb",
+ "IPAdapterApply",
+ "IPAdapterApplyEncoded",
+ "IPAdapterApplyFaceID",
+ "IPAdapterBatchEmbeds",
+ "IPAdapterEncoder",
+ "IPAdapterLoadEmbeds",
+ "IPAdapterModelLoader",
+ "IPAdapterSaveEmbeds",
+ "IPAdapterTilesMasked",
+ "InsightFaceLoader",
+ "LoRA Stack to String \ud83d\udc69\u200d\ud83d\udcbb",
+ "LoRA Stacker From Prompt \ud83d\udc69\u200d\ud83d\udcbb",
+ "Load Checkpoints From File \ud83d\udc69\u200d\ud83d\udcbb",
+ "Load GenData From Dir \ud83d\udc69\u200d\ud83d\udcbb",
+ "Parse GenData \ud83d\udc69\u200d\ud83d\udcbb",
+ "PrepImageForClipVision",
+ "PrepImageForInsightFace",
+ "Provide GenData \ud83d\udc69\u200d\ud83d\udcbb",
+ "Save Image From GenData \ud83d\udc69\u200d\ud83d\udcbb",
+ "VAE From String \ud83d\udc69\u200d\ud83d\udcbb",
+ "VAE to String \ud83d\udc69\u200d\ud83d\udcbb",
+ "\u00d7 Product CheckpointXGenDatas \ud83d\udc69\u200d\ud83d\udcbb"
+ ],
+ {
+ "title_aux": "Gen Data Tester [WIP]"
+ }
+ ],
+ "https://github.com/blepping/comfyui_overly_complicated_sampling": [
+ [
+ "ComposableSampler",
+ "ComposableStepSampler"
+ ],
+ {
+ "title_aux": "comfyui_overly_complicated_sampling"
+ }
+ ],
+ "https://github.com/bruce007lee/comfyui-cleaner": [
+ [
+ "cleaner"
+ ],
+ {
+ "title_aux": "comfyui-cleaner"
+ }
+ ],
+ "https://github.com/bruce007lee/comfyui-tiny-utils": [
+ [
+ "CropImageByMask",
+ "FaceAlign",
+ "FaceAlignImageProcess",
+ "FaceAlignMaskProcess",
+ "ImageFillColorByMask"
+ ],
+ {
+ "title_aux": "comfyui-tiny-utils"
+ }
+ ],
+ "https://github.com/brycegoh/comfyui-custom-nodes": [
+ [
+ "CombineTwoImageIntoOne",
+ "FillMaskedArea",
+ "MaskAreaComparisonSegment",
+ "OCRAndMask"
+ ],
+ {
+ "title_aux": "brycegoh/comfyui-custom-nodes"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-DynamiCrafter": [
+ [
+ "DynamiCrafter Simple",
+ "DynamiCrafterInterp Simple",
+ "DynamiCrafterInterpLoader",
+ "DynamiCrafterLoader"
+ ],
+ {
+ "title_aux": "ComfyUI DynamiCrafter"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-mobvoi-openapi": [
+ [
+ "HtmlViewer",
+ "MobvoiOpenapiMetamanAudio",
+ "MobvoiOpenapiMetamanText",
+ "MobvoiOpenapiTts",
+ "OssUploadAudio",
+ "OssUploadImage"
+ ],
+ {
+ "title_aux": "ComfyUI-mobvoi-openapi"
+ }
+ ],
+ "https://github.com/christian-byrne/infinite-zoom-parallax-nodes": [
+ [
+ "Create Parallax Video",
+ "Layer Shifter for Parallax Outpainting",
+ "Load Most Recent Image in Folder",
+ "Load Parallax Frame",
+ "Load Random Image-Pose Pair",
+ "Parallax Config",
+ "Save Parallax Frame",
+ "Shrink and Pad for Outpainting"
+ ],
+ {
+ "title_aux": "\ud83c\udf0c Infinite Parallax Nodes [WIP]"
+ }
+ ],
+ "https://github.com/christian-byrne/python-interpreter-node": [
+ [
+ "Exec Python Code Script"
+ ],
+ {
+ "title_aux": "Python Interpreter ComfyUI Node [UNSAFE]"
+ }
+ ],
+ "https://github.com/comfyanonymous/ComfyUI": [
+ [
+ "AddNoise",
+ "AlignYourStepsScheduler",
+ "BasicGuider",
+ "BasicScheduler",
+ "CFGGuider",
+ "CLIPAttentionMultiply",
+ "CLIPLoader",
+ "CLIPMergeAdd",
+ "CLIPMergeSimple",
+ "CLIPMergeSubtract",
+ "CLIPSave",
+ "CLIPSetLastLayer",
+ "CLIPTextEncode",
+ "CLIPTextEncodeControlnet",
+ "CLIPTextEncodeSD3",
+ "CLIPTextEncodeSDXL",
+ "CLIPTextEncodeSDXLRefiner",
+ "CLIPVisionEncode",
+ "CLIPVisionLoader",
+ "Canny",
+ "CheckpointLoader",
+ "CheckpointLoaderSimple",
+ "CheckpointSave",
+ "ConditioningAverage",
+ "ConditioningCombine",
+ "ConditioningConcat",
+ "ConditioningSetArea",
+ "ConditioningSetAreaPercentage",
+ "ConditioningSetAreaStrength",
+ "ConditioningSetMask",
+ "ConditioningSetTimestepRange",
+ "ConditioningZeroOut",
+ "ControlNetApply",
+ "ControlNetApplyAdvanced",
+ "ControlNetLoader",
+ "CropMask",
+ "DiffControlNetLoader",
+ "DifferentialDiffusion",
+ "DiffusersLoader",
+ "DisableNoise",
+ "DualCFGGuider",
+ "DualCLIPLoader",
+ "EmptyImage",
+ "EmptyLatentAudio",
+ "EmptyLatentImage",
+ "EmptySD3LatentImage",
+ "ExponentialScheduler",
+ "FeatherMask",
+ "FlipSigmas",
+ "FreeU",
+ "FreeU_V2",
+ "GITSScheduler",
+ "GLIGENLoader",
+ "GLIGENTextBoxApply",
+ "GrowMask",
+ "HyperTile",
+ "HypernetworkLoader",
+ "ImageBatch",
+ "ImageBlend",
+ "ImageBlur",
+ "ImageColorToMask",
+ "ImageCompositeMasked",
+ "ImageCrop",
+ "ImageFromBatch",
+ "ImageInvert",
+ "ImageOnlyCheckpointLoader",
+ "ImageOnlyCheckpointSave",
+ "ImagePadForOutpaint",
+ "ImageQuantize",
+ "ImageScale",
+ "ImageScaleBy",
+ "ImageScaleToTotalPixels",
+ "ImageSharpen",
+ "ImageToMask",
+ "ImageUpscaleWithModel",
+ "InpaintModelConditioning",
+ "InstructPixToPixConditioning",
+ "InvertMask",
+ "JoinImageWithAlpha",
+ "KSampler",
+ "KSamplerAdvanced",
+ "KSamplerSelect",
+ "KarrasScheduler",
+ "LatentAdd",
+ "LatentBatch",
+ "LatentBatchSeedBehavior",
+ "LatentBlend",
+ "LatentComposite",
+ "LatentCompositeMasked",
+ "LatentCrop",
+ "LatentFlip",
+ "LatentFromBatch",
+ "LatentInterpolate",
+ "LatentMultiply",
+ "LatentRotate",
+ "LatentSubtract",
+ "LatentUpscale",
+ "LatentUpscaleBy",
+ "LoadAudio",
+ "LoadImage",
+ "LoadImageMask",
+ "LoadLatent",
+ "LoraLoader",
+ "LoraLoaderModelOnly",
+ "MaskComposite",
+ "MaskToImage",
+ "ModelMergeAdd",
+ "ModelMergeBlocks",
+ "ModelMergeSD1",
+ "ModelMergeSD2",
+ "ModelMergeSD3_2B",
+ "ModelMergeSDXL",
+ "ModelMergeSimple",
+ "ModelMergeSubtract",
+ "ModelSamplingContinuousEDM",
+ "ModelSamplingContinuousV",
+ "ModelSamplingDiscrete",
+ "ModelSamplingSD3",
+ "ModelSamplingStableCascade",
+ "Morphology",
+ "PatchModelAddDownscale",
+ "PerpNeg",
+ "PerpNegGuider",
+ "PerturbedAttentionGuidance",
+ "PhotoMakerEncode",
+ "PhotoMakerLoader",
+ "PolyexponentialScheduler",
+ "PorterDuffImageComposite",
+ "PreviewImage",
+ "RandomNoise",
+ "RebatchImages",
+ "RebatchLatents",
+ "RepeatImageBatch",
+ "RepeatLatentBatch",
+ "RescaleCFG",
+ "SDTurboScheduler",
+ "SD_4XUpscale_Conditioning",
+ "SV3D_Conditioning",
+ "SVD_img2vid_Conditioning",
+ "SamplerCustom",
+ "SamplerCustomAdvanced",
+ "SamplerDPMAdaptative",
+ "SamplerDPMPP_2M_SDE",
+ "SamplerDPMPP_3M_SDE",
+ "SamplerDPMPP_SDE",
+ "SamplerEulerAncestral",
+ "SamplerEulerCFGpp",
+ "SamplerLCMUpscale",
+ "SamplerLMS",
+ "SaveAnimatedPNG",
+ "SaveAnimatedWEBP",
+ "SaveAudio",
+ "SaveImage",
+ "SaveImageWebsocket",
+ "SaveLatent",
+ "SelfAttentionGuidance",
+ "SetLatentNoiseMask",
+ "SolidMask",
+ "SplitImageWithAlpha",
+ "SplitSigmas",
+ "SplitSigmasDenoise",
+ "StableCascade_EmptyLatentImage",
+ "StableCascade_StageB_Conditioning",
+ "StableCascade_StageC_VAEEncode",
+ "StableCascade_SuperResolutionControlnet",
+ "StableZero123_Conditioning",
+ "StableZero123_Conditioning_Batched",
+ "StyleModelApply",
+ "StyleModelLoader",
+ "ThresholdMask",
+ "TomePatchModel",
+ "TripleCLIPLoader",
+ "UNETLoader",
+ "UNetCrossAttentionMultiply",
+ "UNetSelfAttentionMultiply",
+ "UNetTemporalAttentionMultiply",
+ "UpscaleModelLoader",
+ "VAEDecode",
+ "VAEDecodeAudio",
+ "VAEDecodeTiled",
+ "VAEEncode",
+ "VAEEncodeAudio",
+ "VAEEncodeForInpaint",
+ "VAEEncodeTiled",
+ "VAELoader",
+ "VAESave",
+ "VPScheduler",
+ "VideoLinearCFGGuidance",
+ "VideoTriangleCFGGuidance",
+ "WebcamCapture",
+ "unCLIPCheckpointLoader",
+ "unCLIPConditioning"
+ ],
+ {
+ "title_aux": "ComfyUI"
+ }
+ ],
+ "https://github.com/comfypod/ComfyUI-Comflow": [
+ [
+ "ComflowInputBoolean",
+ "ComflowInputCheckpoint",
+ "ComflowInputImage",
+ "ComflowInputImageAlpha",
+ "ComflowInputImageBatch",
+ "ComflowInputLora",
+ "ComflowInputNumber",
+ "ComflowInputNumberInt",
+ "ComflowInputNumberSlider",
+ "ComflowInputText",
+ "ComflowInputVid",
+ "ComflowInputVideo",
+ "ComflowWebsocketImageInput",
+ "ComflowWebsocketImageOutput"
+ ],
+ {
+ "description": "",
+ "nickname": "Comflow",
+ "title": "comflow",
+ "title_aux": "ComfyUI-Comflow"
+ }
+ ],
+ "https://github.com/corbin-hayden13/ComfyUI-Better-Dimensions": [
+ [
+ "BetterImageDimensions",
+ "PureRatio",
+ "SDXLDimensions"
+ ],
+ {
+ "title_aux": "ComfyUI-Better-Dimensions"
+ }
+ ],
+ "https://github.com/dfl/comfyui-stylegan": [
+ [
+ "StyleGAN Generator",
+ "StyleGAN ModelLoader"
+ ],
+ {
+ "title_aux": "comfyui-stylegan"
+ }
+ ],
+ "https://github.com/dnl13/ComfyUI-dnl13-seg": [
+ [
+ "Automatic Segmentation (dnl13)",
+ "BatchSelector (dnl13)",
+ "Combine Images By Mask (dnl13)",
+ "Dinov1 Model Loader (dnl13)",
+ "Mask with prompt (dnl13)",
+ "RGB (dnl13)",
+ "SAM Model Loader (dnl13)"
+ ],
+ {
+ "title_aux": "ComfyUI-dnl13-seg"
+ }
+ ],
+ "https://github.com/doucx/ComfyUI_WcpD_Utility_Kit": [
+ [
+ "BlackImage",
+ "CopyImage(Wayland)",
+ "ExecStrAsCode",
+ "MergeStrings",
+ "YamlToPrompt"
+ ],
+ {
+ "title_aux": "ComfyUI_WcpD_Utility_Kit"
+ }
+ ],
+ "https://github.com/eigenpunk/ComfyUI-audio": [
+ [
+ "ApplyVoiceFixer",
+ "BatchAudio",
+ "BlendAudio",
+ "ClipAudioRegion",
+ "CombineImageWithAudio",
+ "ConcatAudio",
+ "ConvertAudio",
+ "FilterAudio",
+ "FlattenAudioBatch",
+ "HifiGANApply",
+ "HifiGANLoader",
+ "HifiGANModelParams",
+ "InvertAudioPhase",
+ "LoadAudio",
+ "MusicgenGenerate",
+ "MusicgenHFGenerate",
+ "MusicgenHFLoader",
+ "MusicgenLoader",
+ "NormalizeAudio",
+ "PreviewAudio",
+ "ResampleAudio",
+ "SaveAudio",
+ "SpectrogramImage",
+ "Tacotron2Generate",
+ "Tacotron2Loader",
+ "ToMelSpectrogram",
+ "TortoiseTTSGenerate",
+ "TortoiseTTSLoader",
+ "TrimAudio",
+ "TrimAudioSamples",
+ "TrimSilence",
+ "VALLEXGenerator",
+ "VALLEXLoader",
+ "VALLEXVoicePromptFromAudio",
+ "VALLEXVoicePromptLoader",
+ "WaveGlowApply",
+ "WaveGlowLoader"
+ ],
+ {
+ "title_aux": "ComfyUI-audio"
+ }
+ ],
+ "https://github.com/ejektaflex/ComfyUI-Ty": [
+ [
+ "Lora Block Weight Regex Loader // Ty"
+ ],
+ {
+ "title_aux": "ComfyUI-Ty"
+ }
+ ],
+ "https://github.com/endman100/ComfyUI-SaveAndLoadPromptCondition": [
+ [
+ "LoadContditioning",
+ "SaveConditioning"
+ ],
+ {
+ "title_aux": "ComfyUI Nodes: SaveConditioning and LoadConditioning"
+ }
+ ],
+ "https://github.com/ericbeyer/guidance_interval": [
+ [
+ "Guidance Interval"
+ ],
+ {
+ "title_aux": "guidance_interval"
+ }
+ ],
+ "https://github.com/flowtyone/comfyui-flowty-lcm": [
+ [
+ "LCMSampler"
+ ],
+ {
+ "title_aux": "comfyui-flowty-lcm"
+ }
+ ],
+ "https://github.com/flyingdogsoftware/gyre_for_comfyui": [
+ [
+ "BackgroundRemoval",
+ "GyreIfElse",
+ "GyreLoopEnd",
+ "GyreLoopStart"
+ ],
+ {
+ "title_aux": "Gyre for ComfyUI"
+ }
+ ],
+ "https://github.com/foglerek/comfyui-cem-tools": [
+ [
+ "ProcessImageBatch"
+ ],
+ {
+ "title_aux": "comfyui-cem-tools"
+ }
+ ],
+ "https://github.com/gameltb/ComfyUI_stable_fast": [
+ [
+ "ApplyStableFastUnet",
+ "ApplyTensorRTControlNet",
+ "ApplyTensorRTUnet",
+ "ApplyTensorRTVaeDecoder"
+ ],
+ {
+ "title_aux": "ComfyUI_stable_fast"
+ }
+ ],
+ "https://github.com/githubYiheng/comfyui_median_filter": [
+ [
+ "ImageMedianFilter"
+ ],
+ {
+ "title_aux": "comfyui_median_filter"
+ }
+ ],
+ "https://github.com/haofanwang/ComfyUI-InstantStyle": [
+ [
+ "BaseModelLoader",
+ "InstantStyleGenerationNode",
+ "InstantStyleLoader",
+ "PromptLoader"
+ ],
+ {
+ "title_aux": "ComfyUI-InstantStyle"
+ }
+ ],
+ "https://github.com/horidream/ComfyUI-Horidream": [
+ [
+ "PassThroughWithSound"
+ ],
+ {
+ "title_aux": "ComfyUI-Horidream"
+ }
+ ],
+ "https://github.com/houdinii/comfy-magick": [
+ [
+ "AdaptiveBlur",
+ "AdaptiveSharpen",
+ "AddNoise",
+ "BlueShift",
+ "Blur",
+ "Charcoal",
+ "Colorize",
+ "CropByAspectRatio",
+ "Despeckle",
+ "Edge",
+ "Emboss",
+ "FX",
+ "GaussianBlur",
+ "Implode",
+ "Kuwahara",
+ "MotionBlur",
+ "RotationalBlur",
+ "SelectiveBlur",
+ "Sepia",
+ "Shade",
+ "Sharpen",
+ "Sketch",
+ "Solarize",
+ "Spread",
+ "Stereogram",
+ "Swirl",
+ "Tint",
+ "UnsharpMask",
+ "Vignette",
+ "WaveletDenoise"
+ ],
+ {
+ "title_aux": "comfy-magick [WIP]"
+ }
+ ],
+ "https://github.com/huizhang0110/ComfyUI_Easy_Nodes_hui": [
+ [
+ "EasyBgRemover",
+ "EasyBgRemover_ModelLoader",
+ "EasyControlNetApply",
+ "EasyControlNetLoader",
+ "EasyEmptyLatentImage",
+ "EasyLatentToCondition",
+ "EasyLoadImage"
+ ],
+ {
+ "title_aux": "ComfyUI_Easy_Nodes_hui"
+ }
+ ],
+ "https://github.com/hy134300/comfyui-hb-node": [
+ [
+ "generate story",
+ "hy save image",
+ "latent to list",
+ "movie batch",
+ "movie generate",
+ "sound voice",
+ "text concat"
+ ],
+ {
+ "title_aux": "comfyui-hb-node"
+ }
+ ],
+ "https://github.com/hy134300/comfyui-hydit": [
+ [
+ "DiffusersClipTextEncode",
+ "DiffusersModelMakeup",
+ "DiffusersPipelineLoader",
+ "DiffusersSampler",
+ "DiffusersSchedulerLoader"
+ ],
+ {
+ "title_aux": "comfyui-hydit"
+ }
+ ],
+ "https://github.com/ilovejohnwhite/UncleBillyGoncho": [
+ [
+ "CannyEdgePreprocessor",
+ "DiffusionEdge_Preprocessor",
+ "HintImageEnchance",
+ "ImageGenResolutionFromImage",
+ "ImageGenResolutionFromLatent",
+ "LineArtPreprocessor",
+ "LinkMasterNode",
+ "PiDiNetPreprocessor",
+ "PixelPerfectResolution",
+ "SuckerPunch",
+ "UWU_Preprocessor",
+ "VooDooNode",
+ "VooDooNode2"
+ ],
+ {
+ "title_aux": "TatToolkit"
+ }
+ ],
+ "https://github.com/immersiveexperience/ie-comfyui-color-nodes": [
+ [
+ "Average Color",
+ "Complementary Color",
+ "Hex Color to Image",
+ "Hex to Color Name",
+ "Random String"
+ ],
+ {
+ "title_aux": "ie-comfyui-color-nodes"
+ }
+ ],
+ "https://github.com/jh-leon-kim/ComfyUI-JHK-utils": [
+ [
+ "JHK_Utils_ImageRemoveBackground",
+ "JHK_Utils_LoadEmbed",
+ "JHK_Utils_string_merge"
+ ],
+ {
+ "title_aux": "ComfyUI-JHK-utils"
+ }
+ ],
+ "https://github.com/jimmm-ai/TimeUi-a-ComfyUi-Timeline-Node": [
+ [
+ "utils/TimelineUI"
+ ],
+ {
+ "title_aux": "TimeUi a ComfyUI Timeline Node System [WIP]"
+ }
+ ],
+ "https://github.com/jn-jairo/jn_node_suite_comfyui": [
+ [
+ "JN_AreaInfo",
+ "JN_AreaNormalize",
+ "JN_AreaWidthHeight",
+ "JN_AreaXY",
+ "JN_Blip",
+ "JN_BlipLoader",
+ "JN_BooleanOperation",
+ "JN_Condition",
+ "JN_CoolDown",
+ "JN_CoolDownOutput",
+ "JN_CropFace",
+ "JN_DatetimeFormat",
+ "JN_DatetimeInfo",
+ "JN_DatetimeNow",
+ "JN_Dump",
+ "JN_DumpOutput",
+ "JN_FaceRestoreModelLoader",
+ "JN_FaceRestoreWithModel",
+ "JN_FirstActive",
+ "JN_ImageAddMask",
+ "JN_ImageBatch",
+ "JN_ImageCenterArea",
+ "JN_ImageCrop",
+ "JN_ImageGrid",
+ "JN_ImageInfo",
+ "JN_ImageSharpness",
+ "JN_ImageSquare",
+ "JN_ImageUncrop",
+ "JN_KSampler",
+ "JN_KSamplerAdvancedParams",
+ "JN_KSamplerFaceRestoreParams",
+ "JN_KSamplerResizeInputParams",
+ "JN_KSamplerResizeMaskAreaParams",
+ "JN_KSamplerResizeOutputParams",
+ "JN_KSamplerSeamlessParams",
+ "JN_KSamplerTileParams",
+ "JN_LoadImageDirectory",
+ "JN_LogicOperation",
+ "JN_MaskInfo",
+ "JN_MathOperation",
+ "JN_MathOperationArray",
+ "JN_PrimitiveArrayInfo",
+ "JN_PrimitiveBatchToArray",
+ "JN_PrimitiveBoolean",
+ "JN_PrimitiveFloat",
+ "JN_PrimitiveInt",
+ "JN_PrimitivePrompt",
+ "JN_PrimitiveString",
+ "JN_PrimitiveStringMultiline",
+ "JN_PrimitiveStringToArray",
+ "JN_PrimitiveToArray",
+ "JN_PrimitiveToBoolean",
+ "JN_PrimitiveToFloat",
+ "JN_PrimitiveToInt",
+ "JN_PrimitiveToString",
+ "JN_RemoveBackground",
+ "JN_Seamless",
+ "JN_SeamlessBorder",
+ "JN_SeamlessBorderCrop",
+ "JN_SelectItem",
+ "JN_Sleep",
+ "JN_SleepOutput",
+ "JN_SliceOperation",
+ "JN_StopIf",
+ "JN_StopIfOutput",
+ "JN_TextConcatenation",
+ "JN_TextReplace",
+ "JN_TimedeltaFormat",
+ "JN_TimedeltaInfo",
+ "JN_VAEPatch"
+ ],
+ {
+ "title_aux": "jn_node_suite_comfyui [WIP]"
+ }
+ ],
+ "https://github.com/jp0215/comfyUI_padding-resize_node/raw/main/PaddingNode.py": [
+ [
+ "function"
+ ],
+ {
+ "title_aux": "comfyUI_padding-resize_node"
+ }
+ ],
+ "https://github.com/jtscmw01/ComfyUI-DiffBIR": [
+ [
+ "DiffBIR_sample",
+ "DiffBIR_sample_advanced",
+ "Simple_load",
+ "Stage1_load",
+ "Stage2_load"
+ ],
+ {
+ "title_aux": "ComfyUI-DiffBIR"
+ }
+ ],
+ "https://github.com/jtydhr88/ComfyUI-Unique3D": [
+ [
+ "Unique3DLoadPipeline",
+ "Unique3DRun - Geo Reconstruct",
+ "Unique3DRun - MVPrediction"
+ ],
+ {
+ "title_aux": "ComfyUI-Unique3D [WIP]"
+ }
+ ],
+ "https://github.com/kadirnar/ComfyUI-Adapter": [
+ [
+ "GarmentSegLoader"
+ ],
+ {
+ "title_aux": "ComfyUI-Adapter [WIP]"
+ }
+ ],
+ "https://github.com/kadirnar/comfyui_helpers": [
+ [
+ "CircularVAEDecode",
+ "CustomKSamplerAdvancedTile",
+ "JDC_AutoContrast",
+ "JDC_BlendImages",
+ "JDC_BrownNoise",
+ "JDC_Contrast",
+ "JDC_EqualizeGrey",
+ "JDC_GaussianBlur",
+ "JDC_GreyNoise",
+ "JDC_Greyscale",
+ "JDC_ImageLoader",
+ "JDC_ImageLoaderMeta",
+ "JDC_PinkNoise",
+ "JDC_Plasma",
+ "JDC_PlasmaSampler",
+ "JDC_PowerImage",
+ "JDC_RandNoise",
+ "JDC_ResizeFactor",
+ "LatentGaussianNoise",
+ "LatentToRGB",
+ "MathEncode",
+ "NoisyLatentPerlin"
+ ],
+ {
+ "title_aux": "comfyui_helpers"
+ }
+ ],
+ "https://github.com/kappa54m/ComfyUI_Usability": [
+ [
+ "KLoadImageByPath",
+ "KLoadImageByPathAdvanced",
+ "KLoadImageDedup"
+ ],
+ {
+ "title_aux": "ComfyUI_Usability (WIP)"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-CV-VAE": [
+ [
+ "CV_VAE_Decode",
+ "CV_VAE_Encode",
+ "CV_VAE_Load"
+ ],
+ {
+ "title_aux": "ComfyUI-CV-VAE"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-DeepSeek-VL": [
+ [
+ "deepseek_vl_inference",
+ "deepseek_vl_model_loader"
+ ],
+ {
+ "title_aux": "ComfyUI nodes to use DeepSeek-VL"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-DiffSynthWrapper": [
+ [
+ "DiffSynthSampler",
+ "DownloadAndLoadDiffSynthExVideoSVD"
+ ],
+ {
+ "title_aux": "ComfyUI DiffSynth wrapper nodes [WIP]"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-DiffusersSD3Wrapper": [
+ [
+ "LoadSD3DiffusersPipeline",
+ "SD3ControlNetSampler"
+ ],
+ {
+ "title_aux": "ComfyUI-DiffusersSD3Wrapper"
+ }
+ ],
+ "https://github.com/komojini/ComfyUI_Prompt_Template_CustomNodes/raw/main/prompt_with_template.py": [
+ [
+ "ObjectPromptWithTemplate",
+ "PromptWithTemplate"
+ ],
+ {
+ "title_aux": "ComfyUI_Prompt_Template_CustomNodes"
+ }
+ ],
+ "https://github.com/kycg/comfyui-Kwtoolset": [
+ [
+ "KWNagetiveString",
+ "KWPositiveString",
+ "KWanywhereString",
+ "KwtoolsetChangeOpenpose",
+ "KwtoolsetCheckpointLoaderwithpreview",
+ "KwtoolsetGetHipMask",
+ "KwtoolsetGetHipMasktest",
+ "KwtoolsetGetImageSize",
+ "KwtoolsetGrowMaskPlus",
+ "KwtoolsetLoadCheckpointsBatch",
+ "KwtoolsetLoraLoaderwithpreview",
+ "LatentMatch"
+ ],
+ {
+ "title_aux": "comfyui-Kwtoolset"
+ }
+ ],
+ "https://github.com/laksjdjf/ssd-1b-comfyui": [
+ [
+ "SSD-1B-Loader"
+ ],
+ {
+ "title_aux": "ssd-1b-comfyui"
+ }
+ ],
+ "https://github.com/logtd/ComfyUI-MotionThiefExperiment": [
+ [
+ "ApplyRefMotionNode",
+ "MotionRefSettingsCustomNode",
+ "MotionRefSettingsDefaultNode"
+ ],
+ {
+ "title_aux": "ComfyUI-MotionThiefExperiment"
+ }
+ ],
+ "https://github.com/longgui0318/comfyui-one-more-step": [
+ [
+ "Calculate More Step Latent",
+ "Load More Step Model"
+ ],
+ {
+ "title_aux": "comfyui-one-more-step [WIP]"
+ }
+ ],
+ "https://github.com/ltdrdata/ComfyUI-Workflow-Component": [
+ [
+ "ComboToString",
+ "ExecutionBlocker",
+ "ExecutionControlString",
+ "ExecutionOneOf",
+ "ExecutionSwitch",
+ "InputUnzip",
+ "InputZip",
+ "LoopControl",
+ "LoopCounterCondition",
+ "OptionalTest",
+ "TensorToCPU"
+ ],
+ {
+ "title_aux": "ComfyUI-Workflow-Component [WIP]"
+ }
+ ],
+ "https://github.com/marcueberall/ComfyUI-BuildPath": [
+ [
+ "Build Path Adv"
+ ],
+ {
+ "title_aux": "ComfyUI-BuildPath"
+ }
+ ],
+ "https://github.com/marduk191/comfyui-marnodes": [
+ [
+ "marduk191_5_text_string",
+ "marduk191_5way_text_switch",
+ "marduk191_workflow_settings"
+ ],
+ {
+ "author": "\u02f6marduk191",
+ "description": "A node to set workflow settings.",
+ "nickname": "marduk191 workflow settings",
+ "title": "marduk191 workflow settings",
+ "title_aux": "comfyui-marnodes"
+ }
+ ],
+ "https://github.com/maruhidd/ComfyUI_Transparent-Background": [
+ [
+ "FillTransparentNode",
+ "RemoveBackgroundNode"
+ ],
+ {
+ "title_aux": "Transparent Background for ComfyUI"
+ }
+ ],
+ "https://github.com/mashb1t/comfyui-nodes-mashb1t": [
+ [
+ "mashb1t: LoadImage"
+ ],
+ {
+ "title_aux": "ComfyUI mashb1t nodes"
+ }
+ ],
+ "https://github.com/mikeymcfish/FishTools": [
+ [
+ "Deptherize",
+ "LaserCutterFull"
+ ],
+ {
+ "author": "Fish",
+ "description": "This extension provides tools for generating laser cutter ready files",
+ "nickname": "FishTools",
+ "title": "FishTools",
+ "title_aux": "LaserCutterFull and Deptherize Nodes"
+ }
+ ],
+ "https://github.com/mingqizhang/ComfyUI_AEMatter_zmq": [
+ [
+ "AEMatter_Apply",
+ "AEMatter_ModelLoader",
+ "Create_Trimap",
+ "Gaussian_Filter",
+ "Guide_Filter",
+ "Mask_Transfor",
+ "Replace_Background"
+ ],
+ {
+ "title_aux": "ComfyUI_AEMatter_zmq"
+ }
+ ],
+ "https://github.com/mut-ex/comfyui-gligengui-node": [
+ [
+ "GLIGEN_GUI"
+ ],
+ {
+ "title_aux": "ComfyUI GLIGEN GUI Node"
+ }
+ ],
+ "https://github.com/nidefawl/ComfyUI-nidefawl": [
+ [
+ "BlendImagesWithBoundedMasks",
+ "CropImagesWithMasks",
+ "CustomCallback",
+ "DisplayAnyType",
+ "EmptyImageWithColor",
+ "ImageToLatent",
+ "LatentPerlinNoise",
+ "LatentScaledNoise",
+ "LatentToImage",
+ "MaskFromColor",
+ "ModelSamplerTonemapNoiseTest",
+ "PythonScript",
+ "ReferenceOnlySimple",
+ "SamplerCustomCallback",
+ "SamplerDPMPP_2M_SDE_nidefawl",
+ "SetLatentCustomNoise",
+ "SplitCustomSigmas",
+ "VAELoaderDataType",
+ "gcLatentTunnel"
+ ],
+ {
+ "title_aux": "ComfyUI-nidefawl [UNSAFE]"
+ }
+ ],
+ "https://github.com/nkchocoai/ComfyUI-PromptUtilities": [
+ [
+ "PromptUtilitiesConstString",
+ "PromptUtilitiesConstStringMultiLine",
+ "PromptUtilitiesFormatString",
+ "PromptUtilitiesJoinStringList",
+ "PromptUtilitiesLoadPreset",
+ "PromptUtilitiesLoadPresetAdvanced",
+ "PromptUtilitiesRandomPreset",
+ "PromptUtilitiesRandomPresetAdvanced"
+ ],
+ {
+ "title_aux": "ComfyUI-PromptUtilities"
+ }
+ ],
+ "https://github.com/oyvindg/ComfyUI-TrollSuite": [
+ [
+ "BinaryImageMask",
+ "ImagePadding",
+ "LoadLastImage",
+ "RandomMask",
+ "TransparentImage"
+ ],
+ {
+ "title_aux": "ComfyUI-TrollSuite"
+ }
+ ],
+ "https://github.com/oztrkoguz/ComfyUI_Kosmos2_BBox_Cutter": [
+ [
+ "Kosmos2SamplerSimple",
+ "KosmosLoader",
+ "Write"
+ ],
+ {
+ "title_aux": "Kosmos2_BBox_Cutter Models"
+ }
+ ],
+ "https://github.com/pamparamm/ComfyUI-ppm": [
+ [
+ "AttentionCouplePPM",
+ "CLIPMicroConditioning",
+ "CLIPNegPip",
+ "CLIPTextEncodeBREAK",
+ "CLIPTokenCounter",
+ "EmptyLatentImageAR",
+ "EmptyLatentImageARAdvanced",
+ "LatentToMaskBB",
+ "LatentToWidthHeight",
+ "RandomPromptGenerator",
+ "StableCascade_AutoCompLatent"
+ ],
+ {
+ "title_aux": "ComfyUI-ppm"
+ }
+ ],
+ "https://github.com/poisenbery/NudeNet-Detector-Provider": [
+ [
+ "NudeNetDetectorProvider"
+ ],
+ {
+ "title_aux": "NudeNet-Detector-Provider [WIP]"
+ }
+ ],
+ "https://github.com/prabinpebam/anyPython": [
+ [
+ "Any Python"
+ ],
+ {
+ "author": "prabinpebam",
+ "description": "This node can take any input and use that to run a python script in ComfyUI",
+ "nickname": "AnyPython",
+ "title": "AnyPython v0.1",
+ "title_aux": "anyPython [UNSAFE]"
+ }
+ ],
+ "https://github.com/prismwastaken/comfyui-tools": [
+ [
+ "Prism-RandomNormal"
+ ],
+ {
+ "title_aux": "prism-tools"
+ }
+ ],
+ "https://github.com/pzzmyc/comfyui-sd3-simple-simpletuner": [
+ [
+ "sd not very simple simpletuner by hhy"
+ ],
+ {
+ "title_aux": "comfyui-sd3-simple-simpletuner"
+ }
+ ],
+ "https://github.com/redhottensors/ComfyUI-ODE": [
+ [
+ "Blended Transition [DVB]",
+ "Calculation [DVB]",
+ "Create Frame Set [DVB]",
+ "Divide [DVB]",
+ "Fade From Black [DVB]",
+ "Fade To Black [DVB]",
+ "Float Input [DVB]",
+ "For Each Done [DVB]",
+ "For Each Filename [DVB]",
+ "Frame Set Append [DVB]",
+ "Frame Set Frame Dimensions Scaled [DVB]",
+ "Frame Set Index Offset [DVB]",
+ "Frame Set Merger [DVB]",
+ "Frame Set Reindex [DVB]",
+ "Frame Set Repeat [DVB]",
+ "Frame Set Reverse [DVB]",
+ "Frame Set Split Beginning [DVB]",
+ "Frame Set Split End [DVB]",
+ "Frame Set Splitter [DVB]",
+ "Generate Inbetween Frames [DVB]",
+ "Int Input [DVB]",
+ "Linear Camera Pan [DVB]",
+ "Linear Camera Roll [DVB]",
+ "Linear Camera Zoom [DVB]",
+ "Load Image From Path [DVB]",
+ "Multiply [DVB]",
+ "ODESamplerSelect",
+ "Sine Camera Pan [DVB]",
+ "Sine Camera Roll [DVB]",
+ "Sine Camera Zoom [DVB]",
+ "String Input [DVB]",
+ "Text Input [DVB]",
+ "Trace Memory Allocation [DVB]",
+ "Unwrap Frame Set [DVB]"
+ ],
+ {
+ "author": "RedHotTensors",
+ "description": "Adaptive ODE Solvers for ComfyUI",
+ "nickname": "ComfyUI-ODE",
+ "title": "ComfyUI-ODE",
+ "title_aux": "ComfyUI-ODE"
+ }
+ ],
+ "https://github.com/sdfxai/SDFXBridgeForComfyUI": [
+ [
+ "SDFXClipTextEncode"
+ ],
+ {
+ "title_aux": "SDFXBridgeForComfyUI - ComfyUI Custom Node for SDFX Integration"
+ }
+ ],
+ "https://github.com/shadowcz007/ComfyUI-PuLID-Test": [
+ [
+ "ApplyPulid",
+ "PulidEvaClipLoader",
+ "PulidInsightFaceLoader",
+ "PulidModelLoader"
+ ],
+ {
+ "title_aux": "ComfyUI-PuLID [TEST]"
+ }
+ ],
+ "https://github.com/shadowcz007/comfyui-CLIPSeg": [
+ [
+ "CLIPSeg_",
+ "CombineMasks_"
+ ],
+ {
+ "title_aux": "comfyui-CLIPSeg"
+ }
+ ],
+ "https://github.com/shadowcz007/comfyui-musicgen": [
+ [
+ "AudioPlay",
+ "Musicgen_",
+ "StableAudio_"
+ ],
+ {
+ "title_aux": "comfyui-musicgen"
+ }
+ ],
+ "https://github.com/shirazdesigner/CLIPTextEncodeAndEnhancev4": [
+ [
+ "CLIPTextEncodeAndEnhance"
+ ],
+ {
+ "title_aux": "CLIPTextEncodeAndEnhancev4 (shirazdesigner)"
+ }
+ ],
+ "https://github.com/sofakid/dandy": [
+ [
+ "DandyBooleanCollector",
+ "DandyBooleanPreview",
+ "DandyBooleanSplitter",
+ "DandyCss",
+ "DandyCssLoader",
+ "DandyEditorSettings",
+ "DandyFloatCollector",
+ "DandyFloatPreview",
+ "DandyFloatSplitter",
+ "DandyGradient",
+ "DandyHtml",
+ "DandyHtmlLoader",
+ "DandyImageCollector",
+ "DandyIntCollector",
+ "DandyIntPreview",
+ "DandyIntSplitter",
+ "DandyJs",
+ "DandyJsLoader",
+ "DandyJson",
+ "DandyJsonLoader",
+ "DandyLand",
+ "DandyMaskCollector",
+ "DandyP5JsDraw",
+ "DandyP5JsLoader",
+ "DandyP5JsSetup",
+ "DandyPixelsJs",
+ "DandyPixiJs",
+ "DandyPrompt",
+ "DandyString",
+ "DandyStringArrayCollector",
+ "DandyStringArraySplitter",
+ "DandyStringCatCollector",
+ "DandyStringPreview",
+ "DandyUrlLoader",
+ "DandyWasmLoader",
+ "DandyYaml",
+ "DandyYamlLoader"
+ ],
+ {
+ "title_aux": "dandy [UNSAFE]"
+ }
+ ],
+ "https://github.com/stutya/ComfyUI-Terminal": [
+ [
+ "Terminal"
+ ],
+ {
+ "title_aux": "ComfyUI-Terminal [UNSAFE]"
+ }
+ ],
+ "https://github.com/sugarkwork/comfyui_psd": [
+ [
+ "SavePSD"
+ ],
+ {
+ "title_aux": "comfyui_psd [WIP]"
+ }
+ ],
+ "https://github.com/tjorbogarden/my-useful-comfyui-custom-nodes": [
+ [
+ "ImageSizer",
+ "KSamplerSDXLAdvanced"
+ ],
+ {
+ "title_aux": "my-useful-comfyui-custom-nodes"
+ }
+ ],
+ "https://github.com/tracerstar/comfyui-p5js-node": [
+ [
+ "HYPE_P5JSImage"
+ ],
+ {
+ "title_aux": "comfyui-p5js-node"
+ }
+ ],
+ "https://github.com/tuckerdarby/ComfyUI-TDNodes": [
+ [
+ "HandTrackerNode",
+ "InstanceDiffusionLoader",
+ "InstanceTrackerPrompt",
+ "KSamplerBatchedNode",
+ "KSamplerRAVE",
+ "KSamplerTF",
+ "TemporalNetPreprocessor",
+ "TrackerNode",
+ "VideoTrackerPromptNode"
+ ],
+ {
+ "title_aux": "ComfyUI-TDNodes [WIP]"
+ }
+ ],
+ "https://github.com/umisetokikaze/comfyui_mergekit": [
+ [
+ "DefineSaveName",
+ "LoadLR",
+ "LoadTarget",
+ "Merge",
+ "SetLayer",
+ "SetModels",
+ "SetTokenizer",
+ "get_skip"
+ ],
+ {
+ "title_aux": "comfyui_mergekit [WIP]"
+ }
+ ],
+ "https://github.com/unanan/ComfyUI-Dist": [
+ [
+ "LoadCheckpointFromLAN",
+ "LoadCheckpointFromURL",
+ "LoadImageFromLAN",
+ "LoadImageFromURL",
+ "LoadWorkflowFromLAN",
+ "LoadWorkflowFromURL"
+ ],
+ {
+ "title_aux": "ComfyUI-Dist [WIP]"
+ }
+ ],
+ "https://github.com/unanan/ComfyUI-clip-interrogator": [
+ [
+ "ComfyUIClipInterrogator",
+ "ShowText"
+ ],
+ {
+ "title_aux": "ComfyUI-clip-interrogator [WIP]"
+ }
+ ],
+ "https://github.com/wormley/comfyui-wormley-nodes": [
+ [
+ "CheckpointVAELoaderSimpleText",
+ "CheckpointVAESelectorText",
+ "LoRA_Tag_To_Stack"
+ ],
+ {
+ "title_aux": "comfyui-wormley-nodes"
+ }
+ ],
+ "https://github.com/yushan777/ComfyUI-Y7Nodes": [
+ [
+ "Count_Tokens_(Y7)"
+ ],
+ {
+ "title_aux": "Y7 Nodes for ComfyUI"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/node_db/dev/github-stats.json b/custom_nodes/ComfyUI-Manager/node_db/dev/github-stats.json
new file mode 100644
index 000000000..8239a1133
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/dev/github-stats.json
@@ -0,0 +1,762 @@
+{
+ "https://github.com/17Retoucher/ComfyUI_Fooocus": {
+ "stars": 52,
+ "last_update": "2024-02-24 07:33:29",
+ "author_account_age_days": 171
+ },
+ "https://github.com/A719689614/ComfyUI_AC_FUNV8Beta1": {
+ "stars": 13,
+ "last_update": "2024-03-08 10:11:44",
+ "author_account_age_days": 314
+ },
+ "https://github.com/AI2lab/comfyUI-tool-2lab": {
+ "stars": 7,
+ "last_update": "2024-06-06 16:16:11",
+ "author_account_age_days": 192
+ },
+ "https://github.com/AIGODLIKE/ComfyUI-Studio": {
+ "stars": 203,
+ "last_update": "2024-06-05 00:52:46",
+ "author_account_age_days": 501
+ },
+ "https://github.com/ALatentPlace/ComfyUI_yanc": {
+ "stars": 18,
+ "last_update": "2024-06-14 09:04:57",
+ "author_account_age_days": 1460
+ },
+ "https://github.com/AllenEdgarPoe/ComfyUI-Xorbis-nodes": {
+ "stars": 0,
+ "last_update": "2024-06-21 01:43:13",
+ "author_account_age_days": 2105
+ },
+ "https://github.com/AustinMroz/ComfyUI-WorkflowCheckpointing": {
+ "stars": 5,
+ "last_update": "2024-06-19 21:19:45",
+ "author_account_age_days": 4074
+ },
+ "https://github.com/BadCafeCode/execution-inversion-demo-comfyui": {
+ "stars": 4,
+ "last_update": "2024-06-19 06:59:39",
+ "author_account_age_days": 430
+ },
+ "https://github.com/Beinsezii/comfyui-amd-go-fast": {
+ "stars": 9,
+ "last_update": "2024-05-10 00:48:37",
+ "author_account_age_days": 2226
+ },
+ "https://github.com/BlueDangerX/ComfyUI-BDXNodes": {
+ "stars": 1,
+ "last_update": "2023-12-10 04:01:19",
+ "author_account_age_days": 246
+ },
+ "https://github.com/Brandelan/ComfyUI_bd_customNodes": {
+ "stars": 1,
+ "last_update": "2023-10-09 00:40:26",
+ "author_account_age_days": 4151
+ },
+ "https://github.com/DeTK/ComfyUI-Switch": {
+ "stars": 0,
+ "last_update": "2024-03-04 11:52:04",
+ "author_account_age_days": 2031
+ },
+ "https://github.com/DrMWeigand/ComfyUI_LineBreakInserter": {
+ "stars": 0,
+ "last_update": "2024-04-19 11:37:19",
+ "author_account_age_days": 1032
+ },
+ "https://github.com/Elawphant/ComfyUI-MusicGen": {
+ "stars": 4,
+ "last_update": "2024-05-11 13:33:24",
+ "author_account_age_days": 2588
+ },
+ "https://github.com/ExponentialML/ComfyUI_LiveDirector": {
+ "stars": 35,
+ "last_update": "2024-04-09 19:01:49",
+ "author_account_age_days": 1623
+ },
+ "https://github.com/Extraltodeus/Conditioning-token-experiments-for-ComfyUI": {
+ "stars": 13,
+ "last_update": "2024-03-10 01:04:02",
+ "author_account_age_days": 3149
+ },
+ "https://github.com/FoundD-oka/ComfyUI-kisekae-OOTD": {
+ "stars": 0,
+ "last_update": "2024-06-02 06:13:42",
+ "author_account_age_days": 437
+ },
+ "https://github.com/GentlemanHu/ComfyUI-Notifier": {
+ "stars": 3,
+ "last_update": "2024-06-04 10:05:38",
+ "author_account_age_days": 2383
+ },
+ "https://github.com/GraftingRayman/ComfyUI_GR_PromptSelector": {
+ "stars": 17,
+ "last_update": "2024-06-22 18:22:20",
+ "author_account_age_days": 163
+ },
+ "https://github.com/GrindHouse66/ComfyUI-GH_Tools": {
+ "stars": 0,
+ "last_update": "2024-03-10 13:27:14",
+ "author_account_age_days": 624
+ },
+ "https://github.com/IvanZhd/comfyui-codeformer": {
+ "stars": 0,
+ "last_update": "2023-12-02 20:51:52",
+ "author_account_age_days": 2578
+ },
+ "https://github.com/Jaxkr/comfyui-terminal-command": {
+ "stars": 1,
+ "last_update": "2023-12-03 10:31:40",
+ "author_account_age_days": 4627
+ },
+ "https://github.com/Jiffies-64/ComfyUI-SaveImagePlus": {
+ "stars": 0,
+ "last_update": "2024-04-01 10:52:59",
+ "author_account_age_days": 891
+ },
+ "https://github.com/Jordach/comfy-consistency-vae": {
+ "stars": 68,
+ "last_update": "2023-11-06 20:50:40",
+ "author_account_age_days": 4513
+ },
+ "https://github.com/LZpenguin/ComfyUI-Text": {
+ "stars": 9,
+ "last_update": "2024-06-20 13:38:16",
+ "author_account_age_days": 1979
+ },
+ "https://github.com/LarryJane491/ComfyUI-ModelUnloader": {
+ "stars": 1,
+ "last_update": "2024-01-14 08:22:39",
+ "author_account_age_days": 164
+ },
+ "https://github.com/LotzF/ComfyUI-Simple-Chat-GPT-completion": {
+ "stars": 0,
+ "last_update": "2024-02-04 21:15:22",
+ "author_account_age_days": 929
+ },
+ "https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes": {
+ "stars": 16,
+ "last_update": "2024-04-05 05:11:51",
+ "author_account_age_days": 378
+ },
+ "https://github.com/MrAdamBlack/CheckProgress": {
+ "stars": 1,
+ "last_update": "2024-01-10 08:02:18",
+ "author_account_age_days": 2720
+ },
+ "https://github.com/MushroomFleet/DJZ-Nodes": {
+ "stars": 4,
+ "last_update": "2024-03-18 11:18:42",
+ "author_account_age_days": 3721
+ },
+ "https://github.com/NicholasKao1029/comfyui-hook": {
+ "stars": 0,
+ "last_update": "2024-03-07 05:50:56",
+ "author_account_age_days": 2030
+ },
+ "https://github.com/NitramDom/ComfyUI_FacialFlip": {
+ "stars": 2,
+ "last_update": "2024-06-07 14:56:55",
+ "author_account_age_days": 3172
+ },
+ "https://github.com/PluMaZero/ComfyUI-SpaceFlower": {
+ "stars": 4,
+ "last_update": "2023-12-09 05:55:15",
+ "author_account_age_days": 1058
+ },
+ "https://github.com/Quasimondo/ComfyUI-QuasimondoNodes": {
+ "stars": 4,
+ "last_update": "2024-06-21 19:55:21",
+ "author_account_age_days": 5275
+ },
+ "https://github.com/SadaleNet/ComfyUI-Prompt-To-Prompt": {
+ "stars": 20,
+ "last_update": "2024-03-17 04:30:01",
+ "author_account_age_days": 4040
+ },
+ "https://github.com/Sai-ComfyUI/ComfyUI-MS-Nodes": {
+ "stars": 2,
+ "last_update": "2024-02-22 08:34:44",
+ "author_account_age_days": 209
+ },
+ "https://github.com/Scorpinaus/ComfyUI-DiffusersLoader": {
+ "stars": 3,
+ "last_update": "2024-06-23 01:30:57",
+ "author_account_age_days": 1110
+ },
+ "https://github.com/SeedV/ComfyUI-SeedV-Nodes": {
+ "stars": 1,
+ "last_update": "2024-06-05 10:01:47",
+ "author_account_age_days": 1126
+ },
+ "https://github.com/Shinsplat/ComfyUI-Shinsplat": {
+ "stars": 13,
+ "last_update": "2024-06-22 14:29:36",
+ "author_account_age_days": 1024
+ },
+ "https://github.com/StartHua/Comfyui_CXH_CRM": {
+ "stars": 26,
+ "last_update": "2024-06-06 14:15:14",
+ "author_account_age_days": 2835
+ },
+ "https://github.com/TSFSean/ComfyUI-TSFNodes": {
+ "stars": 4,
+ "last_update": "2024-05-18 00:59:06",
+ "author_account_age_days": 3472
+ },
+ "https://github.com/TemryL/ComfyUI-IDM-VTON": {
+ "stars": 203,
+ "last_update": "2024-06-22 06:14:19",
+ "author_account_age_days": 868
+ },
+ "https://github.com/Video3DGenResearch/comfyui-batch-input-node": {
+ "stars": 1,
+ "last_update": "2024-04-28 15:21:17",
+ "author_account_age_days": 106
+ },
+ "https://github.com/WSJUSA/Comfyui-StableSR": {
+ "stars": 38,
+ "last_update": "2023-10-18 12:40:30",
+ "author_account_age_days": 1424
+ },
+ "https://github.com/WilliamStanford/visuallabs_comfyui_nodes": {
+ "stars": 1,
+ "last_update": "2024-04-16 21:53:02",
+ "author_account_age_days": 1769
+ },
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-AnyText": {
+ "stars": 45,
+ "last_update": "2024-05-22 14:30:05",
+ "author_account_age_days": 340
+ },
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PuLID-ZHO": {
+ "stars": 184,
+ "last_update": "2024-05-22 13:38:23",
+ "author_account_age_days": 340
+ },
+ "https://github.com/alt-key-project/comfyui-dream-video-batches": {
+ "stars": 51,
+ "last_update": "2024-05-22 20:52:05",
+ "author_account_age_days": 660
+ },
+ "https://github.com/baicai99/ComfyUI-FrameSkipping": {
+ "stars": 6,
+ "last_update": "2024-06-18 10:25:55",
+ "author_account_age_days": 831
+ },
+ "https://github.com/beyastard/ComfyUI_BeySoft": {
+ "stars": 0,
+ "last_update": "2024-05-26 22:44:55",
+ "author_account_age_days": 4286
+ },
+ "https://github.com/birnam/ComfyUI-GenData-Pack": {
+ "stars": 0,
+ "last_update": "2024-03-25 01:25:23",
+ "author_account_age_days": 5009
+ },
+ "https://github.com/blepping/comfyui_overly_complicated_sampling": {
+ "stars": 5,
+ "last_update": "2024-06-12 01:05:41",
+ "author_account_age_days": 154
+ },
+ "https://github.com/blib-la/ComfyUI-Captain-Extensions": {
+ "stars": 0,
+ "last_update": "2024-05-17 23:27:25",
+ "author_account_age_days": 273
+ },
+ "https://github.com/bruce007lee/comfyui-cleaner": {
+ "stars": 3,
+ "last_update": "2024-04-20 15:36:03",
+ "author_account_age_days": 4512
+ },
+ "https://github.com/bruce007lee/comfyui-tiny-utils": {
+ "stars": 0,
+ "last_update": "2024-06-07 03:44:47",
+ "author_account_age_days": 4512
+ },
+ "https://github.com/brycegoh/comfyui-custom-nodes": {
+ "stars": 0,
+ "last_update": "2024-06-05 09:30:06",
+ "author_account_age_days": 3108
+ },
+ "https://github.com/chaojie/ComfyUI-DynamiCrafter": {
+ "stars": 109,
+ "last_update": "2024-06-14 10:23:59",
+ "author_account_age_days": 4833
+ },
+ "https://github.com/chaojie/ComfyUI-mobvoi-openapi": {
+ "stars": 2,
+ "last_update": "2024-05-29 09:02:52",
+ "author_account_age_days": 4833
+ },
+ "https://github.com/christian-byrne/infinite-zoom-parallax-nodes": {
+ "stars": 4,
+ "last_update": "2024-05-27 01:51:24",
+ "author_account_age_days": 1348
+ },
+ "https://github.com/christian-byrne/python-interpreter-node": {
+ "stars": 20,
+ "last_update": "2024-06-23 22:22:20",
+ "author_account_age_days": 1348
+ },
+ "https://github.com/comfyanonymous/ComfyUI": {
+ "stars": 39915,
+ "last_update": "2024-06-24 11:47:40",
+ "author_account_age_days": 549
+ },
+ "https://github.com/comfypod/ComfyUI-Comflow": {
+ "stars": 0,
+ "last_update": "2024-06-17 08:44:08",
+ "author_account_age_days": 23
+ },
+ "https://github.com/corbin-hayden13/ComfyUI-Better-Dimensions": {
+ "stars": 7,
+ "last_update": "2024-06-12 17:45:21",
+ "author_account_age_days": 1815
+ },
+ "https://github.com/cubiq/Comfy_Dungeon": {
+ "stars": 174,
+ "last_update": "2024-04-26 11:00:58",
+ "author_account_age_days": 5011
+ },
+ "https://github.com/dezi-ai/ComfyUI-AnimateLCM": {
+ "stars": 148,
+ "last_update": "2024-02-07 17:34:39",
+ "author_account_age_days": 177
+ },
+ "https://github.com/dfl/comfyui-stylegan": {
+ "stars": 1,
+ "last_update": "2024-03-14 14:34:25",
+ "author_account_age_days": 5974
+ },
+ "https://github.com/dnl13/ComfyUI-dnl13-seg": {
+ "stars": 16,
+ "last_update": "2024-01-08 10:52:13",
+ "author_account_age_days": 4218
+ },
+ "https://github.com/doucx/ComfyUI_WcpD_Utility_Kit": {
+ "stars": 1,
+ "last_update": "2024-01-06 19:07:45",
+ "author_account_age_days": 2323
+ },
+ "https://github.com/eigenpunk/ComfyUI-audio": {
+ "stars": 59,
+ "last_update": "2024-03-03 21:14:14",
+ "author_account_age_days": 925
+ },
+ "https://github.com/ejektaflex/ComfyUI-Ty": {
+ "stars": 0,
+ "last_update": "2024-06-12 16:08:16",
+ "author_account_age_days": 2772
+ },
+ "https://github.com/endman100/ComfyUI-SaveAndLoadPromptCondition": {
+ "stars": 0,
+ "last_update": "2024-06-06 06:07:49",
+ "author_account_age_days": 2473
+ },
+ "https://github.com/ericbeyer/guidance_interval": {
+ "stars": 2,
+ "last_update": "2024-04-16 03:24:01",
+ "author_account_age_days": 2594
+ },
+ "https://github.com/flowtyone/comfyui-flowty-lcm": {
+ "stars": 62,
+ "last_update": "2023-10-23 12:08:55",
+ "author_account_age_days": 273
+ },
+ "https://github.com/flyingdogsoftware/gyre_for_comfyui": {
+ "stars": 0,
+ "last_update": "2024-06-21 15:35:49",
+ "author_account_age_days": 2013
+ },
+ "https://github.com/foglerek/comfyui-cem-tools": {
+ "stars": 1,
+ "last_update": "2024-01-13 23:22:07",
+ "author_account_age_days": 4038
+ },
+ "https://github.com/gameltb/ComfyUI_paper_playground": {
+ "stars": 9,
+ "last_update": "2024-06-20 07:16:06",
+ "author_account_age_days": 4055
+ },
+ "https://github.com/gameltb/ComfyUI_stable_fast": {
+ "stars": 183,
+ "last_update": "2024-06-06 12:43:16",
+ "author_account_age_days": 4055
+ },
+ "https://github.com/gameltb/io_comfyui": {
+ "stars": 3,
+ "last_update": "2024-04-06 04:40:05",
+ "author_account_age_days": 4055
+ },
+ "https://github.com/githubYiheng/comfyui_median_filter": {
+ "stars": 0,
+ "last_update": "2024-05-24 15:21:40",
+ "author_account_age_days": 3903
+ },
+ "https://github.com/haofanwang/ComfyUI-InstantStyle": {
+ "stars": 5,
+ "last_update": "2024-05-23 16:11:13",
+ "author_account_age_days": 2977
+ },
+ "https://github.com/horidream/ComfyUI-Horidream": {
+ "stars": 0,
+ "last_update": "2024-06-18 02:09:07",
+ "author_account_age_days": 5043
+ },
+ "https://github.com/houdinii/comfy-magick": {
+ "stars": 4,
+ "last_update": "2024-03-11 06:40:54",
+ "author_account_age_days": 3520
+ },
+ "https://github.com/huchenlei/ComfyUI_densediffusion": {
+ "stars": 70,
+ "last_update": "2024-06-11 00:39:28",
+ "author_account_age_days": 2875
+ },
+ "https://github.com/huchenlei/ComfyUI_omost": {
+ "stars": 321,
+ "last_update": "2024-06-14 12:45:52",
+ "author_account_age_days": 2875
+ },
+ "https://github.com/huizhang0110/ComfyUI_Easy_Nodes_hui": {
+ "stars": 2,
+ "last_update": "2024-02-27 08:22:49",
+ "author_account_age_days": 2455
+ },
+ "https://github.com/hy134300/comfyui-hb-node": {
+ "stars": 0,
+ "last_update": "2024-04-09 09:56:22",
+ "author_account_age_days": 1761
+ },
+ "https://github.com/hy134300/comfyui-hydit": {
+ "stars": 7,
+ "last_update": "2024-06-07 09:52:15",
+ "author_account_age_days": 1761
+ },
+ "https://github.com/ilovejohnwhite/UncleBillyGoncho": {
+ "stars": 0,
+ "last_update": "2024-02-29 00:16:42",
+ "author_account_age_days": 873
+ },
+ "https://github.com/immersiveexperience/ie-comfyui-color-nodes": {
+ "stars": 2,
+ "last_update": "2024-06-18 10:54:55",
+ "author_account_age_days": 269
+ },
+ "https://github.com/jh-leon-kim/ComfyUI-JHK-utils": {
+ "stars": 0,
+ "last_update": "2024-06-04 08:57:52",
+ "author_account_age_days": 172
+ },
+ "https://github.com/jimmm-ai/TimeUi-a-ComfyUi-Timeline-Node": {
+ "stars": 194,
+ "last_update": "2024-06-12 20:10:22",
+ "author_account_age_days": 20
+ },
+ "https://github.com/jn-jairo/jn_node_suite_comfyui": {
+ "stars": 5,
+ "last_update": "2024-06-08 05:15:33",
+ "author_account_age_days": 3984
+ },
+ "https://github.com/jtscmw01/ComfyUI-DiffBIR": {
+ "stars": 61,
+ "last_update": "2024-05-21 05:28:34",
+ "author_account_age_days": 502
+ },
+ "https://github.com/jtydhr88/ComfyUI-Unique3D": {
+ "stars": 57,
+ "last_update": "2024-06-24 00:30:37",
+ "author_account_age_days": 4753
+ },
+ "https://github.com/kadirnar/ComfyUI-Adapter": {
+ "stars": 3,
+ "last_update": "2024-04-03 12:05:39",
+ "author_account_age_days": 2329
+ },
+ "https://github.com/kadirnar/comfyui_helpers": {
+ "stars": 2,
+ "last_update": "2024-03-04 16:25:30",
+ "author_account_age_days": 2329
+ },
+ "https://github.com/kappa54m/ComfyUI_Usability": {
+ "stars": 0,
+ "last_update": "2024-02-05 14:49:45",
+ "author_account_age_days": 1511
+ },
+ "https://github.com/kijai/ComfyUI-CV-VAE": {
+ "stars": 9,
+ "last_update": "2024-06-03 21:46:49",
+ "author_account_age_days": 2183
+ },
+ "https://github.com/kijai/ComfyUI-DeepSeek-VL": {
+ "stars": 19,
+ "last_update": "2024-05-21 16:43:40",
+ "author_account_age_days": 2183
+ },
+ "https://github.com/kijai/ComfyUI-DiffSynthWrapper": {
+ "stars": 22,
+ "last_update": "2024-06-22 00:16:46",
+ "author_account_age_days": 2183
+ },
+ "https://github.com/kijai/ComfyUI-DiffusersSD3Wrapper": {
+ "stars": 7,
+ "last_update": "2024-06-17 13:03:43",
+ "author_account_age_days": 2183
+ },
+ "https://github.com/kycg/comfyui-Kwtoolset": {
+ "stars": 0,
+ "last_update": "2024-06-12 17:04:09",
+ "author_account_age_days": 940
+ },
+ "https://github.com/laksjdjf/ssd-1b-comfyui": {
+ "stars": 1,
+ "last_update": "2023-10-27 20:05:06",
+ "author_account_age_days": 2831
+ },
+ "https://github.com/logtd/ComfyUI-MotionThiefExperiment": {
+ "stars": 36,
+ "last_update": "2024-05-22 00:12:06",
+ "author_account_age_days": 122
+ },
+ "https://github.com/longgui0318/comfyui-one-more-step": {
+ "stars": 1,
+ "last_update": "2024-05-07 08:40:56",
+ "author_account_age_days": 4165
+ },
+ "https://github.com/ltdrdata/ComfyUI-Workflow-Component": {
+ "stars": 195,
+ "last_update": "2024-04-26 01:39:09",
+ "author_account_age_days": 462
+ },
+ "https://github.com/marcueberall/ComfyUI-BuildPath": {
+ "stars": 0,
+ "last_update": "2024-02-06 07:57:33",
+ "author_account_age_days": 1782
+ },
+ "https://github.com/marduk191/comfyui-marnodes": {
+ "stars": 0,
+ "last_update": "2024-06-14 10:24:11",
+ "author_account_age_days": 4415
+ },
+ "https://github.com/maruhidd/ComfyUI_Transparent-Background": {
+ "stars": 1,
+ "last_update": "2024-06-14 07:02:56",
+ "author_account_age_days": 2255
+ },
+ "https://github.com/mashb1t/comfyui-nodes-mashb1t": {
+ "stars": 0,
+ "last_update": "2024-06-11 15:55:53",
+ "author_account_age_days": 3535
+ },
+ "https://github.com/mikeymcfish/FishTools": {
+ "stars": 12,
+ "last_update": "2024-06-21 20:35:44",
+ "author_account_age_days": 3403
+ },
+ "https://github.com/mingqizhang/ComfyUI_AEMatter_zmq": {
+ "stars": 0,
+ "last_update": "2024-06-24 07:22:59",
+ "author_account_age_days": 2594
+ },
+ "https://github.com/mut-ex/comfyui-gligengui-node": {
+ "stars": 30,
+ "last_update": "2024-02-28 02:46:05",
+ "author_account_age_days": 2858
+ },
+ "https://github.com/nat-chan/comfyui-eval": {
+ "stars": 1,
+ "last_update": "2024-05-28 11:56:37",
+ "author_account_age_days": 2993
+ },
+ "https://github.com/nat-chan/comfyui-in-memory-transceiver": {
+ "stars": 1,
+ "last_update": "2024-05-01 10:03:01",
+ "author_account_age_days": 2993
+ },
+ "https://github.com/nat-chan/comfyui-paint": {
+ "stars": 2,
+ "last_update": "2024-06-14 11:01:38",
+ "author_account_age_days": 2993
+ },
+ "https://github.com/nidefawl/ComfyUI-nidefawl": {
+ "stars": 0,
+ "last_update": "2024-01-16 18:16:41",
+ "author_account_age_days": 4868
+ },
+ "https://github.com/nkchocoai/ComfyUI-PromptUtilities": {
+ "stars": 6,
+ "last_update": "2024-06-23 04:58:30",
+ "author_account_age_days": 160
+ },
+ "https://github.com/norgeous/ComfyUI-UI-Builder": {
+ "stars": 2,
+ "last_update": "2024-06-24 13:55:40",
+ "author_account_age_days": 4029
+ },
+ "https://github.com/oyvindg/ComfyUI-TrollSuite": {
+ "stars": 0,
+ "last_update": "2024-05-22 21:32:03",
+ "author_account_age_days": 2329
+ },
+ "https://github.com/oztrkoguz/ComfyUI_Kosmos2_BBox_Cutter": {
+ "stars": 13,
+ "last_update": "2024-05-03 10:52:29",
+ "author_account_age_days": 841
+ },
+ "https://github.com/pamparamm/ComfyUI-ppm": {
+ "stars": 3,
+ "last_update": "2024-06-15 15:19:13",
+ "author_account_age_days": 2131
+ },
+ "https://github.com/phineas-pta/comfy-trt-test": {
+ "stars": 83,
+ "last_update": "2024-06-04 21:09:17",
+ "author_account_age_days": 2288
+ },
+ "https://github.com/poisenbery/NudeNet-Detector-Provider": {
+ "stars": 1,
+ "last_update": "2024-02-26 02:11:27",
+ "author_account_age_days": 1237
+ },
+ "https://github.com/prabinpebam/anyPython": {
+ "stars": 3,
+ "last_update": "2024-06-21 16:58:16",
+ "author_account_age_days": 4242
+ },
+ "https://github.com/prismwastaken/comfyui-tools": {
+ "stars": 0,
+ "last_update": "2024-03-05 14:34:56",
+ "author_account_age_days": 157
+ },
+ "https://github.com/pzzmyc/comfyui-sd3-simple-simpletuner": {
+ "stars": 1,
+ "last_update": "2024-06-19 12:48:18",
+ "author_account_age_days": 2099
+ },
+ "https://github.com/redhottensors/ComfyUI-ODE": {
+ "stars": 12,
+ "last_update": "2024-06-23 22:16:53",
+ "author_account_age_days": 139
+ },
+ "https://github.com/romeobuilderotti/ComfyUI-EZ-Pipes": {
+ "stars": 3,
+ "last_update": "2023-11-15 22:00:49",
+ "author_account_age_days": 290
+ },
+ "https://github.com/runtime44/comfyui_r44_nodes": {
+ "stars": 28,
+ "last_update": "2024-06-11 10:49:02",
+ "author_account_age_days": 168
+ },
+ "https://github.com/sangeet/comfyui-testui": {
+ "stars": 2,
+ "last_update": "2024-05-15 00:55:17",
+ "author_account_age_days": 5080
+ },
+ "https://github.com/sdfxai/SDFXBridgeForComfyUI": {
+ "stars": 6,
+ "last_update": "2024-06-14 10:26:56",
+ "author_account_age_days": 235
+ },
+ "https://github.com/shadowcz007/ComfyUI-PuLID-Test": {
+ "stars": 8,
+ "last_update": "2024-05-12 14:37:28",
+ "author_account_age_days": 3314
+ },
+ "https://github.com/shadowcz007/comfyui-CLIPSeg": {
+ "stars": 1,
+ "last_update": "2024-02-08 02:16:24",
+ "author_account_age_days": 3314
+ },
+ "https://github.com/shadowcz007/comfyui-llamafile": {
+ "stars": 15,
+ "last_update": "2024-05-21 19:47:56",
+ "author_account_age_days": 3314
+ },
+ "https://github.com/shadowcz007/comfyui-musicgen": {
+ "stars": 54,
+ "last_update": "2024-06-20 02:07:31",
+ "author_account_age_days": 3314
+ },
+ "https://github.com/shirazdesigner/CLIPTextEncodeAndEnhancev4": {
+ "stars": 0,
+ "last_update": "2024-04-27 13:25:08",
+ "author_account_age_days": 3962
+ },
+ "https://github.com/sofakid/dandy": {
+ "stars": 30,
+ "last_update": "2024-05-27 21:46:18",
+ "author_account_age_days": 4053
+ },
+ "https://github.com/stavsap/ComfyUI-React-SDK": {
+ "stars": 6,
+ "last_update": "2024-03-17 21:54:21",
+ "author_account_age_days": 4084
+ },
+ "https://github.com/stutya/ComfyUI-Terminal": {
+ "stars": 0,
+ "last_update": "2024-02-05 16:47:28",
+ "author_account_age_days": 3838
+ },
+ "https://github.com/sugarkwork/comfyui_psd": {
+ "stars": 1,
+ "last_update": "2024-03-26 08:24:56",
+ "author_account_age_days": 875
+ },
+ "https://github.com/tachyon-beep/comfyui-simplefeed": {
+ "stars": 3,
+ "last_update": "2024-05-22 03:30:57",
+ "author_account_age_days": 4921
+ },
+ "https://github.com/talesofai/comfyui-supersave": {
+ "stars": 1,
+ "last_update": "2023-12-27 02:05:53",
+ "author_account_age_days": 556
+ },
+ "https://github.com/tjorbogarden/my-useful-comfyui-custom-nodes": {
+ "stars": 0,
+ "last_update": "2024-03-05 13:31:31",
+ "author_account_age_days": 113
+ },
+ "https://github.com/tracerstar/comfyui-p5js-node": {
+ "stars": 28,
+ "last_update": "2024-05-30 18:33:55",
+ "author_account_age_days": 5198
+ },
+ "https://github.com/tuckerdarby/ComfyUI-TDNodes": {
+ "stars": 3,
+ "last_update": "2024-02-19 17:00:55",
+ "author_account_age_days": 2938
+ },
+ "https://github.com/umisetokikaze/comfyui_mergekit": {
+ "stars": 0,
+ "last_update": "2024-04-28 07:21:00",
+ "author_account_age_days": 1823
+ },
+ "https://github.com/unanan/ComfyUI-Dist": {
+ "stars": 5,
+ "last_update": "2024-02-28 10:03:50",
+ "author_account_age_days": 2898
+ },
+ "https://github.com/unanan/ComfyUI-clip-interrogator": {
+ "stars": 22,
+ "last_update": "2024-02-01 09:46:57",
+ "author_account_age_days": 1030
+ },
+ "https://github.com/wormley/comfyui-wormley-nodes": {
+ "stars": 0,
+ "last_update": "2023-11-12 19:05:11",
+ "author_account_age_days": 2473
+ },
+ "https://github.com/yushan777/ComfyUI-Y7Nodes": {
+ "stars": 1,
+ "last_update": "2024-06-23 22:36:49",
+ "author_account_age_days": 517
+ },
+ "https://github.com/zmwv823/ComfyUI-AnyText": {
+ "stars": 42,
+ "last_update": "2024-06-23 15:52:12",
+ "author_account_age_days": 3269
+ }
+}
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/node_db/dev/model-list.json b/custom_nodes/ComfyUI-Manager/node_db/dev/model-list.json
new file mode 100644
index 000000000..8e3e1dc48
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/dev/model-list.json
@@ -0,0 +1,3 @@
+{
+ "models": []
+}
diff --git a/custom_nodes/ComfyUI-Manager/node_db/dev/scan.sh b/custom_nodes/ComfyUI-Manager/node_db/dev/scan.sh
new file mode 100644
index 000000000..f9589f3c5
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/dev/scan.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+rm ~/.tmp/dev/*.py > /dev/null 2>&1
+python ../../scanner.py ~/.tmp/dev
diff --git a/custom_nodes/ComfyUI-Manager/node_db/forked/custom-node-list.json b/custom_nodes/ComfyUI-Manager/node_db/forked/custom-node-list.json
new file mode 100644
index 000000000..554591143
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/forked/custom-node-list.json
@@ -0,0 +1,54 @@
+{
+ "custom_nodes": [
+ {
+ "author": "meimeilook",
+ "title": "ComfyUI_IPAdapter_plus.old [backward compatbility]",
+ "reference": "https://github.com/meimeilook/ComfyUI_IPAdapter_plus.old",
+ "files": [
+ "https://github.com/meimeilook/ComfyUI_IPAdapter_plus.old"
+ ],
+ "install_type": "git-clone",
+ "description": "This repo is created to provide backward compatibility for workflows configured with the old IPAdapter."
+ },
+ {
+ "author": "ZHO-ZHO-ZHO",
+ "title": "Dr.Lt.Data/ComfyUI-YoloWorld-EfficientSAM",
+ "reference": "https://github.com/ltdrdata/ComfyUI-YoloWorld-EfficientSAM",
+ "files": [
+ "https://github.com/ltdrdata/ComfyUI-YoloWorld-EfficientSAM"
+ ],
+ "install_type": "git-clone",
+ "description": "This fork includes [a/PR32](https://github.com/ZHO-ZHO-ZHO/ComfyUI-YoloWorld-EfficientSAM/pull/32)"
+ },
+ {
+ "author": "ertu110",
+ "title": "sdxl_prompt_style",
+ "reference": "https://github.com/ertu110/sdxl_prompt_style",
+ "files": [
+ "https://github.com/ertu110/sdxl_prompt_style"
+ ],
+ "install_type": "git-clone",
+ "description": "This project is a complete benchmark [a/https://github.com/twri/sdxl_prompt_styler](https://github.com/twri/sdxl_prompt_styler) A large amount of code inside comes from https://github.com/twri/sdxl_prompt_styler Project and [a/https://www.nodecafe.org/package/pythongosssss_ComfyUI-Custom-Scripts](https://www.nodecafe.org/package/pythongosssss_ComfyUI-Custom-Scripts) project\nThe functionality of this project is related to https://github.com/twri/sdxl_prompt_styler Highly overlapping, the only purpose of creating this project is because there are too many styles when selecting, resulting in a long and inconvenient dropdown box. Therefore, To address this issue, this project has added a secondary menu to the style."
+ },
+ {
+ "author": "gustproof",
+ "title": "ComfyUI_IPAdapter_plus_Style_Components",
+ "reference": "https://github.com/gustproof/ComfyUI_IPAdapter_plus_Style_Components",
+ "files": [
+ "https://github.com/gustproof/ComfyUI_IPAdapter_plus_Style_Components"
+ ],
+ "install_type": "git-clone",
+ "description": "Style Components is an IP-Adapter model conditioned on anime styles. The style embeddings can either be extracted from images or created manually. This repo currently only supports the SDXL model trained on AutismmixPony."
+ },
+ {
+ "author": "gameltb",
+ "title": "comfyui-stablsr",
+ "reference": "https://github.com/gameltb/Comfyui-StableSR",
+ "files": [
+ "https://github.com/gameltb/Comfyui-StableSR"
+ ],
+ "install_type": "git-clone",
+ "description": "This is a development respository for debugging migration of StableSR to ComfyUI\n\nNOTE:Forked from [https://github.com/gameltb/Comfyui-StableSR]\nPut the StableSR [a/webui_786v_139.ckpt](https://huggingface.co/Iceclear/StableSR/resolve/main/webui_768v_139.ckpt) model into Comyfui/models/stablesr/, Put the StableSR [a/stablesr_768v_000139.ckpt](https://huggingface.co/Iceclear/StableSR/resolve/main/stablesr_768v_000139.ckpt) model into Comyfui/models/checkpoints/"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/node_db/forked/extension-node-map.json b/custom_nodes/ComfyUI-Manager/node_db/forked/extension-node-map.json
new file mode 100644
index 000000000..9e26dfeeb
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/forked/extension-node-map.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/node_db/forked/model-list.json b/custom_nodes/ComfyUI-Manager/node_db/forked/model-list.json
new file mode 100644
index 000000000..8e3e1dc48
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/forked/model-list.json
@@ -0,0 +1,3 @@
+{
+ "models": []
+}
diff --git a/custom_nodes/ComfyUI-Manager/node_db/forked/scan.sh b/custom_nodes/ComfyUI-Manager/node_db/forked/scan.sh
new file mode 100644
index 000000000..5d8d8c48b
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/forked/scan.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+source ../../../../venv/bin/activate
+rm .tmp/*.py > /dev/null
+python ../../scanner.py
diff --git a/custom_nodes/ComfyUI-Manager/node_db/legacy/alter-list.json b/custom_nodes/ComfyUI-Manager/node_db/legacy/alter-list.json
new file mode 100644
index 000000000..9e26dfeeb
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/legacy/alter-list.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/node_db/legacy/custom-node-list.json b/custom_nodes/ComfyUI-Manager/node_db/legacy/custom-node-list.json
new file mode 100644
index 000000000..334346935
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/legacy/custom-node-list.json
@@ -0,0 +1,587 @@
+{
+ "custom_nodes": [
+ {
+ "author": "#NOTICE_1.13",
+ "title": "NOTICE: This channel is not the default channel.",
+ "reference": "https://github.com/ltdrdata/ComfyUI-Manager",
+ "files": [],
+ "install_type": "git-clone",
+ "description": "If you see this message, your ComfyUI-Manager is outdated.\nLegacy channel provides only the list of the deprecated nodes. If you want to find the complete node list, please go to the Default channel."
+ },
+
+
+ {
+ "author": "turkyden",
+ "title": "ComfyUI-Sticker [REMOVED]",
+ "reference": "https://github.com/turkyden/ComfyUI-Sticker",
+ "files": [
+ "https://github.com/turkyden/ComfyUI-Sticker"
+ ],
+ "install_type": "git-clone",
+ "description": "image to sticker"
+ },
+ {
+ "author": "turkyden",
+ "title": "ComfyUI-Comic [REMOVED]",
+ "id": "comic",
+ "reference": "https://github.com/turkyden/ComfyUI-Comic",
+ "files": [
+ "https://github.com/turkyden/ComfyUI-Comic"
+ ],
+ "install_type": "git-clone",
+ "description": "a comfyui plugin for image to comic"
+ },
+ {
+ "author": "turkyden",
+ "title": "ComfyUI-Avatar [REMOVED]",
+ "id": "avatar",
+ "reference": "https://github.com/turkyden/ComfyUI-Avatar",
+ "files": [
+ "https://github.com/turkyden/ComfyUI-Avatar"
+ ],
+ "install_type": "git-clone",
+ "description": "a comfyui plugin for image to avatar"
+ },
+ {
+ "author": "bvhari",
+ "title": "LatentToRGB [DEPRECATED]",
+ "id": "latent2rgb",
+ "reference": "https://github.com/bvhari/ComfyUI_LatentToRGB",
+ "files": [
+ "https://github.com/bvhari/ComfyUI_LatentToRGB"
+ ],
+ "install_type": "git-clone",
+ "description": "ComfyUI custom node to convert latent to RGB.\nNOTE:This repo has been archived because ComfyUI natively has similar functionality now"
+ },
+ {
+ "author": "Kaharos94",
+ "title": "ComfyUI-Saveaswebp [DEPRECATED]",
+ "id": "save-webp",
+ "reference": "https://github.com/Kaharos94/ComfyUI-Saveaswebp",
+ "files": [
+ "https://github.com/Kaharos94/ComfyUI-Saveaswebp"
+ ],
+ "install_type": "git-clone",
+ "description": "Save a picture as Webp file in Comfy + Workflow loading"
+ },
+ {
+ "author": "udi0510",
+ "title": "comfyui-slicer [REMOVED]",
+ "id": "slicer",
+ "reference": "https://github.com/udi0510/comfyui-slicer",
+ "files": [
+ "https://github.com/udi0510/comfyui-slicer"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:SlicerNode"
+ },
+ {
+ "author": "logtd",
+ "title": "ComfyUI-FLATTEN [REMOVED]",
+ "id": "flatten",
+ "reference": "https://github.com/logtd/ComfyUI-FlattenFlow",
+ "files": [
+ "https://github.com/logtd/ComfyUI-FlattenFlow"
+ ],
+ "install_type": "git-clone",
+ "description": "An alternate trajectory processor for ComfyUI-FLATTEN\nNOTE:When using this trajectory type FLATTEN will use roughly 1/4 VRAM and be ~20% faster at the cost of some consistency (especially when injection_steps are low)."
+ },
+ {
+ "author": "MackinationsAi",
+ "title": "ComfyUi_Stuctured-Outputs [REMOVED]",
+ "id": "struct-output",
+ "reference": "https://github.com/MackinationsAi/ComfyUi_Stuctured-Outputs",
+ "files": [
+ "https://github.com/MackinationsAi/ComfyUi_Stuctured-Outputs"
+ ],
+ "install_type": "git-clone",
+ "description": "This repository contains a custom node for ComfyUI that allows users to save generative image outputs with custom filenames and folder structures. The filenames are padded to four digits, and the positive and negative prompts are embedded in the image metadata."
+ },
+ {
+ "author": "laksjdjf",
+ "title": "attention-couple-ComfyUI [DEPRECATED]",
+ "id": "attention-couple",
+ "reference": "https://github.com/laksjdjf/attention-couple-ComfyUI",
+ "files": [
+ "https://github.com/laksjdjf/attention-couple-ComfyUI"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Attention couple. This is a custom node that manipulates region-specific prompts. While vanilla ComfyUI employs an area specification method based on latent couples, this node divides regions using attention layers within UNet.\nNOTE: This has been integrated with cgem156-ComfyUI."
+ },
+ {
+ "author": "phineas-pta",
+ "title": "comfy-trt-test [DEPRECATED]",
+ "reference": "https://github.com/phineas-pta/comfy-trt-test",
+ "files": [
+ "https://github.com/phineas-pta/comfy-trt-test"
+ ],
+ "install_type": "git-clone",
+ "description": "Test project for ComfyUI TensorRT Support.\nNOT WORKING YET.\nnot automatic yet, do not use ComfyUI-Manager to install !!!.\nnot beginner-friendly yet, still intended to technical users\nNOTE: The reason for registration in the Manager is for guidance, and for detailed installation instructions, please visit the repository.\nNOTE: Use 'TensorRT Node for ComfyUI' instead of this."
+ },
+ {
+ "author": "dezi-ai",
+ "title": "ComfyUI Animate LCM [NOT MAINTAINED]",
+ "reference": "https://github.com/dezi-ai/ComfyUI-AnimateLCM",
+ "files": [
+ "https://github.com/dezi-ai/ComfyUI-AnimateLCM"
+ ],
+ "install_type": "git-clone",
+ "description": "ComfyUI implementation for [a/AnimateLCM](https://animatelcm.github.io/) [[a/paper](https://arxiv.org/abs/2402.00769)].\b[w/This extension includes a large number of nodes imported from the existing custom nodes, increasing the likelihood of conflicts.]"
+ },
+ {
+ "author": "christian-byrne",
+ "title": "elimination-nodes [REMOVED]",
+ "reference": "https://github.com/christian-byrne/elimination-nodes",
+ "files": [
+ "https://github.com/christian-byrne/elimination-nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Paste Cutout on Base Image"
+ },
+ {
+ "author": "Levy1417",
+ "title": "Universal-Data-Processing-Kit [UNSAFE] [REMOVED]",
+ "reference": "https://github.com/Levy1417/Universal-Data-Processing-Kit",
+ "files": [
+ "https://github.com/Levy1417/Universal-Data-Processing-Kit"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:DPK - Any Eval, DPK - Extract Array, DPK - Run External Program, DPK - Any Literals, DPK - Set Node States, DPK - Realtime Text Preview, DPK - Dynamic Action, DPK - Object To Json, DPK - Json To Object\n[w/This extension includes the ability to execute arbitrary code and programs.]"
+ },
+ {
+ "author": "liusida",
+ "title": "ComfyUI-Sida-Remove-Image [UNSAFE] [REMOVED]",
+ "reference": "https://github.com/liusida/ComfyUI-Sida-Remove-Image",
+ "files": [
+ "https://github.com/liusida/ComfyUI-Sida-Remove-Image"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: LoadImageWithPrivacy, RemoveImage.[w/This extension is not secure because it provides the capability to delete files from arbitrary paths.]"
+ },
+ {
+ "author": "88IO",
+ "title": "ComfyUI Image Reordering Plugins [REMOVED]",
+ "reference": "https://github.com/88IO/ComfyUI-ImageReorder",
+ "files": [
+ "https://github.com/88IO/ComfyUI-ImageReorder"
+ ],
+ "install_type": "git-clone",
+ "description": "A custom node reorder multiple image frames based on indexes or curves."
+ },
+ {
+ "author": "jtydhr88",
+ "title": "ComfyUI-InstantMesh [DEPRECATED]",
+ "id": "instant-mesh",
+ "reference": "https://github.com/jtydhr88/ComfyUI-InstantMesh",
+ "files": [
+ "https://github.com/jtydhr88/ComfyUI-InstantMesh"
+ ],
+ "install_type": "git-clone",
+ "description": "ComfyUI InstantMesh is custom nodes that running TencentARC/InstantMesh into ComfyUI, this extension depends on ComfyUI-3D-Pack. Please refer to Readme carefully to install.\nNOTE: This repo is archived due to ComfyUI-3D-Pack supports InstantMesh, please check 3D-Pack directly if you need it"
+ },
+ {
+ "author": "biegert",
+ "title": "CLIPSeg [NOT MAINTAINED]",
+ "id": "clipseg",
+ "reference": "https://github.com/biegert/ComfyUI-CLIPSeg",
+ "files": [
+ "https://github.com/biegert/ComfyUI-CLIPSeg/raw/main/custom_nodes/clipseg.py"
+ ],
+ "install_type": "copy",
+ "description": "The CLIPSeg node generates a binary mask for a given input image and text prompt."
+ },
+ {
+ "author": "tankucc1no",
+ "title": "ComfyUI-Dragdiffusion [REMOVED]",
+ "id": "dragdiffusion",
+ "reference": "https://github.com/tankucc1no/ComfyUI-Dragdiffusion",
+ "files": [
+ "https://github.com/tankucc1no/ComfyUI-Dragdiffusion"
+ ],
+ "install_type": "git-clone",
+ "description": "Implementation of [a/Dragdiffusion](https://github.com/Yujun-Shi/DragDiffusion) in ComfyUI."
+ },
+ {
+ "author": "wibur0620",
+ "title": "ComfyUI Ollama (wibur) [REMOVED]",
+ "id": "ollama-wibur",
+ "reference": "https://github.com/wibur0620/comfyui-ollama-wibur",
+ "files": [
+ "https://github.com/wibur0620/comfyui-ollama-wibur"
+ ],
+ "install_type": "git-clone",
+ "description": "Custom ComfyUI Nodes for interacting with [a/Ollama](https://ollama.com/) using the ollama python client.\nIntegrate the power of LLMs into ComfyUI workflows easily or just experiment with GPT.\nNOTE: To use this properly, you would need a running Ollama server reachable from the host that is running ComfyUI."
+ },
+ {
+ "author": "IKHOR",
+ "title": "ikhor-nodes [REMOVED]",
+ "reference": "https://github.com/IKHOR/ComfyUI-IKHOR-Jam-Nodes",
+ "files": [
+ "https://github.com/IKHOR/ComfyUI-IKHOR-Jam-Nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:LoadFromS3, LoadBatchFromS3, SaveToS3, SaveBatchToS3"
+ },
+ {
+ "author": "kijai",
+ "title": "ComfyUI wrapper nodes for IC-light [DEPRECATED]",
+ "reference": "https://github.com/kijai/ComfyUI-IC-Light-Wrapper",
+ "files": [
+ "https://github.com/kijai/ComfyUI-IC-Light-Wrapper"
+ ],
+ "install_type": "git-clone",
+ "description": "Stopped. Original repo: [a/https://github.com/lllyasviel/IC-Light](https://github.com/lllyasviel/IC-Light)"
+ },
+ {
+ "author": "thedyze",
+ "title": "Save Image Extended for ComfyUI",
+ "reference": "https://github.com/thedyze/save-image-extended-comfyui",
+ "files": [
+ "https://github.com/thedyze/save-image-extended-comfyui"
+ ],
+ "install_type": "git-clone",
+ "description": "Customize the information saved in file- and folder names. Use the values of sampler parameters as part of file or folder names. Save your positive & negative prompt as entries in a JSON (text) file, in each folder.\n[w/This custom node has not been maintained for a long time. Please use an alternative node from the default channel.]"
+ },
+ {
+ "author": "ExponentialML",
+ "title": "ComfyUI_ELLA [DEPRECATED]",
+ "reference": "https://github.com/ExponentialML/ComfyUI_ELLA",
+ "files": [
+ "https://github.com/ExponentialML/ComfyUI_ELLA"
+ ],
+ "install_type": "git-clone",
+ "description": "ComfyUI Implementaion of ELLA: Equip Diffusion Models with LLM for Enhanced Semantic Alignment.[w/Officially implemented here: [a/https://github.com/TencentQQGYLab/ComfyUI-ELLA](https://github.com/TencentQQGYLab/ComfyUI-ELLA)]"
+ },
+ {
+ "author": "shinich39",
+ "title": "comfyui-text-pipe-39 [DEPRECATED]",
+ "reference": "https://github.com/shinich39/comfyui-text-pipe-39",
+ "files": [
+ "https://github.com/shinich39/comfyui-text-pipe-39"
+ ],
+ "install_type": "git-clone",
+ "description": "Modify text by condition."
+ },
+ {
+ "author": "Big Idea Technology",
+ "title": "Image Text Overlay Node for ComfyUI [DEPRECATED]",
+ "reference": "https://github.com/Big-Idea-Technology/ComfyUI_Image_Text_Overlay",
+ "files": [
+ "https://github.com/Big-Idea-Technology/ComfyUI_Image_Text_Overlay"
+ ],
+ "install_type": "git-clone",
+ "description": "Please note that the ImageTextOverlay project is no longer supported and has been moved to a new repository. For ongoing developments, contributions, and issues, please refer to the new repository at: [a/https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools](https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools)"
+ },
+ {
+ "author": "mlinmg",
+ "title": "LaMa Preprocessor [DEPRECATED]",
+ "reference": "https://github.com/mlinmg/ComfyUI-LaMA-Preprocessor",
+ "files": [
+ "https://github.com/mlinmg/ComfyUI-LaMA-Preprocessor"
+ ],
+ "install_type": "git-clone",
+ "description": "A LaMa prerocessor for ComfyUI. This preprocessor finally enable users to generate coherent inpaint and outpaint prompt-free. The best results are given on landscapes, not so much in drawings/animation."
+ },
+ {
+ "author": "CapsAdmin",
+ "title": "ComfyUI-Euler-Smea-Dyn-Sampler [DEPRECATED]",
+ "reference": "https://github.com/CapsAdmin/ComfyUI-Euler-Smea-Dyn-Sampler",
+ "files": [
+ "https://github.com/CapsAdmin/ComfyUI-Euler-Smea-Dyn-Sampler"
+ ],
+ "install_type": "git-clone",
+ "description": "Just a comfyui version of [a/Euler Smea Dyn Sampler](https://github.com/Koishi-Star/Euler-Smea-Dyn-Sampler). It adds the sampler directly to existing samplers."
+ },
+ {
+ "author": "BlakeOne",
+ "title": "ComfyUI FastImageListToImageBatch [REMOVED]",
+ "reference": "https://github.com/BlakeOne/ComfyUI-FastImageListToImageBatch",
+ "files": [
+ "https://github.com/BlakeOne/ComfyUI-FastImageListToImageBatch"
+ ],
+ "install_type": "git-clone",
+ "description": "Quickly convert a list of images to a batch of images. All images must be the same size. Great for long videos."
+ },
+ {
+ "author": "ggpid",
+ "title": "idpark_custom_node [REMOVED]",
+ "reference": "https://github.com/ggpid/idpark_custom_node",
+ "files": [
+ "https://github.com/ggpid/idpark_custom_node"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Load Image from S3, Save Image to S3, Generate SAM, Generate FastSAM, Cut by Mask fixed"
+ },
+ {
+ "author": "Davemane42",
+ "title": "Visual Area Conditioning / Latent composition [DEPRECATED]",
+ "reference": "https://github.com/Davemane42/ComfyUI_Dave_CustomNode",
+ "files": [
+ "https://github.com/Davemane42/ComfyUI_Dave_CustomNode"
+ ],
+ "install_type": "git-clone",
+ "description": "This tool provides custom nodes that allow visualization and configuration of area conditioning and latent composite."
+ },
+ {
+ "author": "laksjdjf",
+ "title": "LoRA-Merger-ComfyUI [DEPRECATED]",
+ "reference": "https://github.com/laksjdjf/LoRA-Merger-ComfyUI",
+ "files": [
+ "https://github.com/laksjdjf/LoRA-Merger-ComfyUI"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Load LoRA Weight Only, Load LoRA from Weight, Merge LoRA, Save LoRA. This extension provides nodes for merging LoRA."
+ },
+ {
+ "author": "kinfolk0117",
+ "title": "TiledIPAdapter [DEPRECATED]",
+ "reference": "https://github.com/kinfolk0117/ComfyUI_TiledIPAdapter",
+ "files": [
+ "https://github.com/kinfolk0117/ComfyUI_TiledIPAdapter"
+ ],
+ "install_type": "git-clone",
+ "description": "Proof of concent on how to use IPAdapter to control tiled upscaling. NOTE: You need to have 'ComfyUI_IPAdapter_plus' installed."
+ },
+ {
+ "author": "XINZHANG-ops",
+ "title": "comfyui-xin-nodes [REMOVED]",
+ "reference": "https://github.com/XINZHANG-ops/comfyui-xin-nodes",
+ "files": [
+ "https://github.com/XINZHANG-ops/comfyui-xin-nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:ImageSizeClassifer, RandomInt, ShowValue"
+ },
+ {
+ "author": "ssitu",
+ "title": "NestedNodeBuilder [DEPRECATED]",
+ "reference": "https://github.com/ssitu/ComfyUI_NestedNodeBuilder",
+ "files": [
+ "https://github.com/ssitu/ComfyUI_NestedNodeBuilder"
+ ],
+ "install_type": "git-clone",
+ "description": "This extension provides the ability to combine multiple nodes into a single node.\nNOTE:An identical feature now exists in ComfyUI. Additionally, this extension is largely broken with the recent versions of the codebase, so please use the built-in feature for group nodes."
+ },
+ {
+ "author": "ccvv804",
+ "title": "ComfyUI StableCascade using diffusers for Low VRAM [DEPRECATED]",
+ "reference": "https://github.com/ccvv804/ComfyUI-DiffusersStableCascade-LowVRAM",
+ "files": [
+ "https://github.com/ccvv804/ComfyUI-DiffusersStableCascade-LowVRAM"
+ ],
+ "install_type": "git-clone",
+ "description": "Works with RTX 4070ti 12GB.\nSimple quick wrapper for [a/https://huggingface.co/stabilityai/stable-cascade](https://huggingface.co/stabilityai/stable-cascade)\nComfy is going to implement this properly soon, this repo is just for quick testing for the impatient!"
+ },
+ {
+ "author": "kijai",
+ "title": "ComfyUI StableCascade using diffusers [DEPRECATED]",
+ "reference": "https://github.com/kijai/ComfyUI-DiffusersStableCascade",
+ "files": [
+ "https://github.com/kijai/ComfyUI-DiffusersStableCascade"
+ ],
+ "install_type": "git-clone",
+ "description": "Simple quick wrapper for [a/https://huggingface.co/stabilityai/stable-cascade](https://huggingface.co/stabilityai/stable-cascade)\nComfy is going to implement this properly soon, this repo is just for quick testing for the impatient!"
+ },
+ {
+ "author": "solarpush",
+ "title": "comfyui_sendimage_node [REMOVED]",
+ "reference": "https://github.com/solarpush/comfyui_sendimage_node",
+ "files": [
+ "https://github.com/solarpush/comfyui_sendimage_node"
+ ],
+ "install_type": "git-clone",
+ "description": "Send images to the pod."
+ },
+ {
+ "author": "azazeal04",
+ "title": "ComfyUI-Styles",
+ "reference": "https://github.com/azazeal04/ComfyUI-Styles",
+ "files": [
+ "https://github.com/azazeal04/ComfyUI-Styles"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Anime_Styler, Fantasy_Styler, Gothic_Styler, Line_Art_Styler, Movie_Poster_Styler, Punk_Styler, Travel_Poster_Styler. This extension offers 8 art style nodes, each of which includes approximately 50 individual style variations.\n\nNOTE: Due to the dynamic nature of node name definitions, ComfyUI-Manager cannot recognize the node list from this extension. The Missing nodes and Badge features are not available for this extension.\nNOTE: This extension is removed. Users who were previously using this node should install ComfyUI-styles-all instead."
+ },
+ {
+ "author": "hnmr293",
+ "title": "ComfyUI-nodes-hnmr",
+ "reference": "https://github.com/hnmr293/ComfyUI-nodes-hnmr",
+ "files": [
+ "https://github.com/hnmr293/ComfyUI-nodes-hnmr"
+ ],
+ "install_type": "git-clone",
+ "description": "Provide various custom nodes for Latent, Sampling, Model, Loader, Image, Text"
+ },
+ {
+ "author": "bvhari",
+ "title": "ComfyUI_PerpNeg [WIP]",
+ "reference": "https://github.com/bvhari/ComfyUI_PerpNeg",
+ "files": [
+ "https://github.com/bvhari/ComfyUI_PerpNeg"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: KSampler (Advanced + Perp-Neg). Implementation of [a/Perp-Neg](https://perp-neg.github.io/)\nIncludes Tonemap and CFG Rescale optionsComfyUI custom node to convert latent to RGB.[w/WARNING: Experimental code, might have incompatibilities and edge cases.]\nNOTE: In the latest version of ComfyUI, this extension is included as built-in."
+ },
+ {
+ "author": "laksjdjf",
+ "title": "IPAdapter-ComfyUI",
+ "reference": "https://github.com/laksjdjf/IPAdapter-ComfyUI",
+ "files": [
+ "https://github.com/laksjdjf/IPAdapter-ComfyUI"
+ ],
+ "install_type": "git-clone",
+ "description": "This custom nodes provides loader of the IP-Adapter model.[w/NOTE: To use this extension node, you need to download the [a/ip-adapter_sd15.bin](https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15.bin) file and place it in the %%**custom_nodes/IPAdapter-ComfyUI/models**%% directory. Additionally, you need to download the 'Clip vision model' from the 'Install models' menu as well.] NOTE: Use ComfyUI_IPAdapter_plus instead of this."
+ },
+ {
+ "author": "RockOfFire",
+ "title": "CR Animation Nodes",
+ "reference": "https://github.com/RockOfFire/CR_Animation_Nodes",
+ "files": [
+ "https://github.com/RockOfFire/CR_Animation_Nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "A comprehensive suite of nodes to enhance your animations. These nodes include some features similar to Deforum, and also some new ideas. NOTE: This node is merged into Comfyroll Custom Nodes."
+ },
+ {
+ "author": "tkoenig89",
+ "title": "Load Image with metadata",
+ "reference": "https://github.com/tkoenig89/ComfyUI_Load_Image_With_Metadata",
+ "files": [
+ "https://github.com/tkoenig89/ComfyUI_Load_Image_With_Metadata"
+ ],
+ "install_type": "git-clone",
+ "description": "A custom node for comfy ui to read generation data from images (prompt, seed, size...). This could be used when upscaling generated images to use the original prompt and seed."
+ },
+ {
+ "author": "LucianoCirino",
+ "title": "Efficiency Nodes for ComfyUI [LEGACY]",
+ "reference": "https://github.com/LucianoCirino/efficiency-nodes-comfyui",
+ "files": [
+ "https://github.com/LucianoCirino/efficiency-nodes-comfyui"
+ ],
+ "install_type": "git-clone",
+ "description": "A collection of ComfyUI custom nodes to help streamline workflows and reduce total node count. NOTE: This repository is the original repository but is no longer maintained. Please use the forked version by jags."
+ },
+ {
+ "author": "GeLi1989",
+ "title": "roop nodes for ComfyUI",
+ "reference": "https://github.com/GeLi1989/GK-beifen-ComfyUI_roop",
+ "files": [
+ "https://github.com/GeLi1989/GK-beifen-ComfyUI_roop"
+ ],
+ "install_type": "git-clone",
+ "description": "ComfyUI nodes for the roop A1111 webui script. NOTE: Need to download model to use this node. NOTE: This is removed."
+ },
+ {
+ "author": "ProDALOR",
+ "title": "comfyui_u2net",
+ "reference": "https://github.com/ProDALOR/comfyui_u2net",
+ "files": [
+ "https://github.com/ProDALOR/comfyui_u2net"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: Load U2Net model, U2Net segmentation, To mask, Segmentation to mask, U2NetBaseNormalization, U2NetMaxNormalization. NOTE: This is removed."
+ },
+ {
+ "author": "FizzleDorf",
+ "title": "AIT",
+ "reference": "https://github.com/FizzleDorf/AIT",
+ "files": [
+ "https://github.com/FizzleDorf/AIT"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: Load AITemplate, Load AITemplate (ControlNet), VAE Decode (AITemplate), VAE Encode (AITemplate), VAE Encode (AITemplate, Inpaint). Experimental usage of AITemplate. NOTE: This is deprecated extension. Use ComfyUI-AIT instead of this."
+ },
+ {
+ "author": "chenbaiyujason",
+ "title": "sc-node-comfyui",
+ "reference": "https://github.com/chenbaiyujason/sc-node-comfyui",
+ "files": [
+ "https://github.com/chenbaiyujason/sc-node-comfyui"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes for GPT interaction and text manipulation"
+ },
+ {
+ "author": "asd417",
+ "title": "CheckpointTomeLoader",
+ "reference": "https://github.com/asd417/tomeSD_for_Comfy",
+ "files": [
+ "https://github.com/ltdrdata/ComfyUI-tomeSD-installer"
+ ],
+ "install_type": "git-clone",
+ "description": "tomeSD(https://github.com/dbolya/tomesd) applied to ComfyUI stable diffusion UI using custom node. Note:In vanilla ComfyUI, the TomePatchModel node is provided as a built-in feature. "
+ },
+ {
+ "author": "gamert",
+ "title": "ComfyUI_tagger",
+ "reference": "https://github.com/gamert/ComfyUI_tagger",
+ "pip": ["gradio"],
+ "files": [
+ "https://github.com/gamert/ComfyUI_tagger"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: CLIPTextEncodeTaggerDD, ImageTaggerDD. WARNING: Installing the current version is causing an issue where ComfyUI fails to start.
"
+ },
+ {
+ "author": "Fannovel16",
+ "title": "ControlNet Preprocessors",
+ "reference": "https://github.com/Fannovel16/comfy_controlnet_preprocessors",
+ "files": [
+ "https://github.com/Fannovel16/comfy_controlnet_preprocessors"
+ ],
+ "install_type": "git-clone",
+ "description": "ControlNet Preprocessors. (To use this extension, you need to download the required model file from Install Models ) NOTE: Please uninstall this custom node and instead install 'ComfyUI's ControlNet Auxiliary Preprocessors' from the default channel. To use nodes belonging to controlnet v1 such as Canny_Edge_Preprocessor, MIDAS_Depth_Map_Preprocessor, Uniformer_SemSegPreprocessor, etc. , you need to copy the config.yaml.example file to config.yaml and change skip_v1: True to skip_v1: False .
"
+ },
+ {
+ "author": "comfyanonymous",
+ "title": "ComfyUI_experiments/sampler_tonemap",
+ "reference": "https://github.com/comfyanonymous/ComfyUI_experiments",
+ "files": [
+ "https://github.com/comfyanonymous/ComfyUI_experiments/raw/master/sampler_tonemap.py"
+ ],
+ "install_type": "copy",
+ "description": "ModelSamplerTonemapNoiseTest a node that makes the sampler use a simple tonemapping algorithm to tonemap the noise. It will let you use higher CFG without breaking the image. To using higher CFG lower the multiplier value. Similar to Dynamic Thresholding extension of A1111. "
+ },
+ {
+ "author": "comfyanonymous",
+ "title": "ComfyUI_experiments/sampler_rescalecfg",
+ "reference": "https://github.com/comfyanonymous/ComfyUI_experiments",
+ "files": [
+ "https://github.com/comfyanonymous/ComfyUI_experiments/raw/master/sampler_rescalecfg.py"
+ ],
+ "install_type": "copy",
+ "description": "RescaleClassifierFreeGuidance improves the problem of images being degraded by high CFG.To using higher CFG lower the multiplier value. Similar to Dynamic Thresholding extension of A1111. ( reference paper)It is recommended to use the integrated custom nodes in the default channel for update support rather than installing individual nodes.
"
+ },
+ {
+ "author": "comfyanonymous",
+ "title": "ComfyUI_experiments/advanced_model_merging",
+ "reference": "https://github.com/comfyanonymous/ComfyUI_experiments",
+ "files": [
+ "https://github.com/comfyanonymous/ComfyUI_experiments/raw/master/advanced_model_merging.py"
+ ],
+ "install_type": "copy",
+ "description": "This provides a detailed model merge feature based on block weight. ModelMergeBlock, in vanilla ComfyUI, allows for adjusting the ratios of input/middle/output layers, but this node provides ratio adjustments for all blocks within each layer.It is recommended to use the integrated custom nodes in the default channel for update support rather than installing individual nodes.
"
+ },
+ {
+ "author": "comfyanonymous",
+ "title": "ComfyUI_experiments/sdxl_model_merging",
+ "reference": "https://github.com/comfyanonymous/ComfyUI_experiments",
+ "files": [
+ "https://github.com/comfyanonymous/ComfyUI_experiments/raw/master/sdxl_model_merging.py"
+ ],
+ "install_type": "copy",
+ "description": "These nodes provide the capability to merge SDXL base models.It is recommended to use the integrated custom nodes in the default channel for update support rather than installing individual nodes.
"
+ },
+ {
+ "author": "comfyanonymous",
+ "title": "ComfyUI_experiments/reference_only",
+ "reference": "https://github.com/comfyanonymous/ComfyUI_experiments",
+ "files": [
+ "https://github.com/comfyanonymous/ComfyUI_experiments/raw/master/reference_only.py"
+ ],
+ "install_type": "copy",
+ "description": "This node provides functionality corresponding to Reference only in Controlnet.It is recommended to use the integrated custom nodes in the default channel for update support rather than installing individual nodes.
"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/node_db/legacy/extension-node-map.json b/custom_nodes/ComfyUI-Manager/node_db/legacy/extension-node-map.json
new file mode 100644
index 000000000..9e26dfeeb
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/legacy/extension-node-map.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/node_db/legacy/model-list.json b/custom_nodes/ComfyUI-Manager/node_db/legacy/model-list.json
new file mode 100644
index 000000000..8e3e1dc48
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/legacy/model-list.json
@@ -0,0 +1,3 @@
+{
+ "models": []
+}
diff --git a/custom_nodes/ComfyUI-Manager/node_db/new/alter-list.json b/custom_nodes/ComfyUI-Manager/node_db/new/alter-list.json
new file mode 100644
index 000000000..072c3bb5e
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/new/alter-list.json
@@ -0,0 +1,4 @@
+{
+ "items": [
+ ]
+}
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/node_db/new/custom-node-list.json b/custom_nodes/ComfyUI-Manager/node_db/new/custom-node-list.json
new file mode 100644
index 000000000..72f9e2906
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/new/custom-node-list.json
@@ -0,0 +1,702 @@
+{
+ "custom_nodes": [
+ {
+ "author": "#NOTICE_1.13",
+ "title": "NOTICE: This channel is not the default channel.",
+ "reference": "https://github.com/ltdrdata/ComfyUI-Manager","files": [],
+ "install_type": "git-clone",
+ "description": "If you see this message, your ComfyUI-Manager is outdated.\nRecent channel provides only the list of the latest nodes. If you want to find the complete node list, please go to the Default channel.\nMaking LoRA has never been easier!"
+ },
+
+
+
+
+ {
+ "author": "Extraltodeus",
+ "title": "pre_cfg_comfy_nodes_for_ComfyUI",
+ "id": "precfg",
+ "reference": "https://github.com/Extraltodeus/pre_cfg_comfy_nodes_for_ComfyUI",
+ "files": [
+ "https://github.com/Extraltodeus/pre_cfg_comfy_nodes_for_ComfyUI"
+ ],
+ "install_type": "git-clone",
+ "description": "A set of nodes to prepare the noise predictions before the CFG function"
+ },
+ {
+ "author": "ZZXYWQ",
+ "title": "ZZX Nodes",
+ "id": "ZZXYWQ",
+ "reference": "https://github.com/ZZXYWQ/ComfyUI-ZZXYWQ",
+ "files": [
+ "https://github.com/ZZXYWQ/ComfyUI-ZZXYWQ"
+ ],
+ "install_type": "git-clone",
+ "description": "Node(s): VideoFormatConverter(VFC)"
+ },
+ {
+ "author": "smthemex",
+ "title": "ComfyUI_AnyDoor",
+ "id": "ComfyUI_AnyDoor",
+ "reference": "https://github.com/smthemex/ComfyUI_AnyDoor",
+ "files": [
+ "https://github.com/smthemex/ComfyUI_AnyDoor"
+ ],
+ "install_type": "git-clone",
+ "description": "You can use anydoor, change clothes or object..."
+ },
+ {
+ "author": "Haoming02",
+ "title": "ComfyUI Node Beautify",
+ "reference": "https://github.com/Haoming02/comfyui-node-beautify",
+ "files": [
+ "https://github.com/Haoming02/comfyui-node-beautify"
+ ],
+ "install_type": "git-clone",
+ "description": "This is an Extension for ComfyUI, which helps formatting the workflow."
+ },
+ {
+ "author": "adigayung",
+ "title": "ComfyUI-Translator",
+ "reference": "https://github.com/adigayung/ComfyUI-Translator",
+ "files": [
+ "https://github.com/adigayung/ComfyUI-Translator"
+ ],
+ "install_type": "git-clone",
+ "description": "Auto translate all languages to english"
+ },
+ {
+ "author": "christian-byrne",
+ "title": "comfyui-default-values-manager",
+ "reference": "https://github.com/christian-byrne/comfyui-default-values-manager",
+ "files": [
+ "https://github.com/christian-byrne/comfyui-default-values-manager"
+ ],
+ "install_type": "git-clone",
+ "description": "comfyui-default-values-manager"
+ },
+ {
+ "author": "vivax3794",
+ "title": "ComfyUI-Sub-Nodes",
+ "reference": "https://github.com/vivax3794/ComfyUI-Sub-Nodes",
+ "files": [
+ "https://github.com/vivax3794/ComfyUI-Sub-Nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Creating subgraph and Calling subgraphs."
+ },
+ {
+ "author": "HECer",
+ "title": "ComfyUI-FilePathCreator",
+ "reference": "https://github.com/HECer/ComfyUI-FilePathCreator",
+ "files": [
+ "https://github.com/HECer/ComfyUI-FilePathCreator"
+ ],
+ "install_type": "git-clone",
+ "description": "The ComfyUI-FilePathCreator is a custom node extension for ComfyUI designed to generate dynamic filenames based on user-defined parameters. This node helps streamline the process of creating organized and timestamped filenames, ideal for saving output files in a structured manner."
+ },
+ {
+ "author": "mullakhmetov",
+ "title": "comfyui_dynamic_util_nodes",
+ "reference": "https://github.com/mullakhmetov/comfyui_dynamic_util_nodes",
+ "files": [
+ "https://github.com/mullakhmetov/comfyui_dynamic_util_nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "ComfyS3 helpful util nodes for dynamic workflows"
+ },
+ {
+ "author": "wTechArtist",
+ "title": "ComfyUI-CustomNodes",
+ "reference": "https://github.com/wTechArtist/ComfyUI-CustomNodes",
+ "files": [
+ "https://github.com/wTechArtist/ComfyUI-CustomNodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Image Blending Mode Mask"
+ },
+ {
+ "author": "bradsec",
+ "title": "ComfyUI_StringTools",
+ "id": "stringtools",
+ "reference": "https://github.com/bradsec/ComfyUI_StringTools",
+ "files": [
+ "https://github.com/bradsec/ComfyUI_StringTools"
+ ],
+ "install_type": "git-clone",
+ "description": "Some simple string tools to modify text and strings in ComfyUI."
+ },
+ {
+ "author": "bluevisor",
+ "title": "ComfyUI_PS_Blend_Node",
+ "reference": "https://github.com/bluevisor/ComfyUI_PS_Blend_Node",
+ "files": [
+ "https://github.com/bluevisor/ComfyUI_PS_Blend_Node"
+ ],
+ "install_type": "git-clone",
+ "description": "This repository contains a simple custom node for ComfyUI that implements familiar PS-style blend modes using PyTorch. The PSBlendNode allows you to blend two images together using a variety of blend modes and an opacity parameter."
+ },
+ {
+ "author": "longgui0318",
+ "title": "comfyui-common-util",
+ "id": "common-util",
+ "reference": "https://github.com/longgui0318/comfyui-common-util",
+ "files": [
+ "https://github.com/longgui0318/comfyui-common-util"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Init Layer Info Array, Added Layer Info To Array, Layer Info Array Fuse, Layer Image Seleted, Layer Images IPAdapter Advanced, Enhanced Random Light Source"
+ },
+ {
+ "author": "kijai",
+ "title": "ComfyUI-KwaiKolorsWrapper",
+ "id": "kwaikolors",
+ "reference": "https://github.com/kijai/ComfyUI-KwaiKolorsWrapper",
+ "files": [
+ "https://github.com/kijai/ComfyUI-KwaiKolorsWrapper"
+ ],
+ "install_type": "git-clone",
+ "description": "Rudimentary wrapper that runs [a/Kwai-Kolors](https://huggingface.co/Kwai-Kolors/Kolors) text2image pipeline using diffusers."
+ },
+ {
+ "author": "Smuzzies",
+ "title": "comfyui_meme_maker",
+ "reference": "https://github.com/Smuzzies/comfyui_meme_maker",
+ "files": [
+ "https://github.com/Smuzzies/comfyui_meme_maker"
+ ],
+ "install_type": "git-clone",
+ "description": "Meme Maker Node for ComfyUI."
+ },
+ {
+ "author": "kijai",
+ "title": "ComfyUI-LivePortraitKJ",
+ "id": "liveportrait-kijai",
+ "reference": "https://github.com/kijai/ComfyUI-LivePortraitKJ",
+ "files": [
+ "https://github.com/kijai/ComfyUI-LivePortraitKJ"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes for [a/LivePortrait](https://github.com/KwaiVGI/LivePortrait), insightface is required"
+ },
+ {
+ "author": "metncelik",
+ "title": "comfyui_met_suite",
+ "reference": "https://github.com/metncelik/comfyui_met_suite",
+ "files": [
+ "https://github.com/metncelik/comfyui_met_suite"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes: Primitive BBOX, BBOX Padding, BBOX Resize, ImageResize KeepRatio."
+ },
+ {
+ "author": "shadowcz007",
+ "title": "comfyui-liveportrait",
+ "id": "liveportrait",
+ "reference": "https://github.com/shadowcz007/comfyui-liveportrait",
+ "files": [
+ "https://github.com/shadowcz007/comfyui-liveportrait"
+ ],
+ "install_type": "git-clone",
+ "description": "The ComfyUI version of [a/LivePortrait](https://github.com/KwaiVGI/LivePortrait)."
+ },
+ {
+ "author": "Tritant",
+ "title": "ComfyUI-CreaPrompt",
+ "id": "creaprompt",
+ "reference": "https://github.com/tritant/ComfyUI_CreaPrompt",
+ "files": [
+ "https://github.com/tritant/ComfyUI_CreaPrompt"
+ ],
+ "install_type": "git-clone",
+ "description": "Generate random prompts easily."
+ },
+ {
+ "author": "kijai",
+ "title": "ComfyUI-MimicMotionWrapper",
+ "id": "mimicmotion-kijai",
+ "reference": "https://github.com/kijai/ComfyUI-MimicMotionWrapper",
+ "files": [
+ "https://github.com/kijai/ComfyUI-MimicMotionWrapper"
+ ],
+ "install_type": "git-clone",
+ "description": "Optimized wrapper nodes for MimicMotion: [a/https://github.com/tencent/MimicMotion](https://github.com/tencent/MimicMotion)"
+ },
+ {
+ "author": "kijai",
+ "title": "ComfyUI-OpenDiTWrapper",
+ "id": "opendit-kijai",
+ "reference": "https://github.com/kijai/ComfyUI-OpenDiTWrapper",
+ "files": [
+ "https://github.com/kijai/ComfyUI-OpenDiTWrapper"
+ ],
+ "install_type": "git-clone",
+ "description": "Wrapper nodes for OpenDiT: [a/OpenDiT](https://github.com/NUS-HPC-AI-Lab/OpenDiT/), supports Open-Sora t2i and i2i"
+ },
+ {
+ "author": "smthemex",
+ "title": "ComfyUI_MS_Diffusion",
+ "id": "MS_Diffusion",
+ "reference": "https://github.com/smthemex/ComfyUI_MS_Diffusion",
+ "files": [
+ "https://github.com/smthemex/ComfyUI_MS_Diffusion"
+ ],
+ "install_type": "git-clone",
+ "description": "You can using MS-diffusion make story in comfyUI."
+ },
+ {
+ "author": "christian-byrne",
+ "title": "audio-separation-nodes-comfyui",
+ "reference": "https://github.com/christian-byrne/audio-separation-nodes-comfyui",
+ "files": [
+ "https://github.com/christian-byrne/audio-separation-nodes-comfyui"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:AudioSeparation, AudioCrop, AudioCombine, AudioTempoMatch."
+ },
+ {
+ "author": "yiwangsimple",
+ "title": "comfy-groqchat",
+ "reference": "https://github.com/yiwangsimple/ComfyUI_GroqChat",
+ "files": [
+ "https://github.com/yiwangsimple/ComfyUI_GroqChat"
+ ],
+ "install_type": "git-clone",
+ "description": "Content generation with open source models in comfyui via graq api implementation."
+ },
+ {
+ "author": "AIFSH",
+ "title": "ComfyUI-MimicMotion",
+ "id": "mimicmotion-aifsh",
+ "reference": "https://github.com/AIFSH/ComfyUI-MimicMotion",
+ "files": [
+ "https://github.com/AIFSH/ComfyUI-MimicMotion"
+ ],
+ "install_type": "git-clone",
+ "description": "a comfyui custom node for [a/MimicMotion](https://github.com/Tencent/MimicMotion)"
+ },
+ {
+ "author": "AIFSH",
+ "title": "ComfyUI-DiffSynth-Studio",
+ "id": "diffsynth-studio",
+ "reference": "https://github.com/AIFSH/ComfyUI-DiffSynth-Studio",
+ "files": [
+ "https://github.com/AIFSH/ComfyUI-DiffSynth-Studio"
+ ],
+ "install_type": "git-clone",
+ "description": "make [a/DiffSynth-Studio](https://github.com/modelscope/DiffSynth-Studio) available in ComfyUI"
+ },
+ {
+ "author": "1038lab",
+ "title": "ComfyUI-latentSizeSelector",
+ "id": "ComfyUI-latentSizeSelector",
+ "reference": "https://github.com/1038lab/ComfyUI_LatentSizeSelector",
+ "files": [
+ "https://github.com/1038lab/ComfyUI_LatentSizeSelector"
+ ],
+ "install_type": "git-clone",
+ "description": "You'll get a new node Latent Size Selector, you can pick the x and y sizes from a list."
+ },
+ {
+ "author": "AIFSH",
+ "title": "ComfyUI-I2V-Adapter",
+ "id": "i2v-adapter",
+ "reference": "https://github.com/AIFSH/ComfyUI-I2V-Adapter",
+ "files": [
+ "https://github.com/AIFSH/ComfyUI-I2V-Adapter"
+ ],
+ "install_type": "git-clone",
+ "description": "a comfyui custom node for [a/I2V-Adapter](https://github.com/KwaiVGI/I2V-Adapter)"
+ },
+ {
+ "author": "DeJoker",
+ "title": "Pipeline Parallel ComfyUI",
+ "reference": "https://github.com/DeJoker/pipeline-parallel-comfy",
+ "files": [
+ "https://github.com/DeJoker/pipeline-parallel-comfy"
+ ],
+ "install_type": "git-clone",
+ "description": "provide extra api to run prompt request with parallel execution of independent node"
+ },
+ {
+ "author": "AIFSH",
+ "title": "ComfyUI-MARS5-TTS",
+ "id": "mars5-tts",
+ "reference": "https://github.com/AIFSH/ComfyUI-MARS5-TTS",
+ "files": [
+ "https://github.com/AIFSH/ComfyUI-MARS5-TTS"
+ ],
+ "install_type": "git-clone",
+ "description": "a comfyui custom node for [a/MARS5-TTS](https://github.com/Camb-ai/MARS5-TTS)"
+ },
+ {
+ "author": "MrSamSeen",
+ "title": "ComfyUI_SSStereoscope",
+ "id": "ssstereoscope",
+ "reference": "https://github.com/MrSamSeen/ComfyUI_SSStereoscope",
+ "files": [
+ "https://github.com/MrSamSeen/ComfyUI_SSStereoscope"
+ ],
+ "install_type": "git-clone",
+ "description": "The SideBySide Node is a powerful tool designed for ComfyUI to generate stereoscopic images. It takes a base image and a corresponding depth map as inputs and produces a combined image that simulates a 3D effect when viewed with appropriate equipment."
+ },
+ {
+ "author": "jroc22",
+ "title": "ComfyUI-CSV-prompt-builder",
+ "id": "csv-prompt-builder",
+ "reference": "https://github.com/jroc22/ComfyUI-CSV-prompt-builder",
+ "files": [
+ "https://github.com/jroc22/ComfyUI-CSV-prompt-builder"
+ ],
+ "install_type": "git-clone",
+ "description": "This is a simple node for creating prompts using a .csv file. I created this node as an easy way to output different prompts each time a workflow is run."
+ },
+ {
+ "author": "ImmortalPie",
+ "title": "PonySwitch Node",
+ "reference": "https://github.com/ImmortalPie/ComfyUI-PonySwitch",
+ "files": [
+ "https://github.com/ImmortalPie/ComfyUI-PonySwitch/raw/main/PonySwitch.py"
+ ],
+ "install_type": "copy",
+ "description": "The PonySwitch node is a custom node for ComfyUI that modifies prompts based on a toggle switch and adds configurable pony tags."
+ },
+ {
+ "author": "SEkINVR",
+ "title": "ComfyUI SaveAS",
+ "id": "saveas",
+ "reference": "https://github.com/SEkINVR/ComfyUI-SaveAs",
+ "files": [
+ "https://github.com/SEkINVR/ComfyUI-SaveAs"
+ ],
+ "install_type": "git-clone",
+ "description": "This custom node for ComfyUI allows you to save images in multiple formats, including PNG, JPG, WebP, and ICO.\n[w/ComfyUI-Save-Multi-Format is renamed to SaveAs. Remove previous one and reinstall to this.]"
+ },
+ {
+ "author": "Fuou Marinas",
+ "title": "ComfyUI-FirstOrderMM",
+ "id": "fomm",
+ "reference": "https://github.com/FuouM/ComfyUI-FirstOrderMM",
+ "files": [
+ "https://github.com/FuouM/ComfyUI-FirstOrderMM"
+ ],
+ "install_type": "git-clone",
+ "description": "Run [a/First Order Motion Model](https://github.com/AliaksandrSiarohin/first-order-model) for Image Animation in ComfyUI."
+ },
+ {
+ "author": "my-opencode",
+ "title": "ComfyUI_IndustrialMagick",
+ "id": "industrialmagick",
+ "reference": "https://github.com/my-opencode/ComfyUI_IndustrialMagick",
+ "files": [
+ "https://github.com/my-opencode/ComfyUI_IndustrialMagick"
+ ],
+ "install_type": "git-clone",
+ "description": "[a/ImageMagick](https://imagemagick.org/index.php) nodes for ComfyUI. Adds nodes to call ImageMagick subprocesses from ComfyUI.\nRequirements: [a/ImagMagick7](https://imagemagick.org/script/download.php), 'magick' command in your CLI environment."
+ },
+ {
+ "author": "my-opencode",
+ "title": "ComfyUI_KSamplerTimer",
+ "id": "ksamplertimer",
+ "reference": "https://github.com/my-opencode/ComfyUI_KSamplerTimer",
+ "files": [
+ "https://github.com/my-opencode/ComfyUI_KSamplerTimer"
+ ],
+ "install_type": "git-clone",
+ "description": "A custom node that returns the generation time of the KSampler. Intended for benchmarking or debugging."
+ },
+ {
+ "author": "licyk",
+ "title": "ComfyUI-Restart-Sampler",
+ "id": "restart-sampler-licyk",
+ "reference": "https://github.com/licyk/ComfyUI-Restart-Sampler",
+ "files": [
+ "https://github.com/licyk/ComfyUI-Restart-Sampler"
+ ],
+ "install_type": "git-clone",
+ "description": "This extension is a node that directly expands the functionality of KSampler, rather than being in the form of a custom node. [w/Workflows created using this feature are not compatible with other users.]"
+ },
+ {
+ "author": "pamparamm",
+ "title": "ComfyUI Vectorscope CC",
+ "id": "vectorscope",
+ "reference": "https://github.com/pamparamm/ComfyUI-vectorscope-cc",
+ "files": [
+ "https://github.com/pamparamm/ComfyUI-vectorscope-cc"
+ ],
+ "install_type": "git-clone",
+ "description": "ComfyUI port of a wonderful extension [a/SD Webui Vectorscope CC by Haoming02](https://github.com/Haoming02/sd-webui-vectorscope-cc).\nBased on (and probably incompatible with) [a/ComfyUI Diffusion Color Grading by Haoming02](https://github.com/Haoming02/comfyui-diffusion-cg)."
+ },
+ {
+ "author": "yuvraj108c",
+ "title": "ComfyUI YoloNasPose Tensorrt",
+ "id": "yolonaspose-tensorrt",
+ "reference": "https://github.com/yuvraj108c/ComfyUI-YoloNasPose-Tensorrt",
+ "files": [
+ "https://github.com/yuvraj108c/ComfyUI-YoloNasPose-Tensorrt"
+ ],
+ "install_type": "git-clone",
+ "description": "This repo provides a ComfyUI Custom Node implementation of [a/YOLO-NAS-POSE](https://github.com/Deci-AI/super-gradients), powered by TensorRT for ultra fast pose estimation. It has been adapted to work with openpose controlnet (experimental)"
+ },
+ {
+ "author": "GreenLandisaLie",
+ "title": "AuraSR-ComfyUI",
+ "id": "aurasr-greenlandisalie",
+ "reference": "https://github.com/GreenLandisaLie/AuraSR-ComfyUI",
+ "files": [
+ "https://github.com/GreenLandisaLie/AuraSR-ComfyUI"
+ ],
+ "install_type": "git-clone",
+ "description": "ComfyUI implementation of [a/Aura-SR](https://github.com/fal-ai/aura-sr)"
+ },
+ {
+ "author": "mingqizhang",
+ "title": "ComfyUI_InSPyResNet_zmq",
+ "id": "inspy",
+ "reference": "https://github.com/mingqizhang/ComfyUI_InSPyResNet_zmq",
+ "files": [
+ "https://github.com/mingqizhang/ComfyUI_InSPyResNet_zmq"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:INSPY removebg ModelLoader, INSPY RMBG"
+ },
+ {
+ "author": "hwhaocool",
+ "title": "ComfyUI-Select-Any",
+ "id": "select-any",
+ "reference": "https://github.com/hwhaocool/ComfyUI-Select-Any",
+ "files": [
+ "https://github.com/hwhaocool/ComfyUI-Select-Any"
+ ],
+ "install_type": "git-clone",
+ "description": "a comfyui custom node, which can select value from inputs"
+ },
+ {
+ "author": "leiweiqiang",
+ "title": "ComfyUI-TRA",
+ "id": "tra",
+ "reference": "https://github.com/leiweiqiang/ComfyUI-TRA",
+ "files": [
+ "https://github.com/leiweiqiang/ComfyUI-TRA"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:TCL EbSynth, TCL Extract Frames (From File), TCL Extract Frames (From Video), TCL Combine Frames, TCL Save Video (From Frames)"
+ },
+ {
+ "author": "AIFSH",
+ "title": "ComfyUI-AuraSR",
+ "id": "aurasr",
+ "reference": "https://github.com/AIFSH/ComfyUI-AuraSR",
+ "files": [
+ "https://github.com/AIFSH/ComfyUI-AuraSR"
+ ],
+ "install_type": "git-clone",
+ "description": "a node for [a/AuraSR](https://github.com/fal-ai/aura-sr)"
+ },
+ {
+ "author": "veighnsche",
+ "title": "comfyui_gr85",
+ "id": "gr85",
+ "reference": "https://github.com/veighnsche/comfyui_gr85",
+ "files": [
+ "https://github.com/veighnsche/comfyui_gr85"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Image Dimension Resizer, Image Sizer, Random Ratio, Show Text, Random Title Character, Random Wildcard Tag Picker, Random Show Atm Loc Outfit, Contains Word, Elements Concatenator, ..."
+ },
+ {
+ "author": "hyunamy",
+ "title": "Comfy-UI on-complete-email-me",
+ "id": "hyunamy",
+ "reference": "https://github.com/hyunamy/comfy-ui-on-complete-email-me",
+ "files": [
+ "https://github.com/hyunamy/comfy-ui-on-complete-email-me"
+ ],
+ "install_type": "git-clone",
+ "description": "A feature that sends an email via Gmail once image generation is completed in Comfy-ui."
+ },
+ {
+ "author": "rhdunn",
+ "title": "comfyui-bus-plugin",
+ "id": "bus",
+ "reference": "https://github.com/rhdunn/comfyui-bus-plugin",
+ "files": [
+ "https://github.com/rhdunn/comfyui-bus-plugin"
+ ],
+ "install_type": "git-clone",
+ "description": "A collection of nodes for rerouting multiple I/O lines together in a bus."
+ },
+ {
+ "author": "hay86",
+ "title": "ComfyUI Hallo",
+ "id": "hallo-hay86",
+ "reference": "https://github.com/hay86/ComfyUI_Hallo",
+ "files": [
+ "https://github.com/hay86/ComfyUI_Hallo"
+ ],
+ "install_type": "git-clone",
+ "description": "Unofficial implementation of [a/hallo](https://github.com/fudan-generative-vision/hallo) for ComfyUI"
+ },
+ {
+ "author": "AI2lab",
+ "title": "comfyUI-siliconflow-api-2lab",
+ "id": "siliconflow",
+ "reference": "https://github.com/AI2lab/comfyUI-siliconflow-api-2lab",
+ "files": [
+ "https://github.com/AI2lab/comfyUI-siliconflow-api-2lab"
+ ],
+ "install_type": "git-clone",
+ "description": "Unofficial implementation of siliconflow API for ComfyUI\nHow to use:apply api key in :https://cloud.siliconflow.cn/\nadd api key in config.json"
+ },
+ {
+ "author": "11dogzi",
+ "title": "ComfUI-EGAdapterMadAssistant",
+ "id": "ergouzi-samplers",
+ "reference": "https://github.com/11dogzi/ComfUI-EGAdapterMadAssistant",
+ "files": [
+ "https://github.com/11dogzi/ComfUI-EGAdapterMadAssistant"
+ ],
+ "install_type": "git-clone",
+ "description": "This is a hierarchical auxiliary project of the IPAdapter project, which uses a slider to quickly control the hierarchical weights and add fully random and semi random modes"
+ },
+ {
+ "author": "iwanders",
+ "title": "iwanders/ComfyUI_nodes",
+ "id": "iwanders-nodes",
+ "reference": "https://github.com/iwanders/ComfyUI_nodes",
+ "files": [
+ "https://github.com/iwanders/ComfyUI_nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:IW SaveString, IW PrintString, IW ReplaceString, IW StringNode, IW StringConcat, IW TokenizerVocab, IW JsonPickItem."
+ },
+ {
+ "author": "SaltAI",
+ "title": "SaltAI_AudioViz",
+ "id": "saltai-audioviz",
+ "reference": "https://github.com/get-salt-AI/SaltAI_AudioViz",
+ "files": [
+ "https://github.com/get-salt-AI/SaltAI_AudioViz"
+ ],
+ "install_type": "git-clone",
+ "description": "SaltAI AudioViz contains ComfyUI nodes for generating complex audio reactive visualizations"
+ },
+ {
+ "author": "AI2lab",
+ "title": "comfyUI-tool-2lab",
+ "id": "tool-2lab",
+ "reference": "https://github.com/AI2lab/comfyUI-tool-2lab",
+ "files": [
+ "https://github.com/AI2lab/comfyUI-tool-2lab"
+ ],
+ "install_type": "git-clone",
+ "description": "tool set for developing workflow and publish to web api server"
+ },
+ {
+ "author": "SherryXieYuchen",
+ "title": "ComfyUI-Image-Inpainting",
+ "id": "image-inpainting",
+ "reference": "https://github.com/SherryXieYuchen/ComfyUI-Image-Inpainting",
+ "files": [
+ "https://github.com/SherryXieYuchen/ComfyUI-Image-Inpainting"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:VAE Encode Inpaint, VAE Decode Inpaint, ColorCorrection Inpaint, ImagePreprocess Inpaint, ImagePostprocess Inpaint, Load Model Inpaint, Inpainting (using Model)"
+ },
+ {
+ "author": "zeroxoxo",
+ "title": "ComfyUI-Fast-Style-Transfer",
+ "id": "fast-style-transfer",
+ "reference": "https://github.com/zeroxoxo/ComfyUI-Fast-Style-Transfer",
+ "files": [
+ "https://github.com/zeroxoxo/ComfyUI-Fast-Style-Transfer"
+ ],
+ "install_type": "git-clone",
+ "description": "ComfyUI node for fast neural style transfer. This is a simple conversion based on this: [a/https://github.com/rrmina/fast-neural-style-pytorch](https://github.com/rrmina/fast-neural-style-pytorch) Only basic inference functionality is ported for now."
+ },
+ {
+ "author": "Shibiko-AI",
+ "title": "Shibiko AI ComfyUI Tools",
+ "id": "shibiko-ai-tools",
+ "reference": "https://github.com/Shibiko-AI/ShibikoAI-ComfyUI-Tools",
+ "files": [
+ "https://github.com/Shibiko-AI/ShibikoAI-ComfyUI-Tools"
+ ],
+ "install_type": "git-clone",
+ "description": "This is a collection of tools that I use to make my life easier when developing ComfyUI applications. It is a collection of tools that I have created to help me with my development process. I have decided to share these tools with the community in the hopes that they will be useful to others as well. I use this tools to further develop features for [a/https://shibiko.ai](https://shibiko.ai)"
+ },
+ {
+ "author": "fofr",
+ "title": "comfyui-replicate",
+ "reference": "https://github.com/fofr/comfyui-replicate",
+ "files": [
+ "https://github.com/fofr/comfyui-replicate"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Llama 3 Replicate"
+ },
+ {
+ "author": "RedRayz",
+ "title": "ComfyUI-Danbooru-To-WD",
+ "id": "danbooru2wd",
+ "reference": "https://github.com/RedRayz/ComfyUI-Danbooru-To-WD",
+ "files": [
+ "https://github.com/RedRayz/ComfyUI-Danbooru-To-WD"
+ ],
+ "install_type": "git-clone",
+ "description": "Converts booru tags to a format suitable for Waifu Diffusion(or Danbooru based models)."
+ },
+ {
+ "author": "akkyoss",
+ "title": "ComfyUI_Zwng_Nodes",
+ "id": "zwng",
+ "reference": "https://github.com/za-wa-n-go/ComfyUI_Zwng_Nodes",
+ "files": [
+ "https://github.com/za-wa-n-go/ComfyUI_Zwng_Nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Simple nodes for loading image files.Nodes that include a simple remote connection to Photoshop, a node that can overlay and preview an image with a mask, and a node that can load images directly from a file path."
+ },
+ {
+ "author": "slyt",
+ "title": "comfyui-ollama-nodes",
+ "reference": "https://github.com/slyt/comfyui-ollama-nodes",
+ "files": [
+ "https://github.com/slyt/comfyui-ollama-nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "ComfyUI custom nodes for working with [a/Ollama](https://github.com/ollama/ollama).\nNOTE:Assumes that an Ollama server is running at http://127.0.0.1:11434 and accessible by the ComfyUI backend."
+ },
+ {
+ "author": "MilitantHitchhiker",
+ "title": "Militant Hitchhiker's Switchblade Pack",
+ "id": "hitchhiker",
+ "reference": "https://github.com/MilitantHitchhiker/MilitantHitchhiker-SwitchbladePack",
+ "files": [
+ "https://github.com/MilitantHitchhiker/MilitantHitchhiker-SwitchbladePack"
+ ],
+ "install_type": "git-clone",
+ "description": "Militant Hitchhiker's Switchblade Pack is a collection of custom nodes for ComfyUI that provide various multi-function capabilities."
+ },
+ {
+ "author": "turkyden",
+ "title": "ComfyUI-Avatar",
+ "id": "avatar",
+ "reference": "https://github.com/turkyden/ComfyUI-Avatar",
+ "files": [
+ "https://github.com/turkyden/ComfyUI-Avatar"
+ ],
+ "install_type": "git-clone",
+ "description": "a comfyui plugin for image to avatar"
+ },
+ {
+ "author": "fablestudio",
+ "title": "ComfyUI-Showrunner-Utils",
+ "reference": "https://github.com/fablestudio/ComfyUI-Showrunner-Utils",
+ "files": [
+ "https://github.com/fablestudio/ComfyUI-Showrunner-Utils"
+ ],
+ "install_type": "git-clone",
+ "description": "Comfyui Custom Nodes for Showrunner"
+ }
+ ]
+}
diff --git a/custom_nodes/ComfyUI-Manager/node_db/new/extension-node-map.json b/custom_nodes/ComfyUI-Manager/node_db/new/extension-node-map.json
new file mode 100644
index 000000000..8843576b5
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/new/extension-node-map.json
@@ -0,0 +1,15962 @@
+{
+ "https://gist.github.com/alkemann/7361b8eb966f29c8238fd323409efb68/raw/f9605be0b38d38d3e3a2988f89248ff557010076/alkemann.py": [
+ [
+ "Int to Text",
+ "Save A1 Image",
+ "Seed With Text"
+ ],
+ {
+ "title_aux": "alkemann nodes"
+ }
+ ],
+ "https://git.mmaker.moe/mmaker/sd-webui-color-enhance": [
+ [
+ "MMakerColorBlend",
+ "MMakerColorEnhance"
+ ],
+ {
+ "title_aux": "Color Enhance"
+ }
+ ],
+ "https://github.com/0xbitches/ComfyUI-LCM": [
+ [
+ "LCM_Sampler",
+ "LCM_Sampler_Advanced",
+ "LCM_img2img_Sampler",
+ "LCM_img2img_Sampler_Advanced"
+ ],
+ {
+ "title_aux": "Latent Consistency Model for ComfyUI"
+ }
+ ],
+ "https://github.com/1038lab/ComfyUI-GPT2P": [
+ [
+ "GPT2PNode"
+ ],
+ {
+ "title_aux": "ComfyUI-GPT2P"
+ }
+ ],
+ "https://github.com/1038lab/ComfyUI_LatentSizeSelector": [
+ [
+ "LatentSizeSelector"
+ ],
+ {
+ "title_aux": "ComfyUI-latentSizeSelector"
+ }
+ ],
+ "https://github.com/11dogzi/ComfUI-EGAdapterMadAssistant": [
+ [
+ "EGIPAdapter_Mad_Assistant",
+ "EGIPAdapter_Mad_AssistantV1",
+ "EGIPAdapter_Mad_AssistantV2",
+ "EGIPAdapter_Mad_AssistantV3",
+ "EGIPAdapter_Mad_AssistantV4",
+ "EGIPAdapter_Mad_AssistantV5"
+ ],
+ {
+ "title_aux": "ComfUI-EGAdapterMadAssistant"
+ }
+ ],
+ "https://github.com/11dogzi/Comfyui-ergouzi-Nodes": [
+ [
+ "EG-YSZT-ZT",
+ "EG_CPSYTJ",
+ "EG_FX_BDAPI",
+ "EG_HT_YSTZ",
+ "EG_JF_ZZSC",
+ "EG_JXFZ_node",
+ "EG_K_LATENT",
+ "EG_RY_HT",
+ "EG_SCQY_BHDQY",
+ "EG_SCQY_QBQY",
+ "EG_SCQY_SXQY",
+ "EG_SJ",
+ "EG_SJPJ_Node",
+ "EG_SS_RYZH",
+ "EG_SZ_JDYS",
+ "EG_TC_Node",
+ "EG_TSCDS_CJ",
+ "EG_TSCDS_DG",
+ "EG_TSCDS_FG",
+ "EG_TSCDS_JT",
+ "EG_TSCDS_QT",
+ "EG_TSCDS_RW",
+ "EG_TSCDS_WP",
+ "EG_TSCDS_ZL",
+ "EG_TSCMB_GL",
+ "EG_TXZZ_ZH",
+ "EG_TX_CCHQ",
+ "EG_TX_CJPJ",
+ "EG_TX_JZRY",
+ "EG_TX_LJ",
+ "EG_TX_LJBC",
+ "EG_TX_SFBLS",
+ "EG_TX_WHLJ",
+ "EG_WB_KSH",
+ "EG_WXZ_QH",
+ "EG_XZ_QH",
+ "EG_YSQY_BBLLD",
+ "EG_YSQY_BLLD",
+ "EG_ZY_WBK",
+ "EG_ZZHBCJ",
+ "EG_ZZKZ_HT_node",
+ "EG_ZZ_BSYH",
+ "EG_ZZ_BYYH",
+ "EG_ZZ_HSYH",
+ "EG_ZZ_SSKZ",
+ "ER_JBCH",
+ "ER_TX_ZZCJ"
+ ],
+ {
+ "title_aux": "Comfyui-ergouzi-Nodes"
+ }
+ ],
+ "https://github.com/11dogzi/Comfyui-ergouzi-samplers": [
+ [
+ "EGBYZZCYQ",
+ "EGCYQJB",
+ "EGCYQJBCJ"
+ ],
+ {
+ "title_aux": "Comfyui-ergouzi-samplers"
+ }
+ ],
+ "https://github.com/1mckw/Comfyui-Gelbooru": [
+ [
+ "Gelbooru (ID)",
+ "Gelbooru (Random)"
+ ],
+ {
+ "title_aux": "Comfyui-Gelbooru"
+ }
+ ],
+ "https://github.com/1shadow1/hayo_comfyui_nodes/raw/main/LZCNodes.py": [
+ [
+ "LoadPILImages",
+ "MergeImages",
+ "make_transparentmask",
+ "tensor_trans_pil",
+ "words_generatee"
+ ],
+ {
+ "title_aux": "Hayo comfyui nodes"
+ }
+ ],
+ "https://github.com/42lux/ComfyUI-safety-checker": [
+ [
+ "Safety Checker"
+ ],
+ {
+ "title_aux": "ComfyUI-safety-checker"
+ }
+ ],
+ "https://github.com/438443467/ComfyUI-GPT4V-Image-Captioner": [
+ [
+ "GPT4VCaptioner",
+ "Image Load with Metadata",
+ "SAMIN String Attribute Selector",
+ "SANMIN Adapt Coordinates",
+ "SANMIN AdjustTransparency",
+ "SANMIN BlurMaskArea",
+ "SANMIN ChineseToCharacter",
+ "SANMIN ClothingWildcards",
+ "SANMIN ConvertToEnglish",
+ "SANMIN EditWildcards",
+ "SANMIN Float",
+ "SANMIN LoadPathImagesPreview",
+ "SANMIN SCALE AND FILL BLACK",
+ "SANMIN SanmiSaveImageToLocal",
+ "SANMIN SimpleWildcards",
+ "SANMIN Upscale And Original Size",
+ "Samin Counter",
+ "Samin Load Image Batch"
+ ],
+ {
+ "title_aux": "ComfyUI-GPT4V-Image-Captioner"
+ }
+ ],
+ "https://github.com/54rt1n/ComfyUI-DareMerge": [
+ [
+ "DM_AdvancedDareModelMerger",
+ "DM_AdvancedModelMerger",
+ "DM_AttentionGradient",
+ "DM_BlockGradient",
+ "DM_BlockModelMerger",
+ "DM_DareClipMerger",
+ "DM_DareModelMergerBlock",
+ "DM_DareModelMergerElement",
+ "DM_DareModelMergerMBW",
+ "DM_GradientEdit",
+ "DM_GradientOperations",
+ "DM_GradientReporting",
+ "DM_InjectNoise",
+ "DM_LoRALoaderTags",
+ "DM_LoRAReporting",
+ "DM_MBWGradient",
+ "DM_MagnitudeMasker",
+ "DM_MaskEdit",
+ "DM_MaskOperations",
+ "DM_MaskReporting",
+ "DM_ModelReporting",
+ "DM_NormalizeModel",
+ "DM_QuadMasker",
+ "DM_ShellGradient",
+ "DM_SimpleMasker"
+ ],
+ {
+ "title_aux": "ComfyUI-DareMerge"
+ }
+ ],
+ "https://github.com/80sVectorz/ComfyUI-Static-Primitives": [
+ [
+ "FloatStaticPrimitive",
+ "IntStaticPrimitive",
+ "StringMlStaticPrimitive",
+ "StringStaticPrimitive"
+ ],
+ {
+ "title_aux": "ComfyUI-Static-Primitives"
+ }
+ ],
+ "https://github.com/A4P7J1N7M05OT/ComfyUI-AutoColorGimp": [
+ [
+ "AutoColorGimp"
+ ],
+ {
+ "title_aux": "ComfyUI-AutoColorGimp"
+ }
+ ],
+ "https://github.com/A4P7J1N7M05OT/ComfyUI-PixelOE": [
+ [
+ "PixelOE"
+ ],
+ {
+ "title_aux": "ComfyUI-PixelOE"
+ }
+ ],
+ "https://github.com/AARG-FAN/Image-Raster-for-ComfyUI": [
+ [
+ "AIraster"
+ ],
+ {
+ "title_aux": "Image-vector-for-ComfyUI"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI-3d-photo-inpainting": [
+ [
+ "LoadImagePath",
+ "PreViewVideo",
+ "TreeDNode"
+ ],
+ {
+ "title_aux": "ComfyUI-3d-photo-inpainting"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI-AuraSR": [
+ [
+ "AuraSRNode"
+ ],
+ {
+ "title_aux": "AIFSH/ComfyUI-AuraSR"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI-DiffSynth-Studio": [
+ [
+ "ControlNetPathLoader",
+ "DiffTextNode",
+ "DiffutoonNode",
+ "ExVideoNode",
+ "LoadVideo",
+ "PreViewVideo",
+ "SDPathLoader"
+ ],
+ {
+ "title_aux": "ComfyUI-DiffSynth-Studio"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI-FishSpeech": [
+ [
+ "FishSpeech_INFER",
+ "FishSpeech_INFER_SRT",
+ "LoadAudio",
+ "LoadSRT",
+ "PreViewAudio"
+ ],
+ {
+ "title_aux": "ComfyUI-FishSpeech"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI-GPT_SoVITS": [
+ [
+ "GPT_SOVITS_FT",
+ "GPT_SOVITS_INFER",
+ "GPT_SOVITS_TTS",
+ "LoadAudio",
+ "LoadSRT",
+ "PreViewAudio"
+ ],
+ {
+ "title_aux": "ComfyUI-GPT_SoVITS"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI-Hallo": [
+ [
+ "HalloNode",
+ "LoadAudioPath",
+ "LoadImagePath",
+ "PreViewVideo"
+ ],
+ {
+ "title_aux": "ComfyUI-Hallo"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI-I2V-Adapter": [
+ [
+ "I2V_AdapterNode",
+ "LoraPathLoader",
+ "MotionLoraLoader",
+ "PreViewVideo",
+ "PromptNode"
+ ],
+ {
+ "title_aux": "ComfyUI-I2V-Adapter"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI-IP_LAP": [
+ [
+ "CombineAudioVideo",
+ "IP_LAP",
+ "LoadVideo",
+ "PreViewVideo"
+ ],
+ {
+ "title_aux": "ComfyUI-IP_LAP"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI-Live2DViewer": [
+ [
+ "Live2DViewer",
+ "LoadAudio"
+ ],
+ {
+ "title_aux": "ComfyUI-Live2DViewer"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI-MARS5-TTS": [
+ [
+ "LoadAudioPath",
+ "MARS5TTS_Node",
+ "PreViewAudio",
+ "TTSTextEncode"
+ ],
+ {
+ "title_aux": "ComfyUI-MARS5-TTS"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI-MimicBrush": [
+ [
+ "MimicBrushNode"
+ ],
+ {
+ "title_aux": "ComfyUI-MimicBrush"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI-MimicMotion": [
+ [
+ "LoadVideo",
+ "MimicMotionNode",
+ "PreViewVideo"
+ ],
+ {
+ "title_aux": "ComfyUI-MimicMotion"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI-MuseTalk_FSH": [
+ [
+ "CombineAudioVideo",
+ "LoadVideo",
+ "MuseTalk",
+ "MuseTalkRealTime",
+ "PreViewVideo"
+ ],
+ {
+ "title_aux": "ComfyUI-MuseTalk_FSH"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI-RVC": [
+ [
+ "CombineAudio",
+ "LoadAudio",
+ "PreViewAudio",
+ "RVC_Infer",
+ "RVC_Train"
+ ],
+ {
+ "title_aux": "ComfyUI-RVC"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI-UVR5": [
+ [
+ "LoadAudioPath",
+ "PreViewAudio",
+ "UVR5_Node"
+ ],
+ {
+ "title_aux": "ComfyUI-UVR5"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI-UniAnimate": [
+ [
+ "LoadImagePath",
+ "LoadVideo",
+ "PoseAlignNode",
+ "PreViewVideo",
+ "UniAnimateNode"
+ ],
+ {
+ "title_aux": "ComfyUI-UniAnimate"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI-WhisperX": [
+ [
+ "LoadAudio",
+ "PreViewSRT",
+ "WhisperX"
+ ],
+ {
+ "title_aux": "ComfyUI-WhisperX"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI-XTTS": [
+ [
+ "LoadAudioPath",
+ "LoadSRT",
+ "PreViewAudio",
+ "XTTS_INFER",
+ "XTTS_INFER_SRT"
+ ],
+ {
+ "title_aux": "ComfyUI-XTTS"
+ }
+ ],
+ "https://github.com/AIFSH/ComfyUI_V-Express": [
+ [
+ "LoadAudioPath",
+ "LoadImagePath",
+ "LoadVideo",
+ "PreViewVideo",
+ "VExpress"
+ ],
+ {
+ "title_aux": "ComfyUI_V-Express"
+ }
+ ],
+ "https://github.com/AIGCTeam/ComfyUI_kkTranslator_nodes": [
+ [
+ "LoadMarianMTCheckPoint",
+ "PromptBaiduFanyiToText",
+ "PromptTranslateToText"
+ ],
+ {
+ "title_aux": "ComfyUI_kkTranslator_nodes"
+ }
+ ],
+ "https://github.com/AIGODLIKE/ComfyUI-CUP": [
+ [
+ "Mask",
+ "OpenPose",
+ "OpenPoseCanny",
+ "OpenPoseDepth",
+ "OpenPoseFace",
+ "OpenPoseFull",
+ "OpenPoseFullExtraLimb",
+ "OpenPoseHand",
+ "OpenPoseKeyPose",
+ "OpenPoseLineart",
+ "OpenPoseMediaPipeFace",
+ "PreviewAudio",
+ "SaveAudioBL",
+ "\u5b58\u50a8",
+ "\u5bfc\u5165",
+ "\u622a\u56fe",
+ "\u6750\u8d28\u56fe",
+ "\u8f93\u5165\u56fe\u50cf",
+ "\u9884\u89c8"
+ ],
+ {
+ "title_aux": "ComfyUI-CUP"
+ }
+ ],
+ "https://github.com/AIGODLIKE/ComfyUI-ToonCrafter": [
+ [
+ "ToonCrafterNode"
+ ],
+ {
+ "title_aux": "ComfyUI-ToonCrafter"
+ }
+ ],
+ "https://github.com/AInseven/ComfyUI-fastblend": [
+ [
+ "FillDarkMask",
+ "InterpolateKeyFrame",
+ "MaskListcaptoBatch",
+ "Merge_Image_List",
+ "MyOpenPoseNode",
+ "SmoothVideo",
+ "alert_when_finished",
+ "reBatchImage"
+ ],
+ {
+ "title_aux": "ComfyUI-fastblend"
+ }
+ ],
+ "https://github.com/AIrjen/OneButtonPrompt": [
+ [
+ "AutoNegativePrompt",
+ "CreatePromptVariant",
+ "OneButtonArtify",
+ "OneButtonFlufferize",
+ "OneButtonPreset",
+ "OneButtonPrompt",
+ "OneButtonSuperPrompt",
+ "SavePromptToFile"
+ ],
+ {
+ "title_aux": "One Button Prompt"
+ }
+ ],
+ "https://github.com/ALatentPlace/ComfyUI_yanc": [
+ [
+ "> Clear Text",
+ "> Float to Int",
+ "> Get Mean Color",
+ "> Int",
+ "> Int to Text",
+ "> Layer Weights (for IPAMS)",
+ "> Light Source Mask",
+ "> Load Image",
+ "> Load Image From Folder",
+ "> Mask Curves",
+ "> NIKSampler",
+ "> Noise From Image",
+ "> Normal Map Lighting",
+ "> RGB Color",
+ "> Resolution by Aspect Ratio",
+ "> Rotate Image",
+ "> Save Image",
+ "> Scale Image to Side",
+ "> Text",
+ "> Text Combine",
+ "> Text Pick Random Line",
+ "> Text Random Weights",
+ "> Text Replace"
+ ],
+ {
+ "title_aux": "ComfyUI_yanc"
+ }
+ ],
+ "https://github.com/AbdullahAlfaraj/Comfy-Photoshop-SD": [
+ [
+ "APS_LatentBatch",
+ "APS_Seed",
+ "ContentMaskLatent",
+ "ControlNetScript",
+ "ControlnetUnit",
+ "GaussianLatentImage",
+ "GetConfig",
+ "LoadImageBase64",
+ "LoadImageWithMetaData",
+ "LoadLorasFromPrompt",
+ "MaskExpansion"
+ ],
+ {
+ "title_aux": "Comfy-Photoshop-SD"
+ }
+ ],
+ "https://github.com/AbyssYuan0/ComfyUI_BadgerTools": [
+ [
+ "ApplyMaskToImage-badger",
+ "CropImageByMask-badger",
+ "ExpandImageWithColor-badger",
+ "FindThickLinesFromCanny-badger",
+ "FloatToInt-badger",
+ "FloatToString-badger",
+ "FrameToVideo-badger",
+ "GETRequset-badger",
+ "GarbageCollect-badger",
+ "GetColorFromBorder-badger",
+ "GetDirName-badger",
+ "GetUUID-badger",
+ "IdentifyBorderColorToMask-badger",
+ "IdentifyColorToMask-badger",
+ "ImageNormalization-badger",
+ "ImageOverlap-badger",
+ "ImageScaleToSide-badger",
+ "IntToString-badger",
+ "IntToStringAdvanced-badger",
+ "LoadImageAdvanced-badger",
+ "LoadImagesFromDirListAdvanced-badger",
+ "SegmentToMaskByPoint-badger",
+ "SimpleBoolean-badger",
+ "StringToFizz-badger",
+ "TextListToString-badger",
+ "ToPixel-badger",
+ "TrimTransparentEdges-badger",
+ "VideoCutFromDir-badger",
+ "VideoToFrame-badger",
+ "deleteDir-badger",
+ "findCenterOfMask-badger",
+ "getImageSide-badger",
+ "getParentDir-badger",
+ "mkdir-badger"
+ ],
+ {
+ "title_aux": "ComfyUI_BadgerTools"
+ }
+ ],
+ "https://github.com/Acly/comfyui-inpaint-nodes": [
+ [
+ "INPAINT_ApplyFooocusInpaint",
+ "INPAINT_DenoiseToCompositingMask",
+ "INPAINT_ExpandMask",
+ "INPAINT_InpaintWithModel",
+ "INPAINT_LoadFooocusInpaint",
+ "INPAINT_LoadInpaintModel",
+ "INPAINT_MaskedBlur",
+ "INPAINT_MaskedFill",
+ "INPAINT_VAEEncodeInpaintConditioning"
+ ],
+ {
+ "title_aux": "ComfyUI Inpaint Nodes"
+ }
+ ],
+ "https://github.com/Acly/comfyui-tooling-nodes": [
+ [
+ "ETN_ApplyMaskToImage",
+ "ETN_AttentionMask",
+ "ETN_BackgroundRegion",
+ "ETN_CropImage",
+ "ETN_DefineRegion",
+ "ETN_ExtractImageTile",
+ "ETN_ExtractMaskTile",
+ "ETN_GenerateTileMask",
+ "ETN_ListRegionMasks",
+ "ETN_LoadImageBase64",
+ "ETN_LoadMaskBase64",
+ "ETN_MergeImageTile",
+ "ETN_SendImageWebSocket",
+ "ETN_TileLayout"
+ ],
+ {
+ "title_aux": "ComfyUI Nodes for External Tooling"
+ }
+ ],
+ "https://github.com/AiMiDi/ComfyUI-Aimidi-nodes": [
+ [
+ "Add Tag",
+ "Clear Tag",
+ "Load Images Pair Batch",
+ "Merge Tag",
+ "Move Tag To Top",
+ "Reserve Tag",
+ "Save Images Pair"
+ ],
+ {
+ "title_aux": "ComfyUI-Aimidi-nodes"
+ }
+ ],
+ "https://github.com/AlekPet/ComfyUI_Custom_Nodes_AlekPet": [
+ [
+ "ArgosTranslateCLIPTextEncodeNode",
+ "ArgosTranslateTextNode",
+ "ColorsCorrectNode",
+ "DeepTranslatorCLIPTextEncodeNode",
+ "DeepTranslatorTextNode",
+ "GoogleTranslateCLIPTextEncodeNode",
+ "GoogleTranslateTextNode",
+ "HexToHueNode",
+ "PainterNode",
+ "PoseNode",
+ "PreviewTextNode"
+ ],
+ {
+ "title_aux": "AlekPet/ComfyUI_Custom_Nodes_AlekPet"
+ }
+ ],
+ "https://github.com/Amorano/Jovimetrix": [
+ [
+ "ADJUST (JOV) \ud83d\udd78\ufe0f",
+ "AKASHIC (JOV) \ud83d\udcd3",
+ "ARRAY (JOV) \ud83d\udcda",
+ "BLEND (JOV) \u2697\ufe0f",
+ "COLOR BLIND (JOV) \ud83d\udc41\u200d\ud83d\udde8",
+ "COLOR MATCH (JOV) \ud83d\udc9e",
+ "COLOR THEORY (JOV) \ud83d\udede",
+ "COMPARISON (JOV) \ud83d\udd75\ud83c\udffd",
+ "CONSTANT (JOV) \ud83d\udfea",
+ "CROP (JOV) \u2702\ufe0f",
+ "DELAY (JOV) \u270b\ud83c\udffd",
+ "EXPORT (JOV) \ud83d\udcfd",
+ "FILTER MASK (JOV) \ud83e\udd3f",
+ "FLATTEN (JOV) \u2b07\ufe0f",
+ "GLSL (JOV) \ud83c\udf69",
+ "GRADIENT MAP (JOV) \ud83c\uddf2\ud83c\uddfa",
+ "GRAPH (JOV) \ud83d\udcc8",
+ "LERP (JOV) \ud83d\udd30",
+ "MIDI FILTER (JOV) \u2733\ufe0f",
+ "MIDI FILTER EZ (JOV) \u2747\ufe0f",
+ "MIDI MESSAGE (JOV) \ud83c\udf9b\ufe0f",
+ "MIDI READER (JOV) \ud83c\udfb9",
+ "OP BINARY (JOV) \ud83c\udf1f",
+ "OP UNARY (JOV) \ud83c\udfb2",
+ "PIXEL MERGE (JOV) \ud83e\udec2",
+ "PIXEL SPLIT (JOV) \ud83d\udc94",
+ "PIXEL SWAP (JOV) \ud83d\udd03",
+ "QUEUE (JOV) \ud83d\uddc3",
+ "ROUTE (JOV) \ud83d\ude8c",
+ "SAVE OUTPUT (JOV) \ud83d\udcbe",
+ "SHAPE GEN (JOV) \u2728",
+ "SPOUT WRITER (JOV) \ud83c\udfa5",
+ "STACK (JOV) \u2795",
+ "STEREOGRAM (JOV) \ud83d\udcfb",
+ "STEREOSCOPIC (JOV) \ud83d\udd76\ufe0f",
+ "STREAM READER (JOV) \ud83d\udcfa",
+ "STREAM WRITER (JOV) \ud83c\udf9e\ufe0f",
+ "SWIZZLE (JOV) \ud83d\ude35",
+ "TEXT GEN (JOV) \ud83d\udcdd",
+ "THRESHOLD (JOV) \ud83d\udcc9",
+ "TICK (JOV) \u23f1",
+ "TRANSFORM (JOV) \ud83c\udfdd\ufe0f",
+ "VALUE (JOV) \ud83e\uddec",
+ "WAVE GEN (JOV) \ud83c\udf0a",
+ "WAVE GRAPH (JOV) \u25b6 \u0131l\u0131\u0131l\u0131"
+ ],
+ {
+ "author": "amorano",
+ "description": "Jovimetrix integrates Webcam, MIDI, Spout and GLSL shader support.",
+ "nodename_pattern": " \\(JOV\\)$",
+ "title": "Jovimetrix",
+ "title_aux": "Jovimetrix Composition Nodes"
+ }
+ ],
+ "https://github.com/AonekoSS/ComfyUI-LoRA-Tuner": [
+ [
+ "LoraTuner"
+ ],
+ {
+ "title_aux": "ComfyUI-LoRA-Tuner"
+ }
+ ],
+ "https://github.com/AonekoSS/ComfyUI-SimpleCounter": [
+ [
+ "Simple Counter"
+ ],
+ {
+ "title_aux": "ComfyUI-SimpleCounter"
+ }
+ ],
+ "https://github.com/ArcherFMY/Diffusion360_ComfyUI": [
+ [
+ "Diffusion360LoaderImage2Pano",
+ "Diffusion360LoaderText2Pano",
+ "Diffusion360Sampler",
+ "Diffusion360SamplerImage2Pano",
+ "Diffusion360SamplerText2Pano",
+ "InputImage",
+ "InputText",
+ "VAEDecodeTiledBlended"
+ ],
+ {
+ "title_aux": "Diffusion360_ComfyUI"
+ }
+ ],
+ "https://github.com/ArdeniusAI/CPlus_Ardenius": [
+ [
+ "Control_Box"
+ ],
+ {
+ "author": "initials AMA",
+ "description": "CPlus control box is designed to gather workflow variables into 1 node for easier control of your workflow.",
+ "nickname": "Ardenius",
+ "title": "Ardenius",
+ "title_aux": "CPlus_Ardenius ComfyUI Control Box"
+ }
+ ],
+ "https://github.com/ArtBot2023/CharacterFaceSwap": [
+ [
+ "Color Blend",
+ "Crop Face",
+ "Exclude Facial Feature",
+ "Generation Parameter Input",
+ "Generation Parameter Output",
+ "Image Full BBox",
+ "Load BiseNet",
+ "Load RetinaFace",
+ "Mask Contour",
+ "Segment Face",
+ "Uncrop Face"
+ ],
+ {
+ "title_aux": "Character Face Swap"
+ }
+ ],
+ "https://github.com/ArtVentureX/comfyui-animatediff": [
+ [
+ "AnimateDiffCombine",
+ "AnimateDiffLoraLoader",
+ "AnimateDiffModuleLoader",
+ "AnimateDiffSampler",
+ "AnimateDiffSlidingWindowOptions",
+ "ImageSizeAndBatchSize",
+ "LoadVideo"
+ ],
+ {
+ "title_aux": "AnimateDiff"
+ }
+ ],
+ "https://github.com/AshMartian/ComfyUI-DirGir": [
+ [
+ "Dir_Gir_Looper",
+ "Dir_Gir_Picker",
+ "Gir_Image_Nabber"
+ ],
+ {
+ "title_aux": "Dir Gir"
+ }
+ ],
+ "https://github.com/AuroBit/ComfyUI-AnimateAnyone-reproduction": [
+ [
+ "AnimateAnyone"
+ ],
+ {
+ "title_aux": "ComfyUI-AnimateAnyone-reproduction"
+ }
+ ],
+ "https://github.com/AustinMroz/ComfyUI-DynamicOversampling": [
+ [
+ "DynamicSampler",
+ "MeasuredSampler",
+ "ResolveMaskPromise"
+ ],
+ {
+ "title_aux": "DynamicOversampling"
+ }
+ ],
+ "https://github.com/AustinMroz/ComfyUI-SpliceTools": [
+ [
+ "LogSigmas",
+ "RerangeSigmas",
+ "SpliceDenoised",
+ "SpliceLatents",
+ "TemporalSplice"
+ ],
+ {
+ "title_aux": "SpliceTools"
+ }
+ ],
+ "https://github.com/Auttasak-L/ComfyUI-ImageCropper": [
+ [
+ "ImageCropper"
+ ],
+ {
+ "title_aux": "ComfyUI-ImageCropper"
+ }
+ ],
+ "https://github.com/BAIS1C/ComfyUI_RSS_Feed_Reader": [
+ [
+ "RSSFeedNode"
+ ],
+ {
+ "title_aux": "ComfyUI_RSS_Feed_Reader"
+ }
+ ],
+ "https://github.com/BXYMartin/ComfyUI-InstantIDUtils": [
+ [
+ "ListOfImages",
+ "MultiControlNetConverter",
+ "NHWC2NCHWTensor",
+ "NHWCTensor2PIL",
+ "PIL2NHWCTensor"
+ ],
+ {
+ "title_aux": "ComfyUI-InstantIDUtils"
+ }
+ ],
+ "https://github.com/BadCafeCode/masquerade-nodes-comfyui": [
+ [
+ "Blur",
+ "Change Channel Count",
+ "Combine Masks",
+ "Constant Mask",
+ "Convert Color Space",
+ "Create QR Code",
+ "Create Rect Mask",
+ "Cut By Mask",
+ "Get Image Size",
+ "Image To Mask",
+ "Make Image Batch",
+ "Mask By Text",
+ "Mask Morphology",
+ "Mask To Region",
+ "MasqueradeIncrementer",
+ "Mix Color By Mask",
+ "Mix Images By Mask",
+ "Paste By Mask",
+ "Prune By Mask",
+ "Separate Mask Components",
+ "Unary Image Op",
+ "Unary Mask Op"
+ ],
+ {
+ "title_aux": "Masquerade Nodes"
+ }
+ ],
+ "https://github.com/Beinsezii/bsz-cui-extras": [
+ [
+ "BSZAbsoluteHires",
+ "BSZAspectHires",
+ "BSZColoredLatentImageXL",
+ "BSZCombinedHires",
+ "BSZHueChromaXL",
+ "BSZInjectionKSampler",
+ "BSZLatentDebug",
+ "BSZLatentFill",
+ "BSZLatentGradient",
+ "BSZLatentHSVAImage",
+ "BSZLatentOffsetXL",
+ "BSZLatentRGBAImage",
+ "BSZLatentbuster",
+ "BSZPixelbuster",
+ "BSZPixelbusterHelp",
+ "BSZPrincipledConditioning",
+ "BSZPrincipledSampler",
+ "BSZPrincipledScale",
+ "BSZStrangeResample"
+ ],
+ {
+ "title_aux": "bsz-cui-extras"
+ }
+ ],
+ "https://github.com/BenNarum/SigmaWaveFormNode": [
+ [
+ "AttenuatorNode",
+ "FourierFilterNode",
+ "PhaseLockedLoopNode",
+ "SigmaWaveFormNode",
+ "SigmaWaveFormNodeAdvanced",
+ "SigmaWaveFormNodeSimple"
+ ],
+ {
+ "title_aux": "SigmaWaveFormNodes"
+ }
+ ],
+ "https://github.com/BennyKok/comfyui-deploy": [
+ [
+ "ComfyDeployWebscoketImageInput",
+ "ComfyDeployWebscoketImageOutput",
+ "ComfyUIDeployExternalBoolean",
+ "ComfyUIDeployExternalCheckpoint",
+ "ComfyUIDeployExternalImage",
+ "ComfyUIDeployExternalImageAlpha",
+ "ComfyUIDeployExternalImageBatch",
+ "ComfyUIDeployExternalLora",
+ "ComfyUIDeployExternalNumber",
+ "ComfyUIDeployExternalNumberInt",
+ "ComfyUIDeployExternalNumberSlider",
+ "ComfyUIDeployExternalText",
+ "ComfyUIDeployExternalVid",
+ "ComfyUIDeployExternalVideo"
+ ],
+ {
+ "author": "BennyKok",
+ "description": "",
+ "nickname": "Comfy Deploy",
+ "title": "comfyui-deploy",
+ "title_aux": "ComfyUI Deploy"
+ }
+ ],
+ "https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools": [
+ [
+ "BTPromptSchedule",
+ "BTPromptSelector",
+ "EndQueue",
+ "ImageTextOverlay",
+ "Loop",
+ "LoopEnd",
+ "LoopStart"
+ ],
+ {
+ "title_aux": "ComfyUI-Book-Tools Nodes for ComfyUI"
+ }
+ ],
+ "https://github.com/Big-Idea-Technology/ComfyUI_LLM_Node": [
+ [
+ "AdvOptions_Node",
+ "CodingOptionsNode",
+ "LLM_Node",
+ "Output_Node",
+ "QuantizationConfig_Node"
+ ],
+ {
+ "title_aux": "LLM Node for ComfyUI"
+ }
+ ],
+ "https://github.com/Bikecicle/ComfyUI-Waveform-Extensions/raw/main/EXT_AudioManipulation.py": [
+ [
+ "BatchJoinAudio",
+ "CutAudio",
+ "DuplicateAudio",
+ "JoinAudio",
+ "ResampleAudio",
+ "ReverseAudio",
+ "StretchAudio"
+ ],
+ {
+ "title_aux": "Waveform Extensions"
+ }
+ ],
+ "https://github.com/Billius-AI/ComfyUI-Path-Helper": [
+ [
+ "Add File Name Prefix",
+ "Add File Name Prefix Advanced",
+ "Add Folder",
+ "Add Folder Advanced",
+ "Create Project Root",
+ "Join Variables",
+ "Show Path",
+ "Show String"
+ ],
+ {
+ "title_aux": "ComfyUI-Path-Helper"
+ }
+ ],
+ "https://github.com/BlakeOne/ComfyUI-CustomScheduler": [
+ [
+ "CustomScheduler"
+ ],
+ {
+ "title_aux": "ComfyUI CustomScheduler"
+ }
+ ],
+ "https://github.com/BlakeOne/ComfyUI-SchedulerMixer": [
+ [
+ "SchedulerMixer"
+ ],
+ {
+ "title_aux": "ComfyUI SchedulerMixer"
+ }
+ ],
+ "https://github.com/BlenderNeko/ComfyUI_ADV_CLIP_emb": [
+ [
+ "BNK_AddCLIPSDXLParams",
+ "BNK_AddCLIPSDXLRParams",
+ "BNK_CLIPTextEncodeAdvanced",
+ "BNK_CLIPTextEncodeSDXLAdvanced"
+ ],
+ {
+ "title_aux": "Advanced CLIP Text Encode"
+ }
+ ],
+ "https://github.com/BlenderNeko/ComfyUI_Cutoff": [
+ [
+ "BNK_CutoffBasePrompt",
+ "BNK_CutoffRegionsToConditioning",
+ "BNK_CutoffRegionsToConditioning_ADV",
+ "BNK_CutoffSetRegions"
+ ],
+ {
+ "title_aux": "ComfyUI Cutoff"
+ }
+ ],
+ "https://github.com/BlenderNeko/ComfyUI_Noise": [
+ [
+ "BNK_DuplicateBatchIndex",
+ "BNK_GetSigma",
+ "BNK_InjectNoise",
+ "BNK_NoisyLatentImage",
+ "BNK_SlerpLatent",
+ "BNK_Unsampler"
+ ],
+ {
+ "title_aux": "ComfyUI Noise"
+ }
+ ],
+ "https://github.com/BlenderNeko/ComfyUI_SeeCoder": [
+ [
+ "ConcatConditioning",
+ "SEECoderImageEncode"
+ ],
+ {
+ "title_aux": "SeeCoder [WIP]"
+ }
+ ],
+ "https://github.com/BlenderNeko/ComfyUI_TiledKSampler": [
+ [
+ "BNK_TiledKSampler",
+ "BNK_TiledKSamplerAdvanced"
+ ],
+ {
+ "title_aux": "Tiled sampling for ComfyUI"
+ }
+ ],
+ "https://github.com/CC-BryanOttho/ComfyUI_API_Manager": [
+ [
+ "APIRequestNode",
+ "PostImageToAPI",
+ "TextPromptCombinerNode"
+ ],
+ {
+ "title_aux": "ComfyUI_API_Manager"
+ }
+ ],
+ "https://github.com/CYBERLOOM-INC/ComfyUI-nodes-hnmr": [
+ [
+ "CLIPIter",
+ "Dict2Model",
+ "GridImage",
+ "ImageBlend2",
+ "KSamplerOverrided",
+ "KSamplerSetting",
+ "KSamplerXYZ",
+ "LatentToHist",
+ "LatentToImage",
+ "ModelIter",
+ "RandomLatentImage",
+ "SaveStateDict",
+ "SaveText",
+ "StateDictLoader",
+ "StateDictMerger",
+ "StateDictMergerBlockWeighted",
+ "StateDictMergerBlockWeightedMulti",
+ "VAEDecodeBatched",
+ "VAEEncodeBatched",
+ "VAEIter"
+ ],
+ {
+ "title_aux": "ComfyUI-nodes-hnmr"
+ }
+ ],
+ "https://github.com/CaptainGrock/ComfyUIInvisibleWatermark/raw/main/Invisible%20Watermark.py": [
+ [
+ "Apply Invisible Watermark",
+ "Extract Watermark"
+ ],
+ {
+ "title_aux": "ComfyUIInvisibleWatermark"
+ }
+ ],
+ "https://github.com/Chan-0312/ComfyUI-EasyDeforum": [
+ [
+ "Easy2DDeforum"
+ ],
+ {
+ "title_aux": "ComfyUI-EasyDeforum"
+ }
+ ],
+ "https://github.com/Chan-0312/ComfyUI-IPAnimate": [
+ [
+ "IPAdapterAnimate"
+ ],
+ {
+ "title_aux": "ComfyUI-IPAnimate"
+ }
+ ],
+ "https://github.com/Chan-0312/ComfyUI-Prompt-Preview": [
+ [
+ "SDXLPromptStylerAdvancedPreview",
+ "SDXLPromptStylerPreview"
+ ],
+ {
+ "title_aux": "ComfyUI-Prompt-Preview"
+ }
+ ],
+ "https://github.com/Chaoses-Ib/ComfyUI_Ib_CustomNodes": [
+ [
+ "ImageToPIL",
+ "LoadImageFromPath",
+ "PILToImage",
+ "PILToMask"
+ ],
+ {
+ "title_aux": "ComfyUI_Ib_CustomNodes"
+ }
+ ],
+ "https://github.com/Clybius/ComfyUI-Extra-Samplers": [
+ [
+ "GeometricCFGGuider",
+ "ImageAssistedCFGGuider",
+ "MegaCFGGuider",
+ "SamplerCLYB_4M_SDE_Momentumized",
+ "SamplerCustomModelMixtureDuo",
+ "SamplerCustomNoise",
+ "SamplerCustomNoiseDuo",
+ "SamplerDPMPP_3M_SDE_DynETA",
+ "SamplerDPMPP_DualSDE_Momentumized",
+ "SamplerEulerAncestralDancing_Experimental",
+ "SamplerLCMCustom",
+ "SamplerRES_Momentumized",
+ "SamplerSupreme",
+ "SamplerTTM",
+ "ScaledCFGGuider",
+ "SimpleExponentialScheduler",
+ "WarmupDecayCFGGuider"
+ ],
+ {
+ "title_aux": "ComfyUI Extra Samplers"
+ }
+ ],
+ "https://github.com/Clybius/ComfyUI-Latent-Modifiers": [
+ [
+ "Latent Diffusion Mega Modifier"
+ ],
+ {
+ "title_aux": "ComfyUI-Latent-Modifiers"
+ }
+ ],
+ "https://github.com/CosmicLaca/ComfyUI_Primere_Nodes": [
+ [
+ "PrimereAestheticCKPTScorer",
+ "PrimereAnyDetailer",
+ "PrimereAnyOutput",
+ "PrimereCKPT",
+ "PrimereCKPTLoader",
+ "PrimereCLIPEncoder",
+ "PrimereClearPrompt",
+ "PrimereConceptDataTuple",
+ "PrimereDynamicParser",
+ "PrimereEmbedding",
+ "PrimereEmbeddingHandler",
+ "PrimereEmbeddingKeywordMerger",
+ "PrimereEmotionsStyles",
+ "PrimereHypernetwork",
+ "PrimereImageSegments",
+ "PrimereKSampler",
+ "PrimereLCMSelector",
+ "PrimereLORA",
+ "PrimereLYCORIS",
+ "PrimereLatentNoise",
+ "PrimereLoraKeywordMerger",
+ "PrimereLoraStackMerger",
+ "PrimereLycorisKeywordMerger",
+ "PrimereLycorisStackMerger",
+ "PrimereMetaCollector",
+ "PrimereMetaDistributor",
+ "PrimereMetaDistributorStage2",
+ "PrimereMetaHandler",
+ "PrimereMetaRead",
+ "PrimereMetaSave",
+ "PrimereMidjourneyStyles",
+ "PrimereModelConceptSelector",
+ "PrimereModelKeyword",
+ "PrimereNetworkTagLoader",
+ "PrimerePreviewImage",
+ "PrimerePrompt",
+ "PrimerePromptOrganizer",
+ "PrimerePromptSwitch",
+ "PrimereRefinerPrompt",
+ "PrimereResolution",
+ "PrimereResolutionCoordinatorMPX",
+ "PrimereResolutionMultiplier",
+ "PrimereResolutionMultiplierMPX",
+ "PrimereSamplers",
+ "PrimereSamplersSteps",
+ "PrimereSeed",
+ "PrimereStepsCfg",
+ "PrimereStyleLoader",
+ "PrimereStylePile",
+ "PrimereTextOutput",
+ "PrimereUpscaleModel",
+ "PrimereVAE",
+ "PrimereVAELoader",
+ "PrimereVAESelector",
+ "PrimereVisualCKPT",
+ "PrimereVisualEmbedding",
+ "PrimereVisualHypernetwork",
+ "PrimereVisualLORA",
+ "PrimereVisualLYCORIS",
+ "PrimereVisualStyle"
+ ],
+ {
+ "title_aux": "Primere nodes for ComfyUI"
+ }
+ ],
+ "https://github.com/Danand/ComfyUI-ComfyCouple": [
+ [
+ "Attention couple",
+ "Comfy Couple"
+ ],
+ {
+ "author": "Rei D.",
+ "description": "If you want to draw two different characters together without blending their features, so you could try to check out this custom node.",
+ "nickname": "Danand",
+ "title": "Comfy Couple",
+ "title_aux": "Comfy Couple"
+ }
+ ],
+ "https://github.com/DannyStone1999/ComfyUI-Depth2Mask/raw/main/Depth2Mask.py": [
+ [
+ "Depth2Mask"
+ ],
+ {
+ "title_aux": "ComfyUI-Depth2Mask"
+ }
+ ],
+ "https://github.com/DarKDinDoN/comfyui-checkpoint-automatic-config": [
+ [
+ "CheckpointAutomaticConfig",
+ "ConfigPipe"
+ ],
+ {
+ "title_aux": "ComfyUI Checkpoint Automatic Config"
+ }
+ ],
+ "https://github.com/DataCTE/prompt_injection": [
+ [
+ "AdvancedPromptInjection",
+ "PromptInjection",
+ "SVDPromptInjection",
+ "SimplePromptInjection"
+ ],
+ {
+ "title_aux": "Prompt Injection Node for ComfyUI"
+ }
+ ],
+ "https://github.com/DeJoker/pipeline-parallel-comfy": [
+ [
+ "PipelineParallel"
+ ],
+ {
+ "title_aux": "Pipeline Parallel ComfyUI"
+ }
+ ],
+ "https://github.com/Derfuu/Derfuu_ComfyUI_ModdedNodes": [
+ [],
+ {
+ "author": "Derfuu",
+ "description": "Pack of simple (or not) and modded nodes for scaling images/latents, editing numbers or text. Automate calculations depending on image sizes or any other thing you want. Or randomize any number in your workflow. Debug node included.",
+ "nickname": "Derfuu simple/modded Nodes",
+ "nodename_pattern": "^DF_",
+ "title": "Derfuu simple/modded Nodes",
+ "title_aux": "Derfuu_ComfyUI_ModdedNodes"
+ }
+ ],
+ "https://github.com/DonBaronFactory/ComfyUI-Cre8it-Nodes": [
+ [
+ "ApplySerialPrompter",
+ "ImageSizer",
+ "SerialPrompter"
+ ],
+ {
+ "author": "CRE8IT GmbH",
+ "description": "This extension offers various nodes.",
+ "nickname": "cre8Nodes",
+ "title": "cr8SerialPrompter",
+ "title_aux": "ComfyUI-Cre8it-Nodes"
+ }
+ ],
+ "https://github.com/DrMWeigand/ComfyUI_ColorImageDetection": [
+ [
+ "LABColorDetection",
+ "RGBColorDetection"
+ ],
+ {
+ "title_aux": "ComfyUI Color Detection Nodes"
+ }
+ ],
+ "https://github.com/Electrofried/ComfyUI-OpenAINode": [
+ [
+ "OpenAINode"
+ ],
+ {
+ "title_aux": "OpenAINode"
+ }
+ ],
+ "https://github.com/EllangoK/ComfyUI-post-processing-nodes": [
+ [
+ "ArithmeticBlend",
+ "AsciiArt",
+ "Blend",
+ "Blur",
+ "CannyEdgeMask",
+ "ChromaticAberration",
+ "ColorCorrect",
+ "ColorTint",
+ "Dissolve",
+ "Dither",
+ "DodgeAndBurn",
+ "FilmGrain",
+ "Glow",
+ "HSVThresholdMask",
+ "KMeansQuantize",
+ "KuwaharaBlur",
+ "Parabolize",
+ "PencilSketch",
+ "PixelSort",
+ "Pixelize",
+ "Quantize",
+ "Sharpen",
+ "SineWave",
+ "Solarize",
+ "Vignette"
+ ],
+ {
+ "title_aux": "ComfyUI-post-processing-nodes"
+ }
+ ],
+ "https://github.com/ExponentialML/ComfyUI_ModelScopeT2V": [
+ [
+ "ModelScopeT2VLoader"
+ ],
+ {
+ "title_aux": "ComfyUI_ModelScopeT2V"
+ }
+ ],
+ "https://github.com/ExponentialML/ComfyUI_Native_DynamiCrafter": [
+ [
+ "DynamiCrafterLoader",
+ "DynamiCrafterProcessor"
+ ],
+ {
+ "title_aux": "ComfyUI - Native DynamiCrafter"
+ }
+ ],
+ "https://github.com/ExponentialML/ComfyUI_VisualStylePrompting": [
+ [
+ "ApplyVisualStyle"
+ ],
+ {
+ "title_aux": "ComfyUI_VisualStylePrompting"
+ }
+ ],
+ "https://github.com/Extraltodeus/ComfyUI-AutomaticCFG": [
+ [
+ "Automatic CFG",
+ "Automatic CFG - Advanced",
+ "Automatic CFG - Attention modifiers",
+ "Automatic CFG - Attention modifiers tester",
+ "Automatic CFG - Custom attentions",
+ "Automatic CFG - Excellent attention",
+ "Automatic CFG - Negative",
+ "Automatic CFG - Post rescale only",
+ "Automatic CFG - Preset Loader",
+ "Automatic CFG - Unpatch function",
+ "Automatic CFG - Warp Drive",
+ "SAG delayed activation",
+ "Temperature separate settings CLIP SDXL",
+ "Temperature settings CLIP",
+ "Temperature settings SD 1.5",
+ "Temperature settings SDXL",
+ "Zero Uncond CFG - standalone patch (incompatible with the others)"
+ ],
+ {
+ "title_aux": "ComfyUI-AutomaticCFG"
+ }
+ ],
+ "https://github.com/Extraltodeus/LoadLoraWithTags": [
+ [
+ "LoraLoaderTagsQuery"
+ ],
+ {
+ "title_aux": "LoadLoraWithTags"
+ }
+ ],
+ "https://github.com/Extraltodeus/Stable-Diffusion-temperature-settings": [
+ [
+ "CLIP Temperature",
+ "Unet Temperature"
+ ],
+ {
+ "title_aux": "Stable-Diffusion-temperature-settings"
+ }
+ ],
+ "https://github.com/Extraltodeus/Uncond-Zero-for-ComfyUI": [
+ [
+ "Conditioning combine positive and negative",
+ "Conditioning crop or fill",
+ "Uncond Zero",
+ "interrupt on NaN"
+ ],
+ {
+ "title_aux": "Uncond-Zero-for-ComfyUI"
+ }
+ ],
+ "https://github.com/Extraltodeus/Vector_Sculptor_ComfyUI": [
+ [
+ "CLIP Vector Sculptor text encode",
+ "Conditioning (Average keep magnitude)",
+ "Conditioning (Slerp)",
+ "Conditioning SDXL merge clip_g / clip_l",
+ "Conditioning normalize magnitude to empty"
+ ],
+ {
+ "title_aux": "Vector_Sculptor_ComfyUI"
+ }
+ ],
+ "https://github.com/Extraltodeus/noise_latent_perlinpinpin": [
+ [
+ "NoisyLatentPerlin"
+ ],
+ {
+ "title_aux": "noise latent perlinpinpin"
+ }
+ ],
+ "https://github.com/Extraltodeus/pre_cfg_comfy_nodes_for_ComfyUI": [
+ [
+ "Pre CFG automatic scale",
+ "Pre CFG consensus sharpening",
+ "Pre CFG exponentiation",
+ "Pre CFG perp-neg",
+ "Pre CFG sharpening"
+ ],
+ {
+ "title_aux": "pre_cfg_comfy_nodes_for_ComfyUI"
+ }
+ ],
+ "https://github.com/Extraltodeus/sigmas_tools_and_the_golden_scheduler": [
+ [
+ "Aligned Scheduler",
+ "Gaussian Tail Scheduler",
+ "Get sigmas as float",
+ "Graph sigmas",
+ "Manual scheduler",
+ "Merge many sigmas by average",
+ "Merge sigmas by average",
+ "Merge sigmas gradually",
+ "Multiply sigmas",
+ "Output min/max sigmas",
+ "Split and concatenate sigmas",
+ "The Golden Scheduler"
+ ],
+ {
+ "title_aux": "sigmas_tools_and_the_golden_scheduler"
+ }
+ ],
+ "https://github.com/Fannovel16/ComfyUI-Frame-Interpolation": [
+ [
+ "AMT VFI",
+ "CAIN VFI",
+ "FILM VFI",
+ "FLAVR VFI",
+ "GMFSS Fortuna VFI",
+ "IFRNet VFI",
+ "IFUnet VFI",
+ "KSampler Gradually Adding More Denoise (efficient)",
+ "M2M VFI",
+ "Make Interpolation State List",
+ "RIFE VFI",
+ "STMFNet VFI",
+ "Sepconv VFI",
+ "VFI FloatToInt"
+ ],
+ {
+ "title_aux": "ComfyUI Frame Interpolation"
+ }
+ ],
+ "https://github.com/Fannovel16/ComfyUI-Loopchain": [
+ [
+ "EmptyLatentImageLoop",
+ "FolderToImageStorage",
+ "ImageStorageExportLoop",
+ "ImageStorageImport",
+ "ImageStorageReset",
+ "LatentStorageExportLoop",
+ "LatentStorageImport",
+ "LatentStorageReset"
+ ],
+ {
+ "title_aux": "ComfyUI Loopchain"
+ }
+ ],
+ "https://github.com/Fannovel16/ComfyUI-MagickWand": [
+ [
+ "ImageMagick Adaptive Blur",
+ "ImageMagick Adaptive Resize",
+ "ImageMagick Adaptive Sharpen",
+ "ImageMagick Adaptive Threshold",
+ "ImageMagick Auto Gamma",
+ "ImageMagick Auto Level",
+ "ImageMagick Auto Orient",
+ "ImageMagick Auto Threshold",
+ "ImageMagick Blue Shift",
+ "ImageMagick Blur",
+ "ImageMagick Brightness Contrast",
+ "ImageMagick Canny",
+ "ImageMagick Charcoal",
+ "ImageMagick Chop",
+ "ImageMagick Clahe",
+ "ImageMagick Clamp",
+ "ImageMagick Coalesce",
+ "ImageMagick Color Decision List",
+ "ImageMagick Color Matrix",
+ "ImageMagick Combine",
+ "ImageMagick Concat",
+ "ImageMagick Contrast",
+ "ImageMagick Contrast Stretch",
+ "ImageMagick Crop",
+ "ImageMagick Cycle Color Map",
+ "ImageMagick Decipher",
+ "ImageMagick Despeckle",
+ "ImageMagick Distort",
+ "ImageMagick Edge",
+ "ImageMagick Emboss",
+ "ImageMagick Encipher",
+ "ImageMagick Enhance",
+ "ImageMagick Equalize",
+ "ImageMagick Evaluate",
+ "ImageMagick Extent",
+ "ImageMagick Flip",
+ "ImageMagick Flop",
+ "ImageMagick Forward Fourier Transform",
+ "ImageMagick Function",
+ "ImageMagick Gamma",
+ "ImageMagick Gaussian Blur",
+ "ImageMagick Hough Lines",
+ "ImageMagick Implode",
+ "ImageMagick Kmeans",
+ "ImageMagick Kuwahara",
+ "ImageMagick Level",
+ "ImageMagick Levelize",
+ "ImageMagick Linear Stretch",
+ "ImageMagick Liquid Rescale",
+ "ImageMagick Local Contrast",
+ "ImageMagick Magnify",
+ "ImageMagick Mean Shift",
+ "ImageMagick Merge Layers",
+ "ImageMagick Mode",
+ "ImageMagick Modulate",
+ "ImageMagick Morphology",
+ "ImageMagick Motion Blur",
+ "ImageMagick Negate",
+ "ImageMagick Noise",
+ "ImageMagick Normalize",
+ "ImageMagick Oil Paint",
+ "ImageMagick Ordered Dither",
+ "ImageMagick Polynomial",
+ "ImageMagick Posterize",
+ "ImageMagick Quantize",
+ "ImageMagick Random Threshold",
+ "ImageMagick Range Threshold",
+ "ImageMagick Resample",
+ "ImageMagick Resize",
+ "ImageMagick Roll",
+ "ImageMagick Rotational Blur",
+ "ImageMagick Sample",
+ "ImageMagick Scale",
+ "ImageMagick Selective Blur",
+ "ImageMagick Sepia Tone",
+ "ImageMagick Shade",
+ "ImageMagick Shadow",
+ "ImageMagick Sharpen",
+ "ImageMagick Shave",
+ "ImageMagick Sigmoidal Contrast",
+ "ImageMagick Sketch",
+ "ImageMagick Smush",
+ "ImageMagick Solarize",
+ "ImageMagick Splice",
+ "ImageMagick Spread",
+ "ImageMagick Statistic",
+ "ImageMagick Swirl",
+ "ImageMagick Threshold",
+ "ImageMagick Thumbnail",
+ "ImageMagick Transform",
+ "ImageMagick Transform Colorspace",
+ "ImageMagick Transparentize",
+ "ImageMagick Transpose",
+ "ImageMagick Transverse",
+ "ImageMagick Unsharp Mask",
+ "ImageMagick Vignette",
+ "ImageMagick Wave",
+ "ImageMagick Wavelet Denoise",
+ "ImageMagick White Balance"
+ ],
+ {
+ "title_aux": "ComfyUI-MagickWand"
+ }
+ ],
+ "https://github.com/Fannovel16/ComfyUI-MotionDiff": [
+ [
+ "EmptyMotionData",
+ "ExportSMPLTo3DSoftware",
+ "Export_SMPLMultipleSubjects_To_3DSoftware",
+ "Human4D_Img2SMPL",
+ "Humans4DLoader",
+ "MotionCLIPTextEncode",
+ "MotionDataVisualizer",
+ "MotionDiffLoader",
+ "MotionDiffSimpleSampler",
+ "RenderMultipleSubjectsSMPLMesh",
+ "RenderSMPLMesh",
+ "Render_OpenPose_From_SMPL_Mesh_Multiple_Subjects",
+ "SMPLLoader",
+ "SMPLShapeParameters",
+ "SaveSMPL",
+ "SmplifyMotionData",
+ "SpectreFaceReconLoader",
+ "SpectreImg2SMPL",
+ "mgpt_model_loader",
+ "mgpt_t2m"
+ ],
+ {
+ "title_aux": "ComfyUI MotionDiff"
+ }
+ ],
+ "https://github.com/Fannovel16/ComfyUI-Video-Matting": [
+ [
+ "BRIAAI Matting",
+ "Robust Video Matting"
+ ],
+ {
+ "title_aux": "ComfyUI-Video-Matting"
+ }
+ ],
+ "https://github.com/Fannovel16/comfyui_controlnet_aux": [
+ [
+ "AIO_Preprocessor",
+ "AnimalPosePreprocessor",
+ "AnimeFace_SemSegPreprocessor",
+ "AnimeLineArtPreprocessor",
+ "AnyLineArtPreprocessor_aux",
+ "BAE-NormalMapPreprocessor",
+ "BinaryPreprocessor",
+ "CannyEdgePreprocessor",
+ "ColorPreprocessor",
+ "ControlNetPreprocessorSelector",
+ "DSINE-NormalMapPreprocessor",
+ "DWPreprocessor",
+ "DensePosePreprocessor",
+ "DepthAnythingPreprocessor",
+ "DepthAnythingV2Preprocessor",
+ "DiffusionEdge_Preprocessor",
+ "FacialPartColoringFromPoseKps",
+ "FakeScribblePreprocessor",
+ "HEDPreprocessor",
+ "HintImageEnchance",
+ "ImageGenResolutionFromImage",
+ "ImageGenResolutionFromLatent",
+ "ImageIntensityDetector",
+ "ImageLuminanceDetector",
+ "InpaintPreprocessor",
+ "LeReS-DepthMapPreprocessor",
+ "LineArtPreprocessor",
+ "LineartStandardPreprocessor",
+ "M-LSDPreprocessor",
+ "Manga2Anime_LineArt_Preprocessor",
+ "MaskOptFlow",
+ "MediaPipe-FaceMeshPreprocessor",
+ "MeshGraphormer+ImpactDetector-DepthMapPreprocessor",
+ "MeshGraphormer-DepthMapPreprocessor",
+ "Metric3D-DepthMapPreprocessor",
+ "Metric3D-NormalMapPreprocessor",
+ "Metric_DepthAnythingV2Preprocessor",
+ "MiDaS-DepthMapPreprocessor",
+ "MiDaS-NormalMapPreprocessor",
+ "OneFormer-ADE20K-SemSegPreprocessor",
+ "OneFormer-COCO-SemSegPreprocessor",
+ "OpenposePreprocessor",
+ "PiDiNetPreprocessor",
+ "PixelPerfectResolution",
+ "RenderAnimalKps",
+ "RenderPeopleKps",
+ "SAMPreprocessor",
+ "SavePoseKpsAsJsonFile",
+ "ScribblePreprocessor",
+ "Scribble_PiDiNet_Preprocessor",
+ "Scribble_XDoG_Preprocessor",
+ "SemSegPreprocessor",
+ "ShufflePreprocessor",
+ "TEEDPreprocessor",
+ "TTPlanet_TileGF_Preprocessor",
+ "TTPlanet_TileSimple_Preprocessor",
+ "TilePreprocessor",
+ "UniFormer-SemSegPreprocessor",
+ "Unimatch_OptFlowPreprocessor",
+ "UpperBodyTrackingFromPoseKps",
+ "Zoe-DepthMapPreprocessor",
+ "Zoe_DepthAnythingPreprocessor"
+ ],
+ {
+ "author": "tstandley",
+ "preemptions": [
+ "AIO_Preprocessor",
+ "AnimalPosePreprocessor",
+ "AnimeFace_SemSegPreprocessor",
+ "AnimeLineArtPreprocessor",
+ "BAE-NormalMapPreprocessor",
+ "BinaryPreprocessor",
+ "CannyEdgePreprocessor",
+ "ColorPreprocessor",
+ "DSINE-NormalMapPreprocessor",
+ "DWPreprocessor",
+ "DensePosePreprocessor",
+ "DepthAnythingPreprocessor",
+ "DiffusionEdge_Preprocessor",
+ "FacialPartColoringFromPoseKps",
+ "FakeScribblePreprocessor",
+ "HEDPreprocessor",
+ "HintImageEnchance",
+ "ImageGenResolutionFromImage",
+ "ImageGenResolutionFromLatent",
+ "ImageIntensityDetector",
+ "ImageLuminanceDetector",
+ "InpaintPreprocessor",
+ "LeReS-DepthMapPreprocessor",
+ "LineArtPreprocessor",
+ "LineartStandardPreprocessor",
+ "M-LSDPreprocessor",
+ "Manga2Anime_LineArt_Preprocessor",
+ "MaskOptFlow",
+ "MediaPipe-FaceMeshPreprocessor",
+ "MeshGraphormer-DepthMapPreprocessor",
+ "MiDaS-DepthMapPreprocessor",
+ "MiDaS-NormalMapPreprocessor",
+ "OneFormer-ADE20K-SemSegPreprocessor",
+ "OneFormer-COCO-SemSegPreprocessor",
+ "OpenposePreprocessor",
+ "PiDiNetPreprocessor",
+ "PixelPerfectResolution",
+ "SAMPreprocessor",
+ "SavePoseKpsAsJsonFile",
+ "ScribblePreprocessor",
+ "Scribble_XDoG_Preprocessor",
+ "SemSegPreprocessor",
+ "ShufflePreprocessor",
+ "TEEDPreprocessor",
+ "TilePreprocessor",
+ "UniFormer-SemSegPreprocessor",
+ "Unimatch_OptFlowPreprocessor",
+ "Zoe-DepthMapPreprocessor",
+ "Zoe_DepthAnythingPreprocessor"
+ ],
+ "title_aux": "ComfyUI's ControlNet Auxiliary Preprocessors"
+ }
+ ],
+ "https://github.com/Fantaxico/ComfyUI-GCP-Storage": [
+ [
+ "GCPStorageNode"
+ ],
+ {
+ "title_aux": "ComfyUI-GCP-Storage"
+ }
+ ],
+ "https://github.com/Feidorian/feidorian-ComfyNodes": [
+ [],
+ {
+ "nodename_pattern": "^Feidorian_",
+ "title_aux": "feidorian-ComfyNodes"
+ }
+ ],
+ "https://github.com/Fictiverse/ComfyUI_Fictiverse": [
+ [
+ "Add Noise to Image with Mask",
+ "Color correction",
+ "Displace Image with Depth",
+ "Displace Images with Mask",
+ "Zoom Image with Depth"
+ ],
+ {
+ "title_aux": "ComfyUI Fictiverse Nodes"
+ }
+ ],
+ "https://github.com/Fihade/IC-Light-ComfyUI-Node": [
+ [
+ "LoadICLightUnetDiffusers",
+ "diffusers_model_loader",
+ "iclight_diffusers_sampler"
+ ],
+ {
+ "title_aux": "IC-Light-ComfyUI-Node"
+ }
+ ],
+ "https://github.com/FizzleDorf/ComfyUI-AIT": [
+ [
+ "AIT_Unet_Loader",
+ "AIT_VAE_Encode_Loader"
+ ],
+ {
+ "title_aux": "ComfyUI-AIT"
+ }
+ ],
+ "https://github.com/FizzleDorf/ComfyUI_FizzNodes": [
+ [
+ "AbsCosWave",
+ "AbsSinWave",
+ "BatchGLIGENSchedule",
+ "BatchPromptSchedule",
+ "BatchPromptScheduleEncodeSDXL",
+ "BatchPromptScheduleLatentInput",
+ "BatchPromptScheduleNodeFlowEnd",
+ "BatchPromptScheduleSDXLLatentInput",
+ "BatchStringSchedule",
+ "BatchValueSchedule",
+ "BatchValueScheduleLatentInput",
+ "CalculateFrameOffset",
+ "ConcatStringSingle",
+ "CosWave",
+ "FizzFrame",
+ "FizzFrameConcatenate",
+ "ImagesFromBatchSchedule",
+ "Init FizzFrame",
+ "InvCosWave",
+ "InvSinWave",
+ "Lerp",
+ "PromptSchedule",
+ "PromptScheduleEncodeSDXL",
+ "PromptScheduleNodeFlow",
+ "PromptScheduleNodeFlowEnd",
+ "SawtoothWave",
+ "SinWave",
+ "SquareWave",
+ "StringConcatenate",
+ "StringSchedule",
+ "TriangleWave",
+ "ValueSchedule",
+ "convertKeyframeKeysToBatchKeys"
+ ],
+ {
+ "title_aux": "FizzNodes"
+ }
+ ],
+ "https://github.com/FlyingFireCo/tiled_ksampler": [
+ [
+ "Asymmetric Tiled KSampler",
+ "Circular VAEDecode",
+ "Tiled KSampler"
+ ],
+ {
+ "title_aux": "tiled_ksampler"
+ }
+ ],
+ "https://github.com/ForeignGods/ComfyUI-Mana-Nodes": [
+ [
+ "Canvas Properties",
+ "Combine Video",
+ "Font Properties",
+ "Generate Audio",
+ "Preset Color Animations",
+ "Save/Preview Text",
+ "Scheduled Values",
+ "Speech Recognition",
+ "Split Video",
+ "Text to Image Generator"
+ ],
+ {
+ "title_aux": "ComfyUI-Mana-Nodes"
+ }
+ ],
+ "https://github.com/Franck-Demongin/NX_PromptStyler": [
+ [
+ "NX_PromptStyler"
+ ],
+ {
+ "title_aux": "NX_PromptStyler"
+ }
+ ],
+ "https://github.com/FuouM/ComfyUI-FirstOrderMM": [
+ [
+ "FOMM_Partswap",
+ "FOMM_Runner",
+ "FOMM_Seg10Chooser",
+ "FOMM_Seg15Chooser",
+ "FOMM_Seg5Chooser"
+ ],
+ {
+ "author": "Fuou Marinas",
+ "description": "Run First Order Motion Model for Image Animation in ComfyUI.",
+ "nickname": "FOMM",
+ "title": "ComfyUI-FirstOrderMM",
+ "title_aux": "ComfyUI-FirstOrderMM"
+ }
+ ],
+ "https://github.com/G-370/ComfyUI-SD3-Powerlab": [
+ [
+ "G370SD3PowerLab_AttentionToImage",
+ "G370SD3PowerLab_ImageIntoAttention",
+ "G370SD3PowerLab_ImageIntoLayer",
+ "G370SD3PowerLab_LayerToImage",
+ "G370SD3PowerLab_RenderAttention"
+ ],
+ {
+ "title_aux": "ComfyUI-SD3-Powerlab"
+ }
+ ],
+ "https://github.com/GMapeSplat/ComfyUI_ezXY": [
+ [
+ "ConcatenateString",
+ "ItemFromDropdown",
+ "IterationDriver",
+ "JoinImages",
+ "LineToConsole",
+ "NumberFromList",
+ "NumbersToList",
+ "PlotImages",
+ "StringFromList",
+ "StringToLabel",
+ "StringsToList",
+ "ezMath",
+ "ezXY_AssemblePlot",
+ "ezXY_Driver"
+ ],
+ {
+ "title_aux": "ezXY scripts and nodes"
+ }
+ ],
+ "https://github.com/GTSuya-Studio/ComfyUI-Gtsuya-Nodes": [
+ [
+ "Danbooru (ID)",
+ "Danbooru (Random)",
+ "Random File From Path",
+ "Replace Strings",
+ "Simple Wildcards",
+ "Simple Wildcards (Dir.)",
+ "Wildcards Nodes"
+ ],
+ {
+ "title_aux": "ComfyUI-GTSuya-Nodes"
+ }
+ ],
+ "https://github.com/GavChap/ComfyUI-SD3LatentSelectRes": [
+ [
+ "SD3LatentSelectRes"
+ ],
+ {
+ "title_aux": "ComfyUI-SD3LatentSelectRes"
+ }
+ ],
+ "https://github.com/GentlemanHu/ComfyUI-SunoAI": [
+ [
+ "GentlemanHu_SunoAI",
+ "GentlemanHu_SunoAI_NotSafe"
+ ],
+ {
+ "title_aux": "ComfyUI Suno API"
+ }
+ ],
+ "https://github.com/Goktug/comfyui-saveimage-plus": [
+ [
+ "SaveImagePlus"
+ ],
+ {
+ "title_aux": "Save Image Plus for ComfyUI"
+ }
+ ],
+ "https://github.com/Gourieff/comfyui-reactor-node": [
+ [
+ "ImageRGBA2RGB",
+ "ReActorBuildFaceModel",
+ "ReActorFaceBoost",
+ "ReActorFaceSwap",
+ "ReActorFaceSwapOpt",
+ "ReActorImageDublicator",
+ "ReActorLoadFaceModel",
+ "ReActorMakeFaceModelBatch",
+ "ReActorMaskHelper",
+ "ReActorOptions",
+ "ReActorRestoreFace",
+ "ReActorSaveFaceModel"
+ ],
+ {
+ "title_aux": "ReActor Node for ComfyUI"
+ }
+ ],
+ "https://github.com/GraftingRayman/ComfyUI_GraftingRayman": [
+ [
+ "GR Background Remover REMBG",
+ "GR Checkered Board",
+ "GR Counter",
+ "GR Flip Tile Random Inverted",
+ "GR Flip Tile Random Red Ring",
+ "GR Image Details Displayer",
+ "GR Image Details Saver",
+ "GR Image Paste",
+ "GR Image Paste With Mask",
+ "GR Image Resize",
+ "GR Image Resize Methods",
+ "GR Image Size",
+ "GR Image/Depth Mask",
+ "GR Mask Create",
+ "GR Mask Create Random",
+ "GR Mask Resize",
+ "GR Multi Mask Create",
+ "GR Onomatopoeia",
+ "GR Prompt HUB",
+ "GR Prompt Selector",
+ "GR Prompt Selector Multi",
+ "GR Scroller",
+ "GR Stack Image",
+ "GR Text Overlay",
+ "GR Tile and Border Image",
+ "GR Tile and Border Image Random Flip"
+ ],
+ {
+ "title_aux": "GraftingRayman"
+ }
+ ],
+ "https://github.com/Grant-CP/ComfyUI-LivePortraitKJ-MPS": [
+ [
+ "DownloadAndLoadLivePortraitModels",
+ "LivePortraitProcess"
+ ],
+ {
+ "title_aux": "ComfyUI-LivePortraitKJ-MPS"
+ }
+ ],
+ "https://github.com/GreenLandisaLie/AuraSR-ComfyUI": [
+ [
+ "AuraSR.AuraSRUpscaler"
+ ],
+ {
+ "title_aux": "AuraSR-ComfyUI"
+ }
+ ],
+ "https://github.com/Guillaume-Fgt/ComfyUI_StableCascadeLatentRatio": [
+ [
+ "StableCascadeLatentRatio"
+ ],
+ {
+ "title_aux": "ComfyUI_StableCascadeLatentRatio"
+ }
+ ],
+ "https://github.com/HAL41/ComfyUI-aichemy-nodes": [
+ [
+ "aichemyYOLOv8Segmentation"
+ ],
+ {
+ "title_aux": "ComfyUI aichemy nodes"
+ }
+ ],
+ "https://github.com/HECer/ComfyUI-FilePathCreator": [
+ [
+ "FilePathCreator"
+ ],
+ {
+ "title_aux": "ComfyUI-FilePathCreator"
+ }
+ ],
+ "https://github.com/Hangover3832/ComfyUI-Hangover-Moondream": [
+ [
+ "Moondream Interrogator"
+ ],
+ {
+ "author": "AlexL",
+ "description": "An implementation of the moondream visual LLM",
+ "nickname": "Hangover-Moondream",
+ "title": "ComfyUI-Hangover-Moondream",
+ "title_aux": "ComfyUI-Hangover-Moondream"
+ }
+ ],
+ "https://github.com/Hangover3832/ComfyUI-Hangover-Nodes": [
+ [
+ "Image Scale Bounding Box",
+ "MS kosmos-2 Interrogator",
+ "Make Inpaint Model",
+ "Save Image w/o Metadata"
+ ],
+ {
+ "author": "AlexL",
+ "description": "Scales an input image into a given box size, whereby the aspect ratio keeps retained.",
+ "nickname": "Hangover-Image_Scale_Bouning_Box",
+ "title": "ComfyUI-Hangover-Image_Scale_Bouning_Box",
+ "title_aux": "ComfyUI-Hangover-Nodes"
+ }
+ ],
+ "https://github.com/Hangover3832/ComfyUI-Hangover-Recognize_Anything": [
+ [
+ "Recognize Anything Model (RAM)"
+ ],
+ {
+ "author": "AlexL",
+ "description": "An implementation of the Recognize Anything Model (RAM++) for ComfyUI. The counterpart of Segment Anything Model (SAM).",
+ "nickname": "Hangover-Recognize_Anything",
+ "title": "ComfyUI-Hangover-Recognize_Anything",
+ "title_aux": "Recognize Anything Model (RAM) for ComfyUI"
+ }
+ ],
+ "https://github.com/Haoming02/comfyui-diffusion-cg": [
+ [
+ "Normalization",
+ "NormalizationXL",
+ "Recenter",
+ "Recenter XL"
+ ],
+ {
+ "title_aux": "ComfyUI Diffusion Color Grading"
+ }
+ ],
+ "https://github.com/Haoming02/comfyui-floodgate": [
+ [
+ "FloodGate"
+ ],
+ {
+ "title_aux": "ComfyUI Floodgate"
+ }
+ ],
+ "https://github.com/HaydenReeve/ComfyUI-Better-Strings": [
+ [
+ "BetterString"
+ ],
+ {
+ "title_aux": "ComfyUI Better Strings"
+ }
+ ],
+ "https://github.com/HebelHuber/comfyui-enhanced-save-node": [
+ [
+ "EnhancedSaveNode"
+ ],
+ {
+ "title_aux": "comfyui-enhanced-save-node"
+ }
+ ],
+ "https://github.com/Hiero207/ComfyUI-Hiero-Nodes": [
+ [
+ "Load Prompt Travel file",
+ "Post to Discord w/ Webhook",
+ "Save Prompt Travel file"
+ ],
+ {
+ "author": "Hiero",
+ "description": "Just some nodes that I wanted/needed, so I made them.",
+ "nickname": "HNodes",
+ "title": "Hiero-Nodes",
+ "title_aux": "Hiero-Nodes"
+ }
+ ],
+ "https://github.com/IDGallagher/ComfyUI-IG-Nodes": [
+ [
+ "IG Analyze SSIM",
+ "IG Cross Fade Images",
+ "IG Explorer",
+ "IG Float",
+ "IG Float List",
+ "IG Folder",
+ "IG Int",
+ "IG Interpolate",
+ "IG Load Image",
+ "IG Load Images",
+ "IG Multiply",
+ "IG Path Join",
+ "IG String",
+ "IG String List",
+ "IG ZFill"
+ ],
+ {
+ "author": "IDGallagher",
+ "description": "Custom nodes to aid in the exploration of Latent Space",
+ "nickname": "IG Interpolation Nodes",
+ "title": "IG Interpolation Nodes",
+ "title_aux": "IG Interpolation Nodes"
+ }
+ ],
+ "https://github.com/ITurchenko/ComfyUI-SizeFromArray": [
+ [
+ "SizeFromArray"
+ ],
+ {
+ "title_aux": "ComfyUI-SizeFromArray"
+ }
+ ],
+ "https://github.com/ImmortalPie/ComfyUI-PonySwitch/raw/main/PonySwitch.py": [
+ [
+ "PonySwitch"
+ ],
+ {
+ "title_aux": "PonySwitch Node"
+ }
+ ],
+ "https://github.com/Intersection98/ComfyUI_MX_post_processing-nodes": [
+ [
+ "MX_AlphaBlend",
+ "MX_Blend",
+ "MX_Blur",
+ "MX_Canny",
+ "MX_ChromaticAberration",
+ "MX_ColorCorrect",
+ "MX_ColorMatch",
+ "MX_ColorTint",
+ "MX_Glow",
+ "MX_HSVThresholdMask",
+ "MX_KuwaharaBlur(Cartoon)",
+ "MX_LUT",
+ "MX_LensBokeh",
+ "MX_LensOpticAxis",
+ "MX_LensZoomBurst",
+ "MX_Mosaic",
+ "MX_Noise",
+ "MX_Posterize",
+ "MX_SineWave",
+ "MX_Solarize",
+ "MX_Vignette"
+ ],
+ {
+ "title_aux": "ComfyUI-MX-post-processing-nodes"
+ }
+ ],
+ "https://github.com/Inzaniak/comfyui-ranbooru": [
+ [
+ "LockSeed",
+ "PromptBackground",
+ "PromptLimit",
+ "PromptMix",
+ "PromptRandomWeight",
+ "PromptRemove",
+ "Ranbooru",
+ "RanbooruURL",
+ "RandomPicturePath",
+ "TimestampFileName"
+ ],
+ {
+ "title_aux": "Ranbooru for ComfyUI"
+ }
+ ],
+ "https://github.com/IsItDanOrAi/ComfyUI-Stereopsis": [
+ [
+ "Dan_FrameDelay",
+ "Dan_Stereopsis"
+ ],
+ {
+ "title_aux": "ComfyUI-Stereopsis"
+ }
+ ],
+ "https://github.com/JPS-GER/ComfyUI_JPS-Nodes": [
+ [
+ "CLIPTextEncode SDXL Plus (JPS)",
+ "Conditioning Switch (JPS)",
+ "ControlNet Switch (JPS)",
+ "Crop Image Pipe (JPS)",
+ "Crop Image Settings (JPS)",
+ "Crop Image Square (JPS)",
+ "Crop Image TargetSize (JPS)",
+ "CtrlNet CannyEdge Pipe (JPS)",
+ "CtrlNet CannyEdge Settings (JPS)",
+ "CtrlNet MiDaS Pipe (JPS)",
+ "CtrlNet MiDaS Settings (JPS)",
+ "CtrlNet OpenPose Pipe (JPS)",
+ "CtrlNet OpenPose Settings (JPS)",
+ "CtrlNet ZoeDepth Pipe (JPS)",
+ "CtrlNet ZoeDepth Settings (JPS)",
+ "Disable Enable Switch (JPS)",
+ "Enable Disable Switch (JPS)",
+ "Generation TXT IMG Settings (JPS)",
+ "Get Date Time String (JPS)",
+ "Get Image Size (JPS)",
+ "IP Adapter Settings (JPS)",
+ "IP Adapter Settings Pipe (JPS)",
+ "IP Adapter Tiled Settings (JPS)",
+ "IP Adapter Tiled Settings Pipe (JPS)",
+ "IPA Switch (JPS)",
+ "Image Prepare Pipe (JPS)",
+ "Image Prepare Settings (JPS)",
+ "Image Switch (JPS)",
+ "ImageToImage Pipe (JPS)",
+ "ImageToImage Settings (JPS)",
+ "Images Masks MultiPipe (JPS)",
+ "InstantID Mask Prepare Pipe (JPS)",
+ "InstantID Mask Prepare Settings (JPS)",
+ "InstantID Pipe (JPS)",
+ "InstantID Pose Prepare Pipe (JPS)",
+ "InstantID Pose Prepare Settings (JPS)",
+ "InstantID Settings (JPS)",
+ "InstantID Source Prepare Pipe (JPS)",
+ "InstantID Source Prepare Settings (JPS)",
+ "Integer Switch (JPS)",
+ "Largest Int (JPS)",
+ "Latent Switch (JPS)",
+ "Lora Loader (JPS)",
+ "Mask Switch (JPS)",
+ "Model Switch (JPS)",
+ "Multiply Float Float (JPS)",
+ "Multiply Int Float (JPS)",
+ "Multiply Int Int (JPS)",
+ "Prepare Image (JPS)",
+ "Prepare Image Plus (JPS)",
+ "Prepare Image Tiled IPA (JPS)",
+ "Resolution Multiply (JPS)",
+ "Revision Settings (JPS)",
+ "Revision Settings Pipe (JPS)",
+ "SDXL Basic Settings (JPS)",
+ "SDXL Basic Settings Pipe (JPS)",
+ "SDXL Fundamentals MultiPipe (JPS)",
+ "SDXL Prompt Handling (JPS)",
+ "SDXL Prompt Handling Plus (JPS)",
+ "SDXL Prompt Styler (JPS)",
+ "SDXL Recommended Resolution Calc (JPS)",
+ "SDXL Resolutions (JPS)",
+ "SDXL Settings (JPS)",
+ "SDXL Settings Pipe (JPS)",
+ "Sampler Scheduler Settings (JPS)",
+ "Save Images Plus (JPS)",
+ "Substract Int Int (JPS)",
+ "Text Concatenate (JPS)",
+ "Text Prompt (JPS)",
+ "Text Prompt Combo (JPS)",
+ "Time Seed (JPS)",
+ "VAE Switch (JPS)"
+ ],
+ {
+ "author": "JPS",
+ "description": "Various nodes to handle SDXL Resolutions, SDXL Basic Settings, IP Adapter Settings, Revision Settings, SDXL Prompt Styler, Crop Image to Square, Crop Image to Target Size, Get Date-Time String, Resolution Multiply, Largest Integer, 5-to-1 Switches for Integer, Images, Latents, Conditioning, Model, VAE, ControlNet",
+ "nickname": "JPS Custom Nodes",
+ "title": "JPS Custom Nodes for ComfyUI",
+ "title_aux": "JPS Custom Nodes for ComfyUI"
+ }
+ ],
+ "https://github.com/Jannchie/ComfyUI-J": [
+ [
+ "DiffusersCompelPromptEmbedding",
+ "DiffusersControlnetLoader",
+ "DiffusersControlnetUnit",
+ "DiffusersControlnetUnitStack",
+ "DiffusersDecoder",
+ "DiffusersGenerator",
+ "DiffusersPipeline",
+ "DiffusersPrepareLatents",
+ "DiffusersTextureInversionLoader",
+ "DiffusersXLPipeline",
+ "GetAverageColorFromImage",
+ "GetFilledColorImage"
+ ],
+ {
+ "title_aux": "ComfyUI-J"
+ }
+ ],
+ "https://github.com/JaredTherriault/ComfyUI-JNodes": [
+ [
+ "JNodes_AddOrSetMetaDataKey",
+ "JNodes_AnyToString",
+ "JNodes_AppendReversedFrames",
+ "JNodes_BooleanSelectorWithString",
+ "JNodes_BreakMediaInfo",
+ "JNodes_CheckpointSelectorWithString",
+ "JNodes_CreateStereoscopicImageFromDepth",
+ "JNodes_GetOutputDirectory",
+ "JNodes_GetParameterFromList",
+ "JNodes_GetParameterGlobal",
+ "JNodes_GetTempDirectory",
+ "JNodes_ImageFormatSelector",
+ "JNodes_ImageSizeSelector",
+ "JNodes_LoadVideo",
+ "JNodes_LoadVisualMediaFromPath",
+ "JNodes_LoraExtractor",
+ "JNodes_MediaInfoToString",
+ "JNodes_OutVideoInfo",
+ "JNodes_ParseDynamicPrompts",
+ "JNodes_ParseParametersToGlobalList",
+ "JNodes_ParseWildcards",
+ "JNodes_PromptBuilderSingleSubject",
+ "JNodes_RemoveCommentedText",
+ "JNodes_RemoveMetaDataKey",
+ "JNodes_RemoveParseableDataForInference",
+ "JNodes_SamplerSelectorWithString",
+ "JNodes_SaveImageWithOutput",
+ "JNodes_SaveVideo",
+ "JNodes_SchedulerSelectorWithString",
+ "JNodes_SearchAndReplace",
+ "JNodes_SearchAndReplaceFromFile",
+ "JNodes_SearchAndReplaceFromList",
+ "JNodes_SelectRandomFileFromDirectory",
+ "JNodes_SetNegativePromptInMetaData",
+ "JNodes_SetPositivePromptInMetaData",
+ "JNodes_SplitAndJoin",
+ "JNodes_StringLiteral",
+ "JNodes_SyncedStringLiteral",
+ "JNodes_TokenCounter",
+ "JNodes_TrimAndStrip",
+ "JNodes_UploadVideo",
+ "JNodes_UploadVisualMedia",
+ "JNodes_VaeSelectorWithString"
+ ],
+ {
+ "title_aux": "ComfyUI-JNodes"
+ }
+ ],
+ "https://github.com/JayLyu/ComfyUI_BaiKong_Node": [
+ [
+ "BK_ColorLimit",
+ "BK_ColorSelector",
+ "BK_GradientImage",
+ "BK_Img2Color"
+ ],
+ {
+ "title_aux": "ComfyUI_BaiKong_Node"
+ }
+ ],
+ "https://github.com/JcandZero/ComfyUI_GLM4Node": [
+ [
+ "GLM3_turbo_CHAT",
+ "GLM4_CHAT",
+ "GLM4_Vsion_IMGURL"
+ ],
+ {
+ "title_aux": "ComfyUI_GLM4Node"
+ }
+ ],
+ "https://github.com/Jcd1230/rembg-comfyui-node": [
+ [
+ "Image Remove Background (rembg)"
+ ],
+ {
+ "title_aux": "Rembg Background Removal Node for ComfyUI"
+ }
+ ],
+ "https://github.com/JerryOrbachJr/ComfyUI-RandomSize": [
+ [
+ "JOJR_RandomSize"
+ ],
+ {
+ "author": "JerryOrbachJr",
+ "description": "A ComfyUI custom node that randomly selects a height and width pair from a list in a config file",
+ "nickname": "Random Size",
+ "title": "Random Size",
+ "title_aux": "Random Size"
+ }
+ ],
+ "https://github.com/JettHu/ComfyUI-TCD": [
+ [
+ "TCDModelSamplingDiscrete"
+ ],
+ {
+ "title_aux": "ComfyUI-TCD"
+ }
+ ],
+ "https://github.com/JettHu/ComfyUI_TGate": [
+ [
+ "TGateApply",
+ "TGateApplyAdvanced",
+ "TGateApplySimple"
+ ],
+ {
+ "title_aux": "ComfyUI_TGate"
+ }
+ ],
+ "https://github.com/Jordach/comfy-plasma": [
+ [
+ "JDC_AutoContrast",
+ "JDC_BlendImages",
+ "JDC_BrownNoise",
+ "JDC_Contrast",
+ "JDC_EqualizeGrey",
+ "JDC_GaussianBlur",
+ "JDC_GreyNoise",
+ "JDC_Greyscale",
+ "JDC_ImageLoader",
+ "JDC_ImageLoaderMeta",
+ "JDC_PinkNoise",
+ "JDC_Plasma",
+ "JDC_PlasmaSampler",
+ "JDC_PowerImage",
+ "JDC_RandNoise",
+ "JDC_ResizeFactor"
+ ],
+ {
+ "title_aux": "comfy-plasma"
+ }
+ ],
+ "https://github.com/Kangkang625/ComfyUI-paint-by-example": [
+ [
+ "PaintbyExamplePipeLoader",
+ "PaintbyExampleSampler"
+ ],
+ {
+ "title_aux": "ComfyUI-Paint-by-Example"
+ }
+ ],
+ "https://github.com/KewkLW/ComfyUI-kewky_tools": [
+ [
+ "CLIPInterrogator",
+ "FormattedPromptNode",
+ "ImageBatcher",
+ "LoadImagePlus",
+ "LoadVideoPlus",
+ "TensorDebugPlus",
+ "TextAppendNode",
+ "TextSearchNode",
+ "VRAM_Debug_Plus"
+ ],
+ {
+ "title_aux": "ComfyUI-kewky_tools"
+ }
+ ],
+ "https://github.com/KoreTeknology/ComfyUI-Universal-Styler": [
+ [
+ "Load Nai Styles Complex CSV",
+ "ShowText|pysssss",
+ "Universal_Styler_Node",
+ "concat"
+ ],
+ {
+ "title_aux": "ComfyUI Universal Styler"
+ }
+ ],
+ "https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet": [
+ [
+ "ACN_AdvancedControlNetApply",
+ "ACN_ControlNetLoaderWithLoraAdvanced",
+ "ACN_DefaultUniversalWeights",
+ "ACN_ReferenceControlNet",
+ "ACN_ReferenceControlNetFinetune",
+ "ACN_ReferencePreprocessor",
+ "ACN_SparseCtrlIndexMethodNode",
+ "ACN_SparseCtrlLoaderAdvanced",
+ "ACN_SparseCtrlMergedLoaderAdvanced",
+ "ACN_SparseCtrlRGBPreprocessor",
+ "ACN_SparseCtrlSpreadMethodNode",
+ "ACN_SparseCtrlWeightExtras",
+ "ACN_TimestepKeyframeFromStrengthList",
+ "ACN_TimestepKeyframeInterpolation",
+ "ControlNetLoaderAdvanced",
+ "CustomControlNetWeights",
+ "CustomT2IAdapterWeights",
+ "DiffControlNetLoaderAdvanced",
+ "LatentKeyframe",
+ "LatentKeyframeBatchedGroup",
+ "LatentKeyframeGroup",
+ "LatentKeyframeTiming",
+ "LoadImagesFromDirectory",
+ "ScaledSoftControlNetWeights",
+ "ScaledSoftMaskedUniversalWeights",
+ "SoftControlNetWeights",
+ "SoftT2IAdapterWeights",
+ "TimestepKeyframe"
+ ],
+ {
+ "title_aux": "ComfyUI-Advanced-ControlNet"
+ }
+ ],
+ "https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved": [
+ [
+ "ADE_AdjustPEFullStretch",
+ "ADE_AdjustPEManual",
+ "ADE_AdjustPESweetspotStretch",
+ "ADE_AdjustWeightAllAdd",
+ "ADE_AdjustWeightAllMult",
+ "ADE_AdjustWeightIndivAdd",
+ "ADE_AdjustWeightIndivAttnAdd",
+ "ADE_AdjustWeightIndivAttnMult",
+ "ADE_AdjustWeightIndivMult",
+ "ADE_AnimateDiffCombine",
+ "ADE_AnimateDiffKeyframe",
+ "ADE_AnimateDiffLoRALoader",
+ "ADE_AnimateDiffLoaderGen1",
+ "ADE_AnimateDiffLoaderV1Advanced",
+ "ADE_AnimateDiffLoaderWithContext",
+ "ADE_AnimateDiffModelSettings",
+ "ADE_AnimateDiffModelSettingsAdvancedAttnStrengths",
+ "ADE_AnimateDiffModelSettingsSimple",
+ "ADE_AnimateDiffModelSettings_Release",
+ "ADE_AnimateDiffSamplingSettings",
+ "ADE_AnimateDiffSettings",
+ "ADE_AnimateDiffUniformContextOptions",
+ "ADE_AnimateDiffUnload",
+ "ADE_ApplyAnimateDiffModel",
+ "ADE_ApplyAnimateDiffModelSimple",
+ "ADE_ApplyAnimateDiffModelWithCameraCtrl",
+ "ADE_ApplyAnimateDiffModelWithPIA",
+ "ADE_ApplyAnimateLCMI2VModel",
+ "ADE_AttachLoraHookToCLIP",
+ "ADE_AttachLoraHookToConditioning",
+ "ADE_BatchedContextOptions",
+ "ADE_CameraCtrlAnimateDiffKeyframe",
+ "ADE_CameraManualPoseAppend",
+ "ADE_CameraPoseAdvanced",
+ "ADE_CameraPoseBasic",
+ "ADE_CameraPoseCombo",
+ "ADE_CombineLoraHooks",
+ "ADE_CombineLoraHooksEight",
+ "ADE_CombineLoraHooksFour",
+ "ADE_ConditioningSetMask",
+ "ADE_ConditioningSetMaskAndCombine",
+ "ADE_ConditioningSetUnmaskedAndCombine",
+ "ADE_CustomCFG",
+ "ADE_CustomCFGKeyframe",
+ "ADE_EmptyLatentImageLarge",
+ "ADE_InjectI2VIntoAnimateDiffModel",
+ "ADE_InjectPIAIntoAnimateDiffModel",
+ "ADE_InputPIA_Multival",
+ "ADE_InputPIA_PaperPresets",
+ "ADE_IterationOptsDefault",
+ "ADE_IterationOptsFreeInit",
+ "ADE_LoadAnimateDiffModel",
+ "ADE_LoadAnimateDiffModelWithCameraCtrl",
+ "ADE_LoadAnimateLCMI2VModel",
+ "ADE_LoadCameraPoses",
+ "ADE_LoopedUniformContextOptions",
+ "ADE_LoopedUniformViewOptions",
+ "ADE_LoraHookKeyframe",
+ "ADE_LoraHookKeyframeFromStrengthList",
+ "ADE_LoraHookKeyframeInterpolation",
+ "ADE_MultivalConvertToMask",
+ "ADE_MultivalDynamic",
+ "ADE_MultivalDynamicFloatInput",
+ "ADE_MultivalScaledMask",
+ "ADE_NoiseLayerAdd",
+ "ADE_NoiseLayerAddWeighted",
+ "ADE_NoiseLayerReplace",
+ "ADE_NoisedImageInjectOptions",
+ "ADE_NoisedImageInjection",
+ "ADE_PIA_AnimateDiffKeyframe",
+ "ADE_PairedConditioningSetMask",
+ "ADE_PairedConditioningSetMaskAndCombine",
+ "ADE_PairedConditioningSetUnmaskedAndCombine",
+ "ADE_RawSigmaSchedule",
+ "ADE_RegisterLoraHook",
+ "ADE_RegisterLoraHookModelOnly",
+ "ADE_RegisterModelAsLoraHook",
+ "ADE_RegisterModelAsLoraHookModelOnly",
+ "ADE_ReplaceCameraParameters",
+ "ADE_ReplaceOriginalPoseAspectRatio",
+ "ADE_SetLoraHookKeyframe",
+ "ADE_SigmaSchedule",
+ "ADE_SigmaScheduleSplitAndCombine",
+ "ADE_SigmaScheduleWeightedAverage",
+ "ADE_SigmaScheduleWeightedAverageInterp",
+ "ADE_StandardStaticContextOptions",
+ "ADE_StandardStaticViewOptions",
+ "ADE_StandardUniformContextOptions",
+ "ADE_StandardUniformViewOptions",
+ "ADE_TimestepsConditioning",
+ "ADE_UpscaleAndVAEEncode",
+ "ADE_UseEvolvedSampling",
+ "ADE_ViewsOnlyContextOptions",
+ "AnimateDiffLoaderV1",
+ "CheckpointLoaderSimpleWithNoiseSelect"
+ ],
+ {
+ "title_aux": "AnimateDiff Evolved"
+ }
+ ],
+ "https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite": [
+ [
+ "VHS_AudioToVHSAudio",
+ "VHS_BatchManager",
+ "VHS_DuplicateImages",
+ "VHS_DuplicateLatents",
+ "VHS_DuplicateMasks",
+ "VHS_GetImageCount",
+ "VHS_GetLatentCount",
+ "VHS_GetMaskCount",
+ "VHS_LoadAudio",
+ "VHS_LoadAudioUpload",
+ "VHS_LoadImages",
+ "VHS_LoadImagesPath",
+ "VHS_LoadVideo",
+ "VHS_LoadVideoPath",
+ "VHS_MergeImages",
+ "VHS_MergeLatents",
+ "VHS_MergeMasks",
+ "VHS_PruneOutputs",
+ "VHS_SelectEveryNthImage",
+ "VHS_SelectEveryNthLatent",
+ "VHS_SelectEveryNthMask",
+ "VHS_SplitImages",
+ "VHS_SplitLatents",
+ "VHS_SplitMasks",
+ "VHS_VAEDecodeBatched",
+ "VHS_VAEEncodeBatched",
+ "VHS_VHSAudioToAudio",
+ "VHS_VideoCombine",
+ "VHS_VideoInfo",
+ "VHS_VideoInfoLoaded",
+ "VHS_VideoInfoSource"
+ ],
+ {
+ "title_aux": "ComfyUI-VideoHelperSuite"
+ }
+ ],
+ "https://github.com/KytraScript/ComfyUI_KytraWebhookHTTP": [
+ [
+ "SendToDiscordWebhook"
+ ],
+ {
+ "title_aux": "ComfyUI_KytraWebhookHTTP"
+ }
+ ],
+ "https://github.com/LEv145/images-grid-comfy-plugin": [
+ [
+ "GridAnnotation",
+ "ImageCombine",
+ "ImagesGridByColumns",
+ "ImagesGridByRows",
+ "LatentCombine"
+ ],
+ {
+ "title_aux": "ImagesGrid"
+ }
+ ],
+ "https://github.com/LarryJane491/Image-Captioning-in-ComfyUI": [
+ [
+ "LoRA Caption Load",
+ "LoRA Caption Save"
+ ],
+ {
+ "title_aux": "Image-Captioning-in-ComfyUI"
+ }
+ ],
+ "https://github.com/LarryJane491/Lora-Training-in-Comfy": [
+ [
+ "Lora Training in Comfy (Advanced)",
+ "Lora Training in ComfyUI",
+ "Tensorboard Access"
+ ],
+ {
+ "title_aux": "Lora-Training-in-Comfy"
+ }
+ ],
+ "https://github.com/Layer-norm/comfyui-lama-remover": [
+ [
+ "LamaRemover",
+ "LamaRemoverIMG"
+ ],
+ {
+ "title_aux": "Comfyui lama remover"
+ }
+ ],
+ "https://github.com/Lerc/canvas_tab": [
+ [
+ "Canvas_Tab",
+ "Send_To_Editor"
+ ],
+ {
+ "author": "Lerc",
+ "description": "This extension provides a full page image editor with mask support. There are two nodes, one to receive images from the editor and one to send images to the editor.",
+ "nickname": "Canvas Tab",
+ "title": "Canvas Tab",
+ "title_aux": "Canvas Tab"
+ }
+ ],
+ "https://github.com/Limitex/ComfyUI-Calculation": [
+ [
+ "CenterCalculation",
+ "CreateQRCode"
+ ],
+ {
+ "title_aux": "ComfyUI-Calculation"
+ }
+ ],
+ "https://github.com/Limitex/ComfyUI-Diffusers": [
+ [
+ "CreateIntListNode",
+ "DiffusersClipTextEncode",
+ "DiffusersModelMakeup",
+ "DiffusersPipelineLoader",
+ "DiffusersSampler",
+ "DiffusersSchedulerLoader",
+ "DiffusersVaeLoader",
+ "LcmLoraLoader",
+ "StreamDiffusionCreateStream",
+ "StreamDiffusionFastSampler",
+ "StreamDiffusionSampler",
+ "StreamDiffusionWarmup"
+ ],
+ {
+ "title_aux": "ComfyUI-Diffusers"
+ }
+ ],
+ "https://github.com/Loewen-Hob/rembg-comfyui-node-better": [
+ [
+ "Image Remove Background (rembg)"
+ ],
+ {
+ "title_aux": "Rembg Background Removal Node for ComfyUI (Better)"
+ }
+ ],
+ "https://github.com/LonicaMewinsky/ComfyUI-MakeFrame": [
+ [
+ "BreakFrames",
+ "BreakGrid",
+ "GetKeyFrames",
+ "MakeGrid",
+ "RandomImageFromDir"
+ ],
+ {
+ "title_aux": "ComfyBreakAnim"
+ }
+ ],
+ "https://github.com/LonicaMewinsky/ComfyUI-RawSaver": [
+ [
+ "SaveTifImage"
+ ],
+ {
+ "title_aux": "ComfyUI-RawSaver"
+ }
+ ],
+ "https://github.com/Ludobico/ComfyUI-ScenarioPrompt": [
+ [
+ "ScenarioPrompt"
+ ],
+ {
+ "title_aux": "ComfyUI-ScenarioPrompt"
+ }
+ ],
+ "https://github.com/LyazS/comfyui-anime-seg": [
+ [
+ "Anime Character Seg"
+ ],
+ {
+ "title_aux": "Anime Character Segmentation node for comfyui"
+ }
+ ],
+ "https://github.com/M1kep/ComfyLiterals": [
+ [
+ "Checkpoint",
+ "Float",
+ "Int",
+ "KepStringLiteral",
+ "Lora",
+ "Operation",
+ "String"
+ ],
+ {
+ "title_aux": "ComfyLiterals"
+ }
+ ],
+ "https://github.com/M1kep/ComfyUI-KepOpenAI": [
+ [
+ "KepOpenAI_ImageWithPrompt"
+ ],
+ {
+ "title_aux": "ComfyUI-KepOpenAI"
+ }
+ ],
+ "https://github.com/M1kep/ComfyUI-OtherVAEs": [
+ [
+ "OtherVAE_Taesd"
+ ],
+ {
+ "title_aux": "ComfyUI-OtherVAEs"
+ }
+ ],
+ "https://github.com/M1kep/Comfy_KepKitchenSink": [
+ [
+ "KepRotateImage"
+ ],
+ {
+ "title_aux": "Comfy_KepKitchenSink"
+ }
+ ],
+ "https://github.com/M1kep/Comfy_KepListStuff": [
+ [
+ "Empty Images",
+ "Image Overlay",
+ "ImageListLoader",
+ "Join Float Lists",
+ "Join Image Lists",
+ "KepStringList",
+ "KepStringListFromNewline",
+ "Kep_JoinListAny",
+ "Kep_RepeatList",
+ "Kep_ReverseList",
+ "Kep_VariableImageBuilder",
+ "List Length",
+ "Range(Num Steps) - Float",
+ "Range(Num Steps) - Int",
+ "Range(Step) - Float",
+ "Range(Step) - Int",
+ "Stack Images",
+ "XYAny",
+ "XYImage"
+ ],
+ {
+ "title_aux": "Comfy_KepListStuff"
+ }
+ ],
+ "https://github.com/M1kep/Comfy_KepMatteAnything": [
+ [
+ "MatteAnything_DinoBoxes",
+ "MatteAnything_GenerateVITMatte",
+ "MatteAnything_InitSamPredictor",
+ "MatteAnything_LoadDINO",
+ "MatteAnything_LoadVITMatteModel",
+ "MatteAnything_SAMLoader",
+ "MatteAnything_SAMMaskFromBoxes",
+ "MatteAnything_ToTrimap"
+ ],
+ {
+ "title_aux": "Comfy_KepMatteAnything"
+ }
+ ],
+ "https://github.com/M1kep/KepPromptLang": [
+ [
+ "Build Gif",
+ "Special CLIP Loader"
+ ],
+ {
+ "title_aux": "KepPromptLang"
+ }
+ ],
+ "https://github.com/MNeMoNiCuZ/ComfyUI-mnemic-nodes": [
+ [
+ "\u26d4 Generate Negative Prompt",
+ "\u2728 Groq LLM API",
+ "\ud83d\udcbe Save Text File With Path",
+ "\ud83d\uddbc\ufe0f Download Image from URL"
+ ],
+ {
+ "title_aux": "ComfyUI-mnemic-nodes"
+ }
+ ],
+ "https://github.com/Makeezi/ComfyUI-promptLAB": [
+ [
+ "PromptLAB"
+ ],
+ {
+ "title_aux": "ComfyUI-promptLAB"
+ }
+ ],
+ "https://github.com/Mamaaaamooooo/batchImg-rembg-ComfyUI-nodes": [
+ [
+ "Image Remove Background (rembg)"
+ ],
+ {
+ "title_aux": "Batch Rembg for ComfyUI"
+ }
+ ],
+ "https://github.com/ManglerFTW/ComfyI2I": [
+ [
+ "Color Transfer",
+ "Combine and Paste",
+ "Inpaint Segments",
+ "Mask Ops"
+ ],
+ {
+ "author": "ManglerFTW",
+ "title": "ComfyI2I",
+ "title_aux": "ComfyI2I"
+ }
+ ],
+ "https://github.com/MaraScott/ComfyUI_MaraScott_Nodes": [
+ [
+ "MaraScottAnyBusNode",
+ "MaraScottAnyBus_v2",
+ "MaraScottDisplayInfoNode",
+ "MaraScottDisplayInfo_v1",
+ "MaraScottPasteInpaintingByMask_v1",
+ "MaraScottPromptFromImage_v1",
+ "MaraScottSetInpaintingByMask_v1",
+ "MaraScottUpscalerRefinerNode_v2",
+ "MaraScottUpscalerRefinerNode_v3",
+ "MaraScott_Kijai_TokenCounter_v1",
+ "McBoaty_Refiner_v4",
+ "McBoaty_TilePrompter_v4",
+ "McBoaty_Upscaler_v4"
+ ],
+ {
+ "title_aux": "\ud83d\udc30 MaraScott Nodes"
+ }
+ ],
+ "https://github.com/MarcusNyne/m9-prompts-comfyui": [
+ [
+ "ScramblePrompts_m9",
+ "TweakWeights_m9"
+ ],
+ {
+ "title_aux": "m9-prompts-comfyui"
+ }
+ ],
+ "https://github.com/MariusKM/ComfyUI-BadmanNodes": [
+ [
+ "BadmanCLIPTextEncodeSDXLRegion",
+ "BadmanIO",
+ "BadmanIntUtil",
+ "BadmanStringSelect",
+ "Badman_Blend",
+ "Badman_Concat_String",
+ "Badman_HexGenerator",
+ "Badman_Print",
+ "Badman_String"
+ ],
+ {
+ "title_aux": "ComfyUI-BadmanNodes"
+ }
+ ],
+ "https://github.com/MarkoCa1/ComfyUI-Text": [
+ [
+ "CombinationText",
+ "PlaceholderText",
+ "ReplaceText",
+ "ShowText"
+ ],
+ {
+ "title_aux": "ComfyUI-Text"
+ }
+ ],
+ "https://github.com/MarkoCa1/ComfyUI_Segment_Mask": [
+ [
+ "AutomaticMask(segment anything)"
+ ],
+ {
+ "title_aux": "ComfyUI_Segment_Mask"
+ }
+ ],
+ "https://github.com/Mason-McGough/ComfyUI-Mosaica": [
+ [
+ "ApplyLUTToLabelImage",
+ "KMeans",
+ "LoadLUTFromMatplotlib",
+ "MeanShift",
+ "RandomLUT",
+ "Watershed"
+ ],
+ {
+ "title_aux": "Mosaica"
+ }
+ ],
+ "https://github.com/MilitantHitchhiker/MilitantHitchhiker-SwitchbladePack": [
+ [
+ "IntegratedRandomPromptGenerator",
+ "TextAppender"
+ ],
+ {
+ "author": "Militant Hitchhiker",
+ "description": "Militant Hitchhiker's multi-function nodes.",
+ "nickname": "Switchblade",
+ "title": "Switchblade Pack",
+ "title_aux": "Militant Hitchhiker's Switchblade Pack"
+ }
+ ],
+ "https://github.com/Miosp/ComfyUI-FBCNN": [
+ [
+ "JPEG artifacts removal FBCNN"
+ ],
+ {
+ "title_aux": "ComfyUI-FBCNN"
+ }
+ ],
+ "https://github.com/MitoshiroPJ/comfyui_slothful_attention": [
+ [
+ "NearSightedAttention",
+ "NearSightedAttentionSimple",
+ "NearSightedTile",
+ "SlothfulAttention"
+ ],
+ {
+ "title_aux": "ComfyUI Slothful Attention"
+ }
+ ],
+ "https://github.com/MokkaBoss1/ComfyUI_Mokkaboss1": [
+ [
+ "AnimeCosplayDir",
+ "AspectRatioCondition",
+ "ChooseImage",
+ "Colors",
+ "CombinedCrop",
+ "ConnectFloat",
+ "ConnectImage",
+ "ConnectInteger",
+ "ConnectLatent",
+ "ConnectString",
+ "DirSelector",
+ "DoubleClipTextEncode",
+ "EmbeddingLoader",
+ "FilmCharDir",
+ "FuseImages",
+ "FuseImages2",
+ "HashText",
+ "HueSatLum",
+ "HueShift",
+ "ImageDimensions",
+ "ImageDimensionsBatch",
+ "ImageOverlayResized",
+ "ImageResizeLong",
+ "ImageZigzag",
+ "IndoorBackgrounds",
+ "IndoorDir",
+ "IntEvaluate",
+ "IntFloatDict",
+ "IntStringDict",
+ "JsonSearch",
+ "KillWorkflow",
+ "LandscapeBackgrounds",
+ "LandscapeDir",
+ "MakeupStylesDir",
+ "Mbsampler",
+ "OptimalCrop",
+ "Overlay",
+ "PhotomontageA",
+ "PhotomontageB",
+ "PhotomontageC",
+ "PostSamplerCrop",
+ "PresetLoad",
+ "PresetRemove",
+ "PresetSave",
+ "PromptSwitcher",
+ "RandomString",
+ "SDXLEmptyLatent",
+ "SavePrompt",
+ "SaveWithMetaData",
+ "SaveWithMetaData2",
+ "SearchReplace",
+ "SimplePrompts",
+ "SpecificStylesDir",
+ "SplitImages",
+ "StringJoin",
+ "TimeStamp",
+ "TintnShift",
+ "TricolorComposition",
+ "WorkflowSettings",
+ "WrapText",
+ "X_In_a_Dress",
+ "X_In_a_Suit",
+ "X_In_a_Suit)",
+ "ZoomCrop",
+ "imageborder"
+ ],
+ {
+ "title_aux": "Node Pack mostly for manipulating strings and integers"
+ }
+ ],
+ "https://github.com/MrForExample/ComfyUI-3D-Pack": [
+ [],
+ {
+ "nodename_pattern": "^\\[Comfy3D\\]",
+ "title_aux": "ComfyUI-3D-Pack"
+ }
+ ],
+ "https://github.com/MrForExample/ComfyUI-AnimateAnyone-Evolved": [
+ [],
+ {
+ "nodename_pattern": "^\\[AnimateAnyone\\]",
+ "title_aux": "ComfyUI-AnimateAnyone-Evolved"
+ }
+ ],
+ "https://github.com/MrSamSeen/ComfyUI_SSStereoscope": [
+ [
+ "SBS_by_SamSeen"
+ ],
+ {
+ "title_aux": "ComfyUI_SSStereoscope"
+ }
+ ],
+ "https://github.com/Munkyfoot/ComfyUI-TextOverlay": [
+ [
+ "Text Overlay"
+ ],
+ {
+ "title_aux": "ComfyUI-TextOverlay"
+ }
+ ],
+ "https://github.com/NeuralSamurAI/Comfyui-Superprompt-Unofficial": [
+ [
+ "SuperPrompterNode"
+ ],
+ {
+ "title_aux": "SuperPrompter Node for ComfyUI"
+ }
+ ],
+ "https://github.com/NicholasMcCarthy/ComfyUI_TravelSuite": [
+ [
+ "LatentTravel"
+ ],
+ {
+ "title_aux": "ComfyUI_TravelSuite"
+ }
+ ],
+ "https://github.com/NimaNzrii/comfyui-photoshop": [
+ [
+ "\ud83d\udd39 Photoshop RemoteConnection",
+ "\ud83d\udd39Photoshop ComfyUI Plugin",
+ "\ud83d\udd39SendTo Photoshop Plugin"
+ ],
+ {
+ "title_aux": "comfyui-photoshop"
+ }
+ ],
+ "https://github.com/NimaNzrii/comfyui-popup_preview": [
+ [
+ "PreviewPopup"
+ ],
+ {
+ "title_aux": "comfyui-popup_preview"
+ }
+ ],
+ "https://github.com/Niutonian/ComfyUi-NoodleWebcam": [
+ [
+ "WebcamNode"
+ ],
+ {
+ "title_aux": "ComfyUi-NoodleWebcam"
+ }
+ ],
+ "https://github.com/Nlar/ComfyUI_CartoonSegmentation": [
+ [
+ "AnimeSegmentation",
+ "KenBurnsConfigLoader",
+ "KenBurns_Processor",
+ "LoadImageFilename"
+ ],
+ {
+ "author": "Nels Larsen",
+ "description": "This extension offers a front end to the Cartoon Segmentation Project (https://github.com/CartoonSegmentation/CartoonSegmentation)",
+ "nickname": "CfyCS",
+ "title": "ComfyUI_CartoonSegmentation",
+ "title_aux": "ComfyUI_CartoonSegmentation"
+ }
+ ],
+ "https://github.com/NotHarroweD/Harronode": [
+ [
+ "Harronode"
+ ],
+ {
+ "author": "HarroweD and quadmoon (https://github.com/traugdor)",
+ "description": "This extension to ComfyUI will build a prompt for the Harrlogos LoRA for SDXL.",
+ "nickname": "Harronode",
+ "nodename_pattern": "Harronode",
+ "title": "Harrlogos Prompt Builder Node",
+ "title_aux": "Harrlogos Prompt Builder Node"
+ }
+ ],
+ "https://github.com/Nourepide/ComfyUI-Allor": [
+ [
+ "AlphaChanelAdd",
+ "AlphaChanelAddByMask",
+ "AlphaChanelAsMask",
+ "AlphaChanelRemove",
+ "AlphaChanelRestore",
+ "ClipClamp",
+ "ClipVisionClamp",
+ "ClipVisionOutputClamp",
+ "ConditioningClamp",
+ "ControlNetClamp",
+ "GligenClamp",
+ "ImageBatchCopy",
+ "ImageBatchFork",
+ "ImageBatchGet",
+ "ImageBatchJoin",
+ "ImageBatchPermute",
+ "ImageBatchRemove",
+ "ImageClamp",
+ "ImageCompositeAbsolute",
+ "ImageCompositeAbsoluteByContainer",
+ "ImageCompositeRelative",
+ "ImageCompositeRelativeByContainer",
+ "ImageContainer",
+ "ImageContainerInheritanceAdd",
+ "ImageContainerInheritanceMax",
+ "ImageContainerInheritanceScale",
+ "ImageContainerInheritanceSum",
+ "ImageDrawArc",
+ "ImageDrawArcByContainer",
+ "ImageDrawChord",
+ "ImageDrawChordByContainer",
+ "ImageDrawEllipse",
+ "ImageDrawEllipseByContainer",
+ "ImageDrawLine",
+ "ImageDrawLineByContainer",
+ "ImageDrawPieslice",
+ "ImageDrawPiesliceByContainer",
+ "ImageDrawPolygon",
+ "ImageDrawRectangle",
+ "ImageDrawRectangleByContainer",
+ "ImageDrawRectangleRounded",
+ "ImageDrawRectangleRoundedByContainer",
+ "ImageEffectsAdjustment",
+ "ImageEffectsGrayscale",
+ "ImageEffectsLensBokeh",
+ "ImageEffectsLensChromaticAberration",
+ "ImageEffectsLensOpticAxis",
+ "ImageEffectsLensVignette",
+ "ImageEffectsLensZoomBurst",
+ "ImageEffectsNegative",
+ "ImageEffectsSepia",
+ "ImageFilterBilateralBlur",
+ "ImageFilterBlur",
+ "ImageFilterBoxBlur",
+ "ImageFilterContour",
+ "ImageFilterDetail",
+ "ImageFilterEdgeEnhance",
+ "ImageFilterEdgeEnhanceMore",
+ "ImageFilterEmboss",
+ "ImageFilterFindEdges",
+ "ImageFilterGaussianBlur",
+ "ImageFilterGaussianBlurAdvanced",
+ "ImageFilterMax",
+ "ImageFilterMedianBlur",
+ "ImageFilterMin",
+ "ImageFilterMode",
+ "ImageFilterRank",
+ "ImageFilterSharpen",
+ "ImageFilterSmooth",
+ "ImageFilterSmoothMore",
+ "ImageFilterStackBlur",
+ "ImageNoiseBeta",
+ "ImageNoiseBinomial",
+ "ImageNoiseBytes",
+ "ImageNoiseGaussian",
+ "ImageSegmentation",
+ "ImageSegmentationCustom",
+ "ImageSegmentationCustomAdvanced",
+ "ImageText",
+ "ImageTextMultiline",
+ "ImageTextMultilineOutlined",
+ "ImageTextOutlined",
+ "ImageTransformCropAbsolute",
+ "ImageTransformCropCorners",
+ "ImageTransformCropRelative",
+ "ImageTransformPaddingAbsolute",
+ "ImageTransformPaddingRelative",
+ "ImageTransformResizeAbsolute",
+ "ImageTransformResizeClip",
+ "ImageTransformResizeRelative",
+ "ImageTransformRotate",
+ "ImageTransformTranspose",
+ "LatentClamp",
+ "MaskClamp",
+ "ModelClamp",
+ "StyleModelClamp",
+ "UpscaleModelClamp",
+ "VaeClamp"
+ ],
+ {
+ "title_aux": "Allor Plugin"
+ }
+ ],
+ "https://github.com/Nuked88/ComfyUI-N-Nodes": [
+ [
+ "CLIPTextEncodeAdvancedNSuite [n-suite]",
+ "DynamicPrompt [n-suite]",
+ "Float Variable [n-suite]",
+ "FrameInterpolator [n-suite]",
+ "GPT Loader Simple [n-suite]",
+ "GPT Sampler [n-suite]",
+ "ImagePadForOutpaintAdvanced [n-suite]",
+ "Integer Variable [n-suite]",
+ "Llava Clip Loader [n-suite]",
+ "LoadFramesFromFolder [n-suite]",
+ "LoadImageFromFolder [n-suite]",
+ "LoadVideo [n-suite]",
+ "SaveVideo [n-suite]",
+ "SetMetadataForSaveVideo [n-suite]",
+ "String Variable [n-suite]"
+ ],
+ {
+ "title_aux": "ComfyUI-N-Nodes"
+ }
+ ],
+ "https://github.com/Off-Live/ComfyUI-off-suite": [
+ [
+ "Apply CLAHE",
+ "Cached Image Load From URL",
+ "CalcMaskBound",
+ "Crop Center wigh SEGS",
+ "Crop Center with SEGS",
+ "Dilate Mask for Each Face",
+ "GW Number Formatting",
+ "Grid Image from batch (OFF)",
+ "Image Crop Fit",
+ "Image Resize Fit",
+ "OFF SEGS to Image",
+ "Paste Face Segment to Image",
+ "Query Gender and Age",
+ "RandomSeedfromList",
+ "SEGS to Face Crop Data",
+ "Safe Mask to Image",
+ "VAE Encode For Inpaint V2",
+ "Watermarking"
+ ],
+ {
+ "title_aux": "ComfyUI-off-suite"
+ }
+ ],
+ "https://github.com/Onierous/QRNG_Node_ComfyUI/raw/main/qrng_node.py": [
+ [
+ "QRNG_Node_CSV"
+ ],
+ {
+ "title_aux": "QRNG_Node_ComfyUI"
+ }
+ ],
+ "https://github.com/PCMonsterx/ComfyUI-CSV-Loader": [
+ [
+ "Load Artists CSV",
+ "Load Artmovements CSV",
+ "Load Characters CSV",
+ "Load Colors CSV",
+ "Load Composition CSV",
+ "Load Lighting CSV",
+ "Load Negative CSV",
+ "Load Positive CSV",
+ "Load Settings CSV",
+ "Load Styles CSV"
+ ],
+ {
+ "title_aux": "ComfyUI-CSV-Loader"
+ }
+ ],
+ "https://github.com/ParisNeo/lollms_nodes_suite": [
+ [
+ "Artbot",
+ "Lollms_Text_Gen",
+ "Lollms_Text_Saver",
+ "RandomizeVideo"
+ ],
+ {
+ "title_aux": "lollms_nodes_suite"
+ }
+ ],
+ "https://github.com/ParmanBabra/ComfyUI-Malefish-Custom-Scripts": [
+ [
+ "CSVPromptsLoader",
+ "CombinePrompt",
+ "MultiLoraLoader",
+ "RandomPrompt"
+ ],
+ {
+ "title_aux": "ComfyUI-Malefish-Custom-Scripts"
+ }
+ ],
+ "https://github.com/Pfaeff/pfaeff-comfyui": [
+ [
+ "AstropulsePixelDetector",
+ "BackgroundRemover",
+ "ImagePadForBetterOutpaint",
+ "Inpainting",
+ "InpaintingPipelineLoader"
+ ],
+ {
+ "title_aux": "pfaeff-comfyui"
+ }
+ ],
+ "https://github.com/PnthrLeo/comfyUI-image-search": [
+ [
+ "CloseImagesSearcher"
+ ],
+ {
+ "title_aux": "comfyUI-image-search"
+ }
+ ],
+ "https://github.com/Pos13/comfyui-cyclist": [
+ [
+ "CyclistCompare",
+ "CyclistMathFloat",
+ "CyclistMathInt",
+ "CyclistTimer",
+ "CyclistTimerStop",
+ "CyclistTypeCast",
+ "Interrupt",
+ "LoopManager",
+ "MemorizeConditioning",
+ "MemorizeFloat",
+ "MemorizeInt",
+ "MemorizeString",
+ "OverrideImage",
+ "OverrideLatent",
+ "OverrideModel",
+ "RecallConditioning",
+ "RecallFloat",
+ "RecallInt",
+ "RecallString",
+ "ReloadImage",
+ "ReloadLatent",
+ "ReloadModel"
+ ],
+ {
+ "author": "Pos13",
+ "description": "This extension provides tools to iterate generation results between runs. In general, it's for cycles.",
+ "nickname": "comfyui-cyclist",
+ "title": "Cyclist",
+ "title_aux": "Cyclist"
+ }
+ ],
+ "https://github.com/QaisMalkawi/ComfyUI-QaisHelper": [
+ [
+ "Bool Binary Operation",
+ "Bool Unary Operation",
+ "Item Debugger",
+ "Item Switch",
+ "Nearest SDXL Resolution",
+ "SDXL Resolution",
+ "Size Swapper"
+ ],
+ {
+ "title_aux": "ComfyUI-Qais-Helper"
+ }
+ ],
+ "https://github.com/RedRayz/ComfyUI-Danbooru-To-WD": [
+ [
+ "DanbooruToWD"
+ ],
+ {
+ "title_aux": "ComfyUI-Danbooru-To-WD"
+ }
+ ],
+ "https://github.com/RenderRift/ComfyUI-RenderRiftNodes": [
+ [
+ "AnalyseMetadata",
+ "DateIntegerNode",
+ "DisplayMetaOptions",
+ "LoadImageWithMeta",
+ "MetadataOverlayNode",
+ "VideoPathMetaExtraction"
+ ],
+ {
+ "title_aux": "ComfyUI-RenderRiftNodes"
+ }
+ ],
+ "https://github.com/RomanKuschanow/ComfyUI-Advanced-Latent-Control": [
+ [
+ "LatentAddTransform",
+ "LatentInterpolateTransform",
+ "LatentMirror",
+ "LatentNormalize",
+ "LatentShift",
+ "MirrorTransform",
+ "MultiplyTransform",
+ "OffsetCombine",
+ "OneTimeLatentAddTransform",
+ "OneTimeLatentInterpolateTransform",
+ "OneTimeMirrorTransform",
+ "OneTimeMultiplyTransform",
+ "OneTimeShiftTransform",
+ "ShiftTransform",
+ "TransformHijack",
+ "TransformOffset",
+ "TransformSampler",
+ "TransformSamplerAdvanced",
+ "TransformsCombine"
+ ],
+ {
+ "title_aux": "Advanced Latent Control"
+ }
+ ],
+ "https://github.com/Ron-Digital/ComfyUI-SceneGenerator": [
+ [
+ "Scene Generator"
+ ],
+ {
+ "title_aux": "ComfyUI-SceneGenerator"
+ }
+ ],
+ "https://github.com/Ryuukeisyou/comfyui_face_parsing": [
+ [
+ "BBoxListItemSelect(FaceParsing)",
+ "BBoxResize(FaceParsing)",
+ "ColorAdjust(FaceParsing)",
+ "FaceBBoxDetect(FaceParsing)",
+ "FaceBBoxDetectorLoader(FaceParsing)",
+ "FaceParse(FaceParsing)",
+ "FaceParsingModelLoader(FaceParsing)",
+ "FaceParsingProcessorLoader(FaceParsing)",
+ "FaceParsingResultsParser(FaceParsing)",
+ "GuidedFilter(FaceParsing)",
+ "ImageCropWithBBox(FaceParsing)",
+ "ImageInsertWithBBox(FaceParsing)",
+ "ImageListSelect(FaceParsing)",
+ "ImagePadWithBBox(FaceParsing)",
+ "ImageResizeCalculator(FaceParsing)",
+ "ImageResizeWithBBox(FaceParsing)",
+ "ImageSize(FaceParsing)",
+ "LatentCropWithBBox(FaceParsing)",
+ "LatentInsertWithBBox(FaceParsing)",
+ "LatentSize(FaceParsing)",
+ "MaskComposite(FaceParsing)",
+ "MaskInsertWithBBox(FaceParsing)",
+ "MaskListComposite(FaceParsing)",
+ "MaskListSelect(FaceParsing)",
+ "MaskToBBox(FaceParsing)",
+ "SkinDetectTraditional(FaceParsing)"
+ ],
+ {
+ "title_aux": "comfyui_face_parsing"
+ }
+ ],
+ "https://github.com/Ryuukeisyou/comfyui_io_helpers": [
+ [
+ "ImageLoadAsMaskByPath(IOHelpers)",
+ "ImageLoadByPath(IOHelpers)",
+ "ImageLoadFromBase64(IOHelpers)",
+ "ImageSaveAsBase64(IOHelpers)",
+ "ImageSaveToPath(IOHelpers)",
+ "TypeConversion(IOHelpers)"
+ ],
+ {
+ "title_aux": "comfyui_io_helpers"
+ }
+ ],
+ "https://github.com/SEkINVR/ComfyUI-SaveAs": [
+ [
+ "ComfyUISaveAs"
+ ],
+ {
+ "title_aux": "ComfyUI SaveAS"
+ }
+ ],
+ "https://github.com/SLAPaper/ComfyUI-Image-Selector": [
+ [
+ "ImageDuplicator",
+ "ImageSelector",
+ "LatentDuplicator",
+ "LatentSelector"
+ ],
+ {
+ "title_aux": "ComfyUI-Image-Selector"
+ }
+ ],
+ "https://github.com/SOELexicon/ComfyUI-LexMSDBNodes": [
+ [
+ "MSSqlSelectNode",
+ "MSSqlTableNode"
+ ],
+ {
+ "title_aux": "LexMSDBNodes"
+ }
+ ],
+ "https://github.com/SOELexicon/ComfyUI-LexTools": [
+ [
+ "AesthetlcScoreSorter",
+ "AgeClassifierNode",
+ "ArtOrHumanClassifierNode",
+ "CalculateAestheticScore",
+ "DocumentClassificationNode",
+ "FoodCategoryClassifierNode",
+ "ImageAspectPadNode",
+ "ImageCaptioning",
+ "ImageFilterByFloatScoreNode",
+ "ImageFilterByIntScoreNode",
+ "ImageQualityScoreNode",
+ "ImageRankingNode",
+ "ImageScaleToMin",
+ "LoadAesteticModel",
+ "MD5ImageHashNode",
+ "SamplerPropertiesNode",
+ "ScoreConverterNode",
+ "SeedIncrementerNode",
+ "SegformerNode",
+ "SegformerNodeMasks",
+ "SegformerNodeMergeSegments",
+ "StepCfgIncrementNode"
+ ],
+ {
+ "title_aux": "ComfyUI-LexTools"
+ }
+ ],
+ "https://github.com/SadaleNet/CLIPTextEncodeA1111-ComfyUI/raw/master/custom_nodes/clip_text_encoder_a1111.py": [
+ [
+ "CLIPTextEncodeA1111",
+ "RerouteTextForCLIPTextEncodeA1111"
+ ],
+ {
+ "preemptions": [
+ "SAMLoader"
+ ],
+ "title_aux": "ComfyUI A1111-like Prompt Custom Node Solution"
+ }
+ ],
+ "https://github.com/SamKhoze/ComfyUI-DeepFuze": [
+ [
+ "DeepFuze Save",
+ "DeepFuzeAdavance",
+ "DeepFuzeFaceSwap",
+ "DeepfuzePreview",
+ "LLM_node",
+ "PlayBackAudio",
+ "TTS_generation"
+ ],
+ {
+ "title_aux": "DeepFuze"
+ }
+ ],
+ "https://github.com/SayanoAI/Comfy-RVC": [
+ [
+ "AudioBatchValueNode",
+ "AudioTranscriptionNode",
+ "DownloadAudio",
+ "ImageRepeatInterleavedNode",
+ "LatentRepeatInterleavedNode",
+ "LoadAudio",
+ "LoadHubertModel",
+ "LoadPitchExtractionParams",
+ "LoadRVCModelNode",
+ "LoadWhisperModelNode",
+ "MergeAudioNode",
+ "MergeImageBatches",
+ "MergeLatentBatches",
+ "PreviewAudio",
+ "RVCNode",
+ "UVR5Node"
+ ],
+ {
+ "title_aux": "Comfy-RVC"
+ }
+ ],
+ "https://github.com/Scholar01/ComfyUI-Keyframe": [
+ [
+ "KeyframeApply",
+ "KeyframeInterpolationPart",
+ "KeyframePart"
+ ],
+ {
+ "title_aux": "SComfyUI-Keyframe"
+ }
+ ],
+ "https://github.com/Scorpinaus/ComfyUI-DiffusersLoader": [
+ [
+ "CombinedDiffusersLoader",
+ "DiffusersClipLoader",
+ "DiffusersUNETLoader",
+ "DiffusersVAELoader"
+ ],
+ {
+ "title_aux": "Loaders for Diffusers-format checkpoints"
+ }
+ ],
+ "https://github.com/ScreamingHawk/comfyui-ollama-prompt-encode": [
+ [
+ "OllamaCLIPTextEncode",
+ "OllamaPromptGenerator"
+ ],
+ {
+ "author": "Michael Standen",
+ "description": "Use AI to generate prompts and perform CLIP text encoding",
+ "nickname": "Ollama Prompt Encode",
+ "title": "Ollama Prompt Encode",
+ "title_aux": "Ollama Prompt Encode"
+ }
+ ],
+ "https://github.com/SeaArtLab/ComfyUI-Long-CLIP": [
+ [
+ "SeaArtLongClip",
+ "SeaArtLongXLClipMerge"
+ ],
+ {
+ "title_aux": "ComfyUI-Long-CLIP"
+ }
+ ],
+ "https://github.com/SeargeDP/SeargeSDXL": [
+ [
+ "SeargeAdvancedParameters",
+ "SeargeCheckpointLoader",
+ "SeargeConditionMixing",
+ "SeargeConditioningMuxer2",
+ "SeargeConditioningMuxer5",
+ "SeargeConditioningParameters",
+ "SeargeControlnetAdapterV2",
+ "SeargeControlnetModels",
+ "SeargeCustomAfterUpscaling",
+ "SeargeCustomAfterVaeDecode",
+ "SeargeCustomPromptMode",
+ "SeargeDebugPrinter",
+ "SeargeEnablerInputs",
+ "SeargeFloatConstant",
+ "SeargeFloatMath",
+ "SeargeFloatPair",
+ "SeargeFreeU",
+ "SeargeGenerated1",
+ "SeargeGenerationParameters",
+ "SeargeHighResolution",
+ "SeargeImage2ImageAndInpainting",
+ "SeargeImageAdapterV2",
+ "SeargeImageSave",
+ "SeargeImageSaving",
+ "SeargeInput1",
+ "SeargeInput2",
+ "SeargeInput3",
+ "SeargeInput4",
+ "SeargeInput5",
+ "SeargeInput6",
+ "SeargeInput7",
+ "SeargeIntegerConstant",
+ "SeargeIntegerMath",
+ "SeargeIntegerPair",
+ "SeargeIntegerScaler",
+ "SeargeLatentMuxer3",
+ "SeargeLoraLoader",
+ "SeargeLoras",
+ "SeargeMagicBox",
+ "SeargeModelSelector",
+ "SeargeOperatingMode",
+ "SeargeOutput1",
+ "SeargeOutput2",
+ "SeargeOutput3",
+ "SeargeOutput4",
+ "SeargeOutput5",
+ "SeargeOutput6",
+ "SeargeOutput7",
+ "SeargeParameterProcessor",
+ "SeargePipelineStart",
+ "SeargePipelineTerminator",
+ "SeargePreviewImage",
+ "SeargePromptAdapterV2",
+ "SeargePromptCombiner",
+ "SeargePromptStyles",
+ "SeargePromptText",
+ "SeargeSDXLBasePromptEncoder",
+ "SeargeSDXLImage2ImageSampler",
+ "SeargeSDXLImage2ImageSampler2",
+ "SeargeSDXLPromptEncoder",
+ "SeargeSDXLRefinerPromptEncoder",
+ "SeargeSDXLSampler",
+ "SeargeSDXLSampler2",
+ "SeargeSDXLSamplerV3",
+ "SeargeSamplerAdvanced",
+ "SeargeSamplerInputs",
+ "SeargeSaveFolderInputs",
+ "SeargeSeparator",
+ "SeargeStylePreprocessor",
+ "SeargeTextInputV2",
+ "SeargeUpscaleModelLoader",
+ "SeargeUpscaleModels",
+ "SeargeVAELoader"
+ ],
+ {
+ "title_aux": "SeargeSDXL"
+ }
+ ],
+ "https://github.com/Seedsa/Fooocus_Nodes": [
+ [
+ "BasicScheduler",
+ "CLIPLoader",
+ "CLIPMergeSimple",
+ "CLIPSave",
+ "CLIPSetLastLayer",
+ "CLIPTextEncode",
+ "CLIPTextEncodeSDXL",
+ "CLIPTextEncodeSDXLRefiner",
+ "CLIPVisionEncode",
+ "CLIPVisionLoader",
+ "Canny",
+ "CheckpointLoader",
+ "CheckpointLoaderSimple",
+ "CheckpointSave",
+ "ConditioningAverage",
+ "ConditioningCombine",
+ "ConditioningConcat",
+ "ConditioningSetArea",
+ "ConditioningSetAreaPercentage",
+ "ConditioningSetMask",
+ "ConditioningSetTimestepRange",
+ "ConditioningZeroOut",
+ "ControlNetApply",
+ "ControlNetApplyAdvanced",
+ "ControlNetLoader",
+ "CropMask",
+ "DiffControlNetLoader",
+ "DiffusersLoader",
+ "DualCLIPLoader",
+ "EmptyImage",
+ "EmptyLatentImage",
+ "ExponentialScheduler",
+ "FeatherMask",
+ "FlipSigmas",
+ "Fooocus ApplyImagePrompt",
+ "Fooocus Controlnet",
+ "Fooocus ImagePrompt",
+ "Fooocus Inpaint",
+ "Fooocus KSampler",
+ "Fooocus Loader",
+ "Fooocus LoraStack",
+ "Fooocus PipeOut",
+ "Fooocus PreKSampler",
+ "Fooocus Styles",
+ "Fooocus Upscale",
+ "Fooocus detailerFix",
+ "Fooocus negative",
+ "Fooocus positive",
+ "Fooocus preDetailerFix",
+ "Fooocus samLoaderPipe",
+ "Fooocus ultralyticsDetectorPipe",
+ "FreeU",
+ "FreeU_V2",
+ "GLIGENLoader",
+ "GLIGENTextBoxApply",
+ "GrowMask",
+ "HyperTile",
+ "HypernetworkLoader",
+ "ImageBatch",
+ "ImageBlend",
+ "ImageBlur",
+ "ImageColorToMask",
+ "ImageCompositeMasked",
+ "ImageCrop",
+ "ImageInvert",
+ "ImageOnlyCheckpointLoader",
+ "ImageOnlyCheckpointSave",
+ "ImagePadForOutpaint",
+ "ImageQuantize",
+ "ImageScale",
+ "ImageScaleBy",
+ "ImageScaleToTotalPixels",
+ "ImageSharpen",
+ "ImageToMask",
+ "ImageUpscaleWithModel",
+ "InpaintModelConditioning",
+ "InvertMask",
+ "JoinImageWithAlpha",
+ "KSampler",
+ "KSamplerAdvanced",
+ "KSamplerSelect",
+ "KarrasScheduler",
+ "LatentAdd",
+ "LatentBatch",
+ "LatentBatchSeedBehavior",
+ "LatentBlend",
+ "LatentComposite",
+ "LatentCompositeMasked",
+ "LatentCrop",
+ "LatentFlip",
+ "LatentFromBatch",
+ "LatentInterpolate",
+ "LatentMultiply",
+ "LatentRotate",
+ "LatentSubtract",
+ "LatentUpscale",
+ "LatentUpscaleBy",
+ "LoadImage",
+ "LoadImageMask",
+ "LoadLatent",
+ "LoraLoader",
+ "LoraLoaderModelOnly",
+ "MaskComposite",
+ "MaskToImage",
+ "ModelMergeAdd",
+ "ModelMergeBlocks",
+ "ModelMergeSimple",
+ "ModelMergeSubtract",
+ "ModelSamplingContinuousEDM",
+ "ModelSamplingDiscrete",
+ "PatchModelAddDownscale",
+ "PerpNeg",
+ "PhotoMakerEncode",
+ "PhotoMakerLoader",
+ "PolyexponentialScheduler",
+ "PorterDuffImageComposite",
+ "PreviewImage",
+ "RebatchImages",
+ "RebatchLatents",
+ "RepeatImageBatch",
+ "RepeatLatentBatch",
+ "RescaleCFG",
+ "SDTurboScheduler",
+ "SD_4XUpscale_Conditioning",
+ "SVD_img2vid_Conditioning",
+ "SamplerCustom",
+ "SamplerDPMPP_2M_SDE",
+ "SamplerDPMPP_SDE",
+ "SaveAnimatedPNG",
+ "SaveAnimatedWEBP",
+ "SaveImage",
+ "SaveLatent",
+ "SelfAttentionGuidance",
+ "SetLatentNoiseMask",
+ "SolidMask",
+ "SplitImageWithAlpha",
+ "SplitSigmas",
+ "StableZero123_Conditioning",
+ "StableZero123_Conditioning_Batched",
+ "StyleModelApply",
+ "StyleModelLoader",
+ "TomePatchModel",
+ "UNETLoader",
+ "UpscaleModelLoader",
+ "VAEDecode",
+ "VAEDecodeTiled",
+ "VAEEncode",
+ "VAEEncodeForInpaint",
+ "VAEEncodeTiled",
+ "VAELoader",
+ "VAESave",
+ "VPScheduler",
+ "VideoLinearCFGGuidance",
+ "unCLIPCheckpointLoader",
+ "unCLIPConditioning"
+ ],
+ {
+ "title_aux": "ComfyUI Fooocus Nodes"
+ }
+ ],
+ "https://github.com/Ser-Hilary/SDXL_sizing/raw/main/conditioning_sizing_for_SDXL.py": [
+ [
+ "get_aspect_from_image",
+ "get_aspect_from_ints",
+ "sizing_node",
+ "sizing_node_basic",
+ "sizing_node_unparsed"
+ ],
+ {
+ "title_aux": "SDXL_sizing"
+ }
+ ],
+ "https://github.com/Shadetail/ComfyUI_Eagleshadow": [
+ [
+ "Batch 12 Images",
+ "Detect Transparency",
+ "Fix Checkpoint Name",
+ "ImageLinearGammaCompositeMasked",
+ "KSampler Same Noise",
+ "MaskGlow",
+ "OffsetImage",
+ "Round Float to String",
+ "SaveImageToFolder",
+ "Select ControlNet",
+ "Select Model 20",
+ "Simple Load Image Batch"
+ ],
+ {
+ "title_aux": "Eagleshadow Custom Nodes"
+ }
+ ],
+ "https://github.com/SherryXieYuchen/ComfyUI-Image-Inpainting": [
+ [
+ "CropImageByRect",
+ "INPAINT_ColorCorrection",
+ "INPAINT_CropImage",
+ "INPAINT_InpaintingWithModel",
+ "INPAINT_LoadModel",
+ "INPAINT_PasteBackCropImage",
+ "INPAINT_VAEDecode",
+ "INPAINT_VAEEncode",
+ "ImagePostprocess",
+ "ImagePreprocess"
+ ],
+ {
+ "title_aux": "ComfyUI-Image-Inpainting"
+ }
+ ],
+ "https://github.com/Shibiko-AI/ShibikoAI-ComfyUI-Tools": [
+ [
+ "Cascade",
+ "Luts",
+ "Waifu2x"
+ ],
+ {
+ "title_aux": "Shibiko AI ComfyUI Tools"
+ }
+ ],
+ "https://github.com/ShmuelRonen/ComfyUI-SVDResizer": [
+ [
+ "SVDRsizer"
+ ],
+ {
+ "title_aux": "ComfyUI-SVDResizer"
+ }
+ ],
+ "https://github.com/ShmuelRonen/ComfyUI_Gemini_Flash": [
+ [
+ "Gemini_Flash"
+ ],
+ {
+ "title_aux": "ComfyUI_Gemini_Flash"
+ }
+ ],
+ "https://github.com/ShmuelRonen/ComfyUI_wav2lip": [
+ [
+ "Wav2Lip"
+ ],
+ {
+ "title_aux": "Wav2Lip Node for ComfyUI"
+ }
+ ],
+ "https://github.com/Shraknard/ComfyUI-Remover": [
+ [
+ "Remover"
+ ],
+ {
+ "title_aux": "ComfyUI-Remover"
+ }
+ ],
+ "https://github.com/Siberpone/lazy-pony-prompter": [
+ [
+ "LPP_Deleter",
+ "LPP_Derpibooru",
+ "LPP_E621",
+ "LPP_Loader_Derpibooru",
+ "LPP_Loader_E621",
+ "LPP_Saver"
+ ],
+ {
+ "title_aux": "Lazy Pony Prompter"
+ }
+ ],
+ "https://github.com/Smirnov75/ComfyUI-mxToolkit": [
+ [
+ "mxSeed",
+ "mxSlider",
+ "mxSlider2D",
+ "mxStop"
+ ],
+ {
+ "title_aux": "ComfyUI-mxToolkit"
+ }
+ ],
+ "https://github.com/Smuzzies/comfyui_chatbox_overlay/raw/main/chatbox_overlay.py": [
+ [
+ "Chatbox Overlay"
+ ],
+ {
+ "title_aux": "Chatbox Overlay node for ComfyUI"
+ }
+ ],
+ "https://github.com/Smuzzies/comfyui_meme_maker": [
+ [
+ "MemeMaker"
+ ],
+ {
+ "title_aux": "comfyui_meme_maker"
+ }
+ ],
+ "https://github.com/SoftMeng/ComfyUI_ImageToText": [
+ [
+ "ComfyUI_ImageToText"
+ ],
+ {
+ "title_aux": "ComfyUI_ImageToText"
+ }
+ ],
+ "https://github.com/SoftMeng/ComfyUI_Mexx_Poster": [
+ [
+ "ComfyUI_Mexx_Poster"
+ ],
+ {
+ "title_aux": "ComfyUI_Mexx_Poster"
+ }
+ ],
+ "https://github.com/SoftMeng/ComfyUI_Mexx_Styler": [
+ [
+ "MexxSDXLPromptStyler",
+ "MexxSDXLPromptStylerAdvanced"
+ ],
+ {
+ "title_aux": "ComfyUI_Mexx_Styler"
+ }
+ ],
+ "https://github.com/Sorcerio/MBM-Music-Visualizer": [
+ [
+ "id",
+ "mbmAudioFeatureCalculator",
+ "mbmAudioLoader",
+ "mbmImageConcat",
+ "mbmPromptSequenceBuilder",
+ "mbmPromptSequenceBuilderAdv",
+ "mbmPromptSequenceInterpolator",
+ "mbmPromptSequenceLoader",
+ "mbmPromptSequenceRenderer"
+ ],
+ {
+ "title_aux": "MBM's Music Visualizer"
+ }
+ ],
+ "https://github.com/SozeInc/ComfyUI-Mobile": [
+ [
+ "Mobile_Settings_Launcher_Data",
+ "Send Notification (Mobile)",
+ "Settings Launcher (Mobile)",
+ "Ultimate Concat (Mobile)"
+ ],
+ {
+ "title_aux": "ComfyUI-Mobile"
+ }
+ ],
+ "https://github.com/SpaceKendo/ComfyUI-svd_txt2vid": [
+ [
+ "SVD_txt2vid_ConditioningwithLatent"
+ ],
+ {
+ "title_aux": "Text to video for Stable Video Diffusion in ComfyUI"
+ }
+ ],
+ "https://github.com/Stability-AI/ComfyUI-SAI_API": [
+ [
+ "Stability Conservative Upscale",
+ "Stability Control Skech",
+ "Stability Control Structure",
+ "Stability Creative Upscale",
+ "Stability Erase",
+ "Stability Image Core",
+ "Stability Image Ultra",
+ "Stability Inpainting",
+ "Stability Outpainting",
+ "Stability Remove Background",
+ "Stability SD3",
+ "Stability Search and Replace"
+ ],
+ {
+ "title_aux": "Stability API nodes for ComfyUI"
+ }
+ ],
+ "https://github.com/Stability-AI/stability-ComfyUI-nodes": [
+ [
+ "ColorBlend",
+ "ControlLoraSave",
+ "GetImageSize"
+ ],
+ {
+ "title_aux": "stability-ComfyUI-nodes"
+ }
+ ],
+ "https://github.com/StartHua/ComfyUI_OOTDiffusion_CXH": [
+ [
+ "Ood_CXH"
+ ],
+ {
+ "title_aux": "ComfyUI_OOTDiffusion_CXH"
+ }
+ ],
+ "https://github.com/StartHua/ComfyUI_PCDMs": [
+ [
+ "PCDMS_CXH"
+ ],
+ {
+ "title_aux": "ComfyUI_PCDMs"
+ }
+ ],
+ "https://github.com/StartHua/ComfyUI_Seg_VITON": [
+ [
+ "segformer_agnostic",
+ "segformer_clothes",
+ "segformer_remove_bg",
+ "stabel_vition"
+ ],
+ {
+ "title_aux": "ComfyUI_Seg_VITON"
+ }
+ ],
+ "https://github.com/StartHua/Comfyui_joytag": [
+ [
+ "CXH_JoyTag"
+ ],
+ {
+ "title_aux": "Comfyui_joytag"
+ }
+ ],
+ "https://github.com/StartHua/Comfyui_segformer_b2_clothes": [
+ [
+ "segformer_b2_clothes"
+ ],
+ {
+ "title_aux": "comfyui_segformer_b2_clothes"
+ }
+ ],
+ "https://github.com/SuperBeastsAI/ComfyUI-SuperBeasts": [
+ [
+ "Deflicker (SuperBeasts.AI)",
+ "HDR Effects (SuperBeasts.AI)",
+ "Image Batch Manager (SuperBeasts.AI)",
+ "Make Resized Mask Batch (SuperBeasts.AI)",
+ "Mask Batch Manager (SuperBeasts.AI)",
+ "Pixel Deflicker (SuperBeasts.AI)",
+ "String List Manager (SuperBeasts.AI)"
+ ],
+ {
+ "title_aux": "ComfyUI-SuperBeasts"
+ }
+ ],
+ "https://github.com/SuperMasterBlasterLaser/ComfyUI_YOLO_Classifiers": [
+ [
+ "YOLO Classifier Model Loader",
+ "YOLO Classify"
+ ],
+ {
+ "title_aux": "ComfyUI_YOLO_Classifiers"
+ }
+ ],
+ "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes": [
+ [
+ "CR 8 Channel In",
+ "CR 8 Channel Out",
+ "CR Apply ControlNet",
+ "CR Apply LoRA Stack",
+ "CR Apply Model Merge",
+ "CR Apply Multi Upscale",
+ "CR Apply Multi-ControlNet",
+ "CR Arabic Text RTL",
+ "CR Aspect Ratio",
+ "CR Aspect Ratio Banners",
+ "CR Aspect Ratio SDXL",
+ "CR Aspect Ratio Social Media",
+ "CR Batch Images From List",
+ "CR Batch Process Switch",
+ "CR Binary Pattern",
+ "CR Binary To Bit List",
+ "CR Bit Schedule",
+ "CR Central Schedule",
+ "CR Checker Pattern",
+ "CR Clamp Value",
+ "CR Clip Input Switch",
+ "CR Color Bars",
+ "CR Color Gradient",
+ "CR Color Panel",
+ "CR Color Tint",
+ "CR Combine Prompt",
+ "CR Combine Schedules",
+ "CR Comic Panel Templates",
+ "CR Composite Text",
+ "CR Conditioning Input Switch",
+ "CR Conditioning Mixer",
+ "CR ControlNet Input Switch",
+ "CR Current Frame",
+ "CR Cycle Images",
+ "CR Cycle Images Simple",
+ "CR Cycle LoRAs",
+ "CR Cycle Models",
+ "CR Cycle Text",
+ "CR Cycle Text Simple",
+ "CR Data Bus In",
+ "CR Data Bus Out",
+ "CR Debatch Frames",
+ "CR Diamond Panel",
+ "CR Draw Perspective Text",
+ "CR Draw Pie",
+ "CR Draw Shape",
+ "CR Draw Text",
+ "CR Encode Scheduled Prompts",
+ "CR Feathered Border",
+ "CR Float Range List",
+ "CR Float To Integer",
+ "CR Float To String",
+ "CR Font File List",
+ "CR Get Parameter From Prompt",
+ "CR Gradient Float",
+ "CR Gradient Integer",
+ "CR Half Drop Panel",
+ "CR Halftone Filter",
+ "CR Halftone Grid",
+ "CR Hires Fix Process Switch",
+ "CR Image Border",
+ "CR Image Grid Panel",
+ "CR Image Input Switch",
+ "CR Image Input Switch (4 way)",
+ "CR Image List",
+ "CR Image List Simple",
+ "CR Image Output",
+ "CR Image Panel",
+ "CR Image Pipe Edit",
+ "CR Image Pipe In",
+ "CR Image Pipe Out",
+ "CR Image Size",
+ "CR Img2Img Process Switch",
+ "CR Increment Float",
+ "CR Increment Integer",
+ "CR Index",
+ "CR Index Increment",
+ "CR Index Multiply",
+ "CR Index Reset",
+ "CR Input Text List",
+ "CR Integer Multiple",
+ "CR Integer Range List",
+ "CR Integer To String",
+ "CR Interpolate Latents",
+ "CR Intertwine Lists",
+ "CR Keyframe List",
+ "CR Latent Batch Size",
+ "CR Latent Input Switch",
+ "CR LoRA List",
+ "CR LoRA Stack",
+ "CR Load Animation Frames",
+ "CR Load Flow Frames",
+ "CR Load GIF As List",
+ "CR Load Image List",
+ "CR Load Image List Plus",
+ "CR Load LoRA",
+ "CR Load Prompt Style",
+ "CR Load Schedule From File",
+ "CR Load Scheduled ControlNets",
+ "CR Load Scheduled LoRAs",
+ "CR Load Scheduled Models",
+ "CR Load Text List",
+ "CR Mask Text",
+ "CR Math Operation",
+ "CR Model Input Switch",
+ "CR Model List",
+ "CR Model Merge Stack",
+ "CR Module Input",
+ "CR Module Output",
+ "CR Module Pipe Loader",
+ "CR Multi Upscale Stack",
+ "CR Multi-ControlNet Stack",
+ "CR Multiline Text",
+ "CR Output Flow Frames",
+ "CR Output Schedule To File",
+ "CR Overlay Text",
+ "CR Overlay Transparent Image",
+ "CR Page Layout",
+ "CR Pipe Switch",
+ "CR Polygons",
+ "CR Prompt List",
+ "CR Prompt List Keyframes",
+ "CR Prompt Scheduler",
+ "CR Prompt Text",
+ "CR Radial Gradient",
+ "CR Random Hex Color",
+ "CR Random LoRA Stack",
+ "CR Random Multiline Colors",
+ "CR Random Multiline Values",
+ "CR Random Panel Codes",
+ "CR Random RGB",
+ "CR Random RGB Gradient",
+ "CR Random Shape Pattern",
+ "CR Random Weight LoRA",
+ "CR Repeater",
+ "CR SD1.5 Aspect Ratio",
+ "CR SDXL Aspect Ratio",
+ "CR SDXL Base Prompt Encoder",
+ "CR SDXL Prompt Mix Presets",
+ "CR SDXL Prompt Mixer",
+ "CR SDXL Style Text",
+ "CR Save Text To File",
+ "CR Schedule Input Switch",
+ "CR Schedule To ScheduleList",
+ "CR Seamless Checker",
+ "CR Seed",
+ "CR Seed to Int",
+ "CR Select Font",
+ "CR Select ISO Size",
+ "CR Select Model",
+ "CR Select Resize Method",
+ "CR Set Switch From String",
+ "CR Set Value On Binary",
+ "CR Set Value On Boolean",
+ "CR Set Value on String",
+ "CR Simple Banner",
+ "CR Simple Binary Pattern",
+ "CR Simple Binary Pattern Simple",
+ "CR Simple Image Compare",
+ "CR Simple List",
+ "CR Simple Meme Template",
+ "CR Simple Prompt List",
+ "CR Simple Prompt List Keyframes",
+ "CR Simple Prompt Scheduler",
+ "CR Simple Schedule",
+ "CR Simple Text Panel",
+ "CR Simple Text Scheduler",
+ "CR Simple Text Watermark",
+ "CR Simple Titles",
+ "CR Simple Value Scheduler",
+ "CR Split String",
+ "CR Starburst Colors",
+ "CR Starburst Lines",
+ "CR String To Boolean",
+ "CR String To Combo",
+ "CR String To Number",
+ "CR Style Bars",
+ "CR Switch Model and CLIP",
+ "CR Text",
+ "CR Text Blacklist",
+ "CR Text Concatenate",
+ "CR Text Cycler",
+ "CR Text Input Switch",
+ "CR Text Input Switch (4 way)",
+ "CR Text Length",
+ "CR Text List",
+ "CR Text List Simple",
+ "CR Text List To String",
+ "CR Text Operation",
+ "CR Text Replace",
+ "CR Text Scheduler",
+ "CR Thumbnail Preview",
+ "CR Trigger",
+ "CR Upscale Image",
+ "CR VAE Decode",
+ "CR VAE Input Switch",
+ "CR Value",
+ "CR Value Cycler",
+ "CR Value Scheduler",
+ "CR Vignette Filter",
+ "CR XY From Folder",
+ "CR XY Index",
+ "CR XY Interpolate",
+ "CR XY List",
+ "CR XY Product",
+ "CR XY Save Grid Image",
+ "CR XYZ Index",
+ "CR_Aspect Ratio For Print"
+ ],
+ {
+ "author": "Suzie1",
+ "description": "175 custom nodes for artists, designers and animators.",
+ "nickname": "Comfyroll Studio",
+ "title": "Comfyroll Studio",
+ "title_aux": "Comfyroll Studio"
+ }
+ ],
+ "https://github.com/Sxela/ComfyWarp": [
+ [
+ "ExtractOpticalFlow",
+ "LoadFrame",
+ "LoadFrameFromDataset",
+ "LoadFrameFromFolder",
+ "LoadFramePairFromDataset",
+ "LoadFrameSequence",
+ "MakeFrameDataset",
+ "MixConsistencyMaps",
+ "OffsetNumber",
+ "ResizeToFit",
+ "SaveFrame",
+ "WarpFrame"
+ ],
+ {
+ "title_aux": "ComfyWarp"
+ }
+ ],
+ "https://github.com/TGu-97/ComfyUI-TGu-utils": [
+ [
+ "MPNReroute",
+ "MPNSwitch",
+ "PNSwitch"
+ ],
+ {
+ "title_aux": "TGu Utilities"
+ }
+ ],
+ "https://github.com/THtianhao/ComfyUI-FaceChain": [
+ [
+ "FC CropAndPaste",
+ "FC CropBottom",
+ "FC CropToOrigin",
+ "FC FaceDetectCrop",
+ "FC FaceFusion",
+ "FC FaceSegAndReplace",
+ "FC FaceSegment",
+ "FC MaskOP",
+ "FC RemoveCannyFace",
+ "FC ReplaceByMask",
+ "FC StyleLoraLoad"
+ ],
+ {
+ "title_aux": "ComfyUI-FaceChain"
+ }
+ ],
+ "https://github.com/THtianhao/ComfyUI-Portrait-Maker": [
+ [
+ "PM_BoxCropImage",
+ "PM_ColorTransfer",
+ "PM_ExpandMaskBox",
+ "PM_FaceFusion",
+ "PM_FaceShapMatch",
+ "PM_FaceSkin",
+ "PM_GetImageInfo",
+ "PM_ImageResizeTarget",
+ "PM_ImageScaleShort",
+ "PM_MakeUpTransfer",
+ "PM_MaskDilateErode",
+ "PM_MaskMerge2Image",
+ "PM_PortraitEnhancement",
+ "PM_RatioMerge2Image",
+ "PM_ReplaceBoxImg",
+ "PM_RetinaFace",
+ "PM_Similarity",
+ "PM_SkinRetouching",
+ "PM_SuperColorTransfer",
+ "PM_SuperMakeUpTransfer"
+ ],
+ {
+ "title_aux": "ComfyUI-Portrait-Maker"
+ }
+ ],
+ "https://github.com/TJ16th/comfyUI_TJ_NormalLighting": [
+ [
+ "EulerLightingNode"
+ ],
+ {
+ "title_aux": "comfyUI_TJ_NormalLighting"
+ }
+ ],
+ "https://github.com/TMElyralab/Comfyui-MusePose": [
+ [
+ "filenamestring",
+ "musepose",
+ "museposealign"
+ ],
+ {
+ "title_aux": "Comfyui-MusePose"
+ }
+ ],
+ "https://github.com/TRI3D-LC/ComfyUI-MiroBoard": [
+ [
+ "add-image-miro-board"
+ ],
+ {
+ "title_aux": "ComfyUI-MiroBoard"
+ }
+ ],
+ "https://github.com/TRI3D-LC/tri3d-comfyui-nodes": [
+ [
+ "get_histogram_limits",
+ "main_light_layer",
+ "main_scaled_paste",
+ "simple_rescale_histogram",
+ "tri3d-HistogramEqualization",
+ "tri3d-LAB_2_RGB",
+ "tri3d-RGB_2_LAB",
+ "tri3d-adjust-neck",
+ "tri3d-atr-parse",
+ "tri3d-atr-parse-batch",
+ "tri3d-bgremove-mega",
+ "tri3d-clear-memory",
+ "tri3d-clipdrop-bgremove-api",
+ "tri3d-clipdrop-bgreplace-api",
+ "tri3d-composite-image-splitter",
+ "tri3d-dwpose",
+ "tri3d-extract-hand",
+ "tri3d-extract-masks-batch",
+ "tri3d-extract-parts-batch",
+ "tri3d-extract-parts-batch2",
+ "tri3d-extract-parts-mask-batch",
+ "tri3d-extract-pascal-parts-batch",
+ "tri3d-face-recognise",
+ "tri3d-facer_face_segment",
+ "tri3d-flexible_color_extract",
+ "tri3d-float-to-image",
+ "tri3d-fuzzification",
+ "tri3d-get_histogram_limits",
+ "tri3d-get_mean_and_standard_deviation",
+ "tri3d-get_threshold_for_bg_swap",
+ "tri3d-image-mask-2-box",
+ "tri3d-image-mask-box-2-image",
+ "tri3d-interaction-canny",
+ "tri3d-levindabhi-cloth-seg",
+ "tri3d-load-pose-json",
+ "tri3d-load_AEMatter_Model",
+ "tri3d-load_MVANet_Model",
+ "tri3d-luminosity-match",
+ "tri3d-main_transparent_background",
+ "tri3d-photoroom-bgremove-api",
+ "tri3d-pose-adaption",
+ "tri3d-pose-to-image",
+ "tri3d-position-hands",
+ "tri3d-position-parts-batch",
+ "tri3d-position-pascal-parts-batch",
+ "tri3d-recolor-mask",
+ "tri3d-recolor-mask-LAB_space",
+ "tri3d-recolor-mask-LAB_space_manual",
+ "tri3d-recolor-mask-RGB_space",
+ "tri3d-renormalize_array",
+ "tri3d-run_AEMatter_inference",
+ "tri3d-run_MVANet_inference",
+ "tri3d-scaled-paste",
+ "tri3d-simple_bg_swap",
+ "tri3d-simple_rescale_histogram",
+ "tri3d-skin-feathered-padded-mask",
+ "tri3d-swap-pixels"
+ ],
+ {
+ "title_aux": "tri3d-comfyui-nodes"
+ }
+ ],
+ "https://github.com/TW-CUI/TW-CUI-Util": [
+ [
+ "TWCUI_Util_CommonSDXLResolutions",
+ "TWCUI_Util_FloatLiteral",
+ "TWCUI_Util_GenerationParameters",
+ "TWCUI_Util_GenerationPrompts",
+ "TWCUI_Util_IntLiteral",
+ "TWCUI_Util_ModelVAELORALoader",
+ "TWCUI_Util_ModelVAELoader",
+ "TWCUI_Util_MultilineStringLiteral",
+ "TWCUI_Util_SaveImage",
+ "TWCUI_Util_SaveImageAdvanced",
+ "TWCUI_Util_StringLiteral"
+ ],
+ {
+ "title_aux": "TW-CUI-Util"
+ }
+ ],
+ "https://github.com/TaiTair/comfyui-simswap": [
+ [
+ "Simswap",
+ "SimswapBuildFaceModel",
+ "SimswapFaceSwapOpt",
+ "SimswapImageDublicator",
+ "SimswapLoadFaceModel",
+ "SimswapMaskHelper",
+ "SimswapOptions",
+ "SimswapRestoreFace",
+ "SimswapSaveFaceModel"
+ ],
+ {
+ "title_aux": "Simswap Node for ComfyUI"
+ }
+ ],
+ "https://github.com/Taremin/comfyui-prompt-extranetworks": [
+ [
+ "PromptExtraNetworks"
+ ],
+ {
+ "title_aux": "ComfyUI Prompt ExtraNetworks"
+ }
+ ],
+ "https://github.com/Taremin/comfyui-string-tools": [
+ [
+ "StringToolsBalancedChoice",
+ "StringToolsConcat",
+ "StringToolsRandomChoice",
+ "StringToolsString",
+ "StringToolsText"
+ ],
+ {
+ "title_aux": "ComfyUI String Tools"
+ }
+ ],
+ "https://github.com/Taremin/webui-monaco-prompt": [
+ [
+ "WebuiMonacoPromptFind",
+ "WebuiMonacoPromptReplace"
+ ],
+ {
+ "title_aux": "WebUI Monaco Prompt"
+ }
+ ],
+ "https://github.com/TeaCrab/ComfyUI-TeaNodes": [
+ [
+ "TC_ColorFill",
+ "TC_CropTo",
+ "TC_EqualizeCLAHE",
+ "TC_ImageResize",
+ "TC_ImageScale",
+ "TC_KorniaGamma",
+ "TC_RandomColorFill",
+ "TC_SizeApproximation"
+ ],
+ {
+ "title_aux": "ComfyUI-TeaNodes"
+ }
+ ],
+ "https://github.com/TemryL/ComfyS3": [
+ [
+ "DownloadFileS3",
+ "LoadImageS3",
+ "SaveImageS3",
+ "SaveVideoFilesS3",
+ "UploadFileS3"
+ ],
+ {
+ "title_aux": "ComfyS3"
+ }
+ ],
+ "https://github.com/TemryL/ComfyUI-IDM-VTON": [
+ [
+ "IDM-VTON",
+ "PipelineLoader"
+ ],
+ {
+ "title_aux": "ComfyUI-IDM-VTON [WIP]"
+ }
+ ],
+ "https://github.com/TencentQQGYLab/ComfyUI-ELLA": [
+ [
+ "CombineClipEllaEmbeds",
+ "ConcatConditionEllaEmbeds",
+ "ConditionToEllaEmbeds",
+ "ELLALoader",
+ "EllaApply",
+ "EllaCombineEmbeds",
+ "EllaEncode",
+ "EllaTextEncode",
+ "SetEllaTimesteps",
+ "T5TextEncode #ELLA",
+ "T5TextEncoderLoader #ELLA"
+ ],
+ {
+ "title_aux": "ComfyUI-ELLA"
+ }
+ ],
+ "https://github.com/TheBarret/ZSuite": [
+ [
+ "ZSuite: Prompter",
+ "ZSuite: RF Noise",
+ "ZSuite: SeedMod"
+ ],
+ {
+ "title_aux": "ZSuite"
+ }
+ ],
+ "https://github.com/TheBill2001/comfyui-upscale-by-model": [
+ [
+ "UpscaleImageByUsingModel"
+ ],
+ {
+ "author": "Tr\u1ea7n Nam Tu\u1ea5n",
+ "description": "This custom node allow upscaling an image by a factor using a model.",
+ "nickname": "Upscale Image By (Using Model)",
+ "title": "Upscale Image By (Using Model)",
+ "title_aux": "comfyui-upscale-by-model"
+ }
+ ],
+ "https://github.com/TheMistoAI/ComfyUI-Anyline": [
+ [
+ "AnyLinePreprocessor"
+ ],
+ {
+ "title_aux": "Anyline"
+ }
+ ],
+ "https://github.com/ThereforeGames/ComfyUI-Unprompted": [
+ [
+ "Unprompted"
+ ],
+ {
+ "title_aux": "ComfyUI-Unprompted"
+ }
+ ],
+ "https://github.com/TinyTerra/ComfyUI_tinyterraNodes": [
+ [
+ "ttN KSampler_v2",
+ "ttN advPlot combo",
+ "ttN advPlot range",
+ "ttN advPlot string",
+ "ttN advanced xyPlot",
+ "ttN compareInput",
+ "ttN concat",
+ "ttN conditioning",
+ "ttN debugInput",
+ "ttN float",
+ "ttN hiresfixScale",
+ "ttN imageOutput",
+ "ttN imageREMBG",
+ "ttN int",
+ "ttN multiModelMerge",
+ "ttN pipe2BASIC",
+ "ttN pipe2DETAILER",
+ "ttN pipeEDIT",
+ "ttN pipeEncodeConcat",
+ "ttN pipeIN",
+ "ttN pipeKSampler",
+ "ttN pipeKSamplerAdvanced",
+ "ttN pipeKSamplerAdvanced_v2",
+ "ttN pipeKSamplerSDXL",
+ "ttN pipeKSamplerSDXL_v2",
+ "ttN pipeKSampler_v2",
+ "ttN pipeLoader",
+ "ttN pipeLoaderSDXL",
+ "ttN pipeLoaderSDXL_v2",
+ "ttN pipeLoader_v2",
+ "ttN pipeLoraStack",
+ "ttN pipeOUT",
+ "ttN seed",
+ "ttN text",
+ "ttN text3BOX_3WAYconcat",
+ "ttN text7BOX_concat",
+ "ttN textCycleLine",
+ "ttN textDebug",
+ "ttN tinyLoader",
+ "ttN xyPlot"
+ ],
+ {
+ "author": "tinyterra",
+ "description": "This extension offers extensive xyPlot, various pipe nodes, fullscreen image viewer based on node history, dynamic widgets, interface customization, and more.",
+ "nickname": "\ud83c\udf0f",
+ "nodename_pattern": "^ttN ",
+ "title": "tinyterraNodes",
+ "title_aux": "ComfyUI_tinyterraNodes"
+ }
+ ],
+ "https://github.com/TripleHeadedMonkey/ComfyUI_MileHighStyler": [
+ [
+ "menus"
+ ],
+ {
+ "title_aux": "ComfyUI_MileHighStyler"
+ }
+ ],
+ "https://github.com/Tropfchen/ComfyUI-Embedding_Picker": [
+ [
+ "EmbeddingPicker"
+ ],
+ {
+ "title_aux": "Embedding Picker"
+ }
+ ],
+ "https://github.com/Tropfchen/ComfyUI-yaResolutionSelector": [
+ [
+ "YARS",
+ "YARSAdv"
+ ],
+ {
+ "title_aux": "YARS: Yet Another Resolution Selector"
+ }
+ ],
+ "https://github.com/Trung0246/ComfyUI-0246": [
+ [
+ "0246.Beautify",
+ "0246.BoxRange",
+ "0246.CastReroute",
+ "0246.Cloud",
+ "0246.Convert",
+ "0246.Count",
+ "0246.Highway",
+ "0246.HighwayBatch",
+ "0246.Hold",
+ "0246.Hub",
+ "0246.Junction",
+ "0246.JunctionBatch",
+ "0246.Loop",
+ "0246.Merge",
+ "0246.Meta",
+ "0246.Pick",
+ "0246.RandomInt",
+ "0246.Script",
+ "0246.ScriptNode",
+ "0246.ScriptPile",
+ "0246.ScriptRule",
+ "0246.Stringify",
+ "0246.Switch",
+ "0246.Tag"
+ ],
+ {
+ "author": "Trung0246",
+ "description": "Random nodes for ComfyUI I made to solve my struggle with ComfyUI (ex: pipe, process). Have varying quality.",
+ "nickname": "ComfyUI-0246",
+ "title": "ComfyUI-0246",
+ "title_aux": "ComfyUI-0246"
+ }
+ ],
+ "https://github.com/Ttl/ComfyUi_NNLatentUpscale": [
+ [
+ "NNLatentUpscale"
+ ],
+ {
+ "preemptions": [
+ "NNLatentUpscale"
+ ],
+ "title_aux": "ComfyUI Neural Network Latent Upscale"
+ }
+ ],
+ "https://github.com/TylerZoro/SD3-Scaling": [
+ [
+ "SD3ImageScaleToTotalPixels"
+ ],
+ {
+ "title_aux": "SD3-Scaling"
+ }
+ ],
+ "https://github.com/Umikaze-job/select_folder_path_easy": [
+ [
+ "SelectFolderPathEasy"
+ ],
+ {
+ "title_aux": "select_folder_path_easy"
+ }
+ ],
+ "https://github.com/VAST-AI-Research/ComfyUI-Tripo": [
+ [
+ "TripoAPIImageToMeshNode",
+ "TripoAPITextToMeshNode",
+ "TripoGLBViewer"
+ ],
+ {
+ "title_aux": "Tripo for ComfyUI"
+ }
+ ],
+ "https://github.com/WASasquatch/ASTERR": [
+ [
+ "ASTERR",
+ "SaveASTERR"
+ ],
+ {
+ "title_aux": "ASTERR"
+ }
+ ],
+ "https://github.com/WASasquatch/ComfyUI_Preset_Merger": [
+ [
+ "Preset_Model_Merge"
+ ],
+ {
+ "title_aux": "ComfyUI Preset Merger"
+ }
+ ],
+ "https://github.com/WASasquatch/FreeU_Advanced": [
+ [
+ "FreeU (Advanced)",
+ "FreeU_V2 (Advanced)"
+ ],
+ {
+ "title_aux": "FreeU_Advanced"
+ }
+ ],
+ "https://github.com/WASasquatch/PPF_Noise_ComfyUI": [
+ [
+ "Blend Latents (PPF Noise)",
+ "Cross-Hatch Power Fractal (PPF Noise)",
+ "Images as Latents (PPF Noise)",
+ "Perlin Power Fractal Latent (PPF Noise)"
+ ],
+ {
+ "title_aux": "PPF_Noise_ComfyUI"
+ }
+ ],
+ "https://github.com/WASasquatch/PowerNoiseSuite": [
+ [
+ "Blend Latents (PPF Noise)",
+ "Cross-Hatch Power Fractal (PPF Noise)",
+ "Cross-Hatch Power Fractal Settings (PPF Noise)",
+ "Images as Latents (PPF Noise)",
+ "Latent Adjustment (PPF Noise)",
+ "Latents to CPU (PPF Noise)",
+ "Linear Cross-Hatch Power Fractal (PPF Noise)",
+ "Perlin Power Fractal Latent (PPF Noise)",
+ "Perlin Power Fractal Settings (PPF Noise)",
+ "Power KSampler Advanced (PPF Noise)",
+ "Power-Law Noise (PPF Noise)"
+ ],
+ {
+ "title_aux": "Power Noise Suite for ComfyUI"
+ }
+ ],
+ "https://github.com/WASasquatch/WAS_Extras": [
+ [
+ "BLVAEEncode",
+ "CLIPTextEncodeList",
+ "CLIPTextEncodeSequence2",
+ "ConditioningBlend",
+ "DebugInput",
+ "KSamplerSeq",
+ "KSamplerSeq2",
+ "VAEEncodeForInpaint (WAS)",
+ "VividSharpen"
+ ],
+ {
+ "title_aux": "WAS_Extras"
+ }
+ ],
+ "https://github.com/WASasquatch/was-node-suite-comfyui": [
+ [
+ "BLIP Analyze Image",
+ "BLIP Model Loader",
+ "Blend Latents",
+ "Boolean To Text",
+ "Bounded Image Blend",
+ "Bounded Image Blend with Mask",
+ "Bounded Image Crop",
+ "Bounded Image Crop with Mask",
+ "Bus Node",
+ "CLIP Input Switch",
+ "CLIP Vision Input Switch",
+ "CLIPSeg Batch Masking",
+ "CLIPSeg Masking",
+ "CLIPSeg Model Loader",
+ "CLIPTextEncode (BlenderNeko Advanced + NSP)",
+ "CLIPTextEncode (NSP)",
+ "Cache Node",
+ "Checkpoint Loader",
+ "Checkpoint Loader (Simple)",
+ "Conditioning Input Switch",
+ "Constant Number",
+ "Control Net Model Input Switch",
+ "Convert Masks to Images",
+ "Create Grid Image",
+ "Create Grid Image from Batch",
+ "Create Morph Image",
+ "Create Morph Image from Path",
+ "Create Video from Path",
+ "Debug Number to Console",
+ "Dictionary to Console",
+ "Diffusers Hub Model Down-Loader",
+ "Diffusers Model Loader",
+ "Export API",
+ "HSL to Hex",
+ "Hex to HSL",
+ "Image Analyze",
+ "Image Aspect Ratio",
+ "Image Batch",
+ "Image Blank",
+ "Image Blend",
+ "Image Blend by Mask",
+ "Image Blending Mode",
+ "Image Bloom Filter",
+ "Image Bounds",
+ "Image Bounds to Console",
+ "Image Canny Filter",
+ "Image Chromatic Aberration",
+ "Image Color Palette",
+ "Image Crop Face",
+ "Image Crop Location",
+ "Image Crop Square Location",
+ "Image Displacement Warp",
+ "Image Dragan Photography Filter",
+ "Image Edge Detection Filter",
+ "Image Film Grain",
+ "Image Filter Adjustments",
+ "Image Flip",
+ "Image Generate Gradient",
+ "Image Gradient Map",
+ "Image High Pass Filter",
+ "Image History Loader",
+ "Image Input Switch",
+ "Image Levels Adjustment",
+ "Image Load",
+ "Image Lucy Sharpen",
+ "Image Median Filter",
+ "Image Mix RGB Channels",
+ "Image Monitor Effects Filter",
+ "Image Nova Filter",
+ "Image Padding",
+ "Image Paste Crop",
+ "Image Paste Crop by Location",
+ "Image Paste Face",
+ "Image Perlin Noise",
+ "Image Perlin Power Fractal",
+ "Image Pixelate",
+ "Image Power Noise",
+ "Image Rembg (Remove Background)",
+ "Image Remove Background (Alpha)",
+ "Image Remove Color",
+ "Image Resize",
+ "Image Rotate",
+ "Image Rotate Hue",
+ "Image SSAO (Ambient Occlusion)",
+ "Image SSDO (Direct Occlusion)",
+ "Image Save",
+ "Image Seamless Texture",
+ "Image Select Channel",
+ "Image Select Color",
+ "Image Send HTTP",
+ "Image Shadows and Highlights",
+ "Image Size to Number",
+ "Image Stitch",
+ "Image Style Filter",
+ "Image Threshold",
+ "Image Tiled",
+ "Image Transpose",
+ "Image Voronoi Noise Filter",
+ "Image fDOF Filter",
+ "Image to Latent Mask",
+ "Image to Noise",
+ "Image to Seed",
+ "Images to Linear",
+ "Images to RGB",
+ "Inset Image Bounds",
+ "Integer place counter",
+ "KSampler (WAS)",
+ "KSampler Cycle",
+ "Latent Batch",
+ "Latent Input Switch",
+ "Latent Noise Injection",
+ "Latent Size to Number",
+ "Latent Upscale by Factor (WAS)",
+ "Load Cache",
+ "Load Image Batch",
+ "Load Lora",
+ "Load Text File",
+ "Logic Boolean",
+ "Logic Boolean Primitive",
+ "Logic Comparison AND",
+ "Logic Comparison OR",
+ "Logic Comparison XOR",
+ "Logic NOT",
+ "Lora Input Switch",
+ "Lora Loader",
+ "Mask Arbitrary Region",
+ "Mask Batch",
+ "Mask Batch to Mask",
+ "Mask Ceiling Region",
+ "Mask Crop Dominant Region",
+ "Mask Crop Minority Region",
+ "Mask Crop Region",
+ "Mask Dilate Region",
+ "Mask Dominant Region",
+ "Mask Erode Region",
+ "Mask Fill Holes",
+ "Mask Floor Region",
+ "Mask Gaussian Region",
+ "Mask Invert",
+ "Mask Minority Region",
+ "Mask Paste Region",
+ "Mask Smooth Region",
+ "Mask Threshold Region",
+ "Masks Add",
+ "Masks Combine Batch",
+ "Masks Combine Regions",
+ "Masks Subtract",
+ "MiDaS Depth Approximation",
+ "MiDaS Mask Image",
+ "MiDaS Model Loader",
+ "Model Input Switch",
+ "Number Counter",
+ "Number Input Condition",
+ "Number Input Switch",
+ "Number Multiple Of",
+ "Number Operation",
+ "Number PI",
+ "Number to Float",
+ "Number to Int",
+ "Number to Seed",
+ "Number to String",
+ "Number to Text",
+ "Prompt Multiple Styles Selector",
+ "Prompt Styles Selector",
+ "Random Number",
+ "SAM Image Mask",
+ "SAM Model Loader",
+ "SAM Parameters",
+ "SAM Parameters Combine",
+ "Samples Passthrough (Stat System)",
+ "Save Text File",
+ "Seed",
+ "String to Text",
+ "Tensor Batch to Image",
+ "Text Add Token by Input",
+ "Text Add Tokens",
+ "Text Compare",
+ "Text Concatenate",
+ "Text Contains",
+ "Text Dictionary Convert",
+ "Text Dictionary Get",
+ "Text Dictionary Keys",
+ "Text Dictionary New",
+ "Text Dictionary To Text",
+ "Text Dictionary Update",
+ "Text File History Loader",
+ "Text Find",
+ "Text Find and Replace",
+ "Text Find and Replace Input",
+ "Text Find and Replace by Dictionary",
+ "Text Input Switch",
+ "Text List",
+ "Text List Concatenate",
+ "Text List to Text",
+ "Text Load Line From File",
+ "Text Multiline",
+ "Text Multiline (Code Compatible)",
+ "Text Parse A1111 Embeddings",
+ "Text Parse Noodle Soup Prompts",
+ "Text Parse Tokens",
+ "Text Random Line",
+ "Text Random Prompt",
+ "Text Shuffle",
+ "Text Sort",
+ "Text String",
+ "Text String Truncate",
+ "Text to Conditioning",
+ "Text to Console",
+ "Text to Number",
+ "Text to String",
+ "True Random.org Number Generator",
+ "Upscale Model Loader",
+ "Upscale Model Switch",
+ "VAE Input Switch",
+ "Video Dump Frames",
+ "Write to GIF",
+ "Write to Video",
+ "unCLIP Checkpoint Loader"
+ ],
+ {
+ "title_aux": "WAS Node Suite"
+ }
+ ],
+ "https://github.com/WebDev9000/WebDev9000-Nodes": [
+ [
+ "IgnoreBraces",
+ "SettingsSwitch"
+ ],
+ {
+ "title_aux": "WebDev9000-Nodes"
+ }
+ ],
+ "https://github.com/Wicloz/ComfyUI-Simply-Nodes": [
+ [
+ "WF_ConditionalLoraLoader",
+ "WF_MultilineText",
+ "WF_RandomStyle",
+ "WF_ResolutionSDXL",
+ "WF_TextFlow"
+ ],
+ {
+ "title_aux": "ComfyUI Simply Nodes"
+ }
+ ],
+ "https://github.com/XmYx/deforum-comfy-nodes": [
+ [
+ "DeforumAddNoiseNode",
+ "DeforumAnimParamsNode",
+ "DeforumAreaPromptNode",
+ "DeforumBaseParamsNode",
+ "DeforumCacheLatentNode",
+ "DeforumCadenceNode",
+ "DeforumCadenceParamsNode",
+ "DeforumColorMatchNode",
+ "DeforumColorParamsNode",
+ "DeforumConditioningBlendNode",
+ "DeforumDepthParamsNode",
+ "DeforumDiffusionParamsNode",
+ "DeforumFILMInterpolationNode",
+ "DeforumFrameWarpNode",
+ "DeforumGetCachedLatentNode",
+ "DeforumHybridMotionNode",
+ "DeforumHybridParamsNode",
+ "DeforumHybridScheduleNode",
+ "DeforumIteratorNode",
+ "DeforumKSampler",
+ "DeforumLoadVideo",
+ "DeforumNoiseParamsNode",
+ "DeforumPromptNode",
+ "DeforumSeedNode",
+ "DeforumSetVAEDownscaleRatioNode",
+ "DeforumSimpleInterpolationNode",
+ "DeforumSingleSampleNode",
+ "DeforumTranslationParamsNode",
+ "DeforumVideoSaveNode"
+ ],
+ {
+ "title_aux": "Deforum Nodes"
+ }
+ ],
+ "https://github.com/Xyem/Xycuno-Oobabooga": [
+ [
+ "Oobabooga"
+ ],
+ {
+ "title_aux": "Xycuno Oobabooga"
+ }
+ ],
+ "https://github.com/YMC-GitHub/ymc-node-suite-comfyui": [
+ [
+ "canvas-util-cal-size",
+ "conditioning-util-input-switch",
+ "cutoff-region-util",
+ "hks-util-cal-denoise-step",
+ "img-util-get-image-size",
+ "img-util-switch-input-image",
+ "io-image-save",
+ "io-text-save",
+ "io-util-file-list-get",
+ "io-util-file-list-get-text",
+ "number-util-random-num",
+ "pipe-util-to-basic-pipe",
+ "region-util-get-by-center-and-size",
+ "region-util-get-by-lt",
+ "region-util-get-crop-location-from-center-size-text",
+ "region-util-get-pad-out-location-by-size",
+ "text-preset-colors",
+ "text-util-join-text",
+ "text-util-loop-text",
+ "text-util-path-list",
+ "text-util-prompt-add-prompt",
+ "text-util-prompt-adv-dup",
+ "text-util-prompt-adv-search",
+ "text-util-prompt-del",
+ "text-util-prompt-dup",
+ "text-util-prompt-join",
+ "text-util-prompt-search",
+ "text-util-prompt-shuffle",
+ "text-util-prompt-std",
+ "text-util-prompt-unweight",
+ "text-util-random-text",
+ "text-util-search-text",
+ "text-util-show-text",
+ "text-util-switch-text",
+ "xyz-util-txt-to-int"
+ ],
+ {
+ "title_aux": "ymc-node-suite-comfyui"
+ }
+ ],
+ "https://github.com/YOUR-WORST-TACO/ComfyUI-TacoNodes": [
+ [
+ "Example",
+ "TacoAnimatedLoader",
+ "TacoGifMaker",
+ "TacoImg2ImgAnimatedLoader",
+ "TacoImg2ImgAnimatedProcessor",
+ "TacoLatent"
+ ],
+ {
+ "title_aux": "ComfyUI-TacoNodes"
+ }
+ ],
+ "https://github.com/Yanick112/ComfyUI-ToSVG": [
+ [
+ "ConvertRasterToVector",
+ "SaveSVG"
+ ],
+ {
+ "title_aux": "ComfyUI-ToSVG"
+ }
+ ],
+ "https://github.com/YinBailiang/MergeBlockWeighted_fo_ComfyUI": [
+ [
+ "MergeBlockWeighted"
+ ],
+ {
+ "title_aux": "MergeBlockWeighted_fo_ComfyUI"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-APISR": [
+ [
+ "APISR_Lterative_Zho",
+ "APISR_ModelLoader_Zho",
+ "APISR_Zho"
+ ],
+ {
+ "title_aux": "APISR IN COMFYUI"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Animated-optical-illusions": [
+ [
+ "AOI_Processing_Zho"
+ ],
+ {
+ "title_aux": "ComfyUI-Animated-optical-illusions"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery": [
+ [
+ "ArtGallery_Zho",
+ "ArtistsImage_Zho",
+ "CamerasImage_Zho",
+ "FilmsImage_Zho",
+ "MovementsImage_Zho",
+ "StylesImage_Zho"
+ ],
+ {
+ "title_aux": "ComfyUI-ArtGallery"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BRIA_AI-RMBG": [
+ [
+ "BRIA_RMBG_ModelLoader_Zho",
+ "BRIA_RMBG_Zho"
+ ],
+ {
+ "title_aux": "ComfyUI-BRIA_AI-RMBG"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO": [
+ [
+ "BiRefNet_ModelLoader_Zho",
+ "BiRefNet_Zho"
+ ],
+ {
+ "title_aux": "ComfyUI-BiRefNet-ZHO"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DepthFM": [
+ [
+ "DepthFM_Literative_Zho",
+ "DepthFM_ModelLoader_Zho",
+ "DepthFM_Zho"
+ ],
+ {
+ "title_aux": "DepthFM IN COMFYUI"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Gemini": [
+ [
+ "ConcatText_Zho",
+ "DisplayText_Zho",
+ "Gemini_15P_API_S_Advance_Zho",
+ "Gemini_15P_API_S_Chat_Advance_Zho",
+ "Gemini_API_Chat_Zho",
+ "Gemini_API_S_Chat_Zho",
+ "Gemini_API_S_Vsion_ImgURL_Zho",
+ "Gemini_API_S_Zho",
+ "Gemini_API_Vsion_ImgURL_Zho",
+ "Gemini_API_Zho",
+ "Gemini_FileUpload_API_S_Zho",
+ "Gemini_File_API_S_Zho"
+ ],
+ {
+ "title_aux": "ComfyUI-Gemini"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID": [
+ [
+ "IDBaseModelLoader_fromhub",
+ "IDBaseModelLoader_local",
+ "IDControlNetLoader",
+ "IDGenerationNode",
+ "ID_Prompt_Styler",
+ "InsightFaceLoader_Zho",
+ "Ipadapter_instantidLoader"
+ ],
+ {
+ "title_aux": "ComfyUI-InstantID"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Phi-3-mini": [
+ [
+ "Phi3mini_4k_Chat_Zho",
+ "Phi3mini_4k_ModelLoader_Zho",
+ "Phi3mini_4k_Zho"
+ ],
+ {
+ "title_aux": "Phi-3-mini in ComfyUI"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO": [
+ [
+ "BaseModel_Loader_fromhub",
+ "BaseModel_Loader_local",
+ "LoRALoader",
+ "NEW_PhotoMaker_Generation",
+ "PhotoMakerAdapter_Loader_fromhub",
+ "PhotoMakerAdapter_Loader_local",
+ "PhotoMaker_Generation",
+ "Prompt_Styler",
+ "Ref_Image_Preprocessing"
+ ],
+ {
+ "title_aux": "ComfyUI PhotoMaker (ZHO)"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PixArt-alpha-Diffusers": [
+ [
+ "PA_BaseModelLoader_fromhub_Zho",
+ "PA_Generation_Zho",
+ "PA_Styler_Zho"
+ ],
+ {
+ "title_aux": "ComfyUI-PixArt-alpha-Diffusers"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Q-Align": [
+ [
+ "QAlign_Zho"
+ ],
+ {
+ "title_aux": "ComfyUI-Q-Align"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Qwen-2": [
+ [
+ "Qwen2_Chat_Zho",
+ "Qwen2_ModelLoader_Zho",
+ "Qwen2_Zho"
+ ],
+ {
+ "title_aux": "ComfyUI-Qwen-2"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Qwen-VL-API": [
+ [
+ "QWenVL_API_S_Multi_Zho",
+ "QWenVL_API_S_Zho"
+ ],
+ {
+ "title_aux": "ComfyUI-Qwen-VL-API"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SVD-ZHO": [
+ [
+ "SVD_Aspect_Ratio_Zho",
+ "SVD_Steps_MotionStrength_Seed_Zho",
+ "SVD_Styler_Zho"
+ ],
+ {
+ "title_aux": "ComfyUI-SVD-ZHO (WIP)"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SegMoE": [
+ [
+ "SMoE_Generation_Zho",
+ "SMoE_ModelLoader_Zho"
+ ],
+ {
+ "title_aux": "ComfyUI SegMoE"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Text_Image-Composite": [
+ [
+ "AlphaChanelAddByMask",
+ "ImageCompositeBy_BG_Zho",
+ "ImageCompositeBy_Zho",
+ "ImageComposite_BG_Zho",
+ "ImageComposite_Zho",
+ "RGB_Image_Zho",
+ "Text_Image_Frame_Zho",
+ "Text_Image_Multiline_Zho",
+ "Text_Image_Zho"
+ ],
+ {
+ "title_aux": "ComfyUI-Text_Image-Composite [WIP]"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-YoloWorld-EfficientSAM": [
+ [
+ "ESAM_ModelLoader_Zho",
+ "Yoloworld_ESAM_DetectorProvider_Zho",
+ "Yoloworld_ESAM_Zho",
+ "Yoloworld_ModelLoader_Zho"
+ ],
+ {
+ "title_aux": "ComfyUI YoloWorld-EfficientSAM"
+ }
+ ],
+ "https://github.com/ZHO-ZHO-ZHO/comfyui-portrait-master-zh-cn": [
+ [
+ "PortraitMaster_\u4e2d\u6587\u7248"
+ ],
+ {
+ "title_aux": "comfyui-portrait-master-zh-cn"
+ }
+ ],
+ "https://github.com/ZZXYWQ/ComfyUI-ZZXYWQ": [
+ [
+ "VideoFormatConverter"
+ ],
+ {
+ "title_aux": "ZZX Nodes"
+ }
+ ],
+ "https://github.com/ZaneA/ComfyUI-ImageReward": [
+ [
+ "ImageRewardLoader",
+ "ImageRewardScore"
+ ],
+ {
+ "title_aux": "ImageReward"
+ }
+ ],
+ "https://github.com/ZeDarkAdam/ComfyUI-Embeddings-Tools": [
+ [
+ "EmbeddingsNameLoader",
+ "EmbendingList"
+ ],
+ {
+ "title_aux": "ComfyUI-Embeddings-Tools"
+ }
+ ],
+ "https://github.com/a1lazydog/ComfyUI-AudioScheduler": [
+ [
+ "AmplitudeToGraph",
+ "AmplitudeToNumber",
+ "AudioToAmplitudeGraph",
+ "AudioToFFTs",
+ "BatchAmplitudeSchedule",
+ "ClipAmplitude",
+ "FloatArrayToGraph",
+ "GateNormalizedAmplitude",
+ "LoadAudio",
+ "LoadVHSAudio",
+ "NormalizeAmplitude",
+ "NormalizedAmplitudeDrivenString",
+ "NormalizedAmplitudeToGraph",
+ "NormalizedAmplitudeToNumber",
+ "TransientAmplitudeBasic"
+ ],
+ {
+ "title_aux": "ComfyUI-AudioScheduler"
+ }
+ ],
+ "https://github.com/aburahamu/ComfyUI-IsNiceParts": [
+ [
+ "NiceHand"
+ ],
+ {
+ "title_aux": "ComfyUI-IsNiceParts"
+ }
+ ],
+ "https://github.com/aburahamu/ComfyUI-RequestsPoster": [
+ [
+ "GetImageFromSD3byI2I",
+ "GetImageFromSD3byT2I",
+ "PostImage2Discord",
+ "PostImage2X",
+ "PostText"
+ ],
+ {
+ "title_aux": "ComfyUI-RequestPoster"
+ }
+ ],
+ "https://github.com/abyz22/image_control": [
+ [
+ "abyz22_AddPrompt",
+ "abyz22_Convertpipe",
+ "abyz22_Editpipe",
+ "abyz22_FirstNonNull",
+ "abyz22_FromBasicPipe_v2",
+ "abyz22_Frompipe",
+ "abyz22_ImpactWildcardEncode",
+ "abyz22_ImpactWildcardEncode_GetPrompt",
+ "abyz22_Ksampler",
+ "abyz22_Padding Image",
+ "abyz22_RandomMask",
+ "abyz22_RemoveControlnet",
+ "abyz22_ResizeOpenpose",
+ "abyz22_SaveImage",
+ "abyz22_SetQueue",
+ "abyz22_ToBasicPipe",
+ "abyz22_Topipe",
+ "abyz22_blend_onecolor",
+ "abyz22_blendimages",
+ "abyz22_bypass",
+ "abyz22_censoring",
+ "abyz22_drawmask",
+ "abyz22_lamaInpaint",
+ "abyz22_lamaPreprocessor",
+ "abyz22_makecircles",
+ "abyz22_setimageinfo",
+ "abyz22_smallhead"
+ ],
+ {
+ "title_aux": "image_control"
+ }
+ ],
+ "https://github.com/adbrasi/ComfyUI-TrashNodes-DownloadHuggingface": [
+ [
+ "DownloadLinkChecker",
+ "ShowFileNames"
+ ],
+ {
+ "title_aux": "ComfyUI-TrashNodes-DownloadHuggingface"
+ }
+ ],
+ "https://github.com/adieyal/comfyui-dynamicprompts": [
+ [
+ "DPCombinatorialGenerator",
+ "DPFeelingLucky",
+ "DPJinja",
+ "DPMagicPrompt",
+ "DPOutput",
+ "DPRandomGenerator"
+ ],
+ {
+ "title_aux": "DynamicPrompts Custom Nodes"
+ }
+ ],
+ "https://github.com/adigayung/ComfyUI-Translator": [
+ [
+ "CLIP Text Encode (Auto Translate)"
+ ],
+ {
+ "title_aux": "ComfyUI-Translator"
+ }
+ ],
+ "https://github.com/adriflex/ComfyUI_Blender_Texdiff": [
+ [
+ "ViewportColor",
+ "ViewportDepth"
+ ],
+ {
+ "title_aux": "ComfyUI_Blender_Texdiff"
+ }
+ ],
+ "https://github.com/aegis72/aegisflow_utility_nodes": [
+ [
+ "Add Text To Image",
+ "Aegisflow CLIP Pass",
+ "Aegisflow Conditioning Pass",
+ "Aegisflow Image Pass",
+ "Aegisflow Latent Pass",
+ "Aegisflow Mask Pass",
+ "Aegisflow Model Pass",
+ "Aegisflow Pos/Neg Pass",
+ "Aegisflow SDXL Tuple Pass",
+ "Aegisflow VAE Pass",
+ "Aegisflow controlnet preprocessor bus",
+ "Apply Instagram Filter",
+ "Binary INT Switch",
+ "Brightness_Contrast_Ally",
+ "Flatten Colors",
+ "Gaussian Blur_Ally",
+ "GlitchThis Effect",
+ "Hue Rotation",
+ "Image Flip_ally",
+ "Placeholder Tuple",
+ "Swap Color Mode",
+ "aegisflow Multi_Pass",
+ "aegisflow Multi_Pass XL",
+ "af_pipe_in_15",
+ "af_pipe_in_xl",
+ "af_pipe_out_15",
+ "af_pipe_out_xl"
+ ],
+ {
+ "title_aux": "AegisFlow Utility Nodes"
+ }
+ ],
+ "https://github.com/aegis72/comfyui-styles-all": [
+ [
+ "menus"
+ ],
+ {
+ "title_aux": "ComfyUI-styles-all"
+ }
+ ],
+ "https://github.com/ai-liam/comfyui-liam": [
+ [
+ "AiStoreAzureGPTLiam",
+ "GetBetterDepthImage",
+ "LiamLibDisplayText",
+ "LiamLibFillImage",
+ "LiamLibImageToGray",
+ "LiamLibLoadImage",
+ "LiamLibMergeText",
+ "LiamLibSaveImg",
+ "LiamLibSaveText",
+ "OllamaApiTNodeLiam",
+ "PreviewReliefImage",
+ "SpeechRecognitionLiam",
+ "SpeechSynthesisLiam"
+ ],
+ {
+ "title_aux": "LiamUtil"
+ }
+ ],
+ "https://github.com/ai-liam/comfyui_liam_util": [
+ [
+ "LiamLoadImage"
+ ],
+ {
+ "title_aux": "LiamUtil (single node)"
+ }
+ ],
+ "https://github.com/aianimation55/ComfyUI-FatLabels": [
+ [
+ "FatLabels"
+ ],
+ {
+ "title_aux": "Comfy UI FatLabels"
+ }
+ ],
+ "https://github.com/al-swaiti/ComfyUI-CascadeResolutions": [
+ [
+ "CascadeResolutions"
+ ],
+ {
+ "title_aux": "ComfyUI-CascadeResolutions"
+ }
+ ],
+ "https://github.com/alessandrozonta/ComfyUI-CenterNode": [
+ [
+ "BBoxCrop"
+ ],
+ {
+ "title_aux": "Bounding Box Crop Node for ComfyUI"
+ }
+ ],
+ "https://github.com/alessandrozonta/ComfyUI-Layers": [
+ [
+ "LayersSaver - Save Layer",
+ "LayersSaver - Save Layer From Images"
+ ],
+ {
+ "title_aux": "Save Layers Node for ComfyUI"
+ }
+ ],
+ "https://github.com/alessandrozonta/ComfyUI-OpenPose": [
+ [
+ "OpenPose - Get poses"
+ ],
+ {
+ "author": "joe",
+ "title_aux": "OpenPose Node"
+ }
+ ],
+ "https://github.com/alexopus/ComfyUI-Image-Saver": [
+ [
+ "Cfg Literal (Image Saver)",
+ "Checkpoint Loader with Name (Image Saver)",
+ "Float Literal (Image Saver)",
+ "Image Saver",
+ "Int Literal (Image Saver)",
+ "Sampler Selector (Image Saver)",
+ "Scheduler Selector (Comfy) (Image Saver)",
+ "Scheduler Selector (Image Saver)",
+ "SchedulerComfyToString (Image Saver)",
+ "SchedulerToString (Image Saver)",
+ "Seed Generator (Image Saver)",
+ "String Literal (Image Saver)",
+ "Width/Height Literal (Image Saver)"
+ ],
+ {
+ "title_aux": "ComfyUI Image Saver"
+ }
+ ],
+ "https://github.com/alisson-anjos/ComfyUI-Ollama-Describer": [
+ [
+ "InputText",
+ "OllamaImageDescriber",
+ "OllamaTextDescriber",
+ "ShowText",
+ "TextTransformer"
+ ],
+ {
+ "title_aux": "ComfyUI-Ollama-Describer"
+ }
+ ],
+ "https://github.com/alpertunga-bile/prompt-generator-comfyui": [
+ [
+ "Prompt Generator"
+ ],
+ {
+ "title_aux": "prompt-generator"
+ }
+ ],
+ "https://github.com/alsritter/asymmetric-tiling-comfyui": [
+ [
+ "Asymmetric_Tiling_KSampler"
+ ],
+ {
+ "title_aux": "asymmetric-tiling-comfyui"
+ }
+ ],
+ "https://github.com/alt-key-project/comfyui-dream-project": [
+ [
+ "Analyze Palette [Dream]",
+ "Beat Curve [Dream]",
+ "Big Float Switch [Dream]",
+ "Big Image Switch [Dream]",
+ "Big Int Switch [Dream]",
+ "Big Latent Switch [Dream]",
+ "Big Palette Switch [Dream]",
+ "Big Text Switch [Dream]",
+ "Boolean To Float [Dream]",
+ "Boolean To Int [Dream]",
+ "Build Prompt [Dream]",
+ "CSV Curve [Dream]",
+ "CSV Generator [Dream]",
+ "Calculation [Dream]",
+ "Common Frame Dimensions [Dream]",
+ "Compare Palettes [Dream]",
+ "FFMPEG Video Encoder [Dream]",
+ "File Count [Dream]",
+ "Finalize Prompt [Dream]",
+ "Float Input [Dream]",
+ "Float to Log Entry [Dream]",
+ "Frame Count Calculator [Dream]",
+ "Frame Counter (Directory) [Dream]",
+ "Frame Counter (Simple) [Dream]",
+ "Frame Counter Info [Dream]",
+ "Frame Counter Offset [Dream]",
+ "Frame Counter Time Offset [Dream]",
+ "Image Brightness Adjustment [Dream]",
+ "Image Color Shift [Dream]",
+ "Image Contrast Adjustment [Dream]",
+ "Image Motion [Dream]",
+ "Image Sequence Blend [Dream]",
+ "Image Sequence Loader [Dream]",
+ "Image Sequence Saver [Dream]",
+ "Image Sequence Tweening [Dream]",
+ "Int Input [Dream]",
+ "Int to Log Entry [Dream]",
+ "Laboratory [Dream]",
+ "Linear Curve [Dream]",
+ "Log Entry Joiner [Dream]",
+ "Log File [Dream]",
+ "Noise from Area Palettes [Dream]",
+ "Noise from Palette [Dream]",
+ "Palette Color Align [Dream]",
+ "Palette Color Shift [Dream]",
+ "Sample Image Area as Palette [Dream]",
+ "Sample Image as Palette [Dream]",
+ "Saw Curve [Dream]",
+ "Sine Curve [Dream]",
+ "Smooth Event Curve [Dream]",
+ "String Input [Dream]",
+ "String Tokenizer [Dream]",
+ "String to Log Entry [Dream]",
+ "Text Input [Dream]",
+ "Triangle Curve [Dream]",
+ "Triangle Event Curve [Dream]",
+ "WAV Curve [Dream]"
+ ],
+ {
+ "title_aux": "Dream Project Animation Nodes"
+ }
+ ],
+ "https://github.com/alt-key-project/comfyui-dream-video-batches": [
+ [
+ "Blended Transition [DVB]",
+ "Calculation [DVB]",
+ "Create Frame Set [DVB]",
+ "Divide [DVB]",
+ "Fade From Black [DVB]",
+ "Fade To Black [DVB]",
+ "Float Input [DVB]",
+ "For Each Done [DVB]",
+ "For Each Filename [DVB]",
+ "Frame Set Append [DVB]",
+ "Frame Set Frame Dimensions Scaled [DVB]",
+ "Frame Set Index Offset [DVB]",
+ "Frame Set Merger [DVB]",
+ "Frame Set Reindex [DVB]",
+ "Frame Set Repeat [DVB]",
+ "Frame Set Reverse [DVB]",
+ "Frame Set Split Beginning [DVB]",
+ "Frame Set Split End [DVB]",
+ "Frame Set Splitter [DVB]",
+ "Generate Inbetween Frames [DVB]",
+ "Int Input [DVB]",
+ "Linear Camera Pan [DVB]",
+ "Linear Camera Roll [DVB]",
+ "Linear Camera Zoom [DVB]",
+ "Load Image From Path [DVB]",
+ "Multiply [DVB]",
+ "Sine Camera Pan [DVB]",
+ "Sine Camera Roll [DVB]",
+ "Sine Camera Zoom [DVB]",
+ "String Input [DVB]",
+ "Text Input [DVB]",
+ "Trace Memory Allocation [DVB]",
+ "Unwrap Frame Set [DVB]"
+ ],
+ {
+ "title_aux": "Dream Video Batches"
+ }
+ ],
+ "https://github.com/an90ray/ComfyUI_RErouter_CustomNodes": [
+ [
+ "CLIPTextEncode (RE)",
+ "CLIPTextEncodeSDXL (RE)",
+ "CLIPTextEncodeSDXLRefiner (RE)",
+ "Int (RE)",
+ "RErouter <=",
+ "RErouter =>",
+ "String (RE)"
+ ],
+ {
+ "title_aux": "ComfyUI_RErouter_CustomNodes"
+ }
+ ],
+ "https://github.com/andersxa/comfyui-PromptAttention": [
+ [
+ "CLIPAttentionMaskEncode"
+ ],
+ {
+ "title_aux": "CLIP Directional Prompt Attention"
+ }
+ ],
+ "https://github.com/angeloshredder/StableCascadeResizer": [
+ [
+ "CascadeResize"
+ ],
+ {
+ "title_aux": "StableCascadeResizer"
+ }
+ ],
+ "https://github.com/ansonkao/comfyui-geometry": [
+ [
+ "TransformTemplateOntoFaceMask"
+ ],
+ {
+ "author": "Anson Kao",
+ "description": "A small collection of custom nodes for use with ComfyUI, by Discopixel",
+ "nickname": "ComfyUI Discopixel",
+ "title": "ComfyUI Discopixel",
+ "title_aux": "comfyui-geometry"
+ }
+ ],
+ "https://github.com/antrobot1234/antrobots-comfyUI-nodepack": [
+ [
+ "composite",
+ "crop",
+ "paste",
+ "preview_mask",
+ "scale"
+ ],
+ {
+ "title_aux": "antrobots ComfyUI Nodepack"
+ }
+ ],
+ "https://github.com/asagi4/ComfyUI-Adaptive-Guidance": [
+ [
+ "AdaptiveGuidance"
+ ],
+ {
+ "title_aux": "Adaptive Guidance for ComfyUI"
+ }
+ ],
+ "https://github.com/asagi4/ComfyUI-CADS": [
+ [
+ "CADS"
+ ],
+ {
+ "title_aux": "ComfyUI-CADS"
+ }
+ ],
+ "https://github.com/asagi4/comfyui-prompt-control": [
+ [
+ "EditableCLIPEncode",
+ "FilterSchedule",
+ "LoRAScheduler",
+ "PCApplySettings",
+ "PCPromptFromSchedule",
+ "PCScheduleAddMasks",
+ "PCScheduleSettings",
+ "PCSplitSampling",
+ "PCWrapGuider",
+ "PromptControlSimple",
+ "PromptToSchedule",
+ "ScheduleToCond",
+ "ScheduleToModel"
+ ],
+ {
+ "title_aux": "ComfyUI prompt control"
+ }
+ ],
+ "https://github.com/asagi4/comfyui-utility-nodes": [
+ [
+ "MUForceCacheClear",
+ "MUJinjaRender",
+ "MUReplaceModelWeights",
+ "MUSimpleWildcard"
+ ],
+ {
+ "title_aux": "asagi4/comfyui-utility-nodes"
+ }
+ ],
+ "https://github.com/aszc-dev/ComfyUI-CoreMLSuite": [
+ [
+ "Core ML Converter",
+ "Core ML LCM Converter",
+ "Core ML LoRA Loader",
+ "CoreMLModelAdapter",
+ "CoreMLSampler",
+ "CoreMLSamplerAdvanced",
+ "CoreMLUNetLoader"
+ ],
+ {
+ "title_aux": "Core ML Suite for ComfyUI"
+ }
+ ],
+ "https://github.com/audioscavenger/ComfyUI-Thumbnails": [
+ [
+ "LoadImageThumbnails"
+ ],
+ {
+ "author": "AudioscavengeR",
+ "description": "Load Image thumbnails and show input subfolders.",
+ "nickname": "ComfyUI Thumbnails",
+ "title": "ComfyUI Thumbnails",
+ "title_aux": "ComfyUI Thumbnails"
+ }
+ ],
+ "https://github.com/audioscavenger/save-image-extended-comfyui": [
+ [
+ "SaveImageExtended"
+ ],
+ {
+ "title_aux": "Save Image Extended for ComfyUI"
+ }
+ ],
+ "https://github.com/avatechai/avatar-graph-comfyui": [
+ [
+ "ApplyMeshTransformAsShapeKey",
+ "B_ENUM",
+ "B_VECTOR3",
+ "B_VECTOR4",
+ "Combine Points",
+ "CreateShapeFlow",
+ "ExportBlendshapes",
+ "ExportGLTF",
+ "Extract Boundary Points",
+ "Image Alpha Mask Merge",
+ "ImageBridge",
+ "LoadImageFromRequest",
+ "LoadImageWithAlpha",
+ "LoadValueFromRequest",
+ "SAM MultiLayer",
+ "Save Image With Workflow"
+ ],
+ {
+ "author": "Avatech Limited",
+ "description": "Include nodes for sam + bpy operation, that allows workflow creations for generative 2d character rig.",
+ "nickname": "Avatar Graph",
+ "title": "Avatar Graph",
+ "title_aux": "Avatar Graph"
+ }
+ ],
+ "https://github.com/aws-samples/comfyui-llm-node-for-amazon-bedrock": [
+ [
+ "Bedrock - Claude",
+ "Bedrock - Claude Multimodal",
+ "Bedrock - SDXL",
+ "Bedrock - Titan Inpainting",
+ "Bedrock - Titan Outpainting",
+ "Bedrock - Titan Text to Image",
+ "Bedrock - Titan Variation",
+ "Image From S3",
+ "Image From URL",
+ "Image To S3",
+ "Prompt Regex Remove",
+ "Prompt Template"
+ ],
+ {
+ "title_aux": "Amazon Bedrock nodes for ComfyUI"
+ }
+ ],
+ "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes": [
+ [
+ "HaojihuiClipScoreFakeImageProcessor",
+ "HaojihuiClipScoreImageProcessor",
+ "HaojihuiClipScoreImageScore",
+ "HaojihuiClipScoreLoader",
+ "HaojihuiClipScoreRealImageProcessor",
+ "HaojihuiClipScoreTextProcessor"
+ ],
+ {
+ "title_aux": "ComfyUI-ClipScore-Nodes"
+ }
+ ],
+ "https://github.com/badayvedat/ComfyUI-fal-Connector": [
+ [
+ "RemoteCheckpointLoader_fal",
+ "RemoteLoraLoader_fal"
+ ],
+ {
+ "title_aux": "ComfyUI-fal-Connector"
+ }
+ ],
+ "https://github.com/badjeff/comfyui_lora_tag_loader": [
+ [
+ "LoraTagLoader"
+ ],
+ {
+ "title_aux": "LoRA Tag Loader for ComfyUI"
+ }
+ ],
+ "https://github.com/baicai99/ComfyUI-FrameSkipping": [
+ [
+ "FrameSelector",
+ "FrameSkipping",
+ "FrameTruncating",
+ "IntOperationsNode",
+ "MaskFrameSkipping",
+ "MaskGenerator",
+ "MaskSelector"
+ ],
+ {
+ "title_aux": "ComfyUI-FrameSkipping"
+ }
+ ],
+ "https://github.com/banodoco/steerable-motion": [
+ [
+ "BatchCreativeInterpolation",
+ "IpaConfiguration",
+ "RemoveAndInterpolateFrames"
+ ],
+ {
+ "title_aux": "Steerable Motion"
+ }
+ ],
+ "https://github.com/barckley75/comfyUI_DaVinciResolve/raw/main/custom_nodes/node_text_to_speech.py": [
+ [
+ "TextToSpeech"
+ ],
+ {
+ "title_aux": "comfyUI_DaVinciResolve"
+ }
+ ],
+ "https://github.com/bash-j/mikey_nodes": [
+ [
+ "AddMetaData",
+ "Batch Crop Image",
+ "Batch Crop Resize Inplace",
+ "Batch Load Images",
+ "Batch Resize Image for SDXL",
+ "Checkpoint Loader Simple Mikey",
+ "CheckpointHash",
+ "CinematicLook",
+ "Empty Latent Ratio Custom SDXL",
+ "Empty Latent Ratio Select SDXL",
+ "EvalFloats",
+ "FaceFixerOpenCV",
+ "FileNamePrefix",
+ "FileNamePrefixDateDirFirst",
+ "Float to String",
+ "GetSubdirectories",
+ "HaldCLUT",
+ "Image Caption",
+ "ImageBorder",
+ "ImageOverlay",
+ "ImagePaste",
+ "Int to String",
+ "LMStudioPrompt",
+ "Load Image Based on Number",
+ "LoraSyntaxProcessor",
+ "Mikey Sampler",
+ "Mikey Sampler Base Only",
+ "Mikey Sampler Base Only Advanced",
+ "Mikey Sampler Tiled",
+ "Mikey Sampler Tiled Base Only",
+ "MikeyLatentTileSampler",
+ "MikeyLatentTileSamplerCustom",
+ "MikeySamplerTiledAdvanced",
+ "MikeySamplerTiledAdvancedBaseOnly",
+ "MosaicExpandImage",
+ "OobaPrompt",
+ "PresetRatioSelector",
+ "Prompt With SDXL",
+ "Prompt With Style",
+ "Prompt With Style V2",
+ "Prompt With Style V3",
+ "Range Float",
+ "Range Integer",
+ "Ratio Advanced",
+ "Resize Image for SDXL",
+ "SD3TextConditioningWithOptionsOnePrompt",
+ "SRFloatPromptInput",
+ "SRIntPromptInput",
+ "SRStringPromptInput",
+ "Save Image If True",
+ "Save Image With Prompt Data",
+ "Save Images Mikey",
+ "Save Images No Display",
+ "SaveMetaData",
+ "SearchAndReplace",
+ "Seed String",
+ "Style Conditioner",
+ "Style Conditioner Base Only",
+ "Text2InputOr3rdOption",
+ "TextCombinations",
+ "TextCombinations3",
+ "TextConcat",
+ "TextPadderMikey",
+ "TextPreserve",
+ "Upscale Tile Calculator",
+ "Wildcard Processor",
+ "WildcardAndLoraSyntaxProcessor",
+ "WildcardOobaPrompt"
+ ],
+ {
+ "title_aux": "Mikey Nodes"
+ }
+ ],
+ "https://github.com/bedovyy/ComfyUI_NAIDGenerator": [
+ [
+ "GenerateNAID",
+ "Img2ImgOptionNAID",
+ "InpaintingOptionNAID",
+ "MaskImageToNAID",
+ "ModelOptionNAID",
+ "PromptToNAID",
+ "VibeTransferOptionNAID"
+ ],
+ {
+ "title_aux": "ComfyUI_NAIDGenerator"
+ }
+ ],
+ "https://github.com/bilal-arikan/ComfyUI_TextAssets": [
+ [
+ "LoadTextAsset"
+ ],
+ {
+ "title_aux": "ComfyUI_TextAssets"
+ }
+ ],
+ "https://github.com/bitaffinity/ComfyUI_HF_Inference": [
+ [
+ "Classification",
+ "FeatureExtraction",
+ "Generation",
+ "ObjectDetection",
+ "QuestionAnswering",
+ "Segmentation",
+ "TextToImage",
+ "Translation"
+ ],
+ {
+ "title_aux": "ComfyUI_HF_Inference"
+ }
+ ],
+ "https://github.com/bkunbargi/BrevImage/raw/main/BrevLoadImage.py": [
+ [
+ "BrevImage"
+ ],
+ {
+ "title_aux": "BrevImage"
+ }
+ ],
+ "https://github.com/blepping/ComfyUI-bleh": [
+ [
+ "BlehBlockOps",
+ "BlehDeepShrink",
+ "BlehDisableNoise",
+ "BlehDiscardPenultimateSigma",
+ "BlehForceSeedSampler",
+ "BlehHyperTile",
+ "BlehInsaneChainSampler",
+ "BlehLatentOps",
+ "BlehLatentScaleBy",
+ "BlehModelPatchConditional",
+ "BlehPlug",
+ "BlehRefinerAfter"
+ ],
+ {
+ "title_aux": "ComfyUI-bleh"
+ }
+ ],
+ "https://github.com/blepping/ComfyUI-sonar": [
+ [
+ "NoisyLatentLike",
+ "SamplerConfigOverride",
+ "SamplerSonarDPMPPSDE",
+ "SamplerSonarEuler",
+ "SamplerSonarEulerA",
+ "SonarCompositeNoise",
+ "SonarCustomNoise",
+ "SonarGuidanceConfig",
+ "SonarGuidedNoise",
+ "SonarModulatedNoise",
+ "SonarRandomNoise",
+ "SonarRepeatedNoise",
+ "SonarScheduledNoise"
+ ],
+ {
+ "title_aux": "ComfyUI-sonar"
+ }
+ ],
+ "https://github.com/blepping/comfyui_jankhidiffusion": [
+ [
+ "ApplyMSWMSAAttention",
+ "ApplyMSWMSAAttentionSimple",
+ "ApplyRAUNet",
+ "ApplyRAUNetSimple"
+ ],
+ {
+ "title_aux": "ComfyUI jank HiDiffusion"
+ }
+ ],
+ "https://github.com/blueraincoatli/comfyUI_SillyNodes": [
+ [
+ "BooleanJumper|SillyNode",
+ "QueueSequence|SillyNode",
+ "Screenshots|SillyNode",
+ "dummyInput|SillyNode",
+ "dummyInput|blueraincoat"
+ ],
+ {
+ "title_aux": "comfyUI_SillyNodes"
+ }
+ ],
+ "https://github.com/bluevisor/ComfyUI_PS_Blend_Node": [
+ [
+ "PSBlendNode"
+ ],
+ {
+ "title_aux": "ComfyUI_PS_Blend_Node"
+ }
+ ],
+ "https://github.com/bmad4ever/comfyui_ab_samplercustom": [
+ [
+ "AB SamplerCustom (experimental)"
+ ],
+ {
+ "title_aux": "comfyui_ab_sampler"
+ }
+ ],
+ "https://github.com/bmad4ever/comfyui_bmad_nodes": [
+ [
+ "AdaptiveThresholding",
+ "Add String To Many",
+ "AddAlpha",
+ "AdjustRect",
+ "AnyToAny",
+ "BoundingRect (contours)",
+ "BuildColorRangeAdvanced (hsv)",
+ "BuildColorRangeHSV (hsv)",
+ "CLAHE",
+ "CLIPEncodeMultiple",
+ "CLIPEncodeMultipleAdvanced",
+ "ChameleonMask",
+ "CheckpointLoader (dirty)",
+ "CheckpointLoaderSimple (dirty)",
+ "Color (RGB)",
+ "Color (hexadecimal)",
+ "Color Clip",
+ "Color Clip (advanced)",
+ "Color Clip ADE20k",
+ "ColorDictionary",
+ "ColorDictionary (custom)",
+ "Conditioning (combine multiple)",
+ "Conditioning (combine selective)",
+ "Conditioning Grid (cond)",
+ "Conditioning Grid (string)",
+ "Conditioning Grid (string) Advanced",
+ "Contour To Mask",
+ "Contours",
+ "ControlNetHadamard",
+ "ControlNetHadamard (manual)",
+ "ConvertImg",
+ "CopyMakeBorder",
+ "CreateRequestMetadata",
+ "DistanceTransform",
+ "Draw Contour(s)",
+ "EqualizeHistogram",
+ "ExtendColorList",
+ "ExtendCondList",
+ "ExtendFloatList",
+ "ExtendImageList",
+ "ExtendIntList",
+ "ExtendLatentList",
+ "ExtendMaskList",
+ "ExtendModelList",
+ "ExtendStringList",
+ "FadeMaskEdges",
+ "Filter Contour",
+ "FindComplementaryColor",
+ "FindThreshold",
+ "FlatLatentsIntoSingleGrid",
+ "Framed Mask Grab Cut",
+ "Framed Mask Grab Cut 2",
+ "FromListGet1Color",
+ "FromListGet1Cond",
+ "FromListGet1Float",
+ "FromListGet1Image",
+ "FromListGet1Int",
+ "FromListGet1Latent",
+ "FromListGet1Mask",
+ "FromListGet1Model",
+ "FromListGet1String",
+ "FromListGetColors",
+ "FromListGetConds",
+ "FromListGetFloats",
+ "FromListGetImages",
+ "FromListGetInts",
+ "FromListGetLatents",
+ "FromListGetMasks",
+ "FromListGetModels",
+ "FromListGetStrings",
+ "Get Contour from list",
+ "Get Models",
+ "Get Prompt",
+ "HypernetworkLoader (dirty)",
+ "ImageBatchToList",
+ "InRange (hsv)",
+ "Inpaint",
+ "Input/String to Int Array",
+ "KMeansColor",
+ "Load 64 Encoded Image",
+ "LoraLoader (dirty)",
+ "MaskGrid N KSamplers Advanced",
+ "MaskOuterBlur",
+ "Merge Latent Batch Gridwise",
+ "MonoMerge",
+ "MorphologicOperation",
+ "MorphologicSkeletoning",
+ "NaiveAutoKMeansColor",
+ "OtsuThreshold",
+ "RGB to HSV",
+ "Rect Grab Cut",
+ "Remap",
+ "RemapBarrelDistortion",
+ "RemapFromInsideParabolas",
+ "RemapFromQuadrilateral (homography)",
+ "RemapInsideParabolas",
+ "RemapInsideParabolasAdvanced",
+ "RemapPinch",
+ "RemapReverseBarrelDistortion",
+ "RemapStretch",
+ "RemapToInnerCylinder",
+ "RemapToOuterCylinder",
+ "RemapToQuadrilateral",
+ "RemapWarpPolar",
+ "Repeat Into Grid (image)",
+ "Repeat Into Grid (latent)",
+ "RequestInputs",
+ "SampleColorHSV",
+ "Save Image (api)",
+ "SeamlessClone",
+ "SeamlessClone (simple)",
+ "SetRequestStateToComplete",
+ "String",
+ "String to Float",
+ "String to Integer",
+ "ToColorList",
+ "ToCondList",
+ "ToFloatList",
+ "ToImageList",
+ "ToIntList",
+ "ToLatentList",
+ "ToMaskList",
+ "ToModelList",
+ "ToStringList",
+ "UnGridify (image)",
+ "VAEEncodeBatch"
+ ],
+ {
+ "title_aux": "Bmad Nodes"
+ }
+ ],
+ "https://github.com/bmad4ever/comfyui_lists_cartesian_product": [
+ [
+ "AnyListCartesianProduct"
+ ],
+ {
+ "title_aux": "Lists Cartesian Product"
+ }
+ ],
+ "https://github.com/bmad4ever/comfyui_quilting": [
+ [
+ "ImageQuilting_Bmad",
+ "LatentQuilting_Bmad"
+ ],
+ {
+ "title_aux": "comfyui_quilting"
+ }
+ ],
+ "https://github.com/bmad4ever/comfyui_wfc_like": [
+ [
+ "WFC_CustomTemperature_Bmad",
+ "WFC_CustomValueWeights_Bmad",
+ "WFC_Decode_BMad",
+ "WFC_EmptyState_Bmad",
+ "WFC_Encode_BMad",
+ "WFC_Filter_Bmad",
+ "WFC_GenParallel_Bmad",
+ "WFC_Generate_BMad",
+ "WFC_SampleNode_BMad"
+ ],
+ {
+ "title_aux": "comfyui_wfc_like"
+ }
+ ],
+ "https://github.com/bobmagicii/comfykit-custom-nodes": [
+ [
+ "LoraThree",
+ "LoraWithMeta",
+ "TypecasterImage",
+ "TypecasterLatent"
+ ],
+ {
+ "title_aux": "ComfyKit Custom Nodes"
+ }
+ ],
+ "https://github.com/bradsec/ComfyUI_ResolutionSelector": [
+ [
+ "ResolutionSelector"
+ ],
+ {
+ "title_aux": "ResolutionSelector for ComfyUI"
+ }
+ ],
+ "https://github.com/bradsec/ComfyUI_StringTools": [
+ [
+ "ModifyStringNode",
+ "RandomStringNode",
+ "ReplaceStringNode",
+ "ShowStringNode",
+ "TextStringNode"
+ ],
+ {
+ "title_aux": "ComfyUI_StringTools"
+ }
+ ],
+ "https://github.com/braintacles/braintacles-comfyui-nodes": [
+ [
+ "CLIPTextEncodeSDXL-Multi-IO",
+ "CLIPTextEncodeSDXL-Pipe",
+ "Empty Latent Image from Aspect-Ratio",
+ "Interval Sampler",
+ "Random Find and Replace"
+ ],
+ {
+ "title_aux": "braintacles-nodes"
+ }
+ ],
+ "https://github.com/brianfitzgerald/style_aligned_comfy": [
+ [
+ "StyleAlignedBatchAlign",
+ "StyleAlignedReferenceSampler",
+ "StyleAlignedSampleReferenceLatents"
+ ],
+ {
+ "title_aux": "StyleAligned for ComfyUI"
+ }
+ ],
+ "https://github.com/bronkula/comfyui-fitsize": [
+ [
+ "FS: Crop Image Into Even Pieces",
+ "FS: Fit Image And Resize",
+ "FS: Fit Size From Image",
+ "FS: Fit Size From Int",
+ "FS: Image Region To Mask",
+ "FS: Load Image And Resize To Fit",
+ "FS: Pick Image From Batch",
+ "FS: Pick Image From Batches",
+ "FS: Pick Image From List"
+ ],
+ {
+ "title_aux": "comfyui-fitsize"
+ }
+ ],
+ "https://github.com/bruefire/ComfyUI-SeqImageLoader": [
+ [
+ "VFrame Loader With Mask Editor",
+ "Video Loader With Mask Editor"
+ ],
+ {
+ "title_aux": "ComfyUI Sequential Image Loader"
+ }
+ ],
+ "https://github.com/budihartono/comfyui_otonx_nodes": [
+ [
+ "OTX Integer Multiple Inputs 4",
+ "OTX Integer Multiple Inputs 5",
+ "OTX Integer Multiple Inputs 6",
+ "OTX KSampler Feeder",
+ "OTX Versatile Multiple Inputs 4",
+ "OTX Versatile Multiple Inputs 5",
+ "OTX Versatile Multiple Inputs 6"
+ ],
+ {
+ "title_aux": "Otonx's Custom Nodes"
+ }
+ ],
+ "https://github.com/bvhari/ComfyUI_ImageProcessing": [
+ [
+ "BilateralFilter",
+ "Brightness",
+ "Gamma",
+ "Hue",
+ "Saturation",
+ "SigmoidCorrection",
+ "UnsharpMask"
+ ],
+ {
+ "title_aux": "ImageProcessing"
+ }
+ ],
+ "https://github.com/bvhari/ComfyUI_PerpWeight": [
+ [
+ "CLIPTextEncodePerpWeight"
+ ],
+ {
+ "title_aux": "ComfyUI_PerpWeight"
+ }
+ ],
+ "https://github.com/bvhari/ComfyUI_SUNoise": [
+ [
+ "SUNoiseLatent",
+ "SamplerDPM2Ancestral_SUN",
+ "SamplerDPMPP2SAncestral_SUN",
+ "SamplerDPMPP_2M_SDE_SUN",
+ "SamplerDPMPP_3M_SDE_SUN",
+ "SamplerDPMPP_SDE_SUN",
+ "SamplerEulerAncestralCFGpp_SUN",
+ "SamplerEulerAncestral_SUN",
+ "SamplersSUNoise",
+ "SamplersSUNoiseAdvanced"
+ ],
+ {
+ "title_aux": "ComfyUI_SUNoise"
+ }
+ ],
+ "https://github.com/catscandrive/comfyui-imagesubfolders/raw/main/loadImageWithSubfolders.py": [
+ [
+ "LoadImagewithSubfolders"
+ ],
+ {
+ "title_aux": "Image loader with subfolders"
+ }
+ ],
+ "https://github.com/cdb-boop/ComfyUI-Bringing-Old-Photos-Back-to-Life": [
+ [
+ "BOPBTL_BlendFaces",
+ "BOPBTL_DetectEnhanceBlendFaces",
+ "BOPBTL_DetectFaces",
+ "BOPBTL_EnhanceFaces",
+ "BOPBTL_EnhanceFacesAdvanced",
+ "BOPBTL_LoadFaceDetectorModel",
+ "BOPBTL_LoadFaceEnhancerModel",
+ "BOPBTL_LoadRestoreOldPhotosModel",
+ "BOPBTL_LoadScratchMaskModel",
+ "BOPBTL_RestoreOldPhotos",
+ "BOPBTL_ScratchMask"
+ ],
+ {
+ "title_aux": "ComfyUI Bringing Old Photos Back to Life"
+ }
+ ],
+ "https://github.com/cdb-boop/comfyui-image-round": [
+ [
+ "ComfyUI_Image_Round__ImageCropAdvanced",
+ "ComfyUI_Image_Round__ImageRound",
+ "ComfyUI_Image_Round__ImageRoundAdvanced"
+ ],
+ {
+ "title_aux": "comfyui-image-round"
+ }
+ ],
+ "https://github.com/celsojr2013/comfyui_jamworks_client": [
+ [
+ "Jamworks_Download",
+ "Jamworks_Login",
+ "Shell_Command"
+ ],
+ {
+ "title_aux": "comfyui_jamworks_client"
+ }
+ ],
+ "https://github.com/celsojr2013/comfyui_simpletools": [
+ [
+ "GoogleTranslator",
+ "Parameters",
+ "ResolutionSolver"
+ ],
+ {
+ "title_aux": "ComfyUI SimpleTools Suit"
+ }
+ ],
+ "https://github.com/cerspense/ComfyUI_cspnodes": [
+ [
+ "ImageDirIterator",
+ "Modelscopet2v",
+ "Modelscopev2v",
+ "RemapRange",
+ "SplitImageChannels",
+ "TextFileLineIterator",
+ "VidDirIterator"
+ ],
+ {
+ "title_aux": "cspnodes"
+ }
+ ],
+ "https://github.com/ceruleandeep/ComfyUI-LLaVA-Captioner": [
+ [
+ "LlavaCaptioner"
+ ],
+ {
+ "title_aux": "ComfyUI LLaVA Captioner"
+ }
+ ],
+ "https://github.com/chakib-belgaid/ComfyUI-autosize": [
+ [
+ "CustomAutoSize",
+ "SDXLAutoSize"
+ ],
+ {
+ "title_aux": "ComfyUI-autosize"
+ }
+ ],
+ "https://github.com/chakib-belgaid/Comfyui_Prompt_styler": [
+ [
+ "Prompt_Styler"
+ ],
+ {
+ "title_aux": "ComfyUI Style Plugin"
+ }
+ ],
+ "https://github.com/chandlergis/ComfyUI-IMG_Query": [
+ [
+ "ImageRequestNode"
+ ],
+ {
+ "title_aux": "ComfyUI-IMG_Query"
+ }
+ ],
+ "https://github.com/chandlergis/ComfyUI_EmojiOverlay": [
+ [
+ "Image Emoji Overlay"
+ ],
+ {
+ "title_aux": "ComfyUI_EmojiOverlay"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-AniPortrait": [
+ [
+ "AniPortraitLoader",
+ "AniPortraitRun",
+ "Box2Video",
+ "CoverVideo",
+ "MaskList2Video"
+ ],
+ {
+ "title_aux": "ComfyUI-AniPortrait"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-CameraCtrl-Wrapper": [
+ [
+ "CameraBasic",
+ "CameraCombine",
+ "CameraCtrlLoader",
+ "CameraCtrlRun",
+ "CameraJoin",
+ "CameraTrajectory"
+ ],
+ {
+ "title_aux": "ComfyUI-CameraCtrl-Wrapper"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-Champ": [
+ [
+ "ChampLoader",
+ "ChampRun",
+ "ImageCombineOneColumn",
+ "ImageCombineOneRow"
+ ],
+ {
+ "title_aux": "ComfyUI-Champ"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-DragAnything": [
+ [
+ "DragAnythingLoader",
+ "DragAnythingPipelineRun",
+ "DragAnythingPipelineRunRandom",
+ "DragAnythingRun",
+ "DragAnythingRunRandom",
+ "LoadText",
+ "SaveText",
+ "VHS_FILENAMES_STRING"
+ ],
+ {
+ "title_aux": "ComfyUI-DragAnything"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-DragNUWA": [
+ [
+ "BrushMotion",
+ "CompositeMotionBrush",
+ "CompositeMotionBrushWithoutModel",
+ "DragNUWA Run",
+ "DragNUWA Run MotionBrush",
+ "Get First Image",
+ "Get Last Image",
+ "InstantCameraMotionBrush",
+ "InstantObjectMotionBrush",
+ "Load CheckPoint DragNUWA",
+ "Load MotionBrush From Optical Flow",
+ "Load MotionBrush From Optical Flow Directory",
+ "Load MotionBrush From Optical Flow Without Model",
+ "Load MotionBrush From Tracking Points",
+ "Load MotionBrush From Tracking Points Without Model",
+ "Load Pose KeyPoints",
+ "Loop",
+ "LoopEnd_IMAGE",
+ "LoopStart_IMAGE",
+ "Split Tracking Points"
+ ],
+ {
+ "title_aux": "ComfyUI-DragNUWA"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-DynamiCrafter": [
+ [
+ "DynamiCrafter Simple",
+ "DynamiCrafterInterp Simple",
+ "DynamiCrafterInterpLoader",
+ "DynamiCrafterLoader"
+ ],
+ {
+ "title_aux": "ComfyUI-DynamiCrafter"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-EasyAnimate": [
+ [
+ "EasyAnimateLoader",
+ "EasyAnimateRun"
+ ],
+ {
+ "title_aux": "ComfyUI-EasyAnimate"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-Gemma": [
+ [
+ "GemmaLoader",
+ "GemmaRun"
+ ],
+ {
+ "title_aux": "ComfyUI-Gemma"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-I2VGEN-XL": [
+ [
+ "I2VGEN-XL Simple",
+ "Modelscope Pipeline Loader"
+ ],
+ {
+ "title_aux": "ComfyUI-I2VGEN-XL"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-Img2Img-Turbo": [
+ [
+ "Img2ImgTurboEdgeLoader",
+ "Img2ImgTurboEdgeRun",
+ "Img2ImgTurboSketchLoader",
+ "Img2ImgTurboSketchRun"
+ ],
+ {
+ "title_aux": "ComfyUI-Img2Img-Turbo"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-LaVIT": [
+ [
+ "VHS_FILENAMES_STRING_LaVIT",
+ "VideoLaVITI2I",
+ "VideoLaVITI2V",
+ "VideoLaVITI2VLong",
+ "VideoLaVITLoader",
+ "VideoLaVITT2V",
+ "VideoLaVITT2VLong",
+ "VideoLaVITUnderstandingImage",
+ "VideoLaVITUnderstandingLoader",
+ "VideoLaVITUnderstandingVideo",
+ "VideoLaVITVideoDetokenizerLoader",
+ "VideoLaVITVideoReconstruction"
+ ],
+ {
+ "title_aux": "ComfyUI-LaVIT"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-LightGlue": [
+ [
+ "LightGlue Loader",
+ "LightGlue Simple",
+ "LightGlue Simple Multi"
+ ],
+ {
+ "title_aux": "ComfyUI-LightGlue"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-Moore-AnimateAnyone": [
+ [
+ "Moore-AnimateAnyone Denoising Unet",
+ "Moore-AnimateAnyone Image Encoder",
+ "Moore-AnimateAnyone Pipeline Loader",
+ "Moore-AnimateAnyone Pose Guider",
+ "Moore-AnimateAnyone Reference Unet",
+ "Moore-AnimateAnyone Simple",
+ "Moore-AnimateAnyone VAE"
+ ],
+ {
+ "title_aux": "ComfyUI-Moore-AnimateAnyone"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-Motion-Vector-Extractor": [
+ [
+ "Motion Vector Extractor",
+ "VideoCombineThenPath"
+ ],
+ {
+ "title_aux": "ComfyUI-Motion-Vector-Extractor"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-MotionCtrl": [
+ [
+ "Load Motion Camera Preset",
+ "Load Motion Traj Preset",
+ "Load Motionctrl Checkpoint",
+ "Motionctrl Cond",
+ "Motionctrl Sample",
+ "Motionctrl Sample Simple",
+ "Select Image Indices"
+ ],
+ {
+ "title_aux": "ComfyUI-MotionCtrl"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-MotionCtrl-SVD": [
+ [
+ "Load Motionctrl-SVD Camera Preset",
+ "Load Motionctrl-SVD Checkpoint",
+ "Motionctrl-SVD Sample Simple"
+ ],
+ {
+ "title_aux": "ComfyUI-MotionCtrl-SVD"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-MuseTalk": [
+ [
+ "MuseTalkCupAudio",
+ "MuseTalkRun",
+ "VHS_FILENAMES_STRING_MuseTalk"
+ ],
+ {
+ "title_aux": "ComfyUI-MuseTalk"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-MuseV": [
+ [
+ "MuseVRun",
+ "MuseVRunVid2Vid",
+ "VHS_FILENAMES_STRING_MuseV"
+ ],
+ {
+ "author": "infguo",
+ "title_aux": "ComfyUI-MuseV"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-Open-Sora": [
+ [
+ "OpenSoraLoader",
+ "OpenSoraRun",
+ "OpenSoraSampler"
+ ],
+ {
+ "title_aux": "ComfyUI-Open-Sora"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-Open-Sora-Plan": [
+ [
+ "OpenSoraPlanDecode",
+ "OpenSoraPlanLoader",
+ "OpenSoraPlanRun",
+ "OpenSoraPlanSample"
+ ],
+ {
+ "title_aux": "ComfyUI-Open-Sora-Plan"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-Panda3d": [
+ [
+ "Panda3dAmbientLight",
+ "Panda3dAttachNewNode",
+ "Panda3dBase",
+ "Panda3dDirectionalLight",
+ "Panda3dLoadDepthModel",
+ "Panda3dLoadModel",
+ "Panda3dLoadTexture",
+ "Panda3dModelMerge",
+ "Panda3dTest",
+ "Panda3dTextureMerge"
+ ],
+ {
+ "title_aux": "ComfyUI-Panda3d"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-Pymunk": [
+ [
+ "PygameRun",
+ "PygameSurface",
+ "PymunkDynamicBox",
+ "PymunkDynamicCircle",
+ "PymunkRun",
+ "PymunkShapeMerge",
+ "PymunkSpace",
+ "PymunkStaticLine"
+ ],
+ {
+ "title_aux": "ComfyUI-Pymunk"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-RAFT": [
+ [
+ "Load MotionBrush",
+ "RAFT Run",
+ "Save MotionBrush",
+ "VizMotionBrush"
+ ],
+ {
+ "title_aux": "ComfyUI-RAFT"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-SimDA": [
+ [
+ "SimDALoader",
+ "SimDARun",
+ "SimDATrain",
+ "VHS_FILENAMES_STRING_SimDA"
+ ],
+ {
+ "title_aux": "ComfyUI-SimDA"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-Trajectory": [
+ [
+ "Trajectory_Canvas_Tab"
+ ],
+ {
+ "author": "Lerc",
+ "description": "This extension provides a full page image editor with mask support. There are two nodes, one to receive images from the editor and one to send images to the editor.",
+ "nickname": "Canvas Tab",
+ "title": "Canvas Tab",
+ "title_aux": "ComfyUI-Trajectory"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-Video-Editing-X-Attention": [
+ [
+ "StringList",
+ "VEXAGuidance",
+ "VEXALoader",
+ "VEXARun"
+ ],
+ {
+ "title_aux": "ComfyUI-Video-Editing-X-Attention"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI-dust3r": [
+ [
+ "CameraPoseVideo",
+ "Dust3rLoader",
+ "Dust3rRun"
+ ],
+ {
+ "title_aux": "ComfyUI-dust3r"
+ }
+ ],
+ "https://github.com/chaojie/ComfyUI_StreamingT2V": [
+ [
+ "LoadText_StreamingT2V",
+ "PromptTravelIndex",
+ "SaveText_StreamingT2V",
+ "StreamingT2VLoaderAnimateDiff",
+ "StreamingT2VLoaderAnimateDiffModel",
+ "StreamingT2VLoaderEnhanceModel",
+ "StreamingT2VLoaderModelscopeModel",
+ "StreamingT2VLoaderModelscopeT2V",
+ "StreamingT2VLoaderSVD",
+ "StreamingT2VLoaderSVDModel",
+ "StreamingT2VLoaderStreamModel",
+ "StreamingT2VLoaderVidXTendModel",
+ "StreamingT2VRunEnhanceStep",
+ "StreamingT2VRunI2V",
+ "StreamingT2VRunLongStep",
+ "StreamingT2VRunLongStepVidXTendPipeline",
+ "StreamingT2VRunLongStepVidXTendPipelineCustomRef",
+ "StreamingT2VRunLongStepVidXTendPipelineCustomRefOutExtendOnly",
+ "StreamingT2VRunLongStepVidXTendPipelinePromptTravel",
+ "StreamingT2VRunShortStepAnimateDiff",
+ "StreamingT2VRunShortStepModelscopeT2V",
+ "StreamingT2VRunShortStepSVD",
+ "StreamingT2VRunT2V",
+ "VHS_FILENAMES_STRING_StreamingT2V"
+ ],
+ {
+ "title_aux": "ComfyUI_StreamingT2V"
+ }
+ ],
+ "https://github.com/chaosaiart/Chaosaiart-Nodes": [
+ [
+ "chaosaiart_Any_Switch",
+ "chaosaiart_Any_Switch_Big_Number",
+ "chaosaiart_Any_Switch_small",
+ "chaosaiart_CheckpointLoader",
+ "chaosaiart_CheckpointPrompt",
+ "chaosaiart_CheckpointPrompt2",
+ "chaosaiart_CheckpointPrompt_Frame",
+ "chaosaiart_CheckpointPrompt_FrameMixer",
+ "chaosaiart_ControlNetApply",
+ "chaosaiart_ControlNetApply2",
+ "chaosaiart_ControlNetApply3",
+ "chaosaiart_Denoising_Switch",
+ "chaosaiart_EmptyLatentImage",
+ "chaosaiart_FramePromptCLIPEncode",
+ "chaosaiart_Frame_Switch",
+ "chaosaiart_KSampler1",
+ "chaosaiart_KSampler2",
+ "chaosaiart_KSampler3",
+ "chaosaiart_KSampler4",
+ "chaosaiart_KSampler5",
+ "chaosaiart_KSampler7",
+ "chaosaiart_KSampler_a1",
+ "chaosaiart_KSampler_a1a",
+ "chaosaiart_KSampler_a2",
+ "chaosaiart_KSampler_expert_0",
+ "chaosaiart_KSampler_expert_1",
+ "chaosaiart_Ksampler_attribut",
+ "chaosaiart_Load_Image_Batch",
+ "chaosaiart_Load_Image_Batch_2img",
+ "chaosaiart_MainPromptCLIPEncode",
+ "chaosaiart_Number",
+ "chaosaiart_Number2",
+ "chaosaiart_Number_Counter",
+ "chaosaiart_Number_Switch",
+ "chaosaiart_Prompt",
+ "chaosaiart_Prompt_Frame",
+ "chaosaiart_Prompt_mixer_byFrame",
+ "chaosaiart_SaveImage",
+ "chaosaiart_Show_Info",
+ "chaosaiart_Simple_Prompt",
+ "chaosaiart_Style_Node",
+ "chaosaiart_TextCLIPEncode",
+ "chaosaiart_TextCLIPEncode_lora",
+ "chaosaiart_adjust_color",
+ "chaosaiart_any_array2input_1Input",
+ "chaosaiart_any_array2input_all_big",
+ "chaosaiart_any_array2input_all_small",
+ "chaosaiart_any_input2array_big",
+ "chaosaiart_any_input2array_small",
+ "chaosaiart_controlnet_weidgth",
+ "chaosaiart_convert",
+ "chaosaiart_convert_Prompt",
+ "chaosaiart_forPreview",
+ "chaosaiart_image_loop",
+ "chaosaiart_img2gif",
+ "chaosaiart_img2video",
+ "chaosaiart_lora",
+ "chaosaiart_lora_advanced",
+ "chaosaiart_merge_Folders",
+ "chaosaiart_oneNode",
+ "chaosaiart_reloadAny_Load",
+ "chaosaiart_reloadAny_Save",
+ "chaosaiart_reloadIMG_Load",
+ "chaosaiart_reloadIMG_Save",
+ "chaosaiart_reloadLatent_Load",
+ "chaosaiart_reloadLatent_Save",
+ "chaosaiart_restarter",
+ "chaosaiart_restarter_advanced",
+ "chaosaiart_video2img1",
+ "chaosaiart_zoom_frame"
+ ],
+ {
+ "title_aux": "Chaosaiart-Nodes"
+ }
+ ],
+ "https://github.com/chesnokovivan/ComfyUI-Novakid": [
+ [
+ "Novakid Styler"
+ ],
+ {
+ "title_aux": "ComfyUI-Novakid"
+ }
+ ],
+ "https://github.com/chflame163/ComfyUI_FaceSimilarity": [
+ [
+ "Face Similarity"
+ ],
+ {
+ "title_aux": "ComfyUI Face Similarity"
+ }
+ ],
+ "https://github.com/chflame163/ComfyUI_LayerStyle": [
+ [
+ "LayerColor: AutoAdjust",
+ "LayerColor: AutoBrightness",
+ "LayerColor: Brightness & Contrast",
+ "LayerColor: Color of Shadow & Highlight",
+ "LayerColor: ColorAdapter",
+ "LayerColor: ColorBalance",
+ "LayerColor: ColorTemperature",
+ "LayerColor: Exposure",
+ "LayerColor: Gamma",
+ "LayerColor: HSV",
+ "LayerColor: LAB",
+ "LayerColor: LUT Apply",
+ "LayerColor: Levels",
+ "LayerColor: RGB",
+ "LayerColor: YUV",
+ "LayerFilter: AddGrain",
+ "LayerFilter: ChannelShake",
+ "LayerFilter: ColorMap",
+ "LayerFilter: Film",
+ "LayerFilter: FilmV2",
+ "LayerFilter: GaussianBlur",
+ "LayerFilter: HDREffects",
+ "LayerFilter: LightLeak",
+ "LayerFilter: MotionBlur",
+ "LayerFilter: Sharp & Soft",
+ "LayerFilter: SkinBeauty",
+ "LayerFilter: SoftLight",
+ "LayerFilter: WaterColor",
+ "LayerMask: BiRefNetUltra",
+ "LayerMask: BlendIf Mask",
+ "LayerMask: CreateGradientMask",
+ "LayerMask: ImageToMask",
+ "LayerMask: MaskBoxDetect",
+ "LayerMask: MaskByColor",
+ "LayerMask: MaskByDifferent",
+ "LayerMask: MaskEdgeShrink",
+ "LayerMask: MaskEdgeUltraDetail",
+ "LayerMask: MaskEdgeUltraDetail V2",
+ "LayerMask: MaskGradient",
+ "LayerMask: MaskGrain",
+ "LayerMask: MaskGrow",
+ "LayerMask: MaskInvert",
+ "LayerMask: MaskMotionBlur",
+ "LayerMask: MaskPreview",
+ "LayerMask: MaskStroke",
+ "LayerMask: MediapipeFacialSegment",
+ "LayerMask: PersonMaskUltra",
+ "LayerMask: PersonMaskUltra V2",
+ "LayerMask: PixelSpread",
+ "LayerMask: RemBgUltra",
+ "LayerMask: RmBgUltra V2",
+ "LayerMask: SegformerB2ClothesUltra",
+ "LayerMask: SegmentAnythingUltra",
+ "LayerMask: SegmentAnythingUltra V2",
+ "LayerMask: Shadow & Highlight Mask",
+ "LayerMask: YoloV8Detect",
+ "LayerStyle: ColorOverlay",
+ "LayerStyle: ColorOverlay V2",
+ "LayerStyle: DropShadow",
+ "LayerStyle: DropShadow V2",
+ "LayerStyle: GradientOverlay",
+ "LayerStyle: GradientOverlay V2",
+ "LayerStyle: InnerGlow",
+ "LayerStyle: InnerGlow V2",
+ "LayerStyle: InnerShadow",
+ "LayerStyle: InnerShadow V2",
+ "LayerStyle: OuterGlow",
+ "LayerStyle: OuterGlow V2",
+ "LayerStyle: Stroke",
+ "LayerStyle: Stroke V2",
+ "LayerUtility: AddBlindWaterMark",
+ "LayerUtility: BatchSelector",
+ "LayerUtility: Boolean",
+ "LayerUtility: BooleanOperator",
+ "LayerUtility: BooleanOperatorV2",
+ "LayerUtility: CheckMask",
+ "LayerUtility: ColorImage",
+ "LayerUtility: ColorImage V2",
+ "LayerUtility: ColorPicker",
+ "LayerUtility: CreateQRCode",
+ "LayerUtility: CropBoxResolve",
+ "LayerUtility: CropByMask",
+ "LayerUtility: CropByMask V2",
+ "LayerUtility: DecodeQRCode",
+ "LayerUtility: ExtendCanvas",
+ "LayerUtility: ExtendCanvasV2",
+ "LayerUtility: Float",
+ "LayerUtility: GetColorTone",
+ "LayerUtility: GetColorToneV2",
+ "LayerUtility: GetImageSize",
+ "LayerUtility: GradientImage",
+ "LayerUtility: GradientImage V2",
+ "LayerUtility: HLFrequencyDetailRestore",
+ "LayerUtility: HSV Value",
+ "LayerUtility: If",
+ "LayerUtility: ImageAutoCrop",
+ "LayerUtility: ImageAutoCrop V2",
+ "LayerUtility: ImageBlend",
+ "LayerUtility: ImageBlend V2",
+ "LayerUtility: ImageBlendAdvance",
+ "LayerUtility: ImageBlendAdvance V2",
+ "LayerUtility: ImageChannelMerge",
+ "LayerUtility: ImageChannelSplit",
+ "LayerUtility: ImageCombineAlpha",
+ "LayerUtility: ImageHub",
+ "LayerUtility: ImageMaskScaleAs",
+ "LayerUtility: ImageOpacity",
+ "LayerUtility: ImageRemoveAlpha",
+ "LayerUtility: ImageRewardFilter",
+ "LayerUtility: ImageScaleByAspectRatio",
+ "LayerUtility: ImageScaleByAspectRatio V2",
+ "LayerUtility: ImageScaleRestore",
+ "LayerUtility: ImageScaleRestore V2",
+ "LayerUtility: ImageShift",
+ "LayerUtility: Integer",
+ "LayerUtility: LaMa",
+ "LayerUtility: LayerImageTransform",
+ "LayerUtility: LayerMaskTransform",
+ "LayerUtility: LoadPSD",
+ "LayerUtility: NumberCalculator",
+ "LayerUtility: NumberCalculatorV2",
+ "LayerUtility: PrintInfo",
+ "LayerUtility: PromptEmbellish",
+ "LayerUtility: PromptTagger",
+ "LayerUtility: PurgeVRAM",
+ "LayerUtility: QWenImage2Prompt",
+ "LayerUtility: QueueStop",
+ "LayerUtility: RGB Value",
+ "LayerUtility: RestoreCropBox",
+ "LayerUtility: SD3NegativeConditioning",
+ "LayerUtility: SaveImagePlus",
+ "LayerUtility: Seed",
+ "LayerUtility: ShowBlindWaterMark",
+ "LayerUtility: SimpleTextImage",
+ "LayerUtility: String",
+ "LayerUtility: StringCondition",
+ "LayerUtility: SwitchCase",
+ "LayerUtility: TextBox",
+ "LayerUtility: TextImage",
+ "LayerUtility: TextJoin",
+ "LayerUtility: XY to Percent"
+ ],
+ {
+ "author": "chflame",
+ "description": "A set of nodes for ComfyUI that can composite layer and mask to achieve Photoshop like functionality.",
+ "nickname": "LayerStyle",
+ "title": "LayerStyle",
+ "title_aux": "ComfyUI Layer Style"
+ }
+ ],
+ "https://github.com/chflame163/ComfyUI_MSSpeech_TTS": [
+ [
+ "Input Trigger",
+ "MicrosoftSpeech_TTS",
+ "Play Sound",
+ "Play Sound (loop)"
+ ],
+ {
+ "title_aux": "ComfyUI_MSSpeech_TTS"
+ }
+ ],
+ "https://github.com/chflame163/ComfyUI_WordCloud": [
+ [
+ "ComfyWordCloud",
+ "LoadTextFile",
+ "RGB_Picker"
+ ],
+ {
+ "title_aux": "ComfyUI_WordCloud"
+ }
+ ],
+ "https://github.com/chibiace/ComfyUI-Chibi-Nodes": [
+ [
+ "ConditionText",
+ "ConditionTextMulti",
+ "ImageAddText",
+ "ImageSimpleResize",
+ "ImageSizeInfo",
+ "ImageTool",
+ "Int2String",
+ "LoadEmbedding",
+ "LoadImageExtended",
+ "Loader",
+ "Prompts",
+ "RandomResolutionLatent",
+ "SaveImages",
+ "SeedGenerator",
+ "SimpleSampler",
+ "TextSplit",
+ "Textbox",
+ "Wildcards"
+ ],
+ {
+ "title_aux": "ComfyUI-Chibi-Nodes"
+ }
+ ],
+ "https://github.com/choey/Comfy-Topaz": [
+ [
+ "TopazPhotoAI",
+ "TopazSharpenSettings",
+ "TopazUpscaleSettings"
+ ],
+ {
+ "title_aux": "Comfy-Topaz"
+ }
+ ],
+ "https://github.com/chris-the-wiz/EmbeddingsCurveEditor_ComfyUI": [
+ [
+ "Embeddings Curve Editor"
+ ],
+ {
+ "title_aux": "EmbeddingsCurveEditor_ComfyUI"
+ }
+ ],
+ "https://github.com/chrisfreilich/virtuoso-nodes": [
+ [
+ "BlackAndWhite",
+ "BlendIf",
+ "BlendModes",
+ "ColorBalance",
+ "ColorBalanceAdvanced",
+ "GaussianBlur",
+ "GaussianBlurDepth",
+ "HueSat",
+ "HueSatAdvanced",
+ "LensBlur",
+ "LensBlurDepth",
+ "Levels",
+ "MergeRGB",
+ "MotionBlur",
+ "MotionBlurDepth",
+ "SelectiveColor",
+ "SolidColor",
+ "SolidColorHSV",
+ "SolidColorRGB",
+ "SplitRGB"
+ ],
+ {
+ "author": "Chris Freilich",
+ "description": "This extension provides a \"Blend If (BlendIf)\" node.",
+ "nickname": "Virtuoso Pack - Blend If",
+ "title": "Virtuoso Pack - Blend If",
+ "title_aux": "Virtuoso Nodes for ComfyUI"
+ }
+ ],
+ "https://github.com/chrisgoringe/cg-image-picker": [
+ [
+ "Preview Chooser",
+ "Preview Chooser Fabric"
+ ],
+ {
+ "author": "chrisgoringe",
+ "description": "Custom nodes that preview images and pause the workflow to allow the user to select one or more to progress",
+ "nickname": "Image Chooser",
+ "title": "Image Chooser",
+ "title_aux": "Image chooser"
+ }
+ ],
+ "https://github.com/chrisgoringe/cg-noise": [
+ [
+ "Hijack",
+ "KSampler Advanced with Variations",
+ "KSampler with Variations",
+ "UnHijack"
+ ],
+ {
+ "title_aux": "Variation seeds"
+ }
+ ],
+ "https://github.com/chrisgoringe/cg-use-everywhere": [
+ [
+ "Seed Everywhere"
+ ],
+ {
+ "nodename_pattern": "(^(Prompts|Anything) Everywhere|Simple String)",
+ "title_aux": "Use Everywhere (UE Nodes)"
+ }
+ ],
+ "https://github.com/christian-byrne/audio-separation-nodes-comfyui": [
+ [
+ "AudioCombine",
+ "AudioCrop",
+ "AudioSeparation",
+ "AudioTempoMatch",
+ "AudioVideoCombine"
+ ],
+ {
+ "title_aux": "audio-separation-nodes-comfyui"
+ }
+ ],
+ "https://github.com/christian-byrne/img2colors-comfyui-node": [
+ [
+ "bmy_Img2ColorNode"
+ ],
+ {
+ "author": "christian-byrne",
+ "description": "",
+ "nickname": "img2color",
+ "title": "Img2Color Node - Detect and describe color palettes in images",
+ "title_aux": "img2colors-comfyui-node"
+ }
+ ],
+ "https://github.com/christian-byrne/size-match-compositing-nodes": [
+ [
+ "Composite Alpha Layer",
+ "Size Match Images/Masks"
+ ],
+ {
+ "title_aux": "Node - Size Matcher"
+ }
+ ],
+ "https://github.com/city96/ComfyUI_ColorMod": [
+ [
+ "CV2Tonemap",
+ "CV2TonemapDrago",
+ "CV2TonemapDurand",
+ "CV2TonemapMantiuk",
+ "CV2TonemapReinhard",
+ "ColorModCompress",
+ "ColorModEdges",
+ "ColorModMove",
+ "ColorModPivot",
+ "HDRCreate",
+ "HDRExposureFusion",
+ "LoadImageHDR",
+ "LoadImageHighPrec",
+ "PreviewImageHighPrec",
+ "SaveImageHDR",
+ "SaveImageHighPrec"
+ ],
+ {
+ "title_aux": "ComfyUI_ColorMod"
+ }
+ ],
+ "https://github.com/city96/ComfyUI_DiT": [
+ [
+ "DiTCheckpointLoader",
+ "DiTCheckpointLoaderSimple",
+ "DiTLabelCombine",
+ "DiTLabelSelect",
+ "DiTSampler"
+ ],
+ {
+ "title_aux": "ComfyUI_DiT [WIP]"
+ }
+ ],
+ "https://github.com/city96/ComfyUI_ExtraModels": [
+ [
+ "DiTCondLabelEmpty",
+ "DiTCondLabelSelect",
+ "DitCheckpointLoader",
+ "ExtraVAELoader",
+ "HYDiTCheckpointLoader",
+ "HYDiTSrcSizeCond",
+ "HYDiTTextEncode",
+ "HYDiTTextEncodeSimple",
+ "HYDiTTextEncoderLoader",
+ "MiaoBiCLIPLoader",
+ "MiaoBiDiffusersLoader",
+ "PixArtCheckpointLoader",
+ "PixArtCheckpointLoaderSimple",
+ "PixArtControlNetCond",
+ "PixArtLoraLoader",
+ "PixArtResolutionCond",
+ "PixArtResolutionSelect",
+ "PixArtT5FromSD3CLIP",
+ "PixArtT5TextEncode",
+ "T5TextEncode",
+ "T5v11Loader"
+ ],
+ {
+ "title_aux": "Extra Models for ComfyUI"
+ }
+ ],
+ "https://github.com/city96/ComfyUI_NetDist": [
+ [
+ "CombineImageBatch",
+ "FetchRemote",
+ "LoadCurrentWorkflowJSON",
+ "LoadDiskWorkflowJSON",
+ "LoadImageUrl",
+ "LoadLatentNumpy",
+ "LoadLatentUrl",
+ "RemoteChainEnd",
+ "RemoteChainStart",
+ "RemoteQueueSimple",
+ "RemoteQueueWorker",
+ "SaveDiskWorkflowJSON",
+ "SaveImageUrl",
+ "SaveLatentNumpy"
+ ],
+ {
+ "title_aux": "ComfyUI_NetDist"
+ }
+ ],
+ "https://github.com/city96/SD-Advanced-Noise": [
+ [
+ "LatentGaussianNoise",
+ "MathEncode"
+ ],
+ {
+ "title_aux": "SD-Advanced-Noise"
+ }
+ ],
+ "https://github.com/city96/SD-Latent-Interposer": [
+ [
+ "LatentInterposer"
+ ],
+ {
+ "title_aux": "Latent-Interposer"
+ }
+ ],
+ "https://github.com/city96/SD-Latent-Upscaler": [
+ [
+ "LatentUpscaler"
+ ],
+ {
+ "title_aux": "SD-Latent-Upscaler"
+ }
+ ],
+ "https://github.com/civitai/comfy-nodes": [
+ [
+ "CivitAI_Checkpoint_Loader",
+ "CivitAI_Lora_Loader"
+ ],
+ {
+ "title_aux": "comfy-nodes"
+ }
+ ],
+ "https://github.com/claussteinmassl/ComfyUI-CS-CustomNodes": [
+ [
+ "CS Transform"
+ ],
+ {
+ "title_aux": "CS Transform Node for ComfyUI"
+ }
+ ],
+ "https://github.com/comfyanonymous/ComfyUI": [
+ [
+ "AddNoise",
+ "AlignYourStepsScheduler",
+ "BasicGuider",
+ "BasicScheduler",
+ "CFGGuider",
+ "CLIPAttentionMultiply",
+ "CLIPLoader",
+ "CLIPMergeAdd",
+ "CLIPMergeSimple",
+ "CLIPMergeSubtract",
+ "CLIPSave",
+ "CLIPSetLastLayer",
+ "CLIPTextEncode",
+ "CLIPTextEncodeControlnet",
+ "CLIPTextEncodeSD3",
+ "CLIPTextEncodeSDXL",
+ "CLIPTextEncodeSDXLRefiner",
+ "CLIPVisionEncode",
+ "CLIPVisionLoader",
+ "Canny",
+ "CheckpointLoader",
+ "CheckpointLoaderSimple",
+ "CheckpointSave",
+ "ConditioningAverage",
+ "ConditioningCombine",
+ "ConditioningConcat",
+ "ConditioningSetArea",
+ "ConditioningSetAreaPercentage",
+ "ConditioningSetAreaStrength",
+ "ConditioningSetMask",
+ "ConditioningSetTimestepRange",
+ "ConditioningZeroOut",
+ "ControlNetApply",
+ "ControlNetApplyAdvanced",
+ "ControlNetApplySD3",
+ "ControlNetLoader",
+ "CropMask",
+ "DiffControlNetLoader",
+ "DifferentialDiffusion",
+ "DiffusersLoader",
+ "DisableNoise",
+ "DualCFGGuider",
+ "DualCLIPLoader",
+ "EmptyImage",
+ "EmptyLatentAudio",
+ "EmptyLatentImage",
+ "EmptySD3LatentImage",
+ "ExponentialScheduler",
+ "FeatherMask",
+ "FlipSigmas",
+ "FreeU",
+ "FreeU_V2",
+ "GITSScheduler",
+ "GLIGENLoader",
+ "GLIGENTextBoxApply",
+ "GrowMask",
+ "HyperTile",
+ "HypernetworkLoader",
+ "ImageBatch",
+ "ImageBlend",
+ "ImageBlur",
+ "ImageColorToMask",
+ "ImageCompositeMasked",
+ "ImageCrop",
+ "ImageFromBatch",
+ "ImageInvert",
+ "ImageOnlyCheckpointLoader",
+ "ImageOnlyCheckpointSave",
+ "ImagePadForOutpaint",
+ "ImageQuantize",
+ "ImageScale",
+ "ImageScaleBy",
+ "ImageScaleToTotalPixels",
+ "ImageSharpen",
+ "ImageToMask",
+ "ImageUpscaleWithModel",
+ "InpaintModelConditioning",
+ "InstructPixToPixConditioning",
+ "InvertMask",
+ "JoinImageWithAlpha",
+ "KSampler",
+ "KSamplerAdvanced",
+ "KSamplerSelect",
+ "KarrasScheduler",
+ "LatentAdd",
+ "LatentBatch",
+ "LatentBatchSeedBehavior",
+ "LatentBlend",
+ "LatentComposite",
+ "LatentCompositeMasked",
+ "LatentCrop",
+ "LatentFlip",
+ "LatentFromBatch",
+ "LatentInterpolate",
+ "LatentMultiply",
+ "LatentRotate",
+ "LatentSubtract",
+ "LatentUpscale",
+ "LatentUpscaleBy",
+ "LoadAudio",
+ "LoadImage",
+ "LoadImageMask",
+ "LoadLatent",
+ "LoraLoader",
+ "LoraLoaderModelOnly",
+ "MaskComposite",
+ "MaskToImage",
+ "ModelMergeAdd",
+ "ModelMergeBlocks",
+ "ModelMergeSD1",
+ "ModelMergeSD2",
+ "ModelMergeSD3_2B",
+ "ModelMergeSDXL",
+ "ModelMergeSimple",
+ "ModelMergeSubtract",
+ "ModelSamplingContinuousEDM",
+ "ModelSamplingContinuousV",
+ "ModelSamplingDiscrete",
+ "ModelSamplingSD3",
+ "ModelSamplingStableCascade",
+ "Morphology",
+ "PatchModelAddDownscale",
+ "PerpNeg",
+ "PerpNegGuider",
+ "PerturbedAttentionGuidance",
+ "PhotoMakerEncode",
+ "PhotoMakerLoader",
+ "PolyexponentialScheduler",
+ "PorterDuffImageComposite",
+ "PreviewAudio",
+ "PreviewImage",
+ "RandomNoise",
+ "RebatchImages",
+ "RebatchLatents",
+ "RepeatImageBatch",
+ "RepeatLatentBatch",
+ "RescaleCFG",
+ "SDTurboScheduler",
+ "SD_4XUpscale_Conditioning",
+ "SV3D_Conditioning",
+ "SVD_img2vid_Conditioning",
+ "SamplerCustom",
+ "SamplerCustomAdvanced",
+ "SamplerDPMAdaptative",
+ "SamplerDPMPP_2M_SDE",
+ "SamplerDPMPP_3M_SDE",
+ "SamplerDPMPP_SDE",
+ "SamplerEulerAncestral",
+ "SamplerEulerAncestralCFGPP",
+ "SamplerEulerCFGpp",
+ "SamplerLCMUpscale",
+ "SamplerLMS",
+ "SaveAnimatedPNG",
+ "SaveAnimatedWEBP",
+ "SaveAudio",
+ "SaveImage",
+ "SaveImageWebsocket",
+ "SaveLatent",
+ "SelfAttentionGuidance",
+ "SetLatentNoiseMask",
+ "SolidMask",
+ "SplitImageWithAlpha",
+ "SplitSigmas",
+ "SplitSigmasDenoise",
+ "StableCascade_EmptyLatentImage",
+ "StableCascade_StageB_Conditioning",
+ "StableCascade_StageC_VAEEncode",
+ "StableCascade_SuperResolutionControlnet",
+ "StableZero123_Conditioning",
+ "StableZero123_Conditioning_Batched",
+ "StyleModelApply",
+ "StyleModelLoader",
+ "ThresholdMask",
+ "TomePatchModel",
+ "TripleCLIPLoader",
+ "UNETLoader",
+ "UNetCrossAttentionMultiply",
+ "UNetSelfAttentionMultiply",
+ "UNetTemporalAttentionMultiply",
+ "UpscaleModelLoader",
+ "VAEDecode",
+ "VAEDecodeAudio",
+ "VAEDecodeTiled",
+ "VAEEncode",
+ "VAEEncodeAudio",
+ "VAEEncodeForInpaint",
+ "VAEEncodeTiled",
+ "VAELoader",
+ "VAESave",
+ "VPScheduler",
+ "VideoLinearCFGGuidance",
+ "VideoTriangleCFGGuidance",
+ "WebcamCapture",
+ "unCLIPCheckpointLoader",
+ "unCLIPConditioning"
+ ],
+ {
+ "title_aux": "ComfyUI"
+ }
+ ],
+ "https://github.com/comfyanonymous/ComfyUI_TensorRT": [
+ [
+ "DYNAMIC_TRT_MODEL_CONVERSION",
+ "STATIC_TRT_MODEL_CONVERSION",
+ "TensorRTLoader"
+ ],
+ {
+ "title_aux": "TensorRT Node for ComfyUI"
+ }
+ ],
+ "https://github.com/comfyanonymous/ComfyUI_experiments": [
+ [
+ "ModelMergeBlockNumber",
+ "ModelMergeSDXL",
+ "ModelMergeSDXLDetailedTransformers",
+ "ModelMergeSDXLTransformers",
+ "ModelSamplerTonemapNoiseTest",
+ "ReferenceOnlySimple",
+ "RescaleClassifierFreeGuidanceTest",
+ "TonemapNoiseWithRescaleCFG"
+ ],
+ {
+ "title_aux": "ComfyUI_experiments"
+ }
+ ],
+ "https://github.com/concarne000/ConCarneNode": [
+ [
+ "BingImageGrabber",
+ "Hermes",
+ "Zephyr"
+ ],
+ {
+ "title_aux": "ConCarneNode"
+ }
+ ],
+ "https://github.com/conquestace/ComfyUI-ImageUploader": [
+ [
+ "ImageUploader"
+ ],
+ {
+ "author": "ConquestAce",
+ "description": "Upload to temporary websites with API.",
+ "nickname": "Image Uploader",
+ "title": "Image Uploader",
+ "title_aux": "Image Uploader"
+ }
+ ],
+ "https://github.com/coreyryanhanson/ComfyQR": [
+ [
+ "comfy-qr-by-image-size",
+ "comfy-qr-by-module-size",
+ "comfy-qr-by-module-split",
+ "comfy-qr-mask_errors"
+ ],
+ {
+ "title_aux": "ComfyQR"
+ }
+ ],
+ "https://github.com/coreyryanhanson/ComfyQR-scanning-nodes": [
+ [
+ "comfy-qr-read",
+ "comfy-qr-validate"
+ ],
+ {
+ "title_aux": "ComfyQR-scanning-nodes"
+ }
+ ],
+ "https://github.com/cozymantis/cozy-utils-comfyui-nodes": [
+ [
+ "Cozy Sampler Options"
+ ],
+ {
+ "title_aux": "Cozy Utils"
+ }
+ ],
+ "https://github.com/cozymantis/human-parser-comfyui-node": [
+ [
+ "Cozy Human Parser ATR",
+ "Cozy Human Parser LIP",
+ "Cozy Human Parser Pascal"
+ ],
+ {
+ "title_aux": "Cozy Human Parser"
+ }
+ ],
+ "https://github.com/cozymantis/pose-generator-comfyui-node": [
+ [
+ "Cozy Pose Body Reference",
+ "Cozy Pose Face Reference"
+ ],
+ {
+ "title_aux": "Cozy Reference Pose Generator"
+ }
+ ],
+ "https://github.com/crystian/ComfyUI-Crystools": [
+ [],
+ {
+ "author": "Crystian",
+ "description": "Plugins for multiples uses, mainly for debugging, you need them! IG: https://www.instagram.com/crystian.ia",
+ "nickname": "Crystools",
+ "nodename_pattern": " \\[Crystools\\]$",
+ "title": "Crystools",
+ "title_aux": "Crystools"
+ }
+ ],
+ "https://github.com/cubiq/ComfyUI_FaceAnalysis": [
+ [
+ "FaceAlign",
+ "FaceAnalysisModels",
+ "FaceBoundingBox",
+ "FaceEmbedDistance",
+ "FaceSegmentation",
+ "FaceWarp"
+ ],
+ {
+ "title_aux": "Face Analysis for ComfyUI"
+ }
+ ],
+ "https://github.com/cubiq/ComfyUI_IPAdapter_plus": [
+ [
+ "IPAAdapterFaceIDBatch",
+ "IPAdapter",
+ "IPAdapterAdvanced",
+ "IPAdapterBatch",
+ "IPAdapterCombineEmbeds",
+ "IPAdapterCombineParams",
+ "IPAdapterCombineWeights",
+ "IPAdapterEmbeds",
+ "IPAdapterEmbedsBatch",
+ "IPAdapterEncoder",
+ "IPAdapterFaceID",
+ "IPAdapterFromParams",
+ "IPAdapterInsightFaceLoader",
+ "IPAdapterLoadEmbeds",
+ "IPAdapterMS",
+ "IPAdapterModelLoader",
+ "IPAdapterNoise",
+ "IPAdapterPreciseStyleTransfer",
+ "IPAdapterPreciseStyleTransferBatch",
+ "IPAdapterPromptScheduleFromWeightsStrategy",
+ "IPAdapterRegionalConditioning",
+ "IPAdapterSaveEmbeds",
+ "IPAdapterStyleComposition",
+ "IPAdapterStyleCompositionBatch",
+ "IPAdapterTiled",
+ "IPAdapterTiledBatch",
+ "IPAdapterUnifiedLoader",
+ "IPAdapterUnifiedLoaderCommunity",
+ "IPAdapterUnifiedLoaderFaceID",
+ "IPAdapterWeights",
+ "IPAdapterWeightsFromStrategy",
+ "PrepImageForClipVision"
+ ],
+ {
+ "title_aux": "ComfyUI_IPAdapter_plus"
+ }
+ ],
+ "https://github.com/cubiq/ComfyUI_InstantID": [
+ [
+ "ApplyInstantID",
+ "ApplyInstantIDAdvanced",
+ "ApplyInstantIDControlNet",
+ "FaceKeypointsPreprocessor",
+ "InstantIDAttentionPatch",
+ "InstantIDFaceAnalysis",
+ "InstantIDModelLoader"
+ ],
+ {
+ "title_aux": "ComfyUI InstantID (Native Support)"
+ }
+ ],
+ "https://github.com/cubiq/ComfyUI_SimpleMath": [
+ [
+ "SimpleMath",
+ "SimpleMathDebug"
+ ],
+ {
+ "title_aux": "Simple Math"
+ }
+ ],
+ "https://github.com/cubiq/ComfyUI_essentials": [
+ [
+ "ApplyCLIPSeg+",
+ "BatchCount+",
+ "CLIPTextEncodeSDXL+",
+ "ConditioningCombineMultiple+",
+ "ConsoleDebug+",
+ "DebugTensorShape+",
+ "DrawText+",
+ "ExtractKeyframes+",
+ "GetImageSize+",
+ "ImageApplyLUT+",
+ "ImageBatchMultiple+",
+ "ImageCASharpening+",
+ "ImageColorMatch+",
+ "ImageCompositeFromMaskBatch+",
+ "ImageCrop+",
+ "ImageDesaturate+",
+ "ImageEnhanceDifference+",
+ "ImageExpandBatch+",
+ "ImageFlip+",
+ "ImageFromBatch+",
+ "ImageHistogramMatch+",
+ "ImageListToBatch+",
+ "ImagePosterize+",
+ "ImagePreviewFromLatent+",
+ "ImageRandomTransform+",
+ "ImageRemoveAlpha+",
+ "ImageRemoveBackground+",
+ "ImageResize+",
+ "ImageSeamCarving+",
+ "ImageTile+",
+ "ImageToDevice+",
+ "ImageUntile+",
+ "KSamplerVariationsStochastic+",
+ "KSamplerVariationsWithNoise+",
+ "LoadCLIPSegModels+",
+ "MaskBatch+",
+ "MaskBlur+",
+ "MaskBoundingBox+",
+ "MaskExpandBatch+",
+ "MaskFix+",
+ "MaskFlip+",
+ "MaskFromBatch+",
+ "MaskFromColor+",
+ "MaskFromList+",
+ "MaskFromRGBCMYBW+",
+ "MaskFromSegmentation+",
+ "MaskPreview+",
+ "MaskSmooth+",
+ "ModelCompile+",
+ "NoiseFromImage+",
+ "PixelOEPixelize+",
+ "RemBGSession+",
+ "RemoveLatentMask+",
+ "SD3NegativeConditioning+",
+ "SDXLEmptyLatentSizePicker+",
+ "SimpleMath+",
+ "TransitionMask+"
+ ],
+ {
+ "title_aux": "ComfyUI Essentials"
+ }
+ ],
+ "https://github.com/cubiq/PuLID_ComfyUI": [
+ [
+ "ApplyPulid",
+ "ApplyPulidAdvanced",
+ "PulidEvaClipLoader",
+ "PulidInsightFaceLoader",
+ "PulidModelLoader"
+ ],
+ {
+ "title_aux": "PuLID_ComfyUI"
+ }
+ ],
+ "https://github.com/cuongloveit/comfy_http_request": [
+ [
+ "Send Http Request",
+ "Send Http request"
+ ],
+ {
+ "title_aux": "comfy_http_request"
+ }
+ ],
+ "https://github.com/curiousjp/ComfyUI-MaskBatchPermutations": [
+ [
+ "CombinatorialDetailer",
+ "FlattenAgainstOriginal",
+ "PermuteMaskBatch"
+ ],
+ {
+ "title_aux": "ComfyUI-MaskBatchPermutations"
+ }
+ ],
+ "https://github.com/czcz1024/Comfyui-FaceCompare": [
+ [
+ "FaceCompare"
+ ],
+ {
+ "author": "czcz1024",
+ "description": "Face Compare",
+ "nickname": "Face Compare",
+ "title": "Face Compare",
+ "title_aux": "Face Compare"
+ }
+ ],
+ "https://github.com/da2el-ai/ComfyUI-d2-size-selector": [
+ [
+ "D2_SizeSelector"
+ ],
+ {
+ "author": "da2el",
+ "description": "Easy select image size",
+ "title": "D2 Size Selector",
+ "title_aux": "D2 Size Selector"
+ }
+ ],
+ "https://github.com/da2el-ai/ComfyUI-d2-steps": [
+ [
+ "D2 Refiner Steps",
+ "D2 Refiner Steps A1111",
+ "D2 Refiner Steps Tester"
+ ],
+ {
+ "author": "da2el",
+ "description": "Calculate the steps for the refiner",
+ "title": "D2 Steps",
+ "title_aux": "D2 Steps"
+ }
+ ],
+ "https://github.com/dagthomas/comfyui_dagthomas": [
+ [
+ "PGSD3LatentGenerator",
+ "PromptGenerator"
+ ],
+ {
+ "title_aux": "SDXL Auto Prompter"
+ }
+ ],
+ "https://github.com/daniabib/ComfyUI_ProPainter_Nodes": [
+ [
+ "ProPainterInpaint",
+ "ProPainterOutpaint"
+ ],
+ {
+ "title_aux": "ComfyUI ProPainter Nodes"
+ }
+ ],
+ "https://github.com/daniel-lewis-ab/ComfyUI-Llama": [
+ [
+ "Call LLM Advanced",
+ "Call LLM Basic",
+ "LLM_Create_Completion Advanced",
+ "LLM_Detokenize",
+ "LLM_Embed",
+ "LLM_Eval",
+ "LLM_Load_State",
+ "LLM_Reset",
+ "LLM_Sample",
+ "LLM_Save_State",
+ "LLM_Token_BOS",
+ "LLM_Token_EOS",
+ "LLM_Tokenize",
+ "Load LLM Model Advanced",
+ "Load LLM Model Basic"
+ ],
+ {
+ "title_aux": "ComfyUI-Llama"
+ }
+ ],
+ "https://github.com/daniel-lewis-ab/ComfyUI-TTS": [
+ [
+ "Load_Piper_Model",
+ "Piper_Speak_Text"
+ ],
+ {
+ "title_aux": "ComfyUI-TTS"
+ }
+ ],
+ "https://github.com/darkpixel/darkprompts": [
+ [
+ "DarkCheckpointRandomizer",
+ "DarkCheckpointSwitcher",
+ "DarkCombine",
+ "DarkFaceIndexGenerator",
+ "DarkFaceIndexShuffle",
+ "DarkFolders",
+ "DarkLoRALoader",
+ "DarkPrompt"
+ ],
+ {
+ "title_aux": "DarkPrompts"
+ }
+ ],
+ "https://github.com/dave-palt/comfyui_DSP_imagehelpers": [
+ [
+ "dsp-imagehelpers-concat"
+ ],
+ {
+ "title_aux": "comfyui_DSP_imagehelpers"
+ }
+ ],
+ "https://github.com/dawangraoming/ComfyUI_ksampler_gpu/raw/main/ksampler_gpu.py": [
+ [
+ "KSamplerAdvancedGPU",
+ "KSamplerGPU"
+ ],
+ {
+ "title_aux": "KSampler GPU"
+ }
+ ],
+ "https://github.com/daxcay/ComfyUI-DataSet": [
+ [
+ "DataSet_ConceptManager",
+ "DataSet_CopyFiles",
+ "DataSet_FindAndReplace",
+ "DataSet_LoadImage",
+ "DataSet_OpenAIChat",
+ "DataSet_OpenAIChatImage",
+ "DataSet_OpenAIChatImageBatch",
+ "DataSet_PathSelector",
+ "DataSet_SaveImage",
+ "DataSet_TextFilesLoad",
+ "DataSet_TextFilesLoadFromList",
+ "DataSet_TextFilesSave",
+ "DataSet_TriggerWords",
+ "DataSet_Visualizer"
+ ],
+ {
+ "author": "Daxton Caylor",
+ "description": "Data Research, Preparation, and Manipulation Nodes for Model Trainers, Artists, Designers, and Animators.",
+ "nickname": "ComfyUI-DataSet",
+ "title": "ComfyUI-DataSet",
+ "title_aux": "ComfyUI-DataSet"
+ }
+ ],
+ "https://github.com/daxcay/ComfyUI-JDCN": [
+ [
+ "JDCN_AnyCheckpointLoader",
+ "JDCN_AnyFileList",
+ "JDCN_AnyFileListHelper",
+ "JDCN_AnyFileListRandom",
+ "JDCN_AnyFileSelector",
+ "JDCN_BatchCounter",
+ "JDCN_BatchCounterAdvance",
+ "JDCN_BatchImageLoadFromDir",
+ "JDCN_BatchImageLoadFromList",
+ "JDCN_BatchLatentLoadFromDir",
+ "JDCN_BatchLatentLoadFromList",
+ "JDCN_BatchSaveLatent",
+ "JDCN_BoolInt",
+ "JDCN_EnableDisable",
+ "JDCN_FileMover",
+ "JDCN_ImageSaver",
+ "JDCN_ListToString",
+ "JDCN_ReBatch",
+ "JDCN_SeamlessExperience",
+ "JDCN_ShowAny",
+ "JDCN_SplitString",
+ "JDCN_StringManipulator",
+ "JDCN_StringToList",
+ "JDCN_SwapInputs",
+ "JDCN_TXTFileSaver",
+ "JDCN_VHSFileMover"
+ ],
+ {
+ "author": "Daxton Caylor & Jerry Davos",
+ "description": "Custom Utility Nodes for Artists, Designers and Animators.",
+ "nickname": "ComfyUI-JDCN",
+ "title": "ComfyUI-JDCN",
+ "title_aux": "ComfyUI-JDCN"
+ }
+ ],
+ "https://github.com/daxthin/DZ-FaceDetailer": [
+ [
+ "DZ_Face_Detailer"
+ ],
+ {
+ "title_aux": "DZ-FaceDetailer"
+ }
+ ],
+ "https://github.com/dchatel/comfyui_facetools": [
+ [
+ "BiSeNetMask",
+ "CropFaces",
+ "DetectFaces",
+ "GenderFaceFilter",
+ "JonathandinuMask",
+ "MergeWarps",
+ "OrderedFaceFilter",
+ "WarpFacesBack"
+ ],
+ {
+ "title_aux": "comfyui_facetools"
+ }
+ ],
+ "https://github.com/denfrost/Den_ComfyUI_Workflow": [
+ [
+ "Den_BatchIndex_AS",
+ "Den_CropImage_AS",
+ "Den_Eval_AS",
+ "Den_FaceRestoreCFWithModel",
+ "Den_GPTLoaderSimple_llama",
+ "Den_GPTSampler_llama",
+ "Den_ImageMixMasked_As",
+ "Den_ImageToLatentSpace",
+ "Den_ImageToMask_AS",
+ "Den_Int2Any_AS",
+ "Den_LatentAdd_AS",
+ "Den_LatentMixMasked_As",
+ "Den_LatentMix_AS",
+ "Den_LatentToImages_AS",
+ "Den_LoadLatent_AS",
+ "Den_MapRange_AS",
+ "Den_MaskToImage_AS",
+ "Den_Math_AS",
+ "Den_NoiseImage_AS",
+ "Den_Number2Float_AS",
+ "Den_Number2Int_AS",
+ "Den_Number_AS",
+ "Den_SVD_img2vid",
+ "Den_SaveLatent_AS",
+ "Den_TextToImage_AS",
+ "Den_TextWildcardList_AS",
+ "Increment_AS"
+ ],
+ {
+ "title_aux": "Den_ComfyUI_Workflows"
+ }
+ ],
+ "https://github.com/deroberon/StableZero123-comfyui": [
+ [
+ "SDZero ImageSplit",
+ "Stablezero123",
+ "Stablezero123WithDepth"
+ ],
+ {
+ "title_aux": "StableZero123-comfyui"
+ }
+ ],
+ "https://github.com/deroberon/demofusion-comfyui": [
+ [
+ "Batch Unsampler",
+ "Demofusion",
+ "Demofusion From Single File",
+ "Iterative Mixing KSampler"
+ ],
+ {
+ "title_aux": "demofusion-comfyui"
+ }
+ ],
+ "https://github.com/dfl/comfyui-clip-with-break": [
+ [
+ "AdvancedCLIPTextEncodeWithBreak",
+ "CLIPTextEncodeWithBreak"
+ ],
+ {
+ "author": "dfl",
+ "description": "CLIP text encoder that does BREAK prompting like A1111",
+ "nickname": "CLIP with BREAK",
+ "title": "CLIP with BREAK syntax",
+ "title_aux": "CLIP with BREAK syntax"
+ }
+ ],
+ "https://github.com/dfl/comfyui-tcd-scheduler": [
+ [
+ "SamplerTCD",
+ "SamplerTCD EulerA",
+ "TCDScheduler"
+ ],
+ {
+ "title_aux": "ComfyUI-TCD-scheduler"
+ }
+ ],
+ "https://github.com/diStyApps/ComfyUI_FrameMaker": [
+ [
+ "FrameMaker",
+ "FrameMakerBatch"
+ ],
+ {
+ "title_aux": "ComfyUI Frame Maker"
+ }
+ ],
+ "https://github.com/dicksondickson/ComfyUI-Dickson-Nodes": [
+ [
+ "DicksonColorMatch",
+ "TTPlanet_Tile_Preprocessor_GF",
+ "TTPlanet_Tile_Preprocessor_Simple",
+ "TTPlanet_Tile_Preprocessor_cufoff"
+ ],
+ {
+ "description": "This is a set of custom nodes that I've either written myself or adapted from other authors for my own convenience. Currently includes color matching node forked from StableSR and TTPlanet's controlnet preprocessor. https://github.com/dicksondickson",
+ "nickname": "Dickson Nodes",
+ "title": "Dickson Nodes",
+ "title_aux": "ComfyUI-Dickson-Nodes"
+ }
+ ],
+ "https://github.com/digitaljohn/comfyui-propost": [
+ [
+ "ProPostApplyLUT",
+ "ProPostDepthMapBlur",
+ "ProPostFilmGrain",
+ "ProPostRadialBlur",
+ "ProPostVignette"
+ ],
+ {
+ "title_aux": "ComfyUI-ProPost"
+ }
+ ],
+ "https://github.com/dimtoneff/ComfyUI-PixelArt-Detector": [
+ [
+ "PixelArtAddDitherPattern",
+ "PixelArtDetectorConverter",
+ "PixelArtDetectorSave",
+ "PixelArtDetectorToImage",
+ "PixelArtLoadPalettes"
+ ],
+ {
+ "title_aux": "ComfyUI PixelArt Detector"
+ }
+ ],
+ "https://github.com/diontimmer/ComfyUI-Vextra-Nodes": [
+ [
+ "Add Text To Image",
+ "Apply Instagram Filter",
+ "Create Solid Color",
+ "Flatten Colors",
+ "Generate Noise Image",
+ "GlitchThis Effect",
+ "Hue Rotation",
+ "Load Picture Index",
+ "Pixel Sort",
+ "Play Sound At Execution",
+ "Prettify Prompt Using distilgpt2",
+ "Swap Color Mode"
+ ],
+ {
+ "title_aux": "ComfyUI-Vextra-Nodes"
+ }
+ ],
+ "https://github.com/discopixel-studio/comfyui-discopixel": [
+ [
+ "TransformTemplateOntoFaceMask"
+ ],
+ {
+ "author": "Anson Kao",
+ "description": "A small collection of custom nodes for use with ComfyUI, by Discopixel",
+ "nickname": "ComfyUI Discopixel",
+ "title": "ComfyUI Discopixel",
+ "title_aux": "ComfyUI Discopixel Nodes"
+ }
+ ],
+ "https://github.com/discus0434/comfyui-caching-embeddings": [
+ [
+ "CachingCLIPTextEncode"
+ ],
+ {
+ "title_aux": "ComfyUI Caching Embeddings"
+ }
+ ],
+ "https://github.com/djbielejeski/a-person-mask-generator": [
+ [
+ "APersonFaceLandmarkMaskGenerator",
+ "APersonMaskGenerator"
+ ],
+ {
+ "title_aux": "a-person-mask-generator"
+ }
+ ],
+ "https://github.com/dmMaze/sketch2manga": [
+ [
+ "BlendScreentone",
+ "EmptyLatentImageAdvanced"
+ ],
+ {
+ "title_aux": "Sketch2Manga"
+ }
+ ],
+ "https://github.com/dmarx/ComfyUI-AudioReactive": [
+ [
+ "OpAbs",
+ "OpBandpass",
+ "OpClamp",
+ "OpHarmonic",
+ "OpModulo",
+ "OpNormalize",
+ "OpNovelty",
+ "OpPercussive",
+ "OpPow",
+ "OpPow2",
+ "OpPredominant_pulse",
+ "OpQuantize",
+ "OpRms",
+ "OpSmoosh",
+ "OpSmooth",
+ "OpSqrt",
+ "OpStretch",
+ "OpSustain",
+ "OpThreshold"
+ ],
+ {
+ "title_aux": "ComfyUI-AudioReactive"
+ }
+ ],
+ "https://github.com/dmarx/ComfyUI-Keyframed": [
+ [
+ "Example",
+ "KfAddCurveToPGroup",
+ "KfAddCurveToPGroupx10",
+ "KfApplyCurveToCond",
+ "KfConditioningAdd",
+ "KfConditioningAddx10",
+ "KfCurveConstant",
+ "KfCurveDraw",
+ "KfCurveFromString",
+ "KfCurveFromYAML",
+ "KfCurveInverse",
+ "KfCurveToAcnLatentKeyframe",
+ "KfCurvesAdd",
+ "KfCurvesAddx10",
+ "KfCurvesDivide",
+ "KfCurvesMultiply",
+ "KfCurvesMultiplyx10",
+ "KfCurvesSubtract",
+ "KfDebug_Clip",
+ "KfDebug_Cond",
+ "KfDebug_Curve",
+ "KfDebug_Float",
+ "KfDebug_Image",
+ "KfDebug_Int",
+ "KfDebug_Latent",
+ "KfDebug_Model",
+ "KfDebug_Passthrough",
+ "KfDebug_Segs",
+ "KfDebug_String",
+ "KfDebug_Vae",
+ "KfDrawSchedule",
+ "KfEvaluateCurveAtT",
+ "KfGetCurveFromPGroup",
+ "KfGetScheduleConditionAtTime",
+ "KfGetScheduleConditionSlice",
+ "KfKeyframedCondition",
+ "KfKeyframedConditionWithText",
+ "KfPGroupCurveAdd",
+ "KfPGroupCurveMultiply",
+ "KfPGroupDraw",
+ "KfPGroupProd",
+ "KfPGroupSum",
+ "KfSetCurveLabel",
+ "KfSetKeyframe",
+ "KfSinusoidalAdjustAmplitude",
+ "KfSinusoidalAdjustFrequency",
+ "KfSinusoidalAdjustPhase",
+ "KfSinusoidalAdjustWavelength",
+ "KfSinusoidalEntangledZeroOneFromFrequencyx2",
+ "KfSinusoidalEntangledZeroOneFromFrequencyx3",
+ "KfSinusoidalEntangledZeroOneFromFrequencyx4",
+ "KfSinusoidalEntangledZeroOneFromFrequencyx5",
+ "KfSinusoidalEntangledZeroOneFromFrequencyx6",
+ "KfSinusoidalEntangledZeroOneFromFrequencyx7",
+ "KfSinusoidalEntangledZeroOneFromFrequencyx8",
+ "KfSinusoidalEntangledZeroOneFromFrequencyx9",
+ "KfSinusoidalEntangledZeroOneFromWavelengthx2",
+ "KfSinusoidalEntangledZeroOneFromWavelengthx3",
+ "KfSinusoidalEntangledZeroOneFromWavelengthx4",
+ "KfSinusoidalEntangledZeroOneFromWavelengthx5",
+ "KfSinusoidalEntangledZeroOneFromWavelengthx6",
+ "KfSinusoidalEntangledZeroOneFromWavelengthx7",
+ "KfSinusoidalEntangledZeroOneFromWavelengthx8",
+ "KfSinusoidalEntangledZeroOneFromWavelengthx9",
+ "KfSinusoidalGetAmplitude",
+ "KfSinusoidalGetFrequency",
+ "KfSinusoidalGetPhase",
+ "KfSinusoidalGetWavelength",
+ "KfSinusoidalWithFrequency",
+ "KfSinusoidalWithWavelength"
+ ],
+ {
+ "title_aux": "ComfyUI-Keyframed"
+ }
+ ],
+ "https://github.com/drago87/ComfyUI_Dragos_Nodes": [
+ [
+ "file_padding",
+ "image_info",
+ "lora_loader",
+ "vae_loader"
+ ],
+ {
+ "title_aux": "ComfyUI_Dragos_Nodes"
+ }
+ ],
+ "https://github.com/drustan-hawk/primitive-types": [
+ [
+ "float",
+ "int",
+ "string",
+ "string_multiline"
+ ],
+ {
+ "title_aux": "primitive-types"
+ }
+ ],
+ "https://github.com/e7mac/ComfyUI-ShadertoyGL": [
+ [
+ "ColorChannelOffset",
+ "Shader",
+ "Shadertoy"
+ ],
+ {
+ "title_aux": "ComfyUI-ShadertoyGL"
+ }
+ ],
+ "https://github.com/ealkanat/comfyui_easy_padding": [
+ [
+ "comfyui-easy-padding"
+ ],
+ {
+ "title_aux": "ComfyUI Easy Padding"
+ }
+ ],
+ "https://github.com/edenartlab/eden_comfy_pipelines": [
+ [
+ "Animation_RGB_Mask",
+ "CLIP_Interrogator",
+ "ConvertToGrayscale",
+ "Eden_Bool",
+ "Eden_Compare",
+ "Eden_DebugPrint",
+ "Eden_Float",
+ "Eden_Int",
+ "Eden_Lora_Loader",
+ "Eden_String",
+ "FolderScanner",
+ "GetRandomFile",
+ "Get_Prefixed_Imgs",
+ "HistogramMatching",
+ "IMG_blender",
+ "IMG_padder",
+ "IMG_resolution_multiple_of",
+ "IMG_scaler",
+ "IMG_unpadder",
+ "If ANY execute A else B",
+ "ImageDescriptionNode",
+ "LatentTypeConversion",
+ "Linear_Combine_IP_Embeds",
+ "LoadImagesByFilename",
+ "LoadRandomImage",
+ "Load_Embeddings_From_Folder",
+ "MaskFromRGB",
+ "MaskFromRGB_KMeans",
+ "Random_Style_Mixture",
+ "SaveImageAdvanced",
+ "SavePosEmbeds",
+ "VAEDecode_to_folder",
+ "VideoFrameSelector",
+ "WidthHeightPicker"
+ ],
+ {
+ "title_aux": "Various custom nodes by Eden.art"
+ }
+ ],
+ "https://github.com/evanspearman/ComfyMath": [
+ [
+ "CM_BoolBinaryOperation",
+ "CM_BoolToInt",
+ "CM_BoolUnaryOperation",
+ "CM_BreakoutVec2",
+ "CM_BreakoutVec3",
+ "CM_BreakoutVec4",
+ "CM_ComposeVec2",
+ "CM_ComposeVec3",
+ "CM_ComposeVec4",
+ "CM_FloatBinaryCondition",
+ "CM_FloatBinaryOperation",
+ "CM_FloatToInt",
+ "CM_FloatToNumber",
+ "CM_FloatUnaryCondition",
+ "CM_FloatUnaryOperation",
+ "CM_IntBinaryCondition",
+ "CM_IntBinaryOperation",
+ "CM_IntToBool",
+ "CM_IntToFloat",
+ "CM_IntToNumber",
+ "CM_IntUnaryCondition",
+ "CM_IntUnaryOperation",
+ "CM_NearestSDXLResolution",
+ "CM_NumberBinaryCondition",
+ "CM_NumberBinaryOperation",
+ "CM_NumberToFloat",
+ "CM_NumberToInt",
+ "CM_NumberUnaryCondition",
+ "CM_NumberUnaryOperation",
+ "CM_SDXLResolution",
+ "CM_Vec2BinaryCondition",
+ "CM_Vec2BinaryOperation",
+ "CM_Vec2ScalarOperation",
+ "CM_Vec2ToScalarBinaryOperation",
+ "CM_Vec2ToScalarUnaryOperation",
+ "CM_Vec2UnaryCondition",
+ "CM_Vec2UnaryOperation",
+ "CM_Vec3BinaryCondition",
+ "CM_Vec3BinaryOperation",
+ "CM_Vec3ScalarOperation",
+ "CM_Vec3ToScalarBinaryOperation",
+ "CM_Vec3ToScalarUnaryOperation",
+ "CM_Vec3UnaryCondition",
+ "CM_Vec3UnaryOperation",
+ "CM_Vec4BinaryCondition",
+ "CM_Vec4BinaryOperation",
+ "CM_Vec4ScalarOperation",
+ "CM_Vec4ToScalarBinaryOperation",
+ "CM_Vec4ToScalarUnaryOperation",
+ "CM_Vec4UnaryCondition",
+ "CM_Vec4UnaryOperation"
+ ],
+ {
+ "title_aux": "ComfyMath"
+ }
+ ],
+ "https://github.com/exdysa/comfyui-selector": [
+ [
+ "Fork",
+ "ForkClip",
+ "Recourse",
+ "Recourse+/-",
+ "RecourseCkpt",
+ "RecourseImage",
+ "Selector",
+ "Unite"
+ ],
+ {
+ "author": "\"\u02f6\ud835\udfa2\u292c\u2ad2\u2d56s\u143c\u02f6\"",
+ "description": "\"EXDYSA. Selector and Recourse. Presets & failsafes. Work flow.\"",
+ "nickname": "\"Selector\"",
+ "title": "\"Selector\"",
+ "title_aux": "comfyui-selector"
+ }
+ ],
+ "https://github.com/fablestudio/ComfyUI-Showrunner-Utils": [
+ [
+ "AlignFace"
+ ],
+ {
+ "title_aux": "ComfyUI-Showrunner-Utils"
+ }
+ ],
+ "https://github.com/fearnworks/ComfyUI_FearnworksNodes/raw/main/fw_nodes.py": [
+ [
+ "Count Files in Directory (FW)",
+ "Count Tokens (FW)",
+ "Token Count Ranker(FW)",
+ "Trim To Tokens (FW)"
+ ],
+ {
+ "title_aux": "Fearnworks Custom Nodes"
+ }
+ ],
+ "https://github.com/fexli/fexli-util-node-comfyui": [
+ [
+ "FEBCPrompt",
+ "FEBatchGenStringBCDocker",
+ "FEColor2Image",
+ "FEColorOut",
+ "FEDataInsertor",
+ "FEDataPacker",
+ "FEDataUnpacker",
+ "FEDeepClone",
+ "FEDictPacker",
+ "FEDictUnpacker",
+ "FEEncLoraLoader",
+ "FEExtraInfoAdd",
+ "FEGenStringBCDocker",
+ "FEGenStringGPT",
+ "FEImageNoiseGenerate",
+ "FEImagePadForOutpaint",
+ "FEImagePadForOutpaintByImage",
+ "FEOperatorIf",
+ "FEPythonStrOp",
+ "FERandomBool",
+ "FERandomLoraSelect",
+ "FERandomPrompt",
+ "FERandomizedColor2Image",
+ "FERandomizedColorOut",
+ "FERerouteWithName",
+ "FESaveEncryptImage",
+ "FETextCombine",
+ "FETextCombine2Any",
+ "FETextInput"
+ ],
+ {
+ "title_aux": "fexli-util-node-comfyui"
+ }
+ ],
+ "https://github.com/fexploit/ComfyUI-AutoLabel": [
+ [
+ "AutoLabel"
+ ],
+ {
+ "title_aux": "ComfyUI-AutoLabel"
+ }
+ ],
+ "https://github.com/fexploit/ComfyUI-AutoTrimBG": [
+ [
+ "RonLayers/TrimBg: RonLayersTrimBgUltraV2"
+ ],
+ {
+ "title_aux": "ComfyUI-AutoTrimBG"
+ }
+ ],
+ "https://github.com/fexploit/ComfyUI-Classifier": [
+ [
+ "ClassifierNode"
+ ],
+ {
+ "title_aux": "ComfyUI-Classifier"
+ }
+ ],
+ "https://github.com/filipemeneses/comfy_pixelization": [
+ [
+ "Pixelization"
+ ],
+ {
+ "title_aux": "Pixelization"
+ }
+ ],
+ "https://github.com/filliptm/ComfyUI_Fill-Nodes": [
+ [
+ "FL_Ascii",
+ "FL_AudioConverter",
+ "FL_AudioFrameCalculator",
+ "FL_AudioPreview",
+ "FL_BatchAlign",
+ "FL_CodeNode",
+ "FL_DirectoryCrawl",
+ "FL_Glitch",
+ "FL_HalftonePattern",
+ "FL_HexagonalPattern",
+ "FL_ImageCaptionSaver",
+ "FL_ImageCollage",
+ "FL_ImageDimensionDisplay",
+ "FL_ImageDurationSync",
+ "FL_ImageNotes",
+ "FL_ImagePixelator",
+ "FL_ImageRandomizer",
+ "FL_InfiniteZoom",
+ "FL_InpaintCrop",
+ "FL_Inpaint_Stitch",
+ "FL_KsamplerSettings",
+ "FL_NFTGenerator",
+ "FL_PaperDrawn",
+ "FL_PasteOnCanvas",
+ "FL_PixelArtShader",
+ "FL_PixelSort",
+ "FL_PromptSelector",
+ "FL_RandomNumber",
+ "FL_RetroEffect",
+ "FL_Ripple",
+ "FL_SDUltimate_Slices",
+ "FL_SeparateMaskComponents",
+ "FL_Shadertoy",
+ "FL_TD_Sampler",
+ "FL_VideoCropMask",
+ "FL_VideoRecompose"
+ ],
+ {
+ "title_aux": "ComfyUI_Fill-Nodes"
+ }
+ ],
+ "https://github.com/fitCorder/fcSuite/raw/main/fcSuite.py": [
+ [
+ "fcFloat",
+ "fcFloatMatic",
+ "fcHex",
+ "fcInteger"
+ ],
+ {
+ "title_aux": "fcSuite"
+ }
+ ],
+ "https://github.com/florestefano1975/ComfyUI-HiDiffusion": [
+ [
+ "HiDiffusionSD15",
+ "HiDiffusionSD21",
+ "HiDiffusionSDXL",
+ "HiDiffusionSDXLTurbo"
+ ],
+ {
+ "title_aux": "ComfyUI HiDiffusion"
+ }
+ ],
+ "https://github.com/florestefano1975/ComfyUI-StabilityAI-Suite": [
+ [
+ "StabilityAI Suite - Creative Upscale",
+ "StabilityAI Suite - Creative Upscale Recover File",
+ "StabilityAI Suite - Image Core + Style Preset",
+ "StabilityAI Suite - Inpainting",
+ "StabilityAI Suite - Outpainting",
+ "StabilityAI Suite - Remove Background",
+ "StabilityAI Suite - SD3",
+ "StabilityAI Suite - Search and Replace"
+ ],
+ {
+ "title_aux": "ComfyUI StabilityAI Suite"
+ }
+ ],
+ "https://github.com/florestefano1975/comfyui-portrait-master": [
+ [
+ "PortraitMaster"
+ ],
+ {
+ "title_aux": "comfyui-portrait-master"
+ }
+ ],
+ "https://github.com/florestefano1975/comfyui-prompt-composer": [
+ [
+ "PromptComposerCustomLists",
+ "PromptComposerEffect",
+ "PromptComposerGrouping",
+ "PromptComposerMerge",
+ "PromptComposerStyler",
+ "PromptComposerTextSingle",
+ "promptComposerTextMultiple"
+ ],
+ {
+ "title_aux": "comfyui-prompt-composer"
+ }
+ ],
+ "https://github.com/flowtyone/ComfyUI-Flowty-CRM": [
+ [
+ "CCMSampler",
+ "CRMModelLoader",
+ "CRMModeler",
+ "CRMModelerCuda",
+ "CRMPoseSampler",
+ "CRMPoserConfig",
+ "CRMPreprocessForPoser",
+ "CRMViewer"
+ ],
+ {
+ "title_aux": "ComfyUI-Flowty-CRM"
+ }
+ ],
+ "https://github.com/flowtyone/ComfyUI-Flowty-LDSR": [
+ [
+ "LDSRModelLoader",
+ "LDSRUpscale",
+ "LDSRUpscaler"
+ ],
+ {
+ "title_aux": "ComfyUI-Flowty-LDSR"
+ }
+ ],
+ "https://github.com/flowtyone/ComfyUI-Flowty-TripoSR": [
+ [
+ "TripoSRModelLoader",
+ "TripoSRSampler",
+ "TripoSRViewer"
+ ],
+ {
+ "title_aux": "ComfyUI-Flowty-TripoSR"
+ }
+ ],
+ "https://github.com/flyingshutter/As_ComfyUI_CustomNodes": [
+ [
+ "BatchIndex_AS",
+ "CropImage_AS",
+ "Eval_AS",
+ "ImageMixMasked_As",
+ "ImageToMask_AS",
+ "Increment_AS",
+ "Int2Any_AS",
+ "LatentAdd_AS",
+ "LatentMixMasked_As",
+ "LatentMix_AS",
+ "LatentToImages_AS",
+ "LoadLatent_AS",
+ "MapRange_AS",
+ "MaskToImage_AS",
+ "Math_AS",
+ "NoiseImage_AS",
+ "Number2Float_AS",
+ "Number2Int_AS",
+ "Number_AS",
+ "SaveLatent_AS",
+ "TextToImage_AS",
+ "TextWildcardList_AS"
+ ],
+ {
+ "title_aux": "As_ComfyUI_CustomNodes"
+ }
+ ],
+ "https://github.com/fmatray/ComfyUI_BattlemapGrid": [
+ [
+ "Battlemap Grid",
+ "Compass",
+ "Map Generator",
+ "Map Generator(Outdoors)"
+ ],
+ {
+ "title_aux": "ComfyUI_BattlemapGrid"
+ }
+ ],
+ "https://github.com/fofr/ComfyUI-HyperSDXL1StepUnetScheduler": [
+ [
+ "HyperSDXL1StepUnetScheduler"
+ ],
+ {
+ "title_aux": "ComfyUI-HyperSDXL1StepUnetScheduler (ByteDance)"
+ }
+ ],
+ "https://github.com/fofr/ComfyUI-Prompter-fofrAI": [
+ [
+ "List sampler \ud83e\udeb4",
+ "Prompt from template \ud83e\udeb4"
+ ],
+ {
+ "title_aux": "ComfyUI-Prompter-fofrAI"
+ }
+ ],
+ "https://github.com/forever22777/comfyui-self-guidance": [
+ [
+ "CLIPConditioning",
+ "CheckpointLoaderMixWithDiffusers",
+ "SelfGuidanceSampler"
+ ],
+ {
+ "title_aux": "Self-Guidance nodes"
+ }
+ ],
+ "https://github.com/foxtrot-roger/comfyui-rf-nodes": [
+ [
+ "LogBool",
+ "LogFloat",
+ "LogInt",
+ "LogNumber",
+ "LogString",
+ "LogVec2",
+ "LogVec3",
+ "RF_AtIndexString",
+ "RF_BoolToString",
+ "RF_FloatToString",
+ "RF_IntToString",
+ "RF_JsonStyleLoader",
+ "RF_MergeLines",
+ "RF_NumberToString",
+ "RF_OptionsString",
+ "RF_RangeFloat",
+ "RF_RangeInt",
+ "RF_RangeNumber",
+ "RF_SavePromptInfo",
+ "RF_SplitLines",
+ "RF_TextConcatenate",
+ "RF_TextInput",
+ "RF_TextReplace",
+ "RF_Timestamp",
+ "RF_ToString",
+ "RF_Vec2ToString",
+ "RF_Vec3ToString",
+ "TextLine"
+ ],
+ {
+ "title_aux": "RF Nodes"
+ }
+ ],
+ "https://github.com/frankchieng/ComfyUI_Aniportrait": [
+ [
+ "AniPortrait_Audio2Video",
+ "AniPortrait_Audio_Path",
+ "AniPortrait_LoadVideoPath",
+ "AniPortrait_Pose_Gen_Video",
+ "AniPortrait_Ref_Image_Path",
+ "AniPortrait_Video_Gen_Pose"
+ ],
+ {
+ "title_aux": "ComfyUI_Aniportrait"
+ }
+ ],
+ "https://github.com/frankchieng/ComfyUI_MagicClothing": [
+ [
+ "MagicClothing_Animatediff",
+ "MagicClothing_Generate",
+ "MagicClothing_Inpainting"
+ ],
+ {
+ "title_aux": "ComfyUI_MagicClothing"
+ }
+ ],
+ "https://github.com/frankchieng/ComfyUI_llm_easyanimiate": [
+ [],
+ {
+ "nodename_pattern": "^FrankChiengEasyAnimate",
+ "title_aux": "ComfyUI_llm_easyanimiate"
+ }
+ ],
+ "https://github.com/fsdymy1024/ComfyUI_fsdymy": [
+ [
+ "IPAdapterLayerWeight",
+ "Preview Image Without Metadata",
+ "PreviewImageWithoutMetadata",
+ "Save Image Without Metadata",
+ "SaveImageWithoutMetadata",
+ "ShowText",
+ "ZhiPuAiNode"
+ ],
+ {
+ "title_aux": "ComfyUI_fsdymy"
+ }
+ ],
+ "https://github.com/gemell1/ComfyUI_GMIC": [
+ [
+ "GmicCliWrapper",
+ "GmicQtWrapper"
+ ],
+ {
+ "title_aux": "ComfyUI_GMIC"
+ }
+ ],
+ "https://github.com/get-salt-AI/SaltAI": [
+ [
+ "SAIPrimitiveConverter",
+ "SAIStringRegexSearchMatch",
+ "SAIStringRegexSearchReplace",
+ "SaltAIStableVideoDiffusion",
+ "SaltBatchCropDataExtractor",
+ "SaltCLIPSegLoader",
+ "SaltCLIPSegMasking",
+ "SaltCropImageLocation",
+ "SaltDisplayAny",
+ "SaltImagePasteCrop",
+ "SaltInfo",
+ "SaltInput",
+ "SaltLoadImageZip",
+ "SaltMaskCropRegion",
+ "SaltMasksToImages",
+ "SaltOutput",
+ "SaltRGBAFromMask",
+ "SaltWebsiteScreenshot"
+ ],
+ {
+ "title_aux": "SaltAI-Open-Resources"
+ }
+ ],
+ "https://github.com/get-salt-AI/SaltAI_Language_Toolkit": [
+ [
+ "AddTool",
+ "ChangeSystemMessage",
+ "ClearMemory",
+ "ConversableAgentCreator",
+ "ConversableAgentCreatorAdvanced",
+ "ConvertAgentAsTool",
+ "ConvertAgentToLlamaindex",
+ "CreateTavilySearchTool",
+ "Example",
+ "GenerateReply",
+ "GroupChat",
+ "GroupChatAdvanced",
+ "GroupChatManagerCreator",
+ "LLMCSVReader",
+ "LLMChat",
+ "LLMChatBot",
+ "LLMChatEngine",
+ "LLMChatMessageConcat",
+ "LLMChatMessages",
+ "LLMChatMessagesAdv",
+ "LLMComplete",
+ "LLMCustomNodeComposer",
+ "LLMDirectoryReader",
+ "LLMDocumentListAppend",
+ "LLMDocxReader",
+ "LLMEpubReader",
+ "LLMFlatReader",
+ "LLMHTMLTagReader",
+ "LLMHWPReader",
+ "LLMHtmlComposer",
+ "LLMHtmlRepair",
+ "LLMIPYNBReader",
+ "LLMImageCaptionReader",
+ "LLMImageTabularChartReader",
+ "LLMImageTextReader",
+ "LLMImageVisionLLMReader",
+ "LLMInputToDocuments",
+ "LLMJsonComposer",
+ "LLMJsonRepair",
+ "LLMLLaVANextImageEvaluator",
+ "LLMLLaVANextModelLoader",
+ "LLMMarkdownComposer",
+ "LLMMarkdownReader",
+ "LLMMarkdownRepair",
+ "LLMMboxReader",
+ "LLMMultiModalImageEvaluation",
+ "LLMNotionReader",
+ "LLMOpenAIModel",
+ "LLMOpenAIModelOpts",
+ "LLMPDFReader",
+ "LLMPagedCSVReader",
+ "LLMPandasCSVReader",
+ "LLMParquetDatasetSearcher",
+ "LLMPostProcessDocuments",
+ "LLMPptxReader",
+ "LLMPyMuPDFReader",
+ "LLMQueryEngine",
+ "LLMQueryEngineAdv",
+ "LLMQueryEngineAsTool",
+ "LLMRTFReader",
+ "LLMRegexCreator",
+ "LLMRegexRepair",
+ "LLMRssReaderNode",
+ "LLMSaltWebCrawler",
+ "LLMScaleSERPSearch",
+ "LLMSemanticSplitterNodeParser",
+ "LLMSentenceSplitterNodeCreator",
+ "LLMServiceContextAdv",
+ "LLMServiceContextDefault",
+ "LLMSimpleWebPageReader",
+ "LLMSimpleWebPageReaderAdv",
+ "LLMSummaryIndex",
+ "LLMTavilyResearch",
+ "LLMTrafilaturaWebReader",
+ "LLMTrafilaturaWebReaderAdv",
+ "LLMTreeIndex",
+ "LLMUnstructuredReader",
+ "LLMVectorStoreIndex",
+ "LLMVectorStoreIndexAdv",
+ "LLMVideoAudioReader",
+ "LLMXMLReader",
+ "LLMYamlComposer",
+ "LLMYamlRepair",
+ "SaltJSONQueryEngine",
+ "SendMessage",
+ "SimpleChat"
+ ],
+ {
+ "title_aux": "SaltAI Language Toolkit"
+ }
+ ],
+ "https://github.com/get-salt-AI/SaltAI_LlamaIndex": [
+ [
+ "AddTool",
+ "ChangeSystemMessage",
+ "ClearMemory",
+ "ConversableAgentCreator",
+ "ConversableAgentCreatorAdvanced",
+ "ConvertAgentAsTool",
+ "ConvertAgentToLlamaindex",
+ "CreateTavilySearchTool",
+ "Example",
+ "GenerateReply",
+ "GroupChat",
+ "GroupChatAdvanced",
+ "GroupChatManagerCreator",
+ "LLMCSVReader",
+ "LLMChat",
+ "LLMChatBot",
+ "LLMChatEngine",
+ "LLMChatMessageConcat",
+ "LLMChatMessages",
+ "LLMChatMessagesAdv",
+ "LLMComplete",
+ "LLMCustomNodeComposer",
+ "LLMDirectoryReader",
+ "LLMDocumentListAppend",
+ "LLMDocxReader",
+ "LLMEpubReader",
+ "LLMFlatReader",
+ "LLMHTMLTagReader",
+ "LLMHWPReader",
+ "LLMHtmlComposer",
+ "LLMHtmlRepair",
+ "LLMIPYNBReader",
+ "LLMImageCaptionReader",
+ "LLMImageTabularChartReader",
+ "LLMImageTextReader",
+ "LLMImageVisionLLMReader",
+ "LLMInputToDocuments",
+ "LLMJsonComposer",
+ "LLMJsonRepair",
+ "LLMLLaVANextImageEvaluator",
+ "LLMLLaVANextModelLoader",
+ "LLMMarkdownComposer",
+ "LLMMarkdownReader",
+ "LLMMarkdownRepair",
+ "LLMMboxReader",
+ "LLMMultiModalImageEvaluation",
+ "LLMNotionReader",
+ "LLMOpenAIModel",
+ "LLMOpenAIModelOpts",
+ "LLMPDFReader",
+ "LLMPagedCSVReader",
+ "LLMPandasCSVReader",
+ "LLMParquetDatasetSearcher",
+ "LLMPostProcessDocuments",
+ "LLMPptxReader",
+ "LLMPyMuPDFReader",
+ "LLMQueryEngine",
+ "LLMQueryEngineAdv",
+ "LLMQueryEngineAsTool",
+ "LLMRTFReader",
+ "LLMRegexCreator",
+ "LLMRegexRepair",
+ "LLMRssReaderNode",
+ "LLMSaltWebCrawler",
+ "LLMScaleSERPSearch",
+ "LLMSemanticSplitterNodeParser",
+ "LLMSentenceSplitterNodeCreator",
+ "LLMServiceContextAdv",
+ "LLMServiceContextDefault",
+ "LLMSimpleWebPageReader",
+ "LLMSimpleWebPageReaderAdv",
+ "LLMSummaryIndex",
+ "LLMTavilyResearch",
+ "LLMTrafilaturaWebReader",
+ "LLMTrafilaturaWebReaderAdv",
+ "LLMTreeIndex",
+ "LLMUnstructuredReader",
+ "LLMVectorStoreIndex",
+ "LLMVectorStoreIndexAdv",
+ "LLMVideoAudioReader",
+ "LLMXMLReader",
+ "LLMYamlComposer",
+ "LLMYamlRepair",
+ "SaltJSONQueryEngine",
+ "SendMessage",
+ "SimpleChat"
+ ],
+ {
+ "title_aux": "SaltAI_LlamaIndex"
+ }
+ ],
+ "https://github.com/giriss/comfy-image-saver": [
+ [
+ "Cfg Literal",
+ "Checkpoint Selector",
+ "Int Literal",
+ "Sampler Selector",
+ "Save Image w/Metadata",
+ "Scheduler Selector",
+ "Seed Generator",
+ "String Literal",
+ "Width/Height Literal"
+ ],
+ {
+ "title_aux": "Save Image with Generation Metadata"
+ }
+ ],
+ "https://github.com/githubYiheng/ComfyUI_Change_IMAGE_BOREDER": [
+ [
+ "ChangeImageBorder"
+ ],
+ {
+ "title_aux": "ComfyUI_Change_IMAGE_BOREDER"
+ }
+ ],
+ "https://github.com/githubYiheng/ComfyUI_GetFileNameFromURL": [
+ [
+ "GetFileNameFromURL"
+ ],
+ {
+ "title_aux": "ComfyUI_GetFileNameFromURL"
+ }
+ ],
+ "https://github.com/githubYiheng/comfyui_kmeans_filter": [
+ [
+ "ImageKmeansFilter"
+ ],
+ {
+ "title_aux": "comfyui_kmeans_filter"
+ }
+ ],
+ "https://github.com/githubYiheng/comfyui_meanshift_filter": [
+ [
+ "ImageMeanshiftFilter"
+ ],
+ {
+ "title_aux": "comfyui_meanshift_filter"
+ }
+ ],
+ "https://github.com/githubYiheng/comfyui_private_postprocessor": [
+ [
+ "ImageCPostprocessor",
+ "PrivateImageMask"
+ ],
+ {
+ "title_aux": "comfyui_private_postprocessor"
+ }
+ ],
+ "https://github.com/glibsonoran/Plush-for-ComfyUI": [
+ [
+ "AI Chooser",
+ "AdvPromptEnhancer",
+ "DalleImage",
+ "Enhancer",
+ "ImgTextSwitch",
+ "Plush-Exif Wrangler",
+ "Tagger",
+ "mulTextSwitch"
+ ],
+ {
+ "title_aux": "Plush-for-ComfyUI"
+ }
+ ],
+ "https://github.com/glifxyz/ComfyUI-GlifNodes": [
+ [
+ "GlifConsistencyDecoder",
+ "GlifPatchConsistencyDecoderTiled",
+ "GlifVariable",
+ "HFHubEmbeddingLoader",
+ "HFHubLoraLoader",
+ "ImageToMultipleOf",
+ "SDXLAspectRatio"
+ ],
+ {
+ "title_aux": "ComfyUI-GlifNodes"
+ }
+ ],
+ "https://github.com/glowcone/comfyui-base64-to-image": [
+ [
+ "LoadImageFromBase64"
+ ],
+ {
+ "title_aux": "Load Image From Base64 URI"
+ }
+ ],
+ "https://github.com/godspede/ComfyUI_Substring": [
+ [
+ "SubstringTheory"
+ ],
+ {
+ "title_aux": "ComfyUI Substring"
+ }
+ ],
+ "https://github.com/gokayfem/ComfyUI-Depth-Visualization": [
+ [
+ "DepthViewer"
+ ],
+ {
+ "title_aux": "ComfyUI-Depth-Visualization"
+ }
+ ],
+ "https://github.com/gokayfem/ComfyUI-Dream-Interpreter": [
+ [
+ "DreamViewer"
+ ],
+ {
+ "title_aux": "ComfyUI-Dream-Interpreter"
+ }
+ ],
+ "https://github.com/gokayfem/ComfyUI-Texture-Simple": [
+ [
+ "TextureViewer"
+ ],
+ {
+ "title_aux": "ComfyUI-Texture-Simple"
+ }
+ ],
+ "https://github.com/gokayfem/ComfyUI_VLM_nodes": [
+ [
+ "AudioLDM2Node",
+ "ChatMusician",
+ "CreativeArtPromptGenerator",
+ "Internlm",
+ "Joytag",
+ "JsonToText",
+ "KeywordExtraction",
+ "Kosmos2model",
+ "LLMLoader",
+ "LLMPromptGenerator",
+ "LLMSampler",
+ "LLava Loader Simple",
+ "LLavaOptionalMemoryFreeAdvanced",
+ "LLavaOptionalMemoryFreeSimple",
+ "LLavaPromptGenerator",
+ "LLavaSamplerAdvanced",
+ "LLavaSamplerSimple",
+ "LlavaClipLoader",
+ "MCLLaVAModel",
+ "MoonDream",
+ "Moondream2model",
+ "PlayMusic",
+ "PromptGenerateAPI",
+ "SaveAudioNode",
+ "SimpleText",
+ "StructuredOutput",
+ "Suggester",
+ "UformGen2QwenNode",
+ "ViewText"
+ ],
+ {
+ "title_aux": "VLM_nodes"
+ }
+ ],
+ "https://github.com/gonzalu/ComfyUI_YFG_Comical": [
+ [
+ "Image10Switcher_node",
+ "Image15Switcher_node",
+ "Image20Switcher_node",
+ "Image3Switcher_node",
+ "Image5Switcher_node",
+ "MonoClip_node",
+ "PixelArt_node",
+ "VAEDecodePreview_node",
+ "image2contrastMask_node",
+ "image2imbgg_node",
+ "image_halftone",
+ "image_histograms_node",
+ "image_histograms_node_compact",
+ "images_side_by_side",
+ "imgbbLoader_node",
+ "smartCheckpointLoader_node",
+ "storeURL_node",
+ "textMaskOverlay_node"
+ ],
+ {
+ "author": "Manny Gonzalez",
+ "description": "Utility custom nodes for special effects, image manipulation and quality of life tools.",
+ "nickname": "\ud83d\udc2f YFG Comical Nodes",
+ "title": "\ud83d\udc2f YFG Comical Nodes",
+ "title_aux": "\ud83d\ude38 YFG Comical Nodes"
+ }
+ ],
+ "https://github.com/griptape-ai/ComfyUI-Griptape": [
+ [
+ "Griptape Agent Config: Amazon Bedrock",
+ "Griptape Agent Config: Anthropic",
+ "Griptape Agent Config: Google",
+ "Griptape Agent Config: LM Studio",
+ "Griptape Agent Config: Ollama",
+ "Griptape Agent Config: OpenAI",
+ "Griptape Audio Driver: OpenAI",
+ "Griptape Combine: Merge Inputs",
+ "Griptape Combine: Merge Texts",
+ "Griptape Combine: Rules List",
+ "Griptape Combine: Tool List",
+ "Griptape Config: Environment Variables",
+ "Griptape Convert: Text to CLIP Encode",
+ "Griptape Convert: Text to Combo",
+ "Griptape Create: Agent",
+ "Griptape Create: CLIP Text Encode",
+ "Griptape Create: Image Variation",
+ "Griptape Create: Image from Text",
+ "Griptape Create: Rules",
+ "Griptape Create: Text",
+ "Griptape Display: Artifact",
+ "Griptape Display: Data as Text",
+ "Griptape Display: Image",
+ "Griptape Display: Text",
+ "Griptape Driver: Amazon Bedrock Stable Diffusion",
+ "Griptape Driver: Amazon Bedrock Titan",
+ "Griptape Driver: Leonardo.AI",
+ "Griptape Driver: OpenAI Image Generation",
+ "Griptape Expand: Agent Nodes",
+ "Griptape Load: Audio",
+ "Griptape Load: Image From URL",
+ "Griptape Run: Agent",
+ "Griptape Run: Audio Transcription",
+ "Griptape Run: Image Description",
+ "Griptape Run: Parallel Image Description",
+ "Griptape Run: Prompt Task",
+ "Griptape Run: Text Summary",
+ "Griptape Run: Tool Task",
+ "Griptape Run: Toolkit Task",
+ "Griptape Set: Default Agent",
+ "Griptape Tool: Audio Transcription",
+ "Griptape Tool: Calculator",
+ "Griptape Tool: DateTime",
+ "Griptape Tool: FileManager",
+ "Griptape Tool: Griptape Cloud KnowledgeBase",
+ "Griptape Tool: WebScraper",
+ "Griptape Tool: WebSearch"
+ ],
+ {
+ "author": "Jason Schleifer",
+ "description": "This extension offers various nodes that allow you to work with LLMs using the Griptape Python Framework (https://griptape.ai)",
+ "nickname": "ComfyUI-Griptape",
+ "title": "ComfyUI Griptape Nodes",
+ "title_aux": "ComfyUI Griptape Nodes"
+ }
+ ],
+ "https://github.com/guill/abracadabra-comfyui": [
+ [
+ "AbracadabraNode",
+ "AbracadabraNodeDefSummary"
+ ],
+ {
+ "title_aux": "abracadabra-comfyui"
+ }
+ ],
+ "https://github.com/guoyk93/yk-node-suite-comfyui": [
+ [
+ "YKImagePadForOutpaint",
+ "YKMaskToImage"
+ ],
+ {
+ "title_aux": "y.k.'s ComfyUI node suite"
+ }
+ ],
+ "https://github.com/hackkhai/ComfyUI-Image-Matting": [
+ [
+ "ApplyMatting",
+ "CreateTrimap",
+ "MattingModelLoader"
+ ],
+ {
+ "title_aux": "ComfyUI-Image-Matting"
+ }
+ ],
+ "https://github.com/haohaocreates/ComfyUI-HH-Image-Selector": [
+ [
+ "Image Selector"
+ ],
+ {
+ "title_aux": "ComfyUI-HH-Image-Selector"
+ }
+ ],
+ "https://github.com/hay86/ComfyUI_AceNodes": [
+ [
+ "ACE_AnyInputSwitchBool",
+ "ACE_AudioLoad",
+ "ACE_AudioPlay",
+ "ACE_AudioSave",
+ "ACE_Expression_Eval",
+ "ACE_Float",
+ "ACE_ImageColorFix",
+ "ACE_ImageConstrain",
+ "ACE_ImageFaceCrop",
+ "ACE_ImageGetSize",
+ "ACE_ImageLoadFromCloud",
+ "ACE_ImageQA",
+ "ACE_ImageRemoveBackground",
+ "ACE_ImageSaveToCloud",
+ "ACE_Integer",
+ "ACE_MaskBlur",
+ "ACE_Seed",
+ "ACE_Text",
+ "ACE_TextConcatenate",
+ "ACE_TextGoogleTranslate",
+ "ACE_TextInputSwitch2Way",
+ "ACE_TextInputSwitch4Way",
+ "ACE_TextInputSwitch8Way",
+ "ACE_TextList",
+ "ACE_TextPreview",
+ "ACE_TextSelector",
+ "ACE_TextToResolution",
+ "ACE_TextTranslate"
+ ],
+ {
+ "title_aux": "ComfyUI AceNodes"
+ }
+ ],
+ "https://github.com/hay86/ComfyUI_DDColor": [
+ [
+ "D_DDColor"
+ ],
+ {
+ "title_aux": "ComfyUI DDColor"
+ }
+ ],
+ "https://github.com/hay86/ComfyUI_Dreamtalk": [
+ [
+ "D_DreamTalk"
+ ],
+ {
+ "title_aux": "ComfyUI Dreamtalk"
+ }
+ ],
+ "https://github.com/hay86/ComfyUI_Hallo": [
+ [
+ "D_HalloNode"
+ ],
+ {
+ "title_aux": "ComfyUI Hallo"
+ }
+ ],
+ "https://github.com/hay86/ComfyUI_MiniCPM-V": [
+ [
+ "D_MiniCPM_VQA"
+ ],
+ {
+ "title_aux": "ComfyUI MiniCPM-V"
+ }
+ ],
+ "https://github.com/hay86/ComfyUI_OpenVoice": [
+ [
+ "D_OpenVoice_STS",
+ "D_OpenVoice_TTS",
+ "D_OpenVoice_TTS_V2"
+ ],
+ {
+ "title_aux": "ComfyUI OpenVoice"
+ }
+ ],
+ "https://github.com/hben35096/ComfyUI-ToolBox": [
+ [
+ "AutoDLDownload",
+ "FolderDeleter",
+ "FolderViewe"
+ ],
+ {
+ "title_aux": "ComfyUI-ToolBox"
+ }
+ ],
+ "https://github.com/heshengtao/comfyui_LLM_party": [
+ [
+ "About_us",
+ "CLIPTextEncode_party",
+ "CosyVoice",
+ "Dingding",
+ "Dingding_tool",
+ "KG_csv_toolkit_developer",
+ "KG_csv_toolkit_user",
+ "KG_json_toolkit_developer",
+ "KG_json_toolkit_user",
+ "KG_neo_toolkit_developer",
+ "KG_neo_toolkit_user",
+ "KSampler_party",
+ "LLM",
+ "LLM_api_loader",
+ "LLM_local",
+ "LLM_local_loader",
+ "LLavaLoader",
+ "VAEDecode_party",
+ "accuweather_tool",
+ "api_tool",
+ "arxiv_tool",
+ "bing_tool",
+ "check_web_tool",
+ "classify_function",
+ "classify_function_plus",
+ "classify_persona",
+ "classify_persona_plus",
+ "custom_persona",
+ "ebd_tool",
+ "end_dialog",
+ "end_workflow",
+ "feishu",
+ "feishu_tool",
+ "file_combine",
+ "file_combine_plus",
+ "get_string",
+ "github_tool",
+ "google_tool",
+ "image_iterator",
+ "interpreter_tool",
+ "json_get_value",
+ "json_parser",
+ "keyword_tool",
+ "listen_audio",
+ "llama_guff_loader",
+ "load_embeddings",
+ "load_excel",
+ "load_file",
+ "load_file_folder",
+ "load_keyword",
+ "load_name",
+ "load_persona",
+ "load_url",
+ "load_wikipedia",
+ "new_interpreter_tool",
+ "omost_decode",
+ "omost_setting",
+ "openai_tts",
+ "openai_whisper",
+ "play_audio",
+ "replace_string",
+ "show_text_party",
+ "start_dialog",
+ "start_workflow",
+ "story_json_tool",
+ "string_logic",
+ "substring",
+ "text_iterator",
+ "time_tool",
+ "tool_combine",
+ "tool_combine_plus",
+ "translate_persona",
+ "weather_tool",
+ "weekday_tool",
+ "wikipedia_tool",
+ "work_wechat",
+ "work_wechat_tool",
+ "workflow_tool",
+ "workflow_transfer"
+ ],
+ {
+ "title_aux": "comfyui_LLM_party"
+ }
+ ],
+ "https://github.com/hhhzzyang/Comfyui_Lama": [
+ [
+ "LamaApply",
+ "LamaModelLoader",
+ "YamlConfigLoader"
+ ],
+ {
+ "title_aux": "Comfyui-Lama"
+ }
+ ],
+ "https://github.com/hiforce/comfyui-hiforce-plugin": [
+ [
+ "HfBoolSwitchKSampleStatus",
+ "HfImageAutoExpansionSquare",
+ "HfImageToRGB",
+ "HfImageToRGBA",
+ "HfInitImageWithMaxSize",
+ "HfIterativeLatentUpscale",
+ "HfLoadImageWithCropper",
+ "HfLookbackSamplerLoader",
+ "HfLoopback",
+ "HfResizeImage",
+ "HfSampler",
+ "HfSamplerLoader",
+ "HfSamplerLoopback",
+ "HfSaveImage",
+ "HfSwitchKSampleStatus",
+ "HfTwoSamplersForMask",
+ "HfTwoStepSamplers",
+ "LoadImageFromURL"
+ ],
+ {
+ "title_aux": "Comfyui HiFORCE Plugin"
+ }
+ ],
+ "https://github.com/hinablue/ComfyUI_3dPoseEditor": [
+ [
+ "Hina.PoseEditor3D"
+ ],
+ {
+ "title_aux": "ComfyUI 3D Pose Editor"
+ }
+ ],
+ "https://github.com/holchan/ComfyUI-ModelDownloader": [
+ [
+ "LoRADownloader",
+ "ModelDownloader"
+ ],
+ {
+ "title_aux": "ComfyUI-ModelDownloader"
+ }
+ ],
+ "https://github.com/huagetai/ComfyUI-Gaffer": [
+ [
+ "ApplyICLight",
+ "CalculateNormalMap",
+ "GrayScaler",
+ "ICLightModelLoader",
+ "LightSource"
+ ],
+ {
+ "title_aux": "comfyui's gaffer(ComfyUI native implementation of IC-Light. )"
+ }
+ ],
+ "https://github.com/huagetai/ComfyUI_LightGradient": [
+ [
+ "ImageGradient",
+ "MaskGradient"
+ ],
+ {
+ "title_aux": "Light Gradient for ComfyUI"
+ }
+ ],
+ "https://github.com/huchenlei/ComfyUI-IC-Light-Native": [
+ [
+ "ICLightApplyMaskGrey",
+ "ICLightAppply",
+ "VAEEncodeArgMax"
+ ],
+ {
+ "title_aux": "ComfyUI-IC-Light-Native"
+ }
+ ],
+ "https://github.com/huchenlei/ComfyUI-layerdiffuse": [
+ [
+ "LayeredDiffusionApply",
+ "LayeredDiffusionCondApply",
+ "LayeredDiffusionCondJointApply",
+ "LayeredDiffusionDecode",
+ "LayeredDiffusionDecodeRGBA",
+ "LayeredDiffusionDecodeSplit",
+ "LayeredDiffusionDiffApply",
+ "LayeredDiffusionJointApply"
+ ],
+ {
+ "title_aux": "ComfyUI-layerdiffuse (layerdiffusion)"
+ }
+ ],
+ "https://github.com/huchenlei/ComfyUI-openpose-editor": [
+ [
+ "huchenlei.LoadOpenposeJSON"
+ ],
+ {
+ "title_aux": "ComfyUI-openpose-editor"
+ }
+ ],
+ "https://github.com/huchenlei/ComfyUI_DanTagGen": [
+ [
+ "PromptDanTagGen"
+ ],
+ {
+ "title_aux": "ComfyUI_DanTagGen"
+ }
+ ],
+ "https://github.com/huchenlei/ComfyUI_densediffusion": [
+ [
+ "DenseDiffusionAddCondNode",
+ "DenseDiffusionApplyNode"
+ ],
+ {
+ "title_aux": "ComfyUI DenseDiffusion"
+ }
+ ],
+ "https://github.com/huchenlei/ComfyUI_omost": [
+ [
+ "OmostDenseDiffusionLayoutNode",
+ "OmostGreedyBagsTextEmbeddingNode",
+ "OmostLLMChatNode",
+ "OmostLLMHTTPServerNode",
+ "OmostLLMLoaderNode",
+ "OmostLayoutCondNode",
+ "OmostLoadCanvasConditioningNode",
+ "OmostLoadCanvasPythonCodeNode",
+ "OmostRenderCanvasConditioningNode"
+ ],
+ {
+ "title_aux": "ComfyUI_omost"
+ }
+ ],
+ "https://github.com/hughescr/ComfyUI-OpenPose-Keypoint-Extractor": [
+ [
+ "Openpose Keypoint Extractor"
+ ],
+ {
+ "title_aux": "OpenPose Keypoint Extractor"
+ }
+ ],
+ "https://github.com/hustille/ComfyUI_Fooocus_KSampler": [
+ [
+ "KSampler With Refiner (Fooocus)"
+ ],
+ {
+ "title_aux": "ComfyUI_Fooocus_KSampler"
+ }
+ ],
+ "https://github.com/hustille/ComfyUI_hus_utils": [
+ [
+ "3way Prompt Styler",
+ "Batch State",
+ "Date Time Format",
+ "Debug Extra",
+ "Fetch widget value",
+ "Text Hash"
+ ],
+ {
+ "title_aux": "hus' utils for ComfyUI"
+ }
+ ],
+ "https://github.com/hwhaocool/ComfyUI-Select-Any": [
+ [
+ "SelectAnyValues"
+ ],
+ {
+ "title_aux": "ComfyUI-Select-Any"
+ }
+ ],
+ "https://github.com/hylarucoder/ComfyUI-Eagle-PNGInfo": [
+ [
+ "EagleImageNode",
+ "SDXLPromptStyler",
+ "SDXLPromptStylerAdvanced",
+ "SDXLResolutionPresets"
+ ],
+ {
+ "title_aux": "Eagle PNGInfo"
+ }
+ ],
+ "https://github.com/hyunamy/comfy-ui-on-complete-email-me": [
+ [
+ "OnCompleteEmailMe",
+ "OnCompleteWebhook"
+ ],
+ {
+ "title_aux": "Comfy-UI on-complete-email-me"
+ }
+ ],
+ "https://github.com/iFREEGROUP/comfyui-undistort": [
+ [
+ "IG_LoadCheckerboardImageForCalibrateCamera",
+ "IG_MatrixAndDistCoefToText",
+ "IG_Undistort"
+ ],
+ {
+ "title_aux": "comfyui-undistort"
+ }
+ ],
+ "https://github.com/icesun963/ComfyUI_HFDownLoad": [
+ [
+ "HFDownLoad_Tool"
+ ],
+ {
+ "title_aux": "HFDownLoad Node for ComfyUI"
+ }
+ ],
+ "https://github.com/idrirap/ComfyUI-Lora-Auto-Trigger-Words": [
+ [
+ "FusionText",
+ "LoraListNames",
+ "LoraLoaderAdvanced",
+ "LoraLoaderStackedAdvanced",
+ "LoraLoaderStackedVanilla",
+ "LoraLoaderVanilla",
+ "LoraTagsOnly",
+ "Randomizer",
+ "TagsFormater",
+ "TagsSelector",
+ "TextInputBasic"
+ ],
+ {
+ "title_aux": "ComfyUI-Lora-Auto-Trigger-Words"
+ }
+ ],
+ "https://github.com/iemesowum/ComfyUI_IsaacNodes": [
+ [
+ "I_BinaryAmplitudeGate",
+ "I_UnmixAudio",
+ "I_WeightsListToWeights"
+ ],
+ {
+ "author": "Isaac Emesowum",
+ "description": "This extension offers automatic drums extraction from audio files, as well as a few helper nodes to support my audio synchronization AnimateDiff workflows.",
+ "nickname": "Isaac's Nodes",
+ "title": "Isaac's Nodes",
+ "title_aux": "Isaac's Nodes"
+ }
+ ],
+ "https://github.com/if-ai/ComfyUI-IF_AI_HFDownloaderNode": [
+ [
+ "IF_HFDownload",
+ "IF_HFDownloadNode"
+ ],
+ {
+ "title_aux": "ComfyUI-IF_AI_HFDownloaderNode"
+ }
+ ],
+ "https://github.com/if-ai/ComfyUI-IF_AI_WishperSpeechNode": [
+ [
+ "IF_WhisperSpeech"
+ ],
+ {
+ "title_aux": "ComfyUI-IF_AI_WishperSpeechNode"
+ }
+ ],
+ "https://github.com/if-ai/ComfyUI-IF_AI_tools": [
+ [
+ "IF_ChatPrompt",
+ "IF_DisplayText",
+ "IF_ImagePrompt",
+ "IF_PromptMkr",
+ "IF_SaveText",
+ "IF_saveText"
+ ],
+ {
+ "title_aux": "ComfyUI-IF_AI_tools"
+ }
+ ],
+ "https://github.com/imb101/ComfyUI-FaceSwap": [
+ [
+ "FaceSwapNode"
+ ],
+ {
+ "title_aux": "FaceSwap"
+ }
+ ],
+ "https://github.com/iwanders/ComfyUI_nodes": [
+ [
+ "IW_JsonPickItem",
+ "IW_ModelHook",
+ "IW_StringConcat",
+ "IW_StringNode",
+ "IW_StringPrint",
+ "IW_StringReplace",
+ "IW_StringSave",
+ "IW_TokenizerVocab"
+ ],
+ {
+ "title_aux": "iwanders/ComfyUI_nodes"
+ }
+ ],
+ "https://github.com/jags111/ComfyUI_Jags_Audiotools": [
+ [
+ "BatchJoinAudio",
+ "BatchToList",
+ "BitCrushAudioFX",
+ "BulkVariation",
+ "ChorusAudioFX",
+ "ClippingAudioFX",
+ "CompressorAudioFX",
+ "ConcatAudioList",
+ "ConvolutionAudioFX",
+ "CutAudio",
+ "DelayAudioFX",
+ "DistortionAudioFX",
+ "DuplicateAudio",
+ "GainAudioFX",
+ "GenerateAudioSample",
+ "GenerateAudioWave",
+ "GetAudioFromFolderIndex",
+ "GetSingle",
+ "GetStringByIndex",
+ "HighShelfFilter",
+ "HighpassFilter",
+ "ImageToSpectral",
+ "InvertAudioFX",
+ "JoinAudio",
+ "LadderFilter",
+ "LimiterAudioFX",
+ "ListToBatch",
+ "LoadAudioDir",
+ "LoadAudioFile",
+ "LoadAudioModel (DD)",
+ "LoadVST3",
+ "LowShelfFilter",
+ "LowpassFilter",
+ "MP3CompressorAudioFX",
+ "MixAudioTensors",
+ "NoiseGateAudioFX",
+ "OTTAudioFX",
+ "PeakFilter",
+ "PhaserEffectAudioFX",
+ "PitchShiftAudioFX",
+ "PlotSpectrogram",
+ "PreviewAudioFile",
+ "PreviewAudioTensor",
+ "ResampleAudio",
+ "ReverbAudioFX",
+ "ReverseAudio",
+ "SaveAudioTensor",
+ "SequenceVariation",
+ "SliceAudio",
+ "SoundPlayer",
+ "StretchAudio",
+ "samplerate"
+ ],
+ {
+ "author": "jags111",
+ "description": "This extension offers various audio generation tools",
+ "nickname": "Audiotools",
+ "title": "Jags_Audiotools",
+ "title_aux": "Jags_Audiotools"
+ }
+ ],
+ "https://github.com/jags111/ComfyUI_Jags_VectorMagic": [
+ [
+ "CircularVAEDecode",
+ "JagsCLIPSeg",
+ "JagsClipseg",
+ "JagsCombineMasks",
+ "SVG",
+ "YoloSEGdetectionNode",
+ "YoloSegNode",
+ "color_drop",
+ "xy_Tiling_KSampler"
+ ],
+ {
+ "author": "jags111",
+ "description": "This extension offers various vector manipulation and generation tools",
+ "nickname": "Jags_VectorMagic",
+ "title": "Jags_VectorMagic",
+ "title_aux": "Jags_VectorMagic"
+ }
+ ],
+ "https://github.com/jags111/efficiency-nodes-comfyui": [
+ [
+ "AnimateDiff Script",
+ "Apply ControlNet Stack",
+ "Control Net Stacker",
+ "Eff. Loader SDXL",
+ "Efficient Loader",
+ "HighRes-Fix Script",
+ "Image Overlay",
+ "Join XY Inputs of Same Type",
+ "KSampler (Efficient)",
+ "KSampler Adv. (Efficient)",
+ "KSampler SDXL (Eff.)",
+ "LatentUpscaler",
+ "LoRA Stack to String converter",
+ "LoRA Stacker",
+ "Manual XY Entry Info",
+ "NNLatentUpscale",
+ "Noise Control Script",
+ "Pack SDXL Tuple",
+ "Tiled Upscaler Script",
+ "Unpack SDXL Tuple",
+ "XY Input: Add/Return Noise",
+ "XY Input: Aesthetic Score",
+ "XY Input: CFG Scale",
+ "XY Input: Checkpoint",
+ "XY Input: Clip Skip",
+ "XY Input: Control Net",
+ "XY Input: Control Net Plot",
+ "XY Input: Denoise",
+ "XY Input: LoRA",
+ "XY Input: LoRA Plot",
+ "XY Input: LoRA Stacks",
+ "XY Input: Manual XY Entry",
+ "XY Input: Prompt S/R",
+ "XY Input: Refiner On/Off",
+ "XY Input: Sampler/Scheduler",
+ "XY Input: Seeds++ Batch",
+ "XY Input: Steps",
+ "XY Input: VAE",
+ "XY Plot"
+ ],
+ {
+ "title_aux": "Efficiency Nodes for ComfyUI Version 2.0+"
+ }
+ ],
+ "https://github.com/jakechai/ComfyUI-JakeUpgrade": [
+ [
+ "Animation Prompt JK",
+ "Animation Value JK",
+ "Base Image Parameters Extract JK",
+ "Base Model Parameters Extract JK",
+ "Base Model Parameters JK",
+ "Base Model Pipe Extract JK",
+ "Base Model Pipe JK",
+ "CM_BoolBinaryOperation JK",
+ "CM_BoolToInt JK",
+ "CM_BoolUnaryOperation JK",
+ "CM_BreakoutVec2 JK",
+ "CM_BreakoutVec3 JK",
+ "CM_BreakoutVec4 JK",
+ "CM_ComposeVec2 JK",
+ "CM_ComposeVec3 JK",
+ "CM_ComposeVec4 JK",
+ "CM_FloatBinaryCondition JK",
+ "CM_FloatBinaryOperation JK",
+ "CM_FloatToInt JK",
+ "CM_FloatToNumber JK",
+ "CM_FloatUnaryCondition JK",
+ "CM_FloatUnaryOperation JK",
+ "CM_IntBinaryCondition JK",
+ "CM_IntBinaryOperation JK",
+ "CM_IntToBool JK",
+ "CM_IntToFloat JK",
+ "CM_IntToNumber JK",
+ "CM_IntUnaryCondition JK",
+ "CM_IntUnaryOperation JK",
+ "CM_NumberBinaryCondition JK",
+ "CM_NumberBinaryOperation JK",
+ "CM_NumberToFloat JK",
+ "CM_NumberToInt JK",
+ "CM_NumberUnaryCondition JK",
+ "CM_NumberUnaryOperation JK",
+ "CM_Vec2BinaryCondition JK",
+ "CM_Vec2BinaryOperation JK",
+ "CM_Vec2FloatOperation_JK",
+ "CM_Vec2ToFloatBinaryOperation JK",
+ "CM_Vec2ToFloatUnaryOperation JK",
+ "CM_Vec2UnaryCondition JK",
+ "CM_Vec2UnaryOperation JK",
+ "CM_Vec3BinaryCondition JK",
+ "CM_Vec3BinaryOperation JK",
+ "CM_Vec3FloatOperation_JK",
+ "CM_Vec3ToFloatBinaryOperation JK",
+ "CM_Vec3ToFloatUnaryOperation JK",
+ "CM_Vec3UnaryCondition JK",
+ "CM_Vec3UnaryOperation JK",
+ "CM_Vec4BinaryCondition JK",
+ "CM_Vec4BinaryOperation JK",
+ "CM_Vec4FloatOperation_JK",
+ "CM_Vec4ToFloatBinaryOperation JK",
+ "CM_Vec4ToFloatUnaryOperation JK",
+ "CM_Vec4UnaryCondition JK",
+ "CM_Vec4UnaryOperation JK",
+ "CR Apply ControlNet JK",
+ "CR Apply Multi-ControlNet JK",
+ "CR Boolean JK",
+ "CR Clip Input Switch JK",
+ "CR Conditioning Input Switch JK",
+ "CR ControlNet Input Switch JK",
+ "CR Float Input Switch JK",
+ "CR Image Input Switch JK",
+ "CR Impact Pipe Input Switch JK",
+ "CR Int Input Switch JK",
+ "CR Latent Input Switch JK",
+ "CR LoRA Stack JK",
+ "CR Load LoRA JK",
+ "CR Mask Input Switch JK",
+ "CR Model Input Switch JK",
+ "CR Multi-ControlNet Stack JK",
+ "CR Pipe Input Switch JK",
+ "CR SD1.5 Aspect Ratio JK",
+ "CR SDXL Aspect Ratio JK",
+ "CR Switch Model and CLIP JK",
+ "CR Text Input Switch JK",
+ "CR VAE Input Switch JK",
+ "Ckpt Loader JK",
+ "Detailer Parameters JK",
+ "Embedding Picker JK",
+ "Embedding Picker Multi JK",
+ "Evaluate Examples JK",
+ "Evaluate Floats JK",
+ "Evaluate Ints JK",
+ "Evaluate Strings JK",
+ "HintImageEnchance JK",
+ "Image Upscale Parameters Extract JK",
+ "Ksampler Parameters JK",
+ "Latent Upscale Parameters Extract JK",
+ "Load Image With Metadata JK",
+ "Metadata Pipe Extract JK",
+ "Metadata Pipe JK",
+ "NodesState JK",
+ "Noise Injection Parameters JK",
+ "Orbit Poses JK",
+ "Pipe End JK",
+ "Project Setting JK",
+ "Refine 1 Parameters Extract JK",
+ "Refine 2 Parameters Extract JK",
+ "Refine Model Parameters JK",
+ "Refine Pipe Extract JK",
+ "Refine Pipe JK",
+ "Reroute Ckpt JK",
+ "Reroute List JK",
+ "Reroute Resize JK",
+ "Reroute Sampler JK",
+ "Reroute Upscale JK",
+ "Reroute Vae JK",
+ "SDXLPromptStylerAll",
+ "SDXLPromptStylerHorror",
+ "SDXLPromptStylerMisc",
+ "SDXLPromptStylerbyArtist",
+ "SDXLPromptStylerbyCamera",
+ "SDXLPromptStylerbyComposition",
+ "SDXLPromptStylerbyCyberpunkSurrealism",
+ "SDXLPromptStylerbyDepth",
+ "SDXLPromptStylerbyDiva",
+ "SDXLPromptStylerbyEnvironment",
+ "SDXLPromptStylerbyFantasySetting",
+ "SDXLPromptStylerbyFilter",
+ "SDXLPromptStylerbyFocus",
+ "SDXLPromptStylerbyFooocus",
+ "SDXLPromptStylerbyImpressionism",
+ "SDXLPromptStylerbyLighting",
+ "SDXLPromptStylerbyMarc",
+ "SDXLPromptStylerbyMileHigh",
+ "SDXLPromptStylerbyMood",
+ "SDXLPromptStylerbyMre",
+ "SDXLPromptStylerbyMythicalCreature",
+ "SDXLPromptStylerbyOriginal",
+ "SDXLPromptStylerbyQuantumRealism",
+ "SDXLPromptStylerbySai",
+ "SDXLPromptStylerbySteamPunkRealism",
+ "SDXLPromptStylerbySubject",
+ "SDXLPromptStylerbySurrealism",
+ "SDXLPromptStylerbyTheme",
+ "SDXLPromptStylerbyTimeofDay",
+ "SDXLPromptStylerbyTwri",
+ "SDXLPromptStylerbyWyvern",
+ "SDXLPromptbyCelticArt",
+ "SDXLPromptbyContemporaryNordicArt",
+ "SDXLPromptbyFashionArt",
+ "SDXLPromptbyGothicRevival",
+ "SDXLPromptbyIrishFolkArt",
+ "SDXLPromptbyRomanticNationalismArt",
+ "SDXLPromptbySportsArt",
+ "SDXLPromptbyStreetArt",
+ "SDXLPromptbyVikingArt",
+ "SDXLPromptbyWildlifeArt",
+ "Sampler Loader JK",
+ "Save Image with Metadata Flow JK",
+ "Save Image with Metadata JK",
+ "Upscale Model Loader JK",
+ "Upscale Model Parameters Extract JK",
+ "Upscale Model Parameters JK",
+ "Vae Loader JK"
+ ],
+ {
+ "title_aux": "ComfyUI-JakeUpgrade"
+ }
+ ],
+ "https://github.com/jamal-alkharrat/ComfyUI_rotate_image": [
+ [
+ "RotateImage"
+ ],
+ {
+ "title_aux": "ComfyUI_rotate_image"
+ }
+ ],
+ "https://github.com/jamesWalker55/comfyui-p2ldgan": [
+ [
+ "P2LDGAN"
+ ],
+ {
+ "title_aux": "ComfyUI - P2LDGAN Node"
+ }
+ ],
+ "https://github.com/jamesWalker55/comfyui-various": [
+ [
+ "BatchLoadImage",
+ "BatchSaveImage",
+ "GroupInfoExtractFloat",
+ "GroupInfoExtractInt",
+ "GroupLoadBatchImages",
+ "GroupLoadImage",
+ "JWDatetimeString",
+ "JWImageBatchCount",
+ "JWImageContrast",
+ "JWImageExtractFromBatch",
+ "JWImageFlip",
+ "JWImageLevels",
+ "JWImageLoadRGB",
+ "JWImageLoadRGBA",
+ "JWImageLoadRGBIfExists",
+ "JWImageMix",
+ "JWImageResize",
+ "JWImageResizeByFactor",
+ "JWImageResizeByLongerSide",
+ "JWImageResizeByShorterSide",
+ "JWImageResizeToSquare",
+ "JWImageSaturation",
+ "JWImageSaveToPath",
+ "JWImageSequenceExtractFromBatch",
+ "JWImageStackChannels",
+ "JWInfoHashExtractFloat",
+ "JWInfoHashExtractInteger",
+ "JWInfoHashExtractString",
+ "JWInfoHashFromInfoHashList",
+ "JWInfoHashFromRangedInfo",
+ "JWInfoHashListExtractStringList",
+ "JWInfoHashListFromRangedInfo",
+ "JWInfoHashPrint",
+ "JWLoadImageSequence",
+ "JWLoadImagesFromString",
+ "JWLoopImageSequence",
+ "JWMaskLikeImageSize",
+ "JWMaskResize",
+ "JWMaskSequenceApplyToLatent",
+ "JWMaskSequenceFromMask",
+ "JWMaskSequenceJoin",
+ "JWPrintFloat",
+ "JWPrintImage",
+ "JWPrintInteger",
+ "JWPrintLatent",
+ "JWPrintMask",
+ "JWPrintString",
+ "JWRangedInfoCalculateSubBatch",
+ "JWReferenceOnly",
+ "JWSaveImageSequence",
+ "JWStringListCLIPEncode",
+ "JWStringListFromString",
+ "JWStringListFromStrings",
+ "JWStringListJoin",
+ "JWStringListRepeat",
+ "JWStringListToFormatedString",
+ "JWStringListToString",
+ "JWUncropCrop",
+ "JWUncropNewRect",
+ "JWUncropUncrop",
+ "JamesLoadImageGroup",
+ "RAFTEstimate",
+ "RAFTFlowToImage",
+ "RAFTLoadFlowFromEXRChannels",
+ "RCReceiveFloat",
+ "RCReceiveFloatList",
+ "RCReceiveInt",
+ "RCReceiveIntList",
+ "RCReceiveLatent",
+ "RCSendLatent"
+ ],
+ {
+ "nodename_pattern": "^JW",
+ "title_aux": "Various ComfyUI Nodes by Type"
+ }
+ ],
+ "https://github.com/jax-explorer/fast_video_comfyui": [
+ [
+ "FastImageListToImageBatch"
+ ],
+ {
+ "title_aux": "fast_video_comfyui"
+ }
+ ],
+ "https://github.com/jeffy5/comfyui-faceless-node": [
+ [
+ "FacelessFaceRestore",
+ "FacelessFaceSwap",
+ "FacelessLoadFrames",
+ "FacelessLoadImageUrl",
+ "FacelessLoadVideo",
+ "FacelessLoadVideoUrl",
+ "FacelessMergeVideos",
+ "FacelessRemoveBackground",
+ "FacelessSaveVideo",
+ "FacelessUploadVideo",
+ "FacelessVideoFaceRestore",
+ "FacelessVideoFaceSwap",
+ "FacelessVideoRemoveBackground"
+ ],
+ {
+ "title_aux": "Faceless Node for ComfyUI"
+ }
+ ],
+ "https://github.com/jesenzhang/ComfyUI_StreamDiffusion": [
+ [
+ "StreamDiffusion_Loader",
+ "StreamDiffusion_Sampler"
+ ],
+ {
+ "title_aux": "ComfyUI_StreamDiffusion"
+ }
+ ],
+ "https://github.com/jiaxiangc/ComfyUI-ResAdapter": [
+ [
+ "ResAdapterLoader"
+ ],
+ {
+ "title_aux": "ResAdapter for ComfyUI"
+ }
+ ],
+ "https://github.com/jitcoder/lora-info": [
+ [
+ "ImageFromURL",
+ "LoraInfo"
+ ],
+ {
+ "title_aux": "LoraInfo"
+ }
+ ],
+ "https://github.com/jjkramhoeft/ComfyUI-Jjk-Nodes": [
+ [
+ "JjkConcat",
+ "JjkShowText",
+ "JjkText",
+ "SDXLRecommendedImageSize"
+ ],
+ {
+ "title_aux": "ComfyUI-Jjk-Nodes"
+ }
+ ],
+ "https://github.com/jkrauss82/ultools-comfyui": [
+ [
+ "CLIPTextEncodeWithStats",
+ "OpenPoseEditorAdv",
+ "SaveImgAdv",
+ "SolidMaskAdv"
+ ],
+ {
+ "title_aux": "ULTools for ComfyUI"
+ }
+ ],
+ "https://github.com/jojkaart/ComfyUI-sampler-lcm-alternative": [
+ [
+ "LCMScheduler",
+ "SamplerLCMAlternative",
+ "SamplerLCMCycle",
+ "SamplerLCMDualNoise"
+ ],
+ {
+ "title_aux": "ComfyUI-sampler-lcm-alternative"
+ }
+ ],
+ "https://github.com/jordoh/ComfyUI-Deepface": [
+ [
+ "DeepfaceExtractFaces",
+ "DeepfaceVerify"
+ ],
+ {
+ "title_aux": "ComfyUI Deepface"
+ }
+ ],
+ "https://github.com/jroc22/ComfyUI-CSV-prompt-builder": [
+ [
+ "BuildPromptFromCSV"
+ ],
+ {
+ "title_aux": "ComfyUI-CSV-prompt-builder"
+ }
+ ],
+ "https://github.com/jtrue/ComfyUI-JaRue": [
+ [
+ "Text2Image_jru",
+ "YouTube2Prompt_jru"
+ ],
+ {
+ "nodename_pattern": "_jru$",
+ "title_aux": "ComfyUI-JaRue"
+ }
+ ],
+ "https://github.com/jtydhr88/ComfyUI-LayerDivider": [
+ [
+ "LayerDivider - Color Base",
+ "LayerDivider - Divide Layer",
+ "LayerDivider - Load SAM Mask Generator",
+ "LayerDivider - Segment Mask"
+ ],
+ {
+ "title_aux": "ComfyUI LayerDivider"
+ }
+ ],
+ "https://github.com/jtydhr88/ComfyUI-Unique3D": [
+ [
+ "Unique3DLoadPipeline",
+ "Unique3DRun - Geo Reconstruct",
+ "Unique3DRun - MVPrediction"
+ ],
+ {
+ "title_aux": "ComfyUI Unique3D"
+ }
+ ],
+ "https://github.com/ka-puna/comfyui-yanc": [
+ [
+ "YANC.ConcatStrings",
+ "YANC.FormatDatetimeString",
+ "YANC.GetWidgetValueString",
+ "YANC.IntegerCaster",
+ "YANC.MultilineString",
+ "YANC.TruncateString"
+ ],
+ {
+ "title_aux": "comfyui-yanc"
+ }
+ ],
+ "https://github.com/kaanyalova/ComfyUI_ExtendedImageFormats": [
+ [
+ "ExtendedSaveImage"
+ ],
+ {
+ "title_aux": "Extended Image Formats for ComfyUI"
+ }
+ ],
+ "https://github.com/kadirnar/ComfyUI-Transformers": [
+ [
+ "DepthEstimationInference",
+ "ImageClassificationPipeline",
+ "ImageSegmentationPipeline",
+ "LoadDepthModel",
+ "ObjectDetectionPipeline"
+ ],
+ {
+ "title_aux": "ComfyUI-Transformers"
+ }
+ ],
+ "https://github.com/kadirnar/ComfyUI-YOLO": [
+ [
+ "BBoxToCoco",
+ "BBoxToXYWH",
+ "BBoxVisNode",
+ "CocoToNumber",
+ "ConvertToDict",
+ "CustomUltralyticsModelLoader",
+ "GetImageSize",
+ "ImageResizeAdvanced",
+ "UltralyticsInference",
+ "UltralyticsModelLoader",
+ "UltralyticsVisualization",
+ "ViewText"
+ ],
+ {
+ "title_aux": "ComfyUI-YOLO"
+ }
+ ],
+ "https://github.com/kale4eat/ComfyUI-path-util": [
+ [
+ "path_util_PathAbspath",
+ "path_util_PathBasename",
+ "path_util_PathDirname",
+ "path_util_PathExists",
+ "path_util_PathIsdir",
+ "path_util_PathIsfile",
+ "path_util_PathJoin",
+ "path_util_PathRelpath",
+ "path_util_PathSplitext"
+ ],
+ {
+ "title_aux": "ComfyUI_demucus"
+ }
+ ],
+ "https://github.com/kale4eat/ComfyUI-speech-dataset-toolkit": [
+ [
+ "SDT_AudioProperty",
+ "SDT_ConcatAudio",
+ "SDT_CutAudio",
+ "SDT_DemucsApply",
+ "SDT_DemucsLoader",
+ "SDT_FasterWhisperListSegments",
+ "SDT_FasterWhisperLoader",
+ "SDT_FasterWhisperSegmentProperty",
+ "SDT_FasterWhisperTextFromSegments",
+ "SDT_FasterWhisperTranscribe",
+ "SDT_GriffinLim",
+ "SDT_JoinAudio",
+ "SDT_KotobaWhisperListSegments",
+ "SDT_KotobaWhisperLoaderLong",
+ "SDT_KotobaWhisperLoaderShort",
+ "SDT_KotobaWhisperSegmentProperty",
+ "SDT_KotobaWhisperTranscribeLong",
+ "SDT_KotobaWhisperTranscribeShort",
+ "SDT_LFCC",
+ "SDT_LoadAudio",
+ "SDT_LoadAudios",
+ "SDT_MFCC",
+ "SDT_MakeSilenceAudio",
+ "SDT_MelSpectrogram",
+ "SDT_NemoAsrListSegments",
+ "SDT_NemoAsrListSubwords",
+ "SDT_NemoAsrLoader",
+ "SDT_NemoAsrSegmentProperty",
+ "SDT_NemoAsrSubwordProperty",
+ "SDT_NemoAsrTranscribe",
+ "SDT_NueAsrLoader",
+ "SDT_NueAsrTranscribe",
+ "SDT_PlayAudio",
+ "SDT_PlotMelFilterBank",
+ "SDT_PlotPitch",
+ "SDT_PlotSpecgram",
+ "SDT_PlotSpectrogram",
+ "SDT_PlotWaveForm",
+ "SDT_ResampleAudio",
+ "SDT_SaveAudio",
+ "SDT_SaveAudioWithSequentialNumbering",
+ "SDT_SilenceAudio",
+ "SDT_SileroVADApply",
+ "SDT_SileroVADCollectChunks",
+ "SDT_SileroVADListTimestamps",
+ "SDT_SileroVADLoader",
+ "SDT_SileroVADTimestampProperty",
+ "SDT_Spectrogram",
+ "SDT_SpeechMOSLoader",
+ "SDT_SpeechMOSScore",
+ "SDT_SplitAudio",
+ "SDT_TrimAudio",
+ "SDT_TrimAudioBySample"
+ ],
+ {
+ "title_aux": "ComfyUI-speech-dataset-toolkit"
+ }
+ ],
+ "https://github.com/kale4eat/ComfyUI-string-util": [
+ [
+ "string_util_Str",
+ "string_util_StrConcat",
+ "string_util_StrCount",
+ "string_util_StrEndsWith",
+ "string_util_StrEqual",
+ "string_util_StrFind",
+ "string_util_StrFormat",
+ "string_util_StrJoin",
+ "string_util_StrLen",
+ "string_util_StrLower",
+ "string_util_StrLstrip",
+ "string_util_StrNotEqual",
+ "string_util_StrReplace",
+ "string_util_StrRstrip",
+ "string_util_StrSlice",
+ "string_util_StrSplit",
+ "string_util_StrStartsWith",
+ "string_util_StrStrip",
+ "string_util_StrUpper"
+ ],
+ {
+ "title_aux": "ComfyUI-string-util"
+ }
+ ],
+ "https://github.com/kale4eat/ComfyUI-text-file-util": [
+ [
+ "text_file_util_ReadAllLines",
+ "text_file_util_ReadAllText",
+ "text_file_util_WriteText",
+ "text_file_util_WriteTextLines",
+ "text_file_util_WriteTextWithSequentialNumbering"
+ ],
+ {
+ "title_aux": "ComfyUI-text-file-util"
+ }
+ ],
+ "https://github.com/katalist-ai/comfyUI-nsfw-detection": [
+ [
+ "NudenetDetector"
+ ],
+ {
+ "title_aux": "comfyUI-nsfw-detection"
+ }
+ ],
+ "https://github.com/kealiu/ComfyUI-S3-Tools": [
+ [
+ "Load Image From S3",
+ "Save Image To S3"
+ ],
+ {
+ "title_aux": "ComfyUI Load and Save file to S3"
+ }
+ ],
+ "https://github.com/kealiu/ComfyUI-Zero123-Porting": [
+ [
+ "Zero123: Image Preprocess",
+ "Zero123: Image Rotate in 3D"
+ ],
+ {
+ "title_aux": "ComfyUI-Zero123-Porting"
+ }
+ ],
+ "https://github.com/kealiu/ComfyUI-ZeroShot-MTrans": [
+ [
+ "ZeST: Grayout Subject"
+ ],
+ {
+ "title_aux": "ComfyUI-ZeroShot-MTrans"
+ }
+ ],
+ "https://github.com/kenjiqq/qq-nodes-comfyui": [
+ [
+ "Any List",
+ "Any List Iterator",
+ "Any To Any",
+ "Axis Pack",
+ "Axis To Any",
+ "Axis Unpack",
+ "Image Accumulator End",
+ "Image Accumulator Start",
+ "Load Lines From Text File",
+ "Slice List",
+ "Text Splitter",
+ "XY Grid Helper"
+ ],
+ {
+ "title_aux": "qq-nodes-comfyui"
+ }
+ ],
+ "https://github.com/kft334/Knodes": [
+ [
+ "Image(s) To Websocket (Base64)",
+ "ImageOutput",
+ "Load Image (Base64)",
+ "Load Images (Base64)"
+ ],
+ {
+ "title_aux": "Knodes"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-ADMotionDirector": [
+ [
+ "ADMD_AdditionalModelSelect",
+ "ADMD_CheckpointLoader",
+ "ADMD_ComfyModelLoader",
+ "ADMD_DiffusersLoader",
+ "ADMD_InitializeTraining",
+ "ADMD_LoadLora",
+ "ADMD_MakeBatchList",
+ "ADMD_SaveLora",
+ "ADMD_TrainLora",
+ "ADMD_ValidationSampler",
+ "ADMD_ValidationSettings"
+ ],
+ {
+ "title_aux": "Animatediff MotionLoRA Trainer"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-APISR-KJ": [
+ [
+ "APISR_upscale"
+ ],
+ {
+ "title_aux": "ComfyUI-APISR"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-BrushNet-Wrapper": [
+ [
+ "brushnet_ella_loader",
+ "brushnet_ipadapter_matteo",
+ "brushnet_model_loader",
+ "brushnet_sampler",
+ "brushnet_sampler_ella",
+ "powerpaint_brushnet_sampler"
+ ],
+ {
+ "title_aux": "ComfyUI-BrushNet-Wrapper"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-CCSR": [
+ [
+ "CCSR_Model_Select",
+ "CCSR_Upscale",
+ "DownloadAndLoadCCSRModel"
+ ],
+ {
+ "title_aux": "ComfyUI-CCSR"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-DDColor": [
+ [
+ "DDColor_Colorize"
+ ],
+ {
+ "title_aux": "ComfyUI-DDColor"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-DepthAnythingV2": [
+ [
+ "DepthAnything_V2",
+ "DownloadAndLoadDepthAnythingV2Model"
+ ],
+ {
+ "title_aux": "ComfyUI-DepthAnythingV2"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-DiffusionLight": [
+ [
+ "chrome_ball_to_envmap",
+ "exposure_to_hdr"
+ ],
+ {
+ "title_aux": "DiffusionLight implementation for ComfyUI"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-DynamiCrafterWrapper": [
+ [
+ "DownloadAndLoadCLIPModel",
+ "DownloadAndLoadCLIPVisionModel",
+ "DownloadAndLoadDynamiCrafterModel",
+ "DynamiCrafterBatchInterpolation",
+ "DynamiCrafterI2V",
+ "DynamiCrafterLoadInitNoise",
+ "DynamiCrafterModelLoader",
+ "ToonCrafterDecode",
+ "ToonCrafterInterpolation"
+ ],
+ {
+ "title_aux": "ComfyUI-DynamiCrafterWrapper"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-ELLA-wrapper": [
+ [
+ "diffusers_model_loader",
+ "diffusers_sampler",
+ "ella_model_loader",
+ "ella_sampler",
+ "ella_t5_embeds"
+ ],
+ {
+ "title_aux": "ComfyUI-ELLA-wrapper"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-Florence2": [
+ [
+ "DownloadAndLoadFlorence2Model",
+ "Florence2Run"
+ ],
+ {
+ "title_aux": "ComfyUI-Florence2"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-Geowizard": [
+ [
+ "geowizard_model_loader",
+ "geowizard_sampler"
+ ],
+ {
+ "title_aux": "Geowizard depth and normal estimation in ComfyUI"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-IC-Light": [
+ [
+ "BackgroundScaler",
+ "CalculateNormalsFromImages",
+ "DetailTransfer",
+ "ICLightConditioning",
+ "LightSource",
+ "LoadAndApplyICLightUnet",
+ "LoadHDRImage"
+ ],
+ {
+ "title_aux": "ComfyUI-IC-Light"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-KJNodes": [
+ [
+ "AddLabel",
+ "AppendInstanceDiffusionTracking",
+ "BatchCLIPSeg",
+ "BatchCropFromMask",
+ "BatchCropFromMaskAdvanced",
+ "BatchUncrop",
+ "BatchUncropAdvanced",
+ "BboxToInt",
+ "BboxVisualize",
+ "CameraPoseVisualizer",
+ "CheckpointPerturbWeights",
+ "ColorMatch",
+ "ColorToMask",
+ "CondPassThrough",
+ "ConditioningMultiCombine",
+ "ConditioningSetMaskAndCombine",
+ "ConditioningSetMaskAndCombine3",
+ "ConditioningSetMaskAndCombine4",
+ "ConditioningSetMaskAndCombine5",
+ "CreateAudioMask",
+ "CreateFadeMask",
+ "CreateFadeMaskAdvanced",
+ "CreateFluidMask",
+ "CreateGradientFromCoords",
+ "CreateGradientMask",
+ "CreateInstanceDiffusionTracking",
+ "CreateMagicMask",
+ "CreateShapeImageOnPath",
+ "CreateShapeMask",
+ "CreateShapeMaskOnPath",
+ "CreateTextMask",
+ "CreateTextOnPath",
+ "CreateVoronoiMask",
+ "CrossFadeImages",
+ "CustomSigmas",
+ "DownloadAndLoadCLIPSeg",
+ "DrawInstanceDiffusionTracking",
+ "DummyLatentOut",
+ "EmptyLatentImagePresets",
+ "FilterZeroMasksAndCorrespondingImages",
+ "FlipSigmasAdjusted",
+ "FloatConstant",
+ "FloatToMask",
+ "FloatToSigmas",
+ "GLIGENTextBoxApplyBatchCoords",
+ "GenerateNoise",
+ "GetImageRangeFromBatch",
+ "GetImageSizeAndCount",
+ "GetImagesFromBatchIndexed",
+ "GetLatentsFromBatchIndexed",
+ "GetMaskSizeAndCount",
+ "GradientToFloat",
+ "GrowMaskWithBlur",
+ "INTConstant",
+ "ImageAddMulti",
+ "ImageAndMaskPreview",
+ "ImageBatchMulti",
+ "ImageBatchRepeatInterleaving",
+ "ImageBatchTestPattern",
+ "ImageConcanate",
+ "ImageConcatMulti",
+ "ImageGrabPIL",
+ "ImageGridComposite2x2",
+ "ImageGridComposite3x3",
+ "ImageNormalize_Neg1_To_1",
+ "ImagePadForOutpaintMasked",
+ "ImagePadForOutpaintTargetSize",
+ "ImagePass",
+ "ImageResizeKJ",
+ "ImageTransformByNormalizedAmplitude",
+ "ImageUpscaleWithModelBatched",
+ "InjectNoiseToLatent",
+ "InsertImageBatchByIndexes",
+ "InsertImagesToBatchIndexed",
+ "InterpolateCoords",
+ "Intrinsic_lora_sampling",
+ "JoinStringMulti",
+ "JoinStrings",
+ "LoadAndResizeImage",
+ "LoadResAdapterNormalization",
+ "MaskBatchMulti",
+ "MaskOrImageToWeight",
+ "MergeImageChannels",
+ "ModelPassThrough",
+ "NormalizedAmplitudeToFloatList",
+ "NormalizedAmplitudeToMask",
+ "OffsetMask",
+ "OffsetMaskByNormalizedAmplitude",
+ "PlotCoordinates",
+ "PreviewAnimation",
+ "RemapImageRange",
+ "RemapMaskRange",
+ "ReplaceImagesInBatch",
+ "ResizeMask",
+ "ReverseImageBatch",
+ "RoundMask",
+ "SV3D_BatchSchedule",
+ "SaveImageWithAlpha",
+ "ScaleBatchPromptSchedule",
+ "Sleep",
+ "SomethingToString",
+ "SoundReactive",
+ "SplineEditor",
+ "SplitBboxes",
+ "SplitImageChannels",
+ "StabilityAPI_SD3",
+ "StableZero123_BatchSchedule",
+ "StringConstant",
+ "StringConstantMultiline",
+ "Superprompt",
+ "VRAM_Debug",
+ "WeightScheduleConvert",
+ "WeightScheduleExtend",
+ "WidgetToString"
+ ],
+ {
+ "title_aux": "KJNodes for ComfyUI"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-KwaiKolorsWrapper": [
+ [
+ "DownloadAndLoadChatGLM3",
+ "DownloadAndLoadKolorsModel",
+ "KolorsSampler",
+ "KolorsTextEncode",
+ "LoadChatGLM3"
+ ],
+ {
+ "title_aux": "ComfyUI-KwaiKolorsWrapper"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-LaVi-Bridge-Wrapper": [
+ [
+ "lavi_bridge_llama_encoder",
+ "lavi_bridge_t5_encoder",
+ "lavibridge_model_loader",
+ "lavibridge_sampler"
+ ],
+ {
+ "title_aux": "ComfyUI-LaVi-Bridge-Wrapper"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-LivePortraitKJ": [
+ [
+ "DownloadAndLoadLivePortraitModels",
+ "LivePortraitProcess"
+ ],
+ {
+ "title_aux": "ComfyUI-LivePortraitKJ"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-LuminaWrapper": [
+ [
+ "DownloadAndLoadGemmaModel",
+ "DownloadAndLoadLuminaModel",
+ "GemmaSampler",
+ "LuminaGemmaTextEncode",
+ "LuminaGemmaTextEncodeArea",
+ "LuminaT2ISampler",
+ "LuminaTextAreaAppend"
+ ],
+ {
+ "title_aux": "ComfyUI-LuminaWrapper"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-Marigold": [
+ [
+ "ColorizeDepthmap",
+ "MarigoldDepthEstimation",
+ "MarigoldDepthEstimationVideo",
+ "MarigoldDepthEstimation_v2",
+ "MarigoldDepthEstimation_v2_video",
+ "MarigoldModelLoader",
+ "RemapDepth",
+ "SaveImageOpenEXR"
+ ],
+ {
+ "title_aux": "Marigold depth estimation in ComfyUI"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-MimicMotionWrapper": [
+ [
+ "DiffusersScheduler",
+ "DownloadAndLoadMimicMotionModel",
+ "MimicMotionDecode",
+ "MimicMotionGetPoses",
+ "MimicMotionSampler"
+ ],
+ {
+ "title_aux": "ComfyUI-MimicMotionWrapper"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-OpenDiTWrapper": [
+ [
+ "DownloadAndLoadOpenDiTT5Model",
+ "DownloadAndLoadOpenSoraModel",
+ "DownloadAndLoadOpenSoraVAE",
+ "OpenDiTConditioning",
+ "OpenDiTSampler",
+ "OpenSoraDecode",
+ "OpenSoraEncodeReference"
+ ],
+ {
+ "title_aux": "ComfyUI-OpenDiTWrapper"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-SUPIR": [
+ [
+ "SUPIR_Upscale",
+ "SUPIR_conditioner",
+ "SUPIR_decode",
+ "SUPIR_encode",
+ "SUPIR_first_stage",
+ "SUPIR_model_loader",
+ "SUPIR_model_loader_v2",
+ "SUPIR_model_loader_v2_clip",
+ "SUPIR_sample",
+ "SUPIR_tiles"
+ ],
+ {
+ "title_aux": "ComfyUI-SUPIR"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-depth-fm": [
+ [
+ "Depth_fm"
+ ],
+ {
+ "title_aux": "ComfyUI-depth-fm"
+ }
+ ],
+ "https://github.com/kijai/ComfyUI-moondream": [
+ [
+ "MoondreamQuery",
+ "MoondreamQueryCaptions"
+ ],
+ {
+ "title_aux": "ComfyUI-moondream"
+ }
+ ],
+ "https://github.com/kinfolk0117/ComfyUI_GradientDeepShrink": [
+ [
+ "GradientPatchModelAddDownscale",
+ "GradientPatchModelAddDownscaleAdvanced"
+ ],
+ {
+ "title_aux": "ComfyUI_GradientDeepShrink"
+ }
+ ],
+ "https://github.com/kinfolk0117/ComfyUI_Pilgram": [
+ [
+ "Pilgram"
+ ],
+ {
+ "title_aux": "ComfyUI_Pilgram"
+ }
+ ],
+ "https://github.com/kinfolk0117/ComfyUI_SimpleTiles": [
+ [
+ "DynamicTileMerge",
+ "DynamicTileSplit",
+ "TileCalc",
+ "TileMerge",
+ "TileSplit"
+ ],
+ {
+ "title_aux": "SimpleTiles"
+ }
+ ],
+ "https://github.com/klinter007/klinter_nodes": [
+ [
+ "Filter",
+ "Florence2Captions2IPA",
+ "PresentString",
+ "SingleString",
+ "SizeSelector",
+ "YellowBus",
+ "concat"
+ ],
+ {
+ "title_aux": "Klinter_nodes"
+ }
+ ],
+ "https://github.com/knuknX/ComfyUI-Image-Tools": [
+ [
+ "BatchImagePathLoader",
+ "ImageBgRemoveProcessor",
+ "ImageCheveretoUploader",
+ "ImageStandardResizeProcessor",
+ "JSONMessageNotifyTool",
+ "PreviewJSONNode",
+ "SingleImagePathLoader",
+ "SingleImageUrlLoader"
+ ],
+ {
+ "title_aux": "ComfyUI-Image-Tools"
+ }
+ ],
+ "https://github.com/kohya-ss/ControlNet-LLLite-ComfyUI": [
+ [
+ "LLLiteLoader"
+ ],
+ {
+ "title_aux": "ControlNet-LLLite-ComfyUI"
+ }
+ ],
+ "https://github.com/komojini/ComfyUI_SDXL_DreamBooth_LoRA_CustomNodes": [
+ [
+ "S3 Bucket LoRA",
+ "S3Bucket_Load_LoRA",
+ "XL DreamBooth LoRA",
+ "XLDB_LoRA"
+ ],
+ {
+ "title_aux": "ComfyUI_SDXL_DreamBooth_LoRA_CustomNodes"
+ }
+ ],
+ "https://github.com/komojini/komojini-comfyui-nodes": [
+ [
+ "BatchCreativeInterpolationNodeDynamicSettings",
+ "CachedGetter",
+ "DragNUWAImageCanvas",
+ "FlowBuilder",
+ "FlowBuilder (adv)",
+ "FlowBuilder (advanced)",
+ "FlowBuilder (advanced) Setter",
+ "FlowBuilderSetter",
+ "FlowBuilderSetter (adv)",
+ "Getter",
+ "ImageCropByRatio",
+ "ImageCropByRatioAndResize",
+ "ImageGetter",
+ "ImageMerger",
+ "ImagesCropByRatioAndResizeBatch",
+ "KSamplerAdvancedCacheable",
+ "KSamplerCacheable",
+ "Setter",
+ "UltimateVideoLoader",
+ "UltimateVideoLoader (simple)",
+ "YouTubeVideoLoader"
+ ],
+ {
+ "title_aux": "komojini-comfyui-nodes"
+ }
+ ],
+ "https://github.com/kunieone/ComfyUI_alkaid": [
+ [
+ "A_EmptyLatentImageLongside",
+ "A_Face3DSwapper",
+ "A_FaceCrop",
+ "A_FacePaste",
+ "A_GetImageSize",
+ "A_OpenPosePreprocessor",
+ "AdapterFace",
+ "AdapterFaceLoader",
+ "AdapterStyle",
+ "AdapterStyleLoader",
+ "AlkaidLoader",
+ "ApplyAdapter",
+ "ApplyControlNet_KPS",
+ "CombineAdapterPatch",
+ "KSamplerHires"
+ ],
+ {
+ "title_aux": "ComfyUI_alkaid"
+ }
+ ],
+ "https://github.com/kwaroran/abg-comfyui": [
+ [
+ "Remove Image Background (abg)"
+ ],
+ {
+ "title_aux": "abg-comfyui"
+ }
+ ],
+ "https://github.com/l20richo/ComfyUI-Azure-Blob-Storage": [
+ [
+ "DownloadFileBLOB",
+ "LoadImageBLOB",
+ "SaveImageBLOB",
+ "SaveVideoFilesBLOB",
+ "UploadFileBLOB"
+ ],
+ {
+ "title_aux": "ComfyUI-Azure-Blob-Storage"
+ }
+ ],
+ "https://github.com/laksjdjf/Batch-Condition-ComfyUI": [
+ [
+ "Batch String",
+ "CLIP Text Encode (Batch)",
+ "String Input"
+ ],
+ {
+ "title_aux": "Batch-Condition-ComfyUI"
+ }
+ ],
+ "https://github.com/laksjdjf/LCMSampler-ComfyUI": [
+ [
+ "SamplerLCM",
+ "TAESDLoader"
+ ],
+ {
+ "title_aux": "LCMSampler-ComfyUI"
+ }
+ ],
+ "https://github.com/laksjdjf/LoRTnoC-ComfyUI": [
+ [
+ "LortnocLoader"
+ ],
+ {
+ "title_aux": "LoRTnoC-ComfyUI"
+ }
+ ],
+ "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI": [
+ [
+ "CDTuner",
+ "Negapip",
+ "Negpip"
+ ],
+ {
+ "title_aux": "cd-tuner_negpip-ComfyUI"
+ }
+ ],
+ "https://github.com/laksjdjf/cgem156-ComfyUI": [
+ [
+ "GradualLatentSampler",
+ "LCMSamplerRCFG",
+ "LoadAestheticShadow",
+ "PredictAesthetic",
+ "TCDSampler",
+ "TextScheduler"
+ ],
+ {
+ "title_aux": "cgem156-ComfyUI\ud83c\udf4c"
+ }
+ ],
+ "https://github.com/laksjdjf/pfg-ComfyUI": [
+ [
+ "PFG"
+ ],
+ {
+ "title_aux": "pfg-ComfyUI"
+ }
+ ],
+ "https://github.com/larsupb/LoRA-Merger-ComfyUI": [
+ [
+ "PM LoRA Apply",
+ "PM LoRA Loader",
+ "PM LoRA Merger",
+ "PM LoRA Resizer",
+ "PM LoRA SVD Merger",
+ "PM LoRA Save",
+ "XY: PM LoRA Modes",
+ "XY: PM LoRA SVD Rank",
+ "XY: PM LoRA Strengths"
+ ],
+ {
+ "title_aux": "LoRA Power-Merger ComfyUI"
+ }
+ ],
+ "https://github.com/latenightlabs/ComfyUI-LNL": [
+ [
+ "LNL_FrameSelector",
+ "LNL_FrameSelectorV2",
+ "LNL_FrameSelectorV3"
+ ],
+ {
+ "title_aux": "LNL Frame Selector"
+ }
+ ],
+ "https://github.com/leiweiqiang/ComfyUI-TRA": [
+ [
+ "TclEbSynth",
+ "TclEbSynthBatch",
+ "TclExtractFramesFromVideo",
+ "TclExtractFramesFromVideoFile",
+ "TclFrames2Video",
+ "TclSaveVideoFromFrames",
+ "TclYoloV8Segmentation",
+ "TclYoloV9Segmentation"
+ ],
+ {
+ "title_aux": "ComfyUI-TRA"
+ }
+ ],
+ "https://github.com/leoleelxh/ComfyUI-LLMs": [
+ [
+ "\ud83d\uddbc\ufe0f LLMs_Vison_Ali",
+ "\ud83d\uddbc\ufe0f LLMs_Vison_GLM4",
+ "\ud83d\uddbc\ufe0f LLMs_Vison_Gemini",
+ "\ud83d\ude00 LLMs_Chat",
+ "\ud83d\ude00 LLMs_Chat_GLM4_Only"
+ ],
+ {
+ "title_aux": "ComfyUI-LLMs"
+ }
+ ],
+ "https://github.com/linshier/comfyui-remote-tools": [
+ [
+ "LoadBase64(js)",
+ "LoadBase64FromRemote",
+ "SendBase64ToRemote"
+ ],
+ {
+ "title_aux": "comfyui-remote-tools"
+ }
+ ],
+ "https://github.com/liusida/ComfyUI-AutoCropFaces": [
+ [
+ "AutoCropFaces"
+ ],
+ {
+ "title_aux": "ComfyUI-AutoCropFaces"
+ }
+ ],
+ "https://github.com/liusida/ComfyUI-B-LoRA": [
+ [
+ "LoadBLoRA"
+ ],
+ {
+ "title_aux": "ComfyUI-B-LoRA"
+ }
+ ],
+ "https://github.com/liusida/ComfyUI-Debug": [
+ [
+ "DebugInspectorNode",
+ "DebugModelInspectorNode",
+ "DebugModelPrintOutNode"
+ ],
+ {
+ "title_aux": "ComfyUI-Debug"
+ }
+ ],
+ "https://github.com/liusida/ComfyUI-Login": [
+ [
+ "LoadImageIncognito"
+ ],
+ {
+ "title_aux": "ComfyUI-Login"
+ }
+ ],
+ "https://github.com/liusida/ComfyUI-SD3-nodes": [
+ [
+ "SD3EmptyLatent",
+ "SD3LoadCLIPs",
+ "SD3LoadCheckpoint"
+ ],
+ {
+ "title_aux": "ComfyUI-SD3-nodes"
+ }
+ ],
+ "https://github.com/ljleb/comfy-mecha": [
+ [
+ "Blocks Mecha Hyper",
+ "Float Mecha Hyper",
+ "Lora Mecha Recipe",
+ "Mecha Deserializer",
+ "Mecha Merger",
+ "Mecha Recipe List",
+ "Mecha Serializer",
+ "Model Mecha Recipe"
+ ],
+ {
+ "title_aux": "Mecha Merge Node Pack"
+ }
+ ],
+ "https://github.com/lks-ai/ComfyUI-StableAudioSampler": [
+ [
+ "StableAudioConditioning",
+ "StableAudioLoadModel",
+ "StableAudioPrompt",
+ "StableAudioSampler"
+ ],
+ {
+ "author": "lks-ai",
+ "description": "A Simple integration of Stable Audio Diffusion with knobs and stuff!",
+ "nickname": "stableaudio",
+ "title": "StableAudioSampler",
+ "title_aux": "ComfyUI Stable Audio Open 1.0 Sampler"
+ }
+ ],
+ "https://github.com/lks-ai/anynode": [
+ [
+ "AnyNode",
+ "AnyNodeAnthropic",
+ "AnyNodeCodeViewer",
+ "AnyNodeExport",
+ "AnyNodeGemini",
+ "AnyNodeLocal"
+ ],
+ {
+ "author": "newsbubbles",
+ "description": "This single node uses an LLM to generate a functionality based on your request. You can make the node do anything.",
+ "nickname": "AnyNode",
+ "title": "AnyNode v0.1.1",
+ "title_aux": "ComfyUI AnyNode: Any Node you ask for"
+ }
+ ],
+ "https://github.com/lldacing/comfyui-easyapi-nodes": [
+ [
+ "Base64ToImage",
+ "Base64ToMask",
+ "ColorPicker",
+ "GetImageBatchSize",
+ "ImageEqual",
+ "ImageToBase64",
+ "ImageToBase64Advanced",
+ "InsightFaceBBOXDetect",
+ "IntToList",
+ "IntToNumber",
+ "JoinList",
+ "ListMerge",
+ "LoadImageFromURL",
+ "LoadImageToBase64",
+ "LoadMaskFromURL",
+ "MaskImageToBase64",
+ "MaskToBase64",
+ "MaskToBase64Image",
+ "SDBaseVerNumber",
+ "SamAutoMaskSEGS",
+ "ShowBoolean",
+ "ShowFloat",
+ "ShowInt",
+ "ShowNumber",
+ "ShowString",
+ "StringToList"
+ ],
+ {
+ "title_aux": "comfyui-easyapi-nodes"
+ }
+ ],
+ "https://github.com/logtd/ComfyUI-FLATTEN": [
+ [
+ "ApplyFlattenAttentionNode",
+ "CreateFlowNoiseNode",
+ "FlattenCheckpointLoaderNode",
+ "KSamplerFlattenNode",
+ "TrajectoryNode",
+ "UnsamplerFlattenNode"
+ ],
+ {
+ "title_aux": "ComfyUI-FLATTEN"
+ }
+ ],
+ "https://github.com/logtd/ComfyUI-InstanceDiffusion": [
+ [
+ "ApplyScaleUModelNode",
+ "DownloadInstanceDiffusionModels",
+ "InstanceDiffusionTrackingPrompt",
+ "LoadInstanceFusersNode",
+ "LoadInstancePositionNetModel",
+ "LoadInstanceScaleUNode"
+ ],
+ {
+ "title_aux": "InstanceDiffusion Nodes"
+ }
+ ],
+ "https://github.com/logtd/ComfyUI-InversedNoise": [
+ [
+ "CombineNoiseLatentNode",
+ "MixNoiseNode",
+ "SamplerInversedEulerNode"
+ ],
+ {
+ "title_aux": "ComfyUI-InversedNoise"
+ }
+ ],
+ "https://github.com/logtd/ComfyUI-RAVE_ATTN": [
+ [
+ "ApplyRaveAttentionNode",
+ "AttentionOverrideSD15Node",
+ "AttentionOverrideSDXLNode"
+ ],
+ {
+ "title_aux": "ComfyUI-RAVE Attention"
+ }
+ ],
+ "https://github.com/logtd/ComfyUI-RefSampling": [
+ [
+ "ApplyRefContentNode",
+ "ApplyRefStyleNode",
+ "ApplyRefUNetNode"
+ ],
+ {
+ "title_aux": "ComfyUI-RefSampling"
+ }
+ ],
+ "https://github.com/logtd/ComfyUI-TrackingNodes": [
+ [
+ "OpenPoseTrackerNode",
+ "YOLOTrackerNode"
+ ],
+ {
+ "title_aux": "Tracking Nodes for Videos"
+ }
+ ],
+ "https://github.com/longgui0318/comfyui-common-util": [
+ [
+ "Added Layer Info To Array",
+ "Enhanced Random Light Source",
+ "Float Relay",
+ "Image Relay",
+ "Init Layer Info Array",
+ "Int Relay",
+ "Layer Image Seleted",
+ "Layer Images IPAdapter Advanced",
+ "Layer Info Array Fuse",
+ "Mask Relay",
+ "String Relay"
+ ],
+ {
+ "title_aux": "comfyui-common-util"
+ }
+ ],
+ "https://github.com/longgui0318/comfyui-llm-assistant": [
+ [
+ "Chat With LLM",
+ "Generate Stable Diffsution Prompt With LLM",
+ "Translate Text With LLM"
+ ],
+ {
+ "title_aux": "comfyui-llm-assistant"
+ }
+ ],
+ "https://github.com/longgui0318/comfyui-magic-clothing": [
+ [
+ "Add Magic Clothing Attention",
+ "Change Pipeline Dtype And Device",
+ "Change Pixel Value Normalization",
+ "Diffusers Model Makeup &MC",
+ "Diffusers Scheduler Loader &MC",
+ "Load Magic Clothing Adapter",
+ "Load Magic Clothing Model",
+ "Load Magic Clothing Pipeline",
+ "Load Magic Clothing Pipeline With Path",
+ "RUN Magic Clothing Diffusers Model"
+ ],
+ {
+ "title_aux": "comfyui-magic-clothing"
+ }
+ ],
+ "https://github.com/longgui0318/comfyui-mask-util": [
+ [
+ "Image Adaptive Crop M&R",
+ "Image Adaptive Crop With Mask",
+ "Image Change DType",
+ "Image Change Device",
+ "Image Resolution Adaptive With X",
+ "Image Resolution Limit With 8K",
+ "Load Image With Name",
+ "Mask Change DType",
+ "Mask Change Device",
+ "Mask Selection Of Masks",
+ "Model Change Device",
+ "Model Change Device Repeaters",
+ "Output Image To Input",
+ "Split Masks"
+ ],
+ {
+ "title_aux": "comfyui-mask-util"
+ }
+ ],
+ "https://github.com/longgui0318/comfyui-oms-diffusion": [
+ [
+ "Add Magic Clothing Attention",
+ "Change Pipeline Dtype And Device",
+ "Change Pixel Value Normalization",
+ "Diffusers Model Makeup &MC",
+ "Diffusers Scheduler Loader &MC",
+ "Load Magic Clothing Adapter",
+ "Load Magic Clothing Model",
+ "Load Magic Clothing Pipeline",
+ "Load Magic Clothing Pipeline With Path",
+ "RUN Magic Clothing Diffusers Model"
+ ],
+ {
+ "title_aux": "comfyui-oms-diffusion"
+ }
+ ],
+ "https://github.com/lordgasmic/ComfyUI-Wildcards/raw/master/wildcards.py": [
+ [
+ "CLIPTextEncodeWithWildcards"
+ ],
+ {
+ "title_aux": "Wildcards"
+ }
+ ],
+ "https://github.com/lordgasmic/comfyui_save_image_with_options": [
+ [
+ "SaveImageWithOptions"
+ ],
+ {
+ "title_aux": "comfyui_save_image_with_options"
+ }
+ ],
+ "https://github.com/lordgasmic/comfyui_wildcards": [
+ [
+ "CLIPTextEncodeWithWildcards"
+ ],
+ {
+ "title_aux": "comfyui_wildcards"
+ }
+ ],
+ "https://github.com/lquesada/ComfyUI-Inpaint-CropAndStitch": [
+ [
+ "InpaintCrop",
+ "InpaintExtendOutpaint",
+ "InpaintResize",
+ "InpaintStitch"
+ ],
+ {
+ "title_aux": "ComfyUI-Inpaint-CropAndStitch"
+ }
+ ],
+ "https://github.com/lquesada/ComfyUI-Prompt-Combinator": [
+ [
+ "PromptCombinator",
+ "PromptCombinatorExportGallery",
+ "PromptCombinatorMerger",
+ "PromptCombinatorRandomPrompt"
+ ],
+ {
+ "title_aux": "ComfyUI-Prompt-Combinator"
+ }
+ ],
+ "https://github.com/lrzjason/ComfyUIJasonNode/raw/main/SDXLMixSampler.py": [
+ [
+ "SDXLMixSampler"
+ ],
+ {
+ "title_aux": "ComfyUIJasonNode"
+ }
+ ],
+ "https://github.com/ltdrdata/ComfyUI-Impact-Pack": [
+ [
+ "AddMask",
+ "BasicPipeToDetailerPipe",
+ "BasicPipeToDetailerPipeSDXL",
+ "BboxDetectorCombined",
+ "BboxDetectorCombined_v2",
+ "BboxDetectorForEach",
+ "BboxDetectorSEGS",
+ "BitwiseAndMask",
+ "BitwiseAndMaskForEach",
+ "CLIPSegDetectorProvider",
+ "CfgScheduleHookProvider",
+ "CombineRegionalPrompts",
+ "CoreMLDetailerHookProvider",
+ "CustomNoiseDetailerHookProvider",
+ "DenoiseScheduleHookProvider",
+ "DenoiseSchedulerDetailerHookProvider",
+ "DetailerForEach",
+ "DetailerForEachDebug",
+ "DetailerForEachDebugPipe",
+ "DetailerForEachPipe",
+ "DetailerForEachPipeForAnimateDiff",
+ "DetailerHookCombine",
+ "DetailerPipeToBasicPipe",
+ "EditBasicPipe",
+ "EditDetailerPipe",
+ "EditDetailerPipeSDXL",
+ "EmptySegs",
+ "FaceDetailer",
+ "FaceDetailerPipe",
+ "FromBasicPipe",
+ "FromBasicPipe_v2",
+ "FromDetailerPipe",
+ "FromDetailerPipeSDXL",
+ "FromDetailerPipe_v2",
+ "GITSSchedulerFuncProvider",
+ "ImageListToImageBatch",
+ "ImageMaskSwitch",
+ "ImageReceiver",
+ "ImageSender",
+ "ImpactAssembleSEGS",
+ "ImpactCombineConditionings",
+ "ImpactCompare",
+ "ImpactConcatConditionings",
+ "ImpactConditionalBranch",
+ "ImpactConditionalBranchSelMode",
+ "ImpactConditionalStopIteration",
+ "ImpactControlBridge",
+ "ImpactControlNetApplyAdvancedSEGS",
+ "ImpactControlNetApplySEGS",
+ "ImpactControlNetClearSEGS",
+ "ImpactConvertDataType",
+ "ImpactCount_Elts_in_SEGS",
+ "ImpactDecomposeSEGS",
+ "ImpactDilateMask",
+ "ImpactDilateMaskInSEGS",
+ "ImpactDilate_Mask_SEG_ELT",
+ "ImpactDummyInput",
+ "ImpactEdit_SEG_ELT",
+ "ImpactFloat",
+ "ImpactFrom_SEG_ELT",
+ "ImpactFrom_SEG_ELT_bbox",
+ "ImpactFrom_SEG_ELT_crop_region",
+ "ImpactGaussianBlurMask",
+ "ImpactGaussianBlurMaskInSEGS",
+ "ImpactHFTransformersClassifierProvider",
+ "ImpactIPAdapterApplySEGS",
+ "ImpactIfNone",
+ "ImpactImageBatchToImageList",
+ "ImpactImageInfo",
+ "ImpactInt",
+ "ImpactInversedSwitch",
+ "ImpactIsNotEmptySEGS",
+ "ImpactKSamplerAdvancedBasicPipe",
+ "ImpactKSamplerBasicPipe",
+ "ImpactLatentInfo",
+ "ImpactLogger",
+ "ImpactLogicalOperators",
+ "ImpactMakeImageBatch",
+ "ImpactMakeImageList",
+ "ImpactMakeTileSEGS",
+ "ImpactMinMax",
+ "ImpactNeg",
+ "ImpactNodeSetMuteState",
+ "ImpactQueueTrigger",
+ "ImpactQueueTriggerCountdown",
+ "ImpactRemoteBoolean",
+ "ImpactRemoteInt",
+ "ImpactSEGSClassify",
+ "ImpactSEGSConcat",
+ "ImpactSEGSLabelAssign",
+ "ImpactSEGSLabelFilter",
+ "ImpactSEGSOrderedFilter",
+ "ImpactSEGSPicker",
+ "ImpactSEGSRangeFilter",
+ "ImpactSEGSToMaskBatch",
+ "ImpactSEGSToMaskList",
+ "ImpactScaleBy_BBOX_SEG_ELT",
+ "ImpactSchedulerAdapter",
+ "ImpactSegsAndMask",
+ "ImpactSegsAndMaskForEach",
+ "ImpactSetWidgetValue",
+ "ImpactSimpleDetectorSEGS",
+ "ImpactSimpleDetectorSEGSPipe",
+ "ImpactSimpleDetectorSEGS_for_AD",
+ "ImpactSleep",
+ "ImpactStringSelector",
+ "ImpactSwitch",
+ "ImpactValueReceiver",
+ "ImpactValueSender",
+ "ImpactWildcardEncode",
+ "ImpactWildcardProcessor",
+ "IterativeImageUpscale",
+ "IterativeLatentUpscale",
+ "KSamplerAdvancedProvider",
+ "KSamplerProvider",
+ "LatentPixelScale",
+ "LatentReceiver",
+ "LatentSender",
+ "LatentSwitch",
+ "MMDetDetectorProvider",
+ "MMDetLoader",
+ "MaskDetailerPipe",
+ "MaskListToMaskBatch",
+ "MaskPainter",
+ "MaskToSEGS",
+ "MaskToSEGS_for_AnimateDiff",
+ "MasksToMaskList",
+ "MediaPipeFaceMeshToSEGS",
+ "NoiseInjectionDetailerHookProvider",
+ "NoiseInjectionHookProvider",
+ "ONNXDetectorProvider",
+ "ONNXDetectorSEGS",
+ "PixelKSampleHookCombine",
+ "PixelKSampleUpscalerProvider",
+ "PixelKSampleUpscalerProviderPipe",
+ "PixelTiledKSampleUpscalerProvider",
+ "PixelTiledKSampleUpscalerProviderPipe",
+ "PreviewBridge",
+ "PreviewBridgeLatent",
+ "PreviewDetailerHookProvider",
+ "ReencodeLatent",
+ "ReencodeLatentPipe",
+ "RegionalPrompt",
+ "RegionalSampler",
+ "RegionalSamplerAdvanced",
+ "RemoveImageFromSEGS",
+ "RemoveNoiseMask",
+ "SAMDetectorCombined",
+ "SAMDetectorSegmented",
+ "SAMLoader",
+ "SEGSDetailer",
+ "SEGSDetailerForAnimateDiff",
+ "SEGSLabelFilterDetailerHookProvider",
+ "SEGSOrderedFilterDetailerHookProvider",
+ "SEGSPaste",
+ "SEGSPreview",
+ "SEGSPreviewCNet",
+ "SEGSRangeFilterDetailerHookProvider",
+ "SEGSSwitch",
+ "SEGSToImageList",
+ "SEGSUpscaler",
+ "SEGSUpscalerPipe",
+ "SegmDetectorCombined",
+ "SegmDetectorCombined_v2",
+ "SegmDetectorForEach",
+ "SegmDetectorSEGS",
+ "Segs Mask",
+ "Segs Mask ForEach",
+ "SegsMaskCombine",
+ "SegsToCombinedMask",
+ "SetDefaultImageForSEGS",
+ "StepsScheduleHookProvider",
+ "StringListToString",
+ "SubtractMask",
+ "SubtractMaskForEach",
+ "TiledKSamplerProvider",
+ "ToBasicPipe",
+ "ToBinaryMask",
+ "ToDetailerPipe",
+ "ToDetailerPipeSDXL",
+ "TwoAdvancedSamplersForMask",
+ "TwoSamplersForMask",
+ "TwoSamplersForMaskUpscalerProvider",
+ "TwoSamplersForMaskUpscalerProviderPipe",
+ "UltralyticsDetectorProvider",
+ "UnsamplerDetailerHookProvider",
+ "UnsamplerHookProvider",
+ "VariationNoiseDetailerHookProvider",
+ "WildcardPromptFromString"
+ ],
+ {
+ "author": "Dr.Lt.Data",
+ "description": "This extension offers various detector nodes and detailer nodes that allow you to configure a workflow that automatically enhances facial details. And provide iterative upscaler.",
+ "nickname": "Impact Pack",
+ "preemptions": [
+ "SAMLoader"
+ ],
+ "title": "Impact Pack",
+ "title_aux": "ComfyUI Impact Pack"
+ }
+ ],
+ "https://github.com/ltdrdata/ComfyUI-Inspire-Pack": [
+ [
+ "AnimeLineArt_Preprocessor_Provider_for_SEGS //Inspire",
+ "ApplyRegionalIPAdapters //Inspire",
+ "BindImageListPromptList //Inspire",
+ "CLIPTextEncodeWithWeight //Inspire",
+ "CacheBackendData //Inspire",
+ "CacheBackendDataList //Inspire",
+ "CacheBackendDataNumberKey //Inspire",
+ "CacheBackendDataNumberKeyList //Inspire",
+ "Canny_Preprocessor_Provider_for_SEGS //Inspire",
+ "ChangeImageBatchSize //Inspire",
+ "ChangeLatentBatchSize //Inspire",
+ "CheckpointLoaderSimpleShared //Inspire",
+ "ColorMapToMasks //Inspire",
+ "ColorMaskToDepthMask //Inspire",
+ "Color_Preprocessor_Provider_for_SEGS //Inspire",
+ "CompositeNoise //Inspire",
+ "ConcatConditioningsWithMultiplier //Inspire",
+ "ConditioningStretch //Inspire",
+ "ConditioningUpscale //Inspire",
+ "DWPreprocessor_Provider_for_SEGS //Inspire",
+ "FakeScribblePreprocessor_Provider_for_SEGS //Inspire",
+ "FloatRange //Inspire",
+ "FromIPAdapterPipe //Inspire",
+ "GlobalSampler //Inspire",
+ "GlobalSeed //Inspire",
+ "HEDPreprocessor_Provider_for_SEGS //Inspire",
+ "HyperTile //Inspire",
+ "IPAdapterModelHelper //Inspire",
+ "ImageBatchSplitter //Inspire",
+ "InpaintPreprocessor_Provider_for_SEGS //Inspire",
+ "KSampler //Inspire",
+ "KSamplerAdvanced //Inspire",
+ "KSamplerAdvancedPipe //Inspire",
+ "KSamplerAdvancedProgress //Inspire",
+ "KSamplerPipe //Inspire",
+ "KSamplerProgress //Inspire",
+ "LatentBatchSplitter //Inspire",
+ "LeRes_DepthMap_Preprocessor_Provider_for_SEGS //Inspire",
+ "LineArt_Preprocessor_Provider_for_SEGS //Inspire",
+ "ListCounter //Inspire",
+ "LoadImage //Inspire",
+ "LoadImageListFromDir //Inspire",
+ "LoadImagesFromDir //Inspire",
+ "LoadPromptsFromDir //Inspire",
+ "LoadPromptsFromFile //Inspire",
+ "LoadSinglePromptFromFile //Inspire",
+ "LoraBlockInfo //Inspire",
+ "LoraLoaderBlockWeight //Inspire",
+ "MakeBasicPipe //Inspire",
+ "Manga2Anime_LineArt_Preprocessor_Provider_for_SEGS //Inspire",
+ "MediaPipeFaceMeshDetectorProvider //Inspire",
+ "MediaPipe_FaceMesh_Preprocessor_Provider_for_SEGS //Inspire",
+ "MeshGraphormerDepthMapPreprocessorProvider_for_SEGS //Inspire",
+ "MiDaS_DepthMap_Preprocessor_Provider_for_SEGS //Inspire",
+ "OpenPose_Preprocessor_Provider_for_SEGS //Inspire",
+ "PromptBuilder //Inspire",
+ "PromptExtractor //Inspire",
+ "RGB_HexToHSV //Inspire",
+ "RandomGeneratorForList //Inspire",
+ "RandomNoise //Inspire",
+ "RegionalCFG //Inspire",
+ "RegionalConditioningColorMask //Inspire",
+ "RegionalConditioningSimple //Inspire",
+ "RegionalIPAdapterColorMask //Inspire",
+ "RegionalIPAdapterEncodedColorMask //Inspire",
+ "RegionalIPAdapterEncodedMask //Inspire",
+ "RegionalIPAdapterMask //Inspire",
+ "RegionalPromptColorMask //Inspire",
+ "RegionalPromptSimple //Inspire",
+ "RegionalSeedExplorerColorMask //Inspire",
+ "RegionalSeedExplorerMask //Inspire",
+ "RemoveBackendData //Inspire",
+ "RemoveBackendDataNumberKey //Inspire",
+ "RemoveControlNet //Inspire",
+ "RemoveControlNetFromRegionalPrompts //Inspire",
+ "RetrieveBackendData //Inspire",
+ "RetrieveBackendDataNumberKey //Inspire",
+ "ScheduledCFGGuider //Inspire",
+ "ScheduledPerpNegCFGGuider //Inspire",
+ "SeedExplorer //Inspire",
+ "SelectNthMask //Inspire",
+ "ShowCachedInfo //Inspire",
+ "StableCascade_CheckpointLoader //Inspire",
+ "TilePreprocessor_Provider_for_SEGS //Inspire",
+ "ToIPAdapterPipe //Inspire",
+ "UnzipPrompt //Inspire",
+ "WildcardEncode //Inspire",
+ "XY Input: Lora Block Weight //Inspire",
+ "ZipPrompt //Inspire",
+ "Zoe_DepthMap_Preprocessor_Provider_for_SEGS //Inspire"
+ ],
+ {
+ "author": "Dr.Lt.Data",
+ "description": "This extension provides various nodes to support Lora Block Weight and the Impact Pack.",
+ "nickname": "Inspire Pack",
+ "nodename_pattern": "Inspire$",
+ "title": "Inspire Pack",
+ "title_aux": "ComfyUI Inspire Pack"
+ }
+ ],
+ "https://github.com/luandev/ComfyUI-CrewAI": [
+ [
+ "\ud83d\udcceCrewAI Agent",
+ "\ud83d\udcceCrewAI Agent List",
+ "\ud83d\udcceCrewAI Crew",
+ "\ud83d\udcceCrewAI LLM Chat GPT",
+ "\ud83d\udcceCrewAI LLM Hugging Face",
+ "\ud83d\udcceCrewAI LLM OpenAI",
+ "\ud83d\udcceCrewAI Task",
+ "\ud83d\udcceCrewAI Task List"
+ ],
+ {
+ "title_aux": "ComfyUI CrewAI"
+ }
+ ],
+ "https://github.com/m-sokes/ComfyUI-Sokes-Nodes": [
+ [
+ "Custom Date Format | sokes \ud83e\uddac",
+ "Latent Switch x9 | sokes \ud83e\uddac"
+ ],
+ {
+ "title_aux": "ComfyUI Sokes Nodes"
+ }
+ ],
+ "https://github.com/m957ymj75urz/ComfyUI-Custom-Nodes/raw/main/clip-text-encode-split/clip_text_encode_split.py": [
+ [
+ "RawText",
+ "RawTextCombine",
+ "RawTextEncode",
+ "RawTextReplace"
+ ],
+ {
+ "title_aux": "m957ymj75urz/ComfyUI-Custom-Nodes"
+ }
+ ],
+ "https://github.com/mape/ComfyUI-mape-Helpers": [
+ [
+ "mape Variable"
+ ],
+ {
+ "author": "mape",
+ "description": "Various QoL improvements like prompt tweaking, variable assignment, image preview, fuzzy search, error reporting, organizing and node navigation.",
+ "nickname": "\ud83d\udfe1 mape's helpers",
+ "title": "mape's helpers",
+ "title_aux": "mape's helpers"
+ }
+ ],
+ "https://github.com/maracman/ComfyUI-SubjectStyle-CSV": [
+ [
+ "CSVPromptProcessor"
+ ],
+ {
+ "title_aux": "ComfyUI-SubjectStyle-CSV"
+ }
+ ],
+ "https://github.com/marduk191/comfyui-marnodes": [
+ [
+ "marduk191_5_text_string",
+ "marduk191_5way_text_switch",
+ "marduk191_workflow_settings"
+ ],
+ {
+ "author": "\u02f6marduk191",
+ "description": "marduk191s nodes.",
+ "nickname": "marduk191 workflow settings",
+ "title": "marduk191 workflow settings",
+ "title_aux": "marduk191 workflow settings"
+ }
+ ],
+ "https://github.com/marhensa/sdxl-recommended-res-calc": [
+ [
+ "RecommendedResCalc"
+ ],
+ {
+ "title_aux": "Recommended Resolution Calculator"
+ }
+ ],
+ "https://github.com/martijnat/comfyui-previewlatent": [
+ [
+ "PreviewLatent",
+ "PreviewLatentAdvanced",
+ "PreviewLatentXL"
+ ],
+ {
+ "title_aux": "comfyui-previewlatent"
+ }
+ ],
+ "https://github.com/massao000/ComfyUI_aspect_ratios": [
+ [
+ "Aspect Ratios Node"
+ ],
+ {
+ "title_aux": "ComfyUI_aspect_ratios"
+ }
+ ],
+ "https://github.com/matan1905/ComfyUI-Serving-Toolkit": [
+ [
+ "DiscordServing",
+ "ServingInputNumber",
+ "ServingInputText",
+ "ServingOutput",
+ "WebSocketServing"
+ ],
+ {
+ "title_aux": "ComfyUI Serving toolkit"
+ }
+ ],
+ "https://github.com/mav-rik/facerestore_cf": [
+ [
+ "CropFace",
+ "FaceRestoreCFWithModel",
+ "FaceRestoreModelLoader"
+ ],
+ {
+ "title_aux": "Facerestore CF (Code Former)"
+ }
+ ],
+ "https://github.com/mbrostami/ComfyUI-HF": [
+ [
+ "GPT2Node"
+ ],
+ {
+ "title_aux": "ComfyUI-HF"
+ }
+ ],
+ "https://github.com/mbrostami/ComfyUI-TITrain": [
+ [
+ "TextualInversionTraining",
+ "TextualInversionTrainingSDXL"
+ ],
+ {
+ "title_aux": "ComfyUI-TITrain"
+ }
+ ],
+ "https://github.com/mcmonkeyprojects/sd-dynamic-thresholding": [
+ [
+ "DynamicThresholdingFull",
+ "DynamicThresholdingSimple"
+ ],
+ {
+ "title_aux": "Stable Diffusion Dynamic Thresholding (CFG Scale Fix)"
+ }
+ ],
+ "https://github.com/meap158/ComfyUI-Background-Replacement": [
+ [
+ "BackgroundReplacement",
+ "ImageComposite"
+ ],
+ {
+ "title_aux": "ComfyUI-Background-Replacement"
+ }
+ ],
+ "https://github.com/meap158/ComfyUI-GPU-temperature-protection": [
+ [
+ "GPUTemperatureProtection"
+ ],
+ {
+ "title_aux": "GPU temperature protection"
+ }
+ ],
+ "https://github.com/meap158/ComfyUI-Prompt-Expansion": [
+ [
+ "PromptExpansion"
+ ],
+ {
+ "title_aux": "ComfyUI-Prompt-Expansion"
+ }
+ ],
+ "https://github.com/melMass/comfy_mtb": [
+ [
+ "Animation Builder (mtb)",
+ "Any To String (mtb)",
+ "Batch Float (mtb)",
+ "Batch Float Assemble (mtb)",
+ "Batch Float Fill (mtb)",
+ "Batch Make (mtb)",
+ "Batch Merge (mtb)",
+ "Batch Shake (mtb)",
+ "Batch Shape (mtb)",
+ "Batch Transform (mtb)",
+ "Bbox (mtb)",
+ "Bbox From Mask (mtb)",
+ "Blur (mtb)",
+ "Color Correct (mtb)",
+ "Colored Image (mtb)",
+ "Concat Images (mtb)",
+ "Crop (mtb)",
+ "Debug (mtb)",
+ "Deep Bump (mtb)",
+ "Export With Ffmpeg (mtb)",
+ "Face Swap (mtb)",
+ "Film Interpolation (mtb)",
+ "Fit Number (mtb)",
+ "Float To Number (mtb)",
+ "Get Batch From History (mtb)",
+ "Image Compare (mtb)",
+ "Image Premultiply (mtb)",
+ "Image Remove Background Rembg (mtb)",
+ "Image Resize Factor (mtb)",
+ "Image Tile Offset (mtb)",
+ "Int To Bool (mtb)",
+ "Int To Number (mtb)",
+ "Interpolate Clip Sequential (mtb)",
+ "Latent Lerp (mtb)",
+ "Load Face Analysis Model (mtb)",
+ "Load Face Enhance Model (mtb)",
+ "Load Face Swap Model (mtb)",
+ "Load Film Model (mtb)",
+ "Load Image From Url (mtb)",
+ "Load Image Sequence (mtb)",
+ "Mask To Image (mtb)",
+ "Math Expression (mtb)",
+ "Model Patch Seamless (mtb)",
+ "Pick From Batch (mtb)",
+ "Qr Code (mtb)",
+ "Restore Face (mtb)",
+ "Save Gif (mtb)",
+ "Save Image Grid (mtb)",
+ "Save Image Sequence (mtb)",
+ "Save Tensors (mtb)",
+ "Sharpen (mtb)",
+ "Smart Step (mtb)",
+ "Stack Images (mtb)",
+ "String Replace (mtb)",
+ "Styles Loader (mtb)",
+ "Text To Image (mtb)",
+ "Transform Image (mtb)",
+ "Uncrop (mtb)",
+ "Unsplash Image (mtb)",
+ "Vae Decode (mtb)"
+ ],
+ {
+ "nodename_pattern": "\\(mtb\\)$",
+ "title_aux": "MTB Nodes"
+ }
+ ],
+ "https://github.com/mephisto83/petty-paint-comfyui-node": [
+ [
+ "PettyImageImageColorToMask",
+ "PettyPaintAppend",
+ "PettyPaintApplyLoRAStack",
+ "PettyPaintBlurs",
+ "PettyPaintComponent",
+ "PettyPaintConditioningSetMaskAndCombine",
+ "PettyPaintConvert",
+ "PettyPaintCountFiles",
+ "PettyPaintEnsureDirectory",
+ "PettyPaintExec",
+ "PettyPaintFakeConvert",
+ "PettyPaintFileExists",
+ "PettyPaintImageColorsToMasks",
+ "PettyPaintImageCompositeMasked",
+ "PettyPaintImageDims",
+ "PettyPaintImageMaskCropper",
+ "PettyPaintImagePlacement",
+ "PettyPaintImageSave",
+ "PettyPaintImageStore",
+ "PettyPaintImageToMask",
+ "PettyPaintImagesToMasks",
+ "PettyPaintJsonMap",
+ "PettyPaintJsonRead",
+ "PettyPaintJsonReadArray",
+ "PettyPaintKSampler",
+ "PettyPaintKSamplerAdvanced",
+ "PettyPaintLoRAStack",
+ "PettyPaintLoadImage",
+ "PettyPaintLoadImageMasks",
+ "PettyPaintLoadImages",
+ "PettyPaintMap",
+ "PettyPaintMasksToImages",
+ "PettyPaintNot",
+ "PettyPaintPassThroughNode",
+ "PettyPaintProcessor",
+ "PettyPaintRemoveAddText",
+ "PettyPaintSDTurboScheduler",
+ "PettyPaintStoryImage",
+ "PettyPaintText",
+ "PettyPaintTexts_to_Conditioning",
+ "PettyPaintToJson",
+ "PettyPaintVAEDecode"
+ ],
+ {
+ "title_aux": "petty-paint-comfyui-node"
+ }
+ ],
+ "https://github.com/meshmesh-io/ComfyUI-MeshMesh": [
+ [
+ "ColorPicker",
+ "MasksToColoredMasks"
+ ],
+ {
+ "title_aux": "ComfyUI-MeshMesh"
+ }
+ ],
+ "https://github.com/meshmesh-io/mm-comfyui-loopback": [
+ [
+ "Loop",
+ "LoopEnd",
+ "LoopEnd_SEGIMAGE",
+ "LoopStart",
+ "LoopStart_SEGIMAGE"
+ ],
+ {
+ "title_aux": "mm-comfyui-loopback"
+ }
+ ],
+ "https://github.com/meshmesh-io/mm-comfyui-megamask": [
+ [
+ "ColorListMaskToImage",
+ "FlattenAndCombineMaskImages"
+ ],
+ {
+ "title_aux": "mm-comfyui-megamask"
+ }
+ ],
+ "https://github.com/metncelik/comfyui_met_suite": [
+ [
+ "BBOXPadding",
+ "BBOXResize",
+ "ImageResizeKeepRatio",
+ "PrimitiveBBOX",
+ "RaiseError"
+ ],
+ {
+ "title_aux": "comfyui_met_suite"
+ }
+ ],
+ "https://github.com/mihaiiancu/ComfyUI_Inpaint": [
+ [
+ "InpaintMediapipe"
+ ],
+ {
+ "title_aux": "mihaiiancu/Inpaint"
+ }
+ ],
+ "https://github.com/mikkel/ComfyUI-text-overlay": [
+ [
+ "Image Text Overlay"
+ ],
+ {
+ "title_aux": "ComfyUI - Text Overlay Plugin"
+ }
+ ],
+ "https://github.com/mikkel/comfyui-mask-boundingbox": [
+ [
+ "Mask Bounding Box"
+ ],
+ {
+ "title_aux": "ComfyUI - Mask Bounding Box"
+ }
+ ],
+ "https://github.com/mingqizhang/ComfyUI_InSPyResNet_zmq": [
+ [
+ "INSPY removebg Apply",
+ "INSPY removebg ModelLoader"
+ ],
+ {
+ "title_aux": "ComfyUI_InSPyResNet_zmq"
+ }
+ ],
+ "https://github.com/mirabarukaso/ComfyUI_Mira": [
+ [
+ "BooleanListInterpreter1",
+ "BooleanListInterpreter4",
+ "BooleanListInterpreter8",
+ "CanvasCreatorAdvanced",
+ "CanvasCreatorBasic",
+ "CanvasCreatorSimple",
+ "CircleCreator",
+ "CirclesGenerator",
+ "CreateCircleMask",
+ "CreateMaskWithCanvas",
+ "CreateNestedPNGMask",
+ "CreateSimpleMask",
+ "CreateTillingPNGMask",
+ "CreateWatermarkRemovalMask",
+ "EightBooleanTrigger",
+ "EightFloats",
+ "EvenOrOdd",
+ "EvenOrOddList",
+ "FloatListInterpreter1",
+ "FloatListInterpreter4",
+ "FloatListInterpreter8",
+ "FloatMultiplication",
+ "FourBooleanTrigger",
+ "FourFloats",
+ "FunctionSwap",
+ "IntMultiplication",
+ "IntSubtraction",
+ "IntToFloatMultiplication",
+ "LogicNot",
+ "NoneToZero",
+ "NumeralToString",
+ "OneFloat",
+ "PngColorMasksToMaskList",
+ "PngColorMasksToRGB",
+ "PngColorMasksToString",
+ "PngColorMasksToStringList",
+ "PngRectanglesToMask",
+ "PngRectanglesToMaskList",
+ "RandomNestedLayouts",
+ "RandomTillingLayouts",
+ "SN74HC1G86",
+ "SN74HC86",
+ "SN74LVC1G125",
+ "SeedGenerator",
+ "SingleBooleanTrigger",
+ "SixBooleanTrigger",
+ "StepsAndCfg",
+ "TextBox",
+ "TextCombinerSix",
+ "TextCombinerTwo",
+ "TextWithBooleanSwitchAndCommonTextInput",
+ "TwoBooleanTrigger",
+ "TwoFloats"
+ ],
+ {
+ "title_aux": "ComfyUI_Mira"
+ }
+ ],
+ "https://github.com/modusCell/ComfyUI-dimension-node-modusCell": [
+ [
+ "DimensionProviderFree modusCell",
+ "DimensionProviderRatio modusCell",
+ "String Concat modusCell"
+ ],
+ {
+ "title_aux": "Preset Dimensions"
+ }
+ ],
+ "https://github.com/moyi7712/ComfyUI_Seamless_Patten": [
+ [
+ "SeamlessApply",
+ "SeamlessKSampler",
+ "SeamlessKSamplerAdvanced",
+ "SeamlessVae"
+ ],
+ {
+ "title_aux": "ComfyUI_Seamless_Patten"
+ }
+ ],
+ "https://github.com/mpiquero7164/ComfyUI-SaveImgPrompt": [
+ [
+ "Save IMG Prompt"
+ ],
+ {
+ "title_aux": "SaveImgPrompt"
+ }
+ ],
+ "https://github.com/mullakhmetov/comfyui_dynamic_util_nodes": [
+ [
+ "ConcatStrings",
+ "FormatString",
+ "GetFiles",
+ "LoadImageByPath"
+ ],
+ {
+ "title_aux": "comfyui_dynamic_util_nodes"
+ }
+ ],
+ "https://github.com/muzi12888/ComfyUI-PoseKeypoint-Mask": [
+ [
+ "Image Brightness",
+ "Openpose Keypoint Mask"
+ ],
+ {
+ "title_aux": "PoseKeypoint Mask"
+ }
+ ],
+ "https://github.com/my-opencode/ComfyUI_IndustrialMagick": [
+ [
+ "IndustrialMagick",
+ "IndustrialMagickImageIngest"
+ ],
+ {
+ "title_aux": "ComfyUI_IndustrialMagick"
+ }
+ ],
+ "https://github.com/my-opencode/ComfyUI_KSamplerTimer": [
+ [
+ "KSamplerTimer"
+ ],
+ {
+ "author": "Ludovic Anterieur",
+ "description": "This extension provides a wrapper of the native KSampler which outputs generation time.",
+ "nickname": "\u23f1",
+ "title": "KSampler (timer)",
+ "title_aux": "ComfyUI_KSamplerTimer"
+ }
+ ],
+ "https://github.com/nagolinc/ComfyUI_FastVAEDecorder_SDXL": [
+ [
+ "FastLatentToImage"
+ ],
+ {
+ "title_aux": "ComfyUI_FastVAEDecorder_SDXL"
+ }
+ ],
+ "https://github.com/nagolinc/comfyui_openai_node": [
+ [
+ "OpenAINode"
+ ],
+ {
+ "title_aux": "comfyui_openai_node"
+ }
+ ],
+ "https://github.com/natto-maki/ComfyUI-NegiTools": [
+ [
+ "NegiTools_CompositeImages",
+ "NegiTools_DepthEstimationByMarigold",
+ "NegiTools_DetectFaceRotationForInpainting",
+ "NegiTools_ImageProperties",
+ "NegiTools_LatentProperties",
+ "NegiTools_NoiseImageGenerator",
+ "NegiTools_OpenAiDalle3",
+ "NegiTools_OpenAiGpt",
+ "NegiTools_OpenAiGpt4v",
+ "NegiTools_OpenAiTranslate",
+ "NegiTools_OpenPoseToPointList",
+ "NegiTools_PointListToMask",
+ "NegiTools_RandomImageLoader",
+ "NegiTools_SaveImageToDirectory",
+ "NegiTools_SeedGenerator",
+ "NegiTools_StereoImageGenerator",
+ "NegiTools_StringFunction"
+ ],
+ {
+ "title_aux": "ComfyUI-NegiTools"
+ }
+ ],
+ "https://github.com/nickve28/ComfyUI-Nich-Utils": [
+ [
+ "Image from Dir Selector (Nich)",
+ "Select Text with Regular Expression (Nich)"
+ ],
+ {
+ "title_aux": "ComfyUI Nich Utils"
+ }
+ ],
+ "https://github.com/nicolai256/comfyUI_Nodes_nicolai256/raw/main/yugioh-presets.py": [
+ [
+ "yugioh_Presets"
+ ],
+ {
+ "title_aux": "comfyUI_Nodes_nicolai256"
+ }
+ ],
+ "https://github.com/ningxiaoxiao/comfyui-NDI": [
+ [
+ "NDI_LoadImage",
+ "NDI_SendImage"
+ ],
+ {
+ "title_aux": "comfyui-NDI"
+ }
+ ],
+ "https://github.com/nirbhay-faaya/ImgProcessing_ComfyUI": [
+ [
+ "ImageConcat",
+ "ImageCropMultEight",
+ "ImageCut",
+ "LightingPreprocessor"
+ ],
+ {
+ "title_aux": "ImgProcessing_ComfyUI"
+ }
+ ],
+ "https://github.com/nirex0/ComfyUI_pytorch_openpose": [
+ [
+ "pytorch_openpose"
+ ],
+ {
+ "title_aux": "ComfyUI_pytorch_openpose"
+ }
+ ],
+ "https://github.com/nkchocoai/ComfyUI-Dart": [
+ [
+ "DanbooruTagsTransformerBanTagsFromRegex",
+ "DanbooruTagsTransformerComposePrompt",
+ "DanbooruTagsTransformerComposePromptV2",
+ "DanbooruTagsTransformerDecode",
+ "DanbooruTagsTransformerDecodeBySplitedParts",
+ "DanbooruTagsTransformerGenerate",
+ "DanbooruTagsTransformerGenerateAdvanced",
+ "DanbooruTagsTransformerGenerationConfig",
+ "DanbooruTagsTransformerGetAspectRatio",
+ "DanbooruTagsTransformerLoader",
+ "DanbooruTagsTransformerRearrangedByAnimagine",
+ "DanbooruTagsTransformerRemoveTagToken"
+ ],
+ {
+ "title_aux": "ComfyUI-Dart"
+ }
+ ],
+ "https://github.com/nkchocoai/ComfyUI-PromptUtilities": [
+ [
+ "PromptUtilitiesConstString",
+ "PromptUtilitiesConstStringMultiLine",
+ "PromptUtilitiesFormatString",
+ "PromptUtilitiesJoinStringList",
+ "PromptUtilitiesLoadPreset",
+ "PromptUtilitiesLoadPresetAdvanced",
+ "PromptUtilitiesRandomPreset",
+ "PromptUtilitiesRandomPresetAdvanced"
+ ],
+ {
+ "title_aux": "ComfyUI-PromptUtilities"
+ }
+ ],
+ "https://github.com/nkchocoai/ComfyUI-SaveImageWithMetaData": [
+ [
+ "SaveImageWithMetaData"
+ ],
+ {
+ "title_aux": "ComfyUI-SaveImageWithMetaData"
+ }
+ ],
+ "https://github.com/nkchocoai/ComfyUI-SizeFromPresets": [
+ [
+ "EmptyLatentImageFromPresetsSD15",
+ "EmptyLatentImageFromPresetsSDXL",
+ "GetSimilarResolution",
+ "GetSimilarResolutionEmptyLatent",
+ "RandomEmptyLatentImageFromPresetsSD15",
+ "RandomEmptyLatentImageFromPresetsSDXL",
+ "RandomSizeFromPresetsSD15",
+ "RandomSizeFromPresetsSDXL",
+ "SizeFromPresetsSD15",
+ "SizeFromPresetsSDXL"
+ ],
+ {
+ "title_aux": "ComfyUI-SizeFromPresets"
+ }
+ ],
+ "https://github.com/nkchocoai/ComfyUI-TextOnSegs": [
+ [
+ "CalcMaxFontSize",
+ "ExtractDominantColor",
+ "GetComplementaryColor",
+ "SegsToRegion",
+ "TextOnSegsFloodFill"
+ ],
+ {
+ "title_aux": "ComfyUI-TextOnSegs"
+ }
+ ],
+ "https://github.com/noembryo/ComfyUI-noEmbryo": [
+ [
+ "PromptTermList1",
+ "PromptTermList2",
+ "PromptTermList3",
+ "PromptTermList4",
+ "PromptTermList5",
+ "PromptTermList6"
+ ],
+ {
+ "author": "noEmbryo",
+ "description": "Some useful nodes for ComfyUI",
+ "nickname": "noEmbryo",
+ "title": "noEmbryo nodes",
+ "title_aux": "noEmbryo nodes"
+ }
+ ],
+ "https://github.com/nosiu/comfyui-instantId-faceswap": [
+ [
+ "FaceEmbed",
+ "FaceSwapGenerationInpaint",
+ "FaceSwapSetupPipeline",
+ "LCMLora"
+ ],
+ {
+ "title_aux": "ComfyUI InstantID Faceswapper"
+ }
+ ],
+ "https://github.com/noxinias/ComfyUI_NoxinNodes": [
+ [
+ "NoxinChime",
+ "NoxinPromptLoad",
+ "NoxinPromptSave",
+ "NoxinScaledResolution",
+ "NoxinSimpleMath",
+ "NoxinSplitPrompt"
+ ],
+ {
+ "title_aux": "ComfyUI_NoxinNodes"
+ }
+ ],
+ "https://github.com/ntc-ai/ComfyUI-DARE-LoRA-Merge": [
+ [
+ "Apply LoRA",
+ "DARE Merge LoRA Stack",
+ "Save LoRA"
+ ],
+ {
+ "title_aux": "ComfyUI - Apply LoRA Stacker with DARE"
+ }
+ ],
+ "https://github.com/ntdviet/comfyui-ext/raw/main/custom_nodes/gcLatentTunnel/gcLatentTunnel.py": [
+ [
+ "gcLatentTunnel"
+ ],
+ {
+ "title_aux": "ntdviet/comfyui-ext"
+ }
+ ],
+ "https://github.com/nuanarchy/ComfyUI-NuA-BIRD": [
+ [
+ "Bird_Deblurring_NuA",
+ "Bird_Denoising_NuA",
+ "Bird_Inpainting_NuA",
+ "Bird_Loader_NuA",
+ "Bird_Non_Uniform_Deblurring_NuA",
+ "Bird_Super_Resolution_NuA"
+ ],
+ {
+ "title_aux": "ComfyUI-NuA-BIRD"
+ }
+ ],
+ "https://github.com/nuanarchy/ComfyUI-NuA-FlashFace": [
+ [
+ "FlashFace_Loader_NuA",
+ "FlashFace_Sampler_NuA"
+ ],
+ {
+ "title_aux": "ComfyUI-NuA-FlashFace"
+ }
+ ],
+ "https://github.com/nullquant/ComfyUI-BrushNet": [
+ [
+ "BlendInpaint",
+ "BrushNet",
+ "BrushNetLoader",
+ "CutForInpaint",
+ "PowerPaint",
+ "PowerPaintCLIPLoader",
+ "RAUNet",
+ "Terminal"
+ ],
+ {
+ "author": "nullquant",
+ "description": "These are custom nodes for ComfyUI native implementation of BrushNet, PowerPaint and RAUNet models",
+ "nickname": "BrushName nodes",
+ "title": "BrushNet",
+ "title_aux": "BrushNet"
+ }
+ ],
+ "https://github.com/olduvai-jp/ComfyUI-HfLoader": [
+ [
+ "Lora Loader From HF"
+ ],
+ {
+ "title_aux": "ComfyUI-HfLoader"
+ }
+ ],
+ "https://github.com/omar92/ComfyUI-QualityOfLifeSuit_Omar92": [
+ [
+ "CLIPStringEncode _O",
+ "Chat completion _O",
+ "ChatGPT Simple _O",
+ "ChatGPT _O",
+ "ChatGPT compact _O",
+ "Chat_Completion _O",
+ "Chat_Message _O",
+ "Chat_Message_fromString _O",
+ "Concat Text _O",
+ "ConcatRandomNSP_O",
+ "Debug String _O",
+ "Debug Text _O",
+ "Debug Text route _O",
+ "Edit_image _O",
+ "Equation1param _O",
+ "Equation2params _O",
+ "GetImage_(Width&Height) _O",
+ "GetLatent_(Width&Height) _O",
+ "ImageScaleFactor _O",
+ "ImageScaleFactorSimple _O",
+ "LatentUpscaleFactor _O",
+ "LatentUpscaleFactorSimple _O",
+ "LatentUpscaleMultiply",
+ "Note _O",
+ "RandomNSP _O",
+ "Replace Text _O",
+ "String _O",
+ "Text _O",
+ "Text2Image _O",
+ "Trim Text _O",
+ "VAEDecodeParallel _O",
+ "combine_chat_messages _O",
+ "compine_chat_messages _O",
+ "concat Strings _O",
+ "create image _O",
+ "create_image _O",
+ "debug Completeion _O",
+ "debug messages_O",
+ "float _O",
+ "floatToInt _O",
+ "floatToText _O",
+ "int _O",
+ "intToFloat _O",
+ "load_openAI _O",
+ "replace String _O",
+ "replace String advanced _O",
+ "saveTextToFile _O",
+ "seed _O",
+ "selectLatentFromBatch _O",
+ "string2Image _O",
+ "trim String _O",
+ "variation_image _O"
+ ],
+ {
+ "title_aux": "Quality of life Suit:V2"
+ }
+ ],
+ "https://github.com/opvelll/ComfyUI_TextListProduct": [
+ [
+ "ProductedString",
+ "TextListProduct",
+ "TextListProductWithSingleA",
+ "TextListProductWithSingleB",
+ "TextListProductWithSingleBoth"
+ ],
+ {
+ "title_aux": "Comfy UI Text List Product"
+ }
+ ],
+ "https://github.com/osi1880vr/prompt_quill_comfyui": [
+ [
+ "PromptQuillGenerate",
+ "PromptQuillGenerateConditioning",
+ "PromptQuillSail",
+ "PromptQuillSailConditioning"
+ ],
+ {
+ "title_aux": "ComfyUI_Prompt-Quill"
+ }
+ ],
+ "https://github.com/ostris/ostris_nodes_comfyui": [
+ [
+ "LLM Pipe Loader - Ostris",
+ "LLM Prompt Upsampling - Ostris",
+ "One Seed - Ostris",
+ "Text Box - Ostris"
+ ],
+ {
+ "nodename_pattern": "- Ostris$",
+ "title_aux": "Ostris Nodes ComfyUI"
+ }
+ ],
+ "https://github.com/ownimage/ComfyUI-ownimage": [
+ [
+ "Caching Image Loader"
+ ],
+ {
+ "title_aux": "ComfyUI-ownimage"
+ }
+ ],
+ "https://github.com/oyvindg/ComfyUI-TrollSuite": [
+ [
+ "BinaryImageMask",
+ "ImagePadding",
+ "LoadLastImage",
+ "RandomMask",
+ "TransparentImage"
+ ],
+ {
+ "title_aux": "ComfyUI-TrollSuite"
+ }
+ ],
+ "https://github.com/oztrkoguz/ComfyUI_StoryCreator": [
+ [
+ "Kosmos2SamplerSimple2",
+ "KosmosLoader2",
+ "StoryLoader",
+ "StorySamplerSimple",
+ "Write2"
+ ],
+ {
+ "title_aux": "ComfyUI StoryCreater"
+ }
+ ],
+ "https://github.com/palant/extended-saveimage-comfyui": [
+ [
+ "SaveImageExtended"
+ ],
+ {
+ "title_aux": "Extended Save Image for ComfyUI"
+ }
+ ],
+ "https://github.com/palant/image-resize-comfyui": [
+ [
+ "ImageResize"
+ ],
+ {
+ "title_aux": "Image Resize for ComfyUI"
+ }
+ ],
+ "https://github.com/pamparamm/ComfyUI-vectorscope-cc": [
+ [
+ "NormalizeLatent",
+ "VectorscopeCC"
+ ],
+ {
+ "title_aux": "ComfyUI Vectorscope CC"
+ }
+ ],
+ "https://github.com/pamparamm/sd-perturbed-attention": [
+ [
+ "PerturbedAttention"
+ ],
+ {
+ "title_aux": "Perturbed-Attention Guidance"
+ }
+ ],
+ "https://github.com/pants007/comfy-pants": [
+ [
+ "CLIPTextEncodeAIO",
+ "Image Make Square"
+ ],
+ {
+ "title_aux": "pants"
+ }
+ ],
+ "https://github.com/paulo-coronado/comfy_clip_blip_node": [
+ [
+ "CLIPTextEncodeBLIP",
+ "CLIPTextEncodeBLIP-2",
+ "Example"
+ ],
+ {
+ "title_aux": "comfy_clip_blip_node"
+ }
+ ],
+ "https://github.com/philz1337x/ComfyUI-ClarityAI": [
+ [
+ "Clarity AI Upscaler"
+ ],
+ {
+ "title_aux": "\u2728 Clarity AI - Creative Image Upscaler and Enhancer for ComfyUI"
+ }
+ ],
+ "https://github.com/picturesonpictures/comfy_PoP": [
+ [
+ "AdaptiveCannyDetector_PoP",
+ "AnyAspectRatio",
+ "ConditioningMultiplier_PoP",
+ "ConditioningNormalizer_PoP",
+ "DallE3_PoP",
+ "EfficientAttention",
+ "LoadImageResizer_PoP",
+ "LoraStackLoader10_PoP",
+ "LoraStackLoader_PoP",
+ "VAEDecoderPoP",
+ "VAEEncoderPoP"
+ ],
+ {
+ "title_aux": "comfy_PoP"
+ }
+ ],
+ "https://github.com/pkpkTech/ComfyUI-SaveAVIF": [
+ [
+ "SaveAvif"
+ ],
+ {
+ "title_aux": "ComfyUI-SaveAVIF"
+ }
+ ],
+ "https://github.com/pkpkTech/ComfyUI-TemporaryLoader": [
+ [
+ "LoadTempCheckpoint",
+ "LoadTempLoRA",
+ "LoadTempMultiLoRA"
+ ],
+ {
+ "title_aux": "ComfyUI-TemporaryLoader"
+ }
+ ],
+ "https://github.com/portu-sim/comfyui_bmab": [
+ [
+ "BMAB Alpha Composit",
+ "BMAB Basic",
+ "BMAB Blend",
+ "BMAB Clip Text Encoder SDXL",
+ "BMAB Conditioning To Bind",
+ "BMAB Context",
+ "BMAB ControlNet",
+ "BMAB ControlNet IPAdapter",
+ "BMAB ControlNet Openpose",
+ "BMAB Crop",
+ "BMAB Detail Anything",
+ "BMAB Detect And Mask",
+ "BMAB Detection Crop",
+ "BMAB Detector",
+ "BMAB Edge",
+ "BMAB Extractor",
+ "BMAB Face Detailer",
+ "BMAB Google Gemini Prompt",
+ "BMAB Import Integrator",
+ "BMAB Integrator",
+ "BMAB KSampler",
+ "BMAB KSamplerHiresFix",
+ "BMAB KSamplerHiresFixWithUpscaler",
+ "BMAB KSamplerKohyaDeepShrink",
+ "BMAB Lama Inpaint",
+ "BMAB LoRA Loader",
+ "BMAB Load Image",
+ "BMAB Load Output Image",
+ "BMAB Masks To Images",
+ "BMAB Model To Bind",
+ "BMAB Noise Generator",
+ "BMAB Openpose Hand Detailer",
+ "BMAB Person Detailer",
+ "BMAB Preview Text",
+ "BMAB Prompt",
+ "BMAB Remove Background",
+ "BMAB Resize By Person",
+ "BMAB Resize By Ratio",
+ "BMAB Resize and Fill",
+ "BMAB SD-WebUI API BMAB Extension",
+ "BMAB SD-WebUI API ControlNet",
+ "BMAB SD-WebUI API I2I",
+ "BMAB SD-WebUI API Server",
+ "BMAB SD-WebUI API T2I",
+ "BMAB SD-WebUI API T2I Hires.Fix",
+ "BMAB Save Image",
+ "BMAB SeedGenerator",
+ "BMAB Segment Anything",
+ "BMAB Simple Hand Detailer",
+ "BMAB Subframe Hand Detailer",
+ "BMAB Text",
+ "BMAB Upscale With Model",
+ "BMAB Upscaler",
+ "BMAB Watermark"
+ ],
+ {
+ "title_aux": "comfyui_bmab"
+ }
+ ],
+ "https://github.com/prodogape/ComfyUI-EasyOCR": [
+ [
+ "Apply EasyOCR"
+ ],
+ {
+ "title_aux": "ComfyUI-EasyOCR"
+ }
+ ],
+ "https://github.com/prodogape/ComfyUI-Minio": [
+ [
+ "Load Image From Minio",
+ "Save Image To Minio",
+ "Set Minio Config"
+ ],
+ {
+ "title_aux": "Comfyui-Minio"
+ }
+ ],
+ "https://github.com/prodogape/ComfyUI-OmDet": [
+ [
+ "Apply OmDet"
+ ],
+ {
+ "title_aux": "ComfyUI-OmDet"
+ }
+ ],
+ "https://github.com/prodogape/Comfyui-Yolov8-JSON": [
+ [
+ "Apply Yolov8 Model",
+ "Apply Yolov8 Model Seg",
+ "Draw Labelme Json",
+ "Load Yolov8 Model",
+ "Load Yolov8 Model From Path",
+ "Save Labelme Json"
+ ],
+ {
+ "title_aux": "Comfyui-Yolov8-JSON"
+ }
+ ],
+ "https://github.com/pythongosssss/ComfyUI-Custom-Scripts": [
+ [
+ "CheckpointLoader|pysssss",
+ "ConstrainImageforVideo|pysssss",
+ "ConstrainImage|pysssss",
+ "LoadText|pysssss",
+ "LoraLoader|pysssss",
+ "MathExpression|pysssss",
+ "MultiPrimitive|pysssss",
+ "PlaySound|pysssss",
+ "Repeater|pysssss",
+ "ReroutePrimitive|pysssss",
+ "SaveText|pysssss",
+ "ShowText|pysssss",
+ "StringFunction|pysssss",
+ "SystemNotification|pysssss"
+ ],
+ {
+ "title_aux": "pythongosssss/ComfyUI-Custom-Scripts"
+ }
+ ],
+ "https://github.com/pythongosssss/ComfyUI-WD14-Tagger": [
+ [
+ "WD14Tagger|pysssss"
+ ],
+ {
+ "title_aux": "ComfyUI WD 1.4 Tagger"
+ }
+ ],
+ "https://github.com/qwixiwp/queuetools": [
+ [
+ "load images (queue tools)"
+ ],
+ {
+ "title_aux": "queuetools"
+ }
+ ],
+ "https://github.com/ramyma/A8R8_ComfyUI_nodes": [
+ [
+ "AttentionCouple",
+ "AttentionCoupleRegion",
+ "AttentionCoupleRegions",
+ "Base64ImageInput",
+ "Base64ImageOutput"
+ ],
+ {
+ "title_aux": "A8R8 ComfyUI Nodes"
+ }
+ ],
+ "https://github.com/randjtw/advance-aesthetic-score": [
+ [
+ "Adv_Scoring"
+ ],
+ {
+ "title_aux": "advance-aesthetic-score"
+ }
+ ],
+ "https://github.com/ratulrafsan/Comfyui-SAL-VTON": [
+ [
+ "SALVTON_Apply",
+ "SV_random"
+ ],
+ {
+ "title_aux": "Comfyui-SAL-VTON"
+ }
+ ],
+ "https://github.com/rcfcu2000/zhihuige-nodes-comfyui": [
+ [
+ "Combine ZHGMasks",
+ "Cover ZHGMasks",
+ "From ZHG pip",
+ "GroundingDinoModelLoader (zhihuige)",
+ "GroundingDinoPIPESegment (zhihuige)",
+ "GroundingDinoSAMSegment (zhihuige)",
+ "InvertMask (zhihuige)",
+ "SAMModelLoader (zhihuige)",
+ "To ZHG pip",
+ "ZHG FaceIndex",
+ "ZHG GetMaskArea",
+ "ZHG Image Levels",
+ "ZHG SaveImage",
+ "ZHG SmoothEdge",
+ "ZHG UltimateSDUpscale"
+ ],
+ {
+ "title_aux": "zhihuige-nodes-comfyui"
+ }
+ ],
+ "https://github.com/rcsaquino/comfyui-custom-nodes": [
+ [
+ "BackgroundRemover | rcsaquino",
+ "VAELoader | rcsaquino",
+ "VAEProcessor | rcsaquino"
+ ],
+ {
+ "title_aux": "rcsaquino/comfyui-custom-nodes"
+ }
+ ],
+ "https://github.com/receyuki/comfyui-prompt-reader-node": [
+ [
+ "SDAnyConverter",
+ "SDBatchLoader",
+ "SDLoraLoader",
+ "SDLoraSelector",
+ "SDParameterExtractor",
+ "SDParameterGenerator",
+ "SDPromptMerger",
+ "SDPromptReader",
+ "SDPromptSaver",
+ "SDTypeConverter"
+ ],
+ {
+ "author": "receyuki",
+ "description": "The ultimate solution for managing image metadata and multi-tool compatibility. ComfyUI node version of the SD Prompt Reader",
+ "nickname": "SD Prompt Reader",
+ "title": "SD Prompt Reader",
+ "title_aux": "SD Prompt Reader"
+ }
+ ],
+ "https://github.com/redhottensors/ComfyUI-Prediction": [
+ [
+ "AvoidErasePrediction",
+ "CFGPrediction",
+ "CharacteristicGuidancePrediction",
+ "CombinePredictions",
+ "ConditionedPrediction",
+ "EarlyMiddleLatePrediction",
+ "InterpolatePredictions",
+ "LogSigmas",
+ "PerpNegPrediction",
+ "SamplerCustomPrediction",
+ "ScalePrediction",
+ "ScaledGuidancePrediction",
+ "SelectSigmas",
+ "SplitAtSigma",
+ "SwitchPredictions"
+ ],
+ {
+ "author": "RedHotTensors",
+ "description": "Fully customizable Classifer Free Guidance for ComfyUI",
+ "nickname": "ComfyUI-Prediction",
+ "title": "ComfyUI-Prediction",
+ "title_aux": "ComfyUI-Prediction"
+ }
+ ],
+ "https://github.com/rgthree/rgthree-comfy": [
+ [],
+ {
+ "author": "rgthree",
+ "description": "A bunch of nodes I created that I also find useful.",
+ "nickname": "rgthree",
+ "nodename_pattern": " \\(rgthree\\)$",
+ "title": "Comfy Nodes",
+ "title_aux": "rgthree's ComfyUI Nodes"
+ }
+ ],
+ "https://github.com/rhdunn/comfyui-bus-plugin": [
+ [
+ "ComfyBus.CLIPEncodedPromptBusNode",
+ "ComfyBus.CheckpointBusNode",
+ "ComfyBus.ImageBusNode",
+ "ComfyBus.ImageParameterBusNode",
+ "ComfyBus.ImageScaleToSideParameterBusNode",
+ "ComfyBus.ImageSizeBusNode",
+ "ComfyBus.LatentImageBusNode",
+ "ComfyBus.LatentImageParameterBusNode",
+ "ComfyBus.PromptBusNode",
+ "ComfyBus.PromptSDXLBusNode"
+ ],
+ {
+ "title_aux": "comfyui-bus-plugin"
+ }
+ ],
+ "https://github.com/richinsley/Comfy-LFO": [
+ [
+ "LFO_Pulse",
+ "LFO_Sawtooth",
+ "LFO_Sine",
+ "LFO_Square",
+ "LFO_Triangle"
+ ],
+ {
+ "title_aux": "Comfy-LFO"
+ }
+ ],
+ "https://github.com/ricklove/comfyui-ricklove": [
+ [
+ "RL_Crop_Resize",
+ "RL_Crop_Resize_Batch",
+ "RL_Finetune_Analyze",
+ "RL_Finetune_Analyze_Batch",
+ "RL_Finetune_Variable",
+ "RL_Image_Shadow",
+ "RL_Image_Threshold_Channels",
+ "RL_Internet_Search",
+ "RL_LoadImageSequence",
+ "RL_Optical_Flow_Dip",
+ "RL_SaveImageSequence",
+ "RL_Uncrop",
+ "RL_Warp_Image",
+ "RL_Zoe_Depth_Map_Preprocessor",
+ "RL_Zoe_Depth_Map_Preprocessor_Raw_Infer",
+ "RL_Zoe_Depth_Map_Preprocessor_Raw_Process"
+ ],
+ {
+ "title_aux": "comfyui-ricklove"
+ }
+ ],
+ "https://github.com/risunobushi/comfyUI_FrequencySeparation_RGB-HSV": [
+ [
+ "FrequencyCombination",
+ "FrequencyCombinationHSV",
+ "FrequencySeparation",
+ "FrequencySeparationHSV"
+ ],
+ {
+ "title_aux": "comfyUI_FrequencySeparation_RGB-HSV"
+ }
+ ],
+ "https://github.com/rklaffehn/rk-comfy-nodes": [
+ [
+ "RK_CivitAIAddHashes",
+ "RK_CivitAIMetaChecker"
+ ],
+ {
+ "title_aux": "rk-comfy-nodes"
+ }
+ ],
+ "https://github.com/romeobuilderotti/ComfyUI-PNG-Metadata": [
+ [
+ "SetMetadataAll",
+ "SetMetadataString"
+ ],
+ {
+ "title_aux": "ComfyUI PNG Metadata"
+ }
+ ],
+ "https://github.com/ronniebasak/ComfyUI-Tara-LLM-Integration": [
+ [
+ "TaraAdvancedComposition",
+ "TaraApiKeyLoader",
+ "TaraApiKeySaver",
+ "TaraDaisyChainNode",
+ "TaraLLMConfig",
+ "TaraPresetLLMConfig",
+ "TaraPrompter",
+ "TaraPrompterAdvanced"
+ ],
+ {
+ "title_aux": "ComfyUI-Tara-LLM-Integration"
+ }
+ ],
+ "https://github.com/royceschultz/ComfyUI-Notifications": [
+ [
+ "Notif-PlaySound",
+ "Notif-SystemNotification",
+ "Notif-UnifiedNotification",
+ "Notif-Webhook"
+ ],
+ {
+ "title_aux": "ComfyUI-Notifications"
+ }
+ ],
+ "https://github.com/royceschultz/ComfyUI-TranscriptionTools": [
+ [
+ "TT-AudioSink",
+ "TT-ConvertVhsAudioToAudio",
+ "TT-LoadAudio",
+ "TT-LoadBatch",
+ "TT-LoadVideoAudio",
+ "TT-LoadWhisperModel",
+ "TT-WhisperTranscription",
+ "TT-WhisperTranscriptionBatch"
+ ],
+ {
+ "title_aux": "ComfyUI-TranscriptionTools"
+ }
+ ],
+ "https://github.com/rui40000/RUI-Nodes": [
+ [
+ "ABCondition",
+ "CharacterCount"
+ ],
+ {
+ "title_aux": "RUI-Nodes"
+ }
+ ],
+ "https://github.com/ruiqutech/ComfyUI-RuiquNodes": [
+ [
+ "EvaluateListMultiple1",
+ "EvaluateListMultiple3",
+ "EvaluateListMultiple6",
+ "EvaluateListMultiple9",
+ "EvaluateMultiple1",
+ "EvaluateMultiple3",
+ "EvaluateMultiple6",
+ "EvaluateMultiple9",
+ "ImageDilate",
+ "ImageErode",
+ "ListPath",
+ "MaskDilate",
+ "MaskErode",
+ "PreviewMask",
+ "RangeSplit",
+ "SaveMask",
+ "StringAsAny",
+ "StringConcat1",
+ "StringConcat3",
+ "StringConcat6",
+ "StringConcat9",
+ "StringPathStem",
+ "TermsToList",
+ "VAEDecodeSave"
+ ],
+ {
+ "title_aux": "RuiquNodes for ComfyUI"
+ }
+ ],
+ "https://github.com/runtime44/comfyui_r44_nodes": [
+ [
+ "Runtime44ColorMatch",
+ "Runtime44DynamicKSampler",
+ "Runtime44FilmGrain",
+ "Runtime44ImageEnhance",
+ "Runtime44ImageOverlay",
+ "Runtime44ImageResizer",
+ "Runtime44ImageToNoise",
+ "Runtime44IterativeUpscaleFactor",
+ "Runtime44MaskSampler",
+ "Runtime44TiledMaskSampler",
+ "Runtime44Upscaler"
+ ],
+ {
+ "title_aux": "Runtime44 ComfyUI Nodes"
+ }
+ ],
+ "https://github.com/s1dlx/comfy_meh/raw/main/meh.py": [
+ [
+ "MergingExecutionHelper"
+ ],
+ {
+ "title_aux": "comfy_meh"
+ }
+ ],
+ "https://github.com/saftle/suplex_comfy_nodes": [
+ [
+ "ControlNet Selector",
+ "ControlNetOptionalLoader",
+ "DiffusersSelector",
+ "SaveImageJPGNoMeta"
+ ],
+ {
+ "title_aux": "Suplex Misc ComfyUI Nodes"
+ }
+ ],
+ "https://github.com/sdfxai/SDFXBridgeForComfyUI": [
+ [
+ "SDFXClipTextEncode"
+ ],
+ {
+ "title_aux": "SDFXBridgeForComfyUI - ComfyUI Custom Node for SDFX Integration"
+ }
+ ],
+ "https://github.com/seanlynch/comfyui-optical-flow": [
+ [
+ "Apply optical flow",
+ "Compute optical flow",
+ "Visualize optical flow"
+ ],
+ {
+ "title_aux": "ComfyUI Optical Flow"
+ }
+ ],
+ "https://github.com/seanlynch/srl-nodes": [
+ [
+ "SRL Conditional Interrrupt",
+ "SRL Eval",
+ "SRL Filter Image List",
+ "SRL Format String"
+ ],
+ {
+ "title_aux": "SRL's nodes"
+ }
+ ],
+ "https://github.com/seghier/ComfyUI_LibreTranslate/raw/main/translate_node.py": [
+ [
+ "LibreTranslate"
+ ],
+ {
+ "title_aux": "ComfyUI_LibreTranslate"
+ }
+ ],
+ "https://github.com/sergekatzmann/ComfyUI_Nimbus-Pack": [
+ [
+ "AdjustAndRoundDimensions",
+ "AspectRatioMobileDevices",
+ "ImageResizeAndCropNode",
+ "ImageSquareAdapterNode",
+ "PopularScreenResolutions"
+ ],
+ {
+ "title_aux": "ComfyUI_Nimbus-Pack"
+ }
+ ],
+ "https://github.com/shadowcz007/comfyui-Image-reward": [
+ [
+ "ImageBatchToList_",
+ "ImageRewardScore_"
+ ],
+ {
+ "title_aux": "comfyui-Image-reward"
+ }
+ ],
+ "https://github.com/shadowcz007/comfyui-consistency-decoder": [
+ [
+ "VAEDecodeConsistencyDecoder",
+ "VAELoaderConsistencyDecoder"
+ ],
+ {
+ "title_aux": "Consistency Decoder"
+ }
+ ],
+ "https://github.com/shadowcz007/comfyui-edit-mask": [
+ [
+ "EditMask"
+ ],
+ {
+ "title_aux": "comfyui-edit-mask"
+ }
+ ],
+ "https://github.com/shadowcz007/comfyui-liveportrait": [
+ [
+ "FaceCropInfo",
+ "LivePortraitNode",
+ "Retargeting"
+ ],
+ {
+ "title_aux": "comfyui-liveportrait"
+ }
+ ],
+ "https://github.com/shadowcz007/comfyui-mixlab-nodes": [
+ [
+ "3DImage",
+ "AppInfo",
+ "ApplyVisualStylePrompting_",
+ "AreaToMask",
+ "AudioPlay",
+ "CenterImage",
+ "CkptNames_",
+ "Color",
+ "ComparingTwoFrames_",
+ "CompositeImages_",
+ "DynamicDelayProcessor",
+ "EmbeddingPrompt",
+ "EnhanceImage",
+ "FaceToMask",
+ "FeatheredMask",
+ "FloatSlider",
+ "FloatingVideo",
+ "Font",
+ "GLIGENTextBoxApply_Advanced",
+ "GetImageSize_",
+ "GradientImage",
+ "GridDisplayAndSave",
+ "GridInput",
+ "GridOutput",
+ "ImageColorTransfer",
+ "ImageCropByAlpha",
+ "ImageListToBatch_",
+ "ImagesPrompt_",
+ "IncrementingListNode_",
+ "IntNumber",
+ "JoinWithDelimiter",
+ "LimitNumber",
+ "ListSplit_",
+ "LoadImagesFromPath",
+ "LoadImagesFromURL",
+ "LoadImagesToBatch",
+ "LoraNames_",
+ "LoraPrompt",
+ "MaskListMerge_",
+ "MaskListReplace_",
+ "MergeLayers",
+ "MirroredImage",
+ "MultiplicationNode",
+ "NewLayer",
+ "NoiseImage",
+ "OutlineMask",
+ "PreviewMask_",
+ "PromptImage",
+ "PromptSimplification",
+ "PromptSlide",
+ "RandomPrompt",
+ "ResizeImageMixlab",
+ "SamplerNames_",
+ "SaveImageAndMetadata_",
+ "SaveImageToLocal",
+ "ScreenShare",
+ "Seed_",
+ "ShowLayer",
+ "SmoothMask",
+ "SpeechRecognition",
+ "SpeechSynthesis",
+ "SplitImage",
+ "SplitLongMask",
+ "StyleAlignedBatchAlign_",
+ "StyleAlignedReferenceSampler_",
+ "StyleAlignedSampleReferenceLatents_",
+ "SvgImage",
+ "SwitchByIndex",
+ "TESTNODE_",
+ "TESTNODE_TOKEN",
+ "TextImage",
+ "TextInput_",
+ "TextToNumber",
+ "TransparentImage",
+ "VAEDecodeConsistencyDecoder",
+ "VAELoaderConsistencyDecoder"
+ ],
+ {
+ "title_aux": "comfyui-mixlab-nodes"
+ }
+ ],
+ "https://github.com/shadowcz007/comfyui-sound-lab": [
+ [
+ "AudioPlay",
+ "Musicgen_",
+ "StableAudio_"
+ ],
+ {
+ "title_aux": "comfyui-sound-lab"
+ }
+ ],
+ "https://github.com/shadowcz007/comfyui-ultralytics-yolo": [
+ [
+ "DetectByLabel"
+ ],
+ {
+ "title_aux": "comfyui-ultralytics-yolo"
+ }
+ ],
+ "https://github.com/shi3z/ComfyUI_Memeplex_DALLE": [
+ [
+ "DallERender",
+ "GPT",
+ "MemeplexCustomSDXLRender",
+ "MemeplexRender",
+ "TextInput",
+ "TextSend"
+ ],
+ {
+ "title_aux": "ComfyUI_Memeplex_DALLE"
+ }
+ ],
+ "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus": [
+ [
+ "PhotoMakerEncodePlus",
+ "PhotoMakerStyles",
+ "PrepImagesForClipVisionFromPath"
+ ],
+ {
+ "title_aux": "ComfyUI PhotoMaker Plus"
+ }
+ ],
+ "https://github.com/shiimizu/ComfyUI-TiledDiffusion": [
+ [
+ "NoiseInversion",
+ "TiledDiffusion",
+ "VAEDecodeTiled_TiledDiffusion",
+ "VAEEncodeTiled_TiledDiffusion"
+ ],
+ {
+ "title_aux": "Tiled Diffusion & VAE for ComfyUI"
+ }
+ ],
+ "https://github.com/shiimizu/ComfyUI_smZNodes": [
+ [
+ "smZ CLIPTextEncode",
+ "smZ Settings"
+ ],
+ {
+ "title_aux": "smZNodes"
+ }
+ ],
+ "https://github.com/shingo1228/ComfyUI-SDXL-EmptyLatentImage": [
+ [
+ "SDXL Empty Latent Image"
+ ],
+ {
+ "title_aux": "ComfyUI-SDXL-EmptyLatentImage"
+ }
+ ],
+ "https://github.com/shingo1228/ComfyUI-send-eagle-slim": [
+ [
+ "Send Eagle with text",
+ "Send Webp Image to Eagle"
+ ],
+ {
+ "title_aux": "ComfyUI-send-Eagle(slim)"
+ }
+ ],
+ "https://github.com/shobhitic/ComfyUI-PlusMinusTextClip": [
+ [
+ "PlusMinusTextClip"
+ ],
+ {
+ "title_aux": "PlusMinusTextClip - Single node for Positive and Negative Prompts"
+ }
+ ],
+ "https://github.com/shockz0rz/ComfyUI_InterpolateEverything": [
+ [
+ "OpenposePreprocessorInterpolate"
+ ],
+ {
+ "title_aux": "InterpolateEverything"
+ }
+ ],
+ "https://github.com/shockz0rz/comfy-easy-grids": [
+ [
+ "FloatToText",
+ "GridFloatList",
+ "GridFloats",
+ "GridIntList",
+ "GridInts",
+ "GridLoras",
+ "GridStringList",
+ "GridStrings",
+ "ImageGridCommander",
+ "IntToText",
+ "SaveImageGrid",
+ "TextConcatenator"
+ ],
+ {
+ "title_aux": "comfy-easy-grids"
+ }
+ ],
+ "https://github.com/sipherxyz/comfyui-art-venture": [
+ [
+ "AV_AwsBedrockClaudeApi",
+ "AV_AwsBedrockMistralApi",
+ "AV_CheckpointMerge",
+ "AV_CheckpointModelsToParametersPipe",
+ "AV_CheckpointSave",
+ "AV_ClaudeApi",
+ "AV_ControlNetEfficientLoader",
+ "AV_ControlNetEfficientLoaderAdvanced",
+ "AV_ControlNetEfficientStacker",
+ "AV_ControlNetEfficientStackerSimple",
+ "AV_ControlNetLoader",
+ "AV_ControlNetPreprocessor",
+ "AV_LLMApiConfig",
+ "AV_LLMChat",
+ "AV_LLMCompletion",
+ "AV_LLMMessage",
+ "AV_LoraListLoader",
+ "AV_LoraListStacker",
+ "AV_LoraLoader",
+ "AV_OpenAIApi",
+ "AV_ParametersPipeToCheckpointModels",
+ "AV_ParametersPipeToPrompts",
+ "AV_PromptsToParametersPipe",
+ "AV_SAMLoader",
+ "AV_VAELoader",
+ "AspectRatioSelector",
+ "BLIPCaption",
+ "BLIPLoader",
+ "BooleanPrimitive",
+ "CheckpointNameSelector",
+ "ColorBlend",
+ "ColorCorrect",
+ "DeepDanbooruCaption",
+ "DependenciesEdit",
+ "Fooocus_KSampler",
+ "Fooocus_KSamplerAdvanced",
+ "GetBoolFromJson",
+ "GetFloatFromJson",
+ "GetIntFromJson",
+ "GetObjectFromJson",
+ "GetSAMEmbedding",
+ "GetTextFromJson",
+ "ISNetLoader",
+ "ISNetSegment",
+ "ImageAlphaComposite",
+ "ImageApplyChannel",
+ "ImageExtractChannel",
+ "ImageGaussianBlur",
+ "ImageMuxer",
+ "ImageRepeat",
+ "ImageScaleDown",
+ "ImageScaleDownBy",
+ "ImageScaleDownToSize",
+ "ImageScaleToMegapixels",
+ "LaMaInpaint",
+ "LoadImageAsMaskFromUrl",
+ "LoadImageFromUrl",
+ "LoadJsonFromUrl",
+ "MergeModels",
+ "NumberScaler",
+ "OverlayInpaintedImage",
+ "OverlayInpaintedLatent",
+ "PrepareImageAndMaskForInpaint",
+ "QRCodeGenerator",
+ "RandomFloat",
+ "RandomInt",
+ "SAMEmbeddingToImage",
+ "SDXLAspectRatioSelector",
+ "SDXLPromptStyler",
+ "SeedSelector",
+ "StringToInt",
+ "StringToNumber"
+ ],
+ {
+ "title_aux": "comfyui-art-venture"
+ }
+ ],
+ "https://github.com/skfoo/ComfyUI-Coziness": [
+ [
+ "LoraTextExtractor-b1f83aa2",
+ "MultiLoraLoader-70bf3d77"
+ ],
+ {
+ "title_aux": "ComfyUI-Coziness"
+ }
+ ],
+ "https://github.com/slyt/comfyui-ollama-nodes": [
+ [
+ "BooleanToString",
+ "DownloadHuggingfaceModel",
+ "FloatToString",
+ "GenerateOllama",
+ "IntToString",
+ "ListModels",
+ "ListToString",
+ "PullModel"
+ ],
+ {
+ "title_aux": "comfyui-ollama-nodes"
+ }
+ ],
+ "https://github.com/smagnetize/kb-comfyui-nodes": [
+ [
+ "SingleImageDataUrlLoader"
+ ],
+ {
+ "title_aux": "kb-comfyui-nodes"
+ }
+ ],
+ "https://github.com/smthemex/ComfyUI_AnyDoor": [
+ [
+ "AnyDoor_LoadModel",
+ "AnyDoor_img2img"
+ ],
+ {
+ "title_aux": "ComfyUI_AnyDoor"
+ }
+ ],
+ "https://github.com/smthemex/ComfyUI_ChatGLM_API": [
+ [
+ "Glm_4_9b_Chat",
+ "Glm_4v_9b",
+ "Glm_Lcoal_Or_Repo",
+ "ZhipuaiApi_Character",
+ "ZhipuaiApi_Txt",
+ "ZhipuaiApi_img"
+ ],
+ {
+ "title_aux": "ComfyUI_ChatGLM_API"
+ }
+ ],
+ "https://github.com/smthemex/ComfyUI_CustomNet": [
+ [
+ "CustomNet_Plus"
+ ],
+ {
+ "title_aux": "ComfyUI_CustomNet"
+ }
+ ],
+ "https://github.com/smthemex/ComfyUI_HiDiffusion_Pro": [
+ [
+ "HI_Diffusers_Model_Loader",
+ "Hi_Sampler"
+ ],
+ {
+ "title_aux": "ComfyUI_HiDiffusion_Pro"
+ }
+ ],
+ "https://github.com/smthemex/ComfyUI_ID_Animator": [
+ [
+ "ID_Animator",
+ "ID_Repo_Choice"
+ ],
+ {
+ "title_aux": "ComfyUI_ID_Animator"
+ }
+ ],
+ "https://github.com/smthemex/ComfyUI_Llama3_8B": [
+ [
+ "ChatQA_1p5_8b",
+ "Local_Or_Repo_Choice",
+ "Meta_Llama3_8B",
+ "MiniCPM_Llama3_V25"
+ ],
+ {
+ "title_aux": "ComfyUI_Llama3_8B"
+ }
+ ],
+ "https://github.com/smthemex/ComfyUI_MS_Diffusion": [
+ [
+ "MS_Comic_Type",
+ "MSdiffusion_Model_Loader",
+ "MSdiffusion_Sampler"
+ ],
+ {
+ "title_aux": "ComfyUI_MS_Diffusion"
+ }
+ ],
+ "https://github.com/smthemex/ComfyUI_ParlerTTS": [
+ [
+ "PromptToAudio"
+ ],
+ {
+ "title_aux": "ComfyUI_ParlerTTS"
+ }
+ ],
+ "https://github.com/smthemex/ComfyUI_Pic2Story": [
+ [
+ "Pic2Story"
+ ],
+ {
+ "title_aux": "ComfyUI_Pic2Story"
+ }
+ ],
+ "https://github.com/smthemex/ComfyUI_Pipeline_Tool": [
+ [
+ "Pipeline_Tool"
+ ],
+ {
+ "title_aux": "ComfyUI_Pipeline_Tool"
+ }
+ ],
+ "https://github.com/smthemex/ComfyUI_Pops": [
+ [
+ "Imgae_To_Path",
+ "Pops_Prior_Embedding",
+ "Pops_Repo_Choice",
+ "Pops_Sampler"
+ ],
+ {
+ "title_aux": "ComfyUI_Pops"
+ }
+ ],
+ "https://github.com/smthemex/ComfyUI_StableAudio_Open": [
+ [
+ "StableAudio_Open",
+ "Use_LocalModel_Or_Repo"
+ ],
+ {
+ "title_aux": "ComfyUI_StableAudio_Open"
+ }
+ ],
+ "https://github.com/smthemex/ComfyUI_StoryDiffusion": [
+ [
+ "Comic_Type",
+ "Pre_Translate_prompt",
+ "Storydiffusion_Model_Loader",
+ "Storydiffusion_Sampler"
+ ],
+ {
+ "title_aux": "ComfyUI_StoryDiffusion"
+ }
+ ],
+ "https://github.com/smthemex/ComfyUI_Streamv2v_Plus": [
+ [
+ "Load_Stream",
+ "Text2IMG",
+ "Video2Video",
+ "WebCam2Video"
+ ],
+ {
+ "title_aux": "ComfyUI_Streamv2v_Plus"
+ }
+ ],
+ "https://github.com/space-nuko/ComfyUI-Disco-Diffusion": [
+ [
+ "DiscoDiffusion_DiscoDiffusion",
+ "DiscoDiffusion_DiscoDiffusionExtraSettings",
+ "DiscoDiffusion_GuidedDiffusionLoader",
+ "DiscoDiffusion_OpenAICLIPLoader"
+ ],
+ {
+ "title_aux": "Disco Diffusion"
+ }
+ ],
+ "https://github.com/space-nuko/ComfyUI-OpenPose-Editor": [
+ [
+ "Nui.OpenPoseEditor"
+ ],
+ {
+ "title_aux": "OpenPose Editor"
+ }
+ ],
+ "https://github.com/space-nuko/nui-suite": [
+ [
+ "Nui.DynamicPromptsTextGen",
+ "Nui.FeelingLuckyTextGen",
+ "Nui.OutputString"
+ ],
+ {
+ "title_aux": "nui suite"
+ }
+ ],
+ "https://github.com/spacepxl/ComfyUI-Florence-2": [
+ [
+ "Florence2",
+ "Florence2Postprocess",
+ "Florence2PostprocessAll",
+ "LoadFlorence2Model"
+ ],
+ {
+ "title_aux": "ComfyUI-Florence-2"
+ }
+ ],
+ "https://github.com/spacepxl/ComfyUI-HQ-Image-Save": [
+ [
+ "LoadEXR",
+ "LoadEXRFrames",
+ "LoadLatentEXR",
+ "SaveEXR",
+ "SaveEXRFrames",
+ "SaveLatentEXR",
+ "SaveTiff"
+ ],
+ {
+ "title_aux": "ComfyUI-HQ-Image-Save"
+ }
+ ],
+ "https://github.com/spacepxl/ComfyUI-Image-Filters": [
+ [
+ "AdainFilterLatent",
+ "AdainImage",
+ "AdainLatent",
+ "AlphaClean",
+ "AlphaMatte",
+ "BatchAlign",
+ "BatchAverageImage",
+ "BatchAverageUnJittered",
+ "BatchNormalizeImage",
+ "BatchNormalizeLatent",
+ "BetterFilmGrain",
+ "BilateralFilterImage",
+ "BlurImageFast",
+ "BlurMaskFast",
+ "ClampOutliers",
+ "ColorMatchImage",
+ "ConvertNormals",
+ "DifferenceChecker",
+ "DilateErodeMask",
+ "EnhanceDetail",
+ "ExposureAdjust",
+ "FrequencyCombine",
+ "FrequencySeparate",
+ "GameOfLife",
+ "GuidedFilterAlpha",
+ "GuidedFilterImage",
+ "ImageConstant",
+ "ImageConstantHSV",
+ "InstructPixToPixConditioningAdvanced",
+ "JitterImage",
+ "Keyer",
+ "LatentNormalizeShuffle",
+ "LatentStats",
+ "MedianFilterImage",
+ "NormalMapSimple",
+ "OffsetLatentImage",
+ "PrintSigmas",
+ "RelightSimple",
+ "RemapRange",
+ "RestoreDetail",
+ "SharpenFilterLatent",
+ "ShuffleChannels",
+ "Tonemap",
+ "UnJitterImage",
+ "UnTonemap",
+ "VisualizeLatents"
+ ],
+ {
+ "title_aux": "ComfyUI-Image-Filters"
+ }
+ ],
+ "https://github.com/spacepxl/ComfyUI-RAVE": [
+ [
+ "ConditioningDebug",
+ "ImageGridCompose",
+ "ImageGridDecompose",
+ "KSamplerRAVE",
+ "LatentGridCompose",
+ "LatentGridDecompose"
+ ],
+ {
+ "title_aux": "ComfyUI-RAVE"
+ }
+ ],
+ "https://github.com/spacepxl/ComfyUI-StyleGan": [
+ [
+ "BatchAverageStyleGANLatents",
+ "BlendStyleGANLatents",
+ "GenerateStyleGANLatent",
+ "LoadStyleGAN",
+ "StyleGANInversion",
+ "StyleGANLatentFromBatch",
+ "StyleGANSampler"
+ ],
+ {
+ "title_aux": "ComfyUI-StyleGan"
+ }
+ ],
+ "https://github.com/spinagon/ComfyUI-seam-carving": [
+ [
+ "SeamCarving"
+ ],
+ {
+ "title_aux": "ComfyUI-seam-carving"
+ }
+ ],
+ "https://github.com/spinagon/ComfyUI-seamless-tiling": [
+ [
+ "CircularVAEDecode",
+ "MakeCircularVAE",
+ "OffsetImage",
+ "SeamlessTile"
+ ],
+ {
+ "title_aux": "Seamless tiling Node for ComfyUI"
+ }
+ ],
+ "https://github.com/spro/comfyui-mirror": [
+ [
+ "LatentMirror"
+ ],
+ {
+ "title_aux": "Latent Mirror node for ComfyUI"
+ }
+ ],
+ "https://github.com/ssitu/ComfyUI_UltimateSDUpscale": [
+ [
+ "UltimateSDUpscale",
+ "UltimateSDUpscaleCustomSample",
+ "UltimateSDUpscaleNoUpscale"
+ ],
+ {
+ "title_aux": "UltimateSDUpscale"
+ }
+ ],
+ "https://github.com/ssitu/ComfyUI_fabric": [
+ [
+ "FABRICPatchModel",
+ "FABRICPatchModelAdv",
+ "KSamplerAdvFABRICAdv",
+ "KSamplerFABRIC",
+ "KSamplerFABRICAdv"
+ ],
+ {
+ "title_aux": "ComfyUI fabric"
+ }
+ ],
+ "https://github.com/ssitu/ComfyUI_restart_sampling": [
+ [
+ "KRestartSampler",
+ "KRestartSamplerAdv",
+ "KRestartSamplerCustom",
+ "KRestartSamplerSimple",
+ "RestartSampler",
+ "RestartScheduler"
+ ],
+ {
+ "title_aux": "Restart Sampling"
+ }
+ ],
+ "https://github.com/ssitu/ComfyUI_roop": [
+ [
+ "RoopImproved",
+ "roop"
+ ],
+ {
+ "title_aux": "ComfyUI roop"
+ }
+ ],
+ "https://github.com/stavsap/comfyui-ollama": [
+ [
+ "OllamaGenerate",
+ "OllamaGenerateAdvance",
+ "OllamaVision"
+ ],
+ {
+ "title_aux": "ComfyUI Ollama"
+ }
+ ],
+ "https://github.com/storyicon/comfyui_musev_evolved": [
+ [
+ "AnimationZoom (comfyui_musev_evolved)",
+ "ImageSelector (comfyui_musev_evolved)",
+ "MuseVImg2Vid V1 (comfyui_musev_evolved)",
+ "MuseVPredictor V1 (comfyui_musev_evolved)"
+ ],
+ {
+ "author": "infguo",
+ "title_aux": "ComfyUI MuseV Evolved"
+ }
+ ],
+ "https://github.com/storyicon/comfyui_segment_anything": [
+ [
+ "GroundingDinoModelLoader (segment anything)",
+ "GroundingDinoSAMSegment (segment anything)",
+ "InvertMask (segment anything)",
+ "IsMaskEmpty",
+ "SAMModelLoader (segment anything)"
+ ],
+ {
+ "title_aux": "segment anything"
+ }
+ ],
+ "https://github.com/strimmlarn/ComfyUI_Strimmlarns_aesthetic_score": [
+ [
+ "AesthetlcScoreSorter",
+ "CalculateAestheticScore",
+ "LoadAesteticModel",
+ "ScoreToNumber"
+ ],
+ {
+ "title_aux": "ComfyUI_Strimmlarns_aesthetic_score"
+ }
+ ],
+ "https://github.com/styler00dollar/ComfyUI-deepcache": [
+ [
+ "DeepCache"
+ ],
+ {
+ "title_aux": "ComfyUI-deepcache"
+ }
+ ],
+ "https://github.com/styler00dollar/ComfyUI-sudo-latent-upscale": [
+ [
+ "SudoLatentUpscale"
+ ],
+ {
+ "title_aux": "ComfyUI-sudo-latent-upscale"
+ }
+ ],
+ "https://github.com/sugarkwork/comfyui_cohere": [
+ [
+ "SimpleCohereNode"
+ ],
+ {
+ "title_aux": "comfyui_cohere"
+ }
+ ],
+ "https://github.com/sugarkwork/comfyui_tag_fillter": [
+ [
+ "TagFilter",
+ "TagMerger",
+ "TagRemover",
+ "TagReplace",
+ "TagSwitcher"
+ ],
+ {
+ "title_aux": "comfyui_tag_filter"
+ }
+ ],
+ "https://github.com/superyoman/comfyui_lumaAPI": [
+ [
+ "LUMA_API_YoC",
+ "LUMA_API_result_YoC"
+ ],
+ {
+ "title_aux": "comfyui_lumaAPI"
+ }
+ ],
+ "https://github.com/syllebra/bilbox-comfyui": [
+ [
+ "BilboXLut",
+ "BilboXPhotoPrompt",
+ "BilboXVignette"
+ ],
+ {
+ "title_aux": "BilboX's ComfyUI Custom Nodes"
+ }
+ ],
+ "https://github.com/sylym/comfy_vid2vid": [
+ [
+ "CheckpointLoaderSimpleSequence",
+ "DdimInversionSequence",
+ "KSamplerSequence",
+ "LoadImageMaskSequence",
+ "LoadImageSequence",
+ "LoraLoaderSequence",
+ "SetLatentNoiseSequence",
+ "TrainUnetSequence",
+ "VAEEncodeForInpaintSequence"
+ ],
+ {
+ "title_aux": "Vid2vid"
+ }
+ ],
+ "https://github.com/szhublox/ambw_comfyui": [
+ [
+ "Auto Merge Block Weighted",
+ "CLIPMergeSimple",
+ "CheckpointSave",
+ "ModelMergeBlocks",
+ "ModelMergeSimple"
+ ],
+ {
+ "title_aux": "Auto-MBW"
+ }
+ ],
+ "https://github.com/taabata/Comfy_Syrian_Falcon_Nodes/raw/main/SyrianFalconNodes.py": [
+ [
+ "CompositeImage",
+ "KSamplerAlternate",
+ "KSamplerPromptEdit",
+ "KSamplerPromptEditAndAlternate",
+ "LoopBack",
+ "QRGenerate",
+ "WordAsImage"
+ ],
+ {
+ "title_aux": "Syrian Falcon Nodes"
+ }
+ ],
+ "https://github.com/taabata/LCM_Inpaint-Outpaint_Comfy": [
+ [
+ "ComfyNodesToSaveCanvas",
+ "FloatNumber",
+ "FreeU_LCM",
+ "ImageDims",
+ "ImageOutputToComfyNodes",
+ "ImageResize",
+ "ImageShuffle",
+ "ImageSwitch",
+ "LCMGenerate",
+ "LCMGenerate_ReferenceOnly",
+ "LCMGenerate_SDTurbo",
+ "LCMGenerate_img2img",
+ "LCMGenerate_img2img_IPAdapter",
+ "LCMGenerate_img2img_controlnet",
+ "LCMGenerate_inpaintv2",
+ "LCMGenerate_inpaintv3",
+ "LCMLoader",
+ "LCMLoader_RefInpaint",
+ "LCMLoader_ReferenceOnly",
+ "LCMLoader_SDTurbo",
+ "LCMLoader_controlnet",
+ "LCMLoader_controlnet_inpaint",
+ "LCMLoader_img2img",
+ "LCMLoraLoader_inpaint",
+ "LCMLoraLoader_ipadapter",
+ "LCMLora_inpaint",
+ "LCMLora_inpaintV2",
+ "LCMLora_ipadapter",
+ "LCMT2IAdapter",
+ "LCM_IPAdapter",
+ "LCM_IPAdapter_inpaint",
+ "LCM_outpaint_prep",
+ "LoadImageNode_LCM",
+ "Loader_SegmindVega",
+ "OutpaintCanvasTool",
+ "SaveImage_Canvas",
+ "SaveImage_LCM",
+ "SaveImage_Puzzle",
+ "SaveImage_PuzzleV2",
+ "SegmindVega",
+ "SettingsSwitch",
+ "stitch"
+ ],
+ {
+ "title_aux": "LCM_Inpaint-Outpaint_Comfy"
+ }
+ ],
+ "https://github.com/talesofai/comfyui-browser": [
+ [
+ "DifyTextGenerator //Browser",
+ "LoadImageByUrl //Browser",
+ "SelectInputs //Browser",
+ "UploadToRemote //Browser",
+ "XyzPlot //Browser"
+ ],
+ {
+ "title_aux": "ComfyUI Browser"
+ }
+ ],
+ "https://github.com/teward/ComfyUI-Helper-Nodes": [
+ [
+ "HelperNodes_CfgScale",
+ "HelperNodes_CheckpointSelector",
+ "HelperNodes_MultilineStringLiteral",
+ "HelperNodes_Prompt",
+ "HelperNodes_SDXLCommonResolutions",
+ "HelperNodes_SamplerSelector",
+ "HelperNodes_SaveImage",
+ "HelperNodes_SchedulerSelector",
+ "HelperNodes_SeedSelector",
+ "HelperNodes_Steps",
+ "HelperNodes_StringLiteral",
+ "HelperNodes_VAESelector",
+ "HelperNodes_WidthHeight"
+ ],
+ {
+ "title_aux": "ComfyUI-Helper-Nodes"
+ }
+ ],
+ "https://github.com/theUpsider/ComfyUI-Logic": [
+ [
+ "Bool-\ud83d\udd2c",
+ "Compare-\ud83d\udd2c",
+ "DebugPrint-\ud83d\udd2c",
+ "Float-\ud83d\udd2c",
+ "If ANY return A else B-\ud83d\udd2c",
+ "Int-\ud83d\udd2c",
+ "String-\ud83d\udd2c"
+ ],
+ {
+ "title_aux": "ComfyUI-Logic"
+ }
+ ],
+ "https://github.com/theUpsider/ComfyUI-Styles_CSV_Loader": [
+ [
+ "Load Styles CSV"
+ ],
+ {
+ "title_aux": "Styles CSV Loader Extension for ComfyUI"
+ }
+ ],
+ "https://github.com/thecooltechguy/ComfyUI-MagicAnimate": [
+ [
+ "MagicAnimate",
+ "MagicAnimateModelLoader"
+ ],
+ {
+ "title_aux": "ComfyUI-MagicAnimate"
+ }
+ ],
+ "https://github.com/thecooltechguy/ComfyUI-Stable-Video-Diffusion": [
+ [
+ "SVDDecoder",
+ "SVDModelLoader",
+ "SVDSampler",
+ "SVDSimpleImg2Vid"
+ ],
+ {
+ "title_aux": "ComfyUI Stable Video Diffusion"
+ }
+ ],
+ "https://github.com/tiankuan93/ComfyUI-V-Express": [
+ [
+ "Load_Audio_Path",
+ "Load_Audio_Path_From_Video",
+ "Load_Image_Path",
+ "Load_Kps_Path",
+ "Load_Kps_Path_From_Video",
+ "Load_Video_Path",
+ "VEINTConstant",
+ "VEPreview_Video",
+ "VEStringConstant",
+ "V_Express_Loader",
+ "V_Express_Sampler"
+ ],
+ {
+ "title_aux": "V-Express: Conditional Dropout for Progressive Training of Portrait Video Generation"
+ }
+ ],
+ "https://github.com/tianlang0704/ComfyUI-StableProjectorzBridge": [
+ [
+ "ProjectorzControlnetInput",
+ "ProjectorzControlnetParameter",
+ "ProjectorzInitInput",
+ "ProjectorzOutput",
+ "ProjectorzParameter",
+ "ProjectorzStringToFloat",
+ "ProjectorzStringToInt"
+ ],
+ {
+ "title_aux": "Stable Projectorz Bridge"
+ }
+ ],
+ "https://github.com/time-river/ComfyUI-CLIPSeg/raw/main/custom_nodes/clipseg.py": [
+ [
+ "CLIPSeg",
+ "CombineSegMasks"
+ ],
+ {
+ "title_aux": "CLIPSeg"
+ }
+ ],
+ "https://github.com/tmagara/ComfyUI-Prediction-Boost": [
+ [
+ "PredictionBoost"
+ ],
+ {
+ "title_aux": "ComfyUI-Prediction-Boost"
+ }
+ ],
+ "https://github.com/tocubed/ComfyUI-AudioReactor": [
+ [
+ "AudioFrameTransformBeats",
+ "AudioFrameTransformShadertoy",
+ "AudioLoadPath",
+ "Shadertoy"
+ ],
+ {
+ "title_aux": "ComfyUI-AudioReactor"
+ }
+ ],
+ "https://github.com/tooldigital/ComfyUI-Yolo-Cropper": [
+ [
+ "ToolYoloCropper"
+ ],
+ {
+ "title_aux": "Easy automatic (square) image cropper using Yolo"
+ }
+ ],
+ "https://github.com/toxicwind/ComfyUI-TTools": [
+ [
+ "TTools Extract JSON",
+ "TTools SD3 Resolution Solver"
+ ],
+ {
+ "title_aux": "TTools for ComfyUI"
+ }
+ ],
+ "https://github.com/toyxyz/ComfyUI_toyxyz_test_nodes": [
+ [
+ "CaptureWebcam",
+ "ImageResize_Padding",
+ "LatentDelay",
+ "LoadWebcamImage",
+ "SaveImagetoPath"
+ ],
+ {
+ "title_aux": "ComfyUI_toyxyz_test_nodes"
+ }
+ ],
+ "https://github.com/traugdor/ComfyUI-quadMoons-nodes": [
+ [
+ "quadmoonCLIPTextEncode",
+ "quadmoonChangeBackground",
+ "quadmoonConvertBoolToString",
+ "quadmoonConvertFloatToString",
+ "quadmoonConvertIntToString",
+ "quadmoonConvertNormalizeHW",
+ "quadmoonConvertNumberToString",
+ "quadmoonINTConditionalOperation",
+ "quadmoonKSampler",
+ "quadmoonKSamplerAdvanced",
+ "quadmoonLoadConfigs",
+ "quadmoonModelLoader",
+ "quadmoonSaveNeg",
+ "quadmoonSavePrompt",
+ "quadmoonSmartNeg",
+ "quadmoonSmartPrompt",
+ "quadmoonThebutton"
+ ],
+ {
+ "author": "quadmoon (https://github.com/traugdor)",
+ "description": "These are just some nodes I wanted and couldn't find where anyone else had made them yet.",
+ "nickname": "quadmoon's Nodes",
+ "title": "quadmoon's ComfyUI nodes",
+ "title_aux": "quadmoon's ComfyUI nodes"
+ }
+ ],
+ "https://github.com/tritant/ComfyUI_CreaPrompt": [
+ [
+ "CreaPrompt",
+ "CreaPrompt List"
+ ],
+ {
+ "title_aux": "ComfyUI-CreaPrompt"
+ }
+ ],
+ "https://github.com/trojblue/trNodes": [
+ [
+ "trColorCorrection",
+ "trLayering",
+ "trRouter",
+ "trRouterLonger"
+ ],
+ {
+ "title_aux": "trNodes"
+ }
+ ],
+ "https://github.com/trumanwong/ComfyUI-NSFW-Detection": [
+ [
+ "NSFWDetection"
+ ],
+ {
+ "title_aux": "ComfyUI-NSFW-Detection"
+ }
+ ],
+ "https://github.com/tsogzark/ComfyUI-load-image-from-url": [
+ [
+ "LoadImageFromUrlOrPath"
+ ],
+ {
+ "title_aux": "ComfyUI-load-image-from-url"
+ }
+ ],
+ "https://github.com/ttulttul/ComfyUI-Iterative-Mixer": [
+ [
+ "Batch Unsampler",
+ "Iterative Mixing KSampler",
+ "Iterative Mixing KSampler Advanced",
+ "IterativeMixingSampler",
+ "IterativeMixingScheduler",
+ "IterativeMixingSchedulerAdvanced",
+ "Latent Batch Comparison Plot",
+ "Latent Batch Statistics Plot",
+ "MixingMaskGenerator"
+ ],
+ {
+ "title_aux": "ComfyUI Iterative Mixing Nodes"
+ }
+ ],
+ "https://github.com/ttulttul/ComfyUI-Tensor-Operations": [
+ [
+ "Fast Image to Noise",
+ "Image Match Normalize",
+ "Latent Match Normalize"
+ ],
+ {
+ "title_aux": "ComfyUI-Tensor-Operations"
+ }
+ ],
+ "https://github.com/tudal/Hakkun-ComfyUI-nodes/raw/main/hakkun_nodes.py": [
+ [
+ "Any Converter",
+ "Calculate Upscale",
+ "Image Resize To Height",
+ "Image Resize To Width",
+ "Image size to string",
+ "Load Random Image",
+ "Load Text",
+ "Multi Text Merge",
+ "Prompt Parser",
+ "Random Line",
+ "Random Line 4"
+ ],
+ {
+ "title_aux": "Hakkun-ComfyUI-nodes"
+ }
+ ],
+ "https://github.com/tusharbhutt/Endless-Nodes": [
+ [
+ "ESS Aesthetic Scoring",
+ "ESS Combo Parameterizer",
+ "ESS Combo Parameterizer & Prompts",
+ "ESS Eight Input Text Switch",
+ "ESS Float to Integer",
+ "ESS Float to Number",
+ "ESS Float to String",
+ "ESS Float to X",
+ "ESS Image Reward",
+ "ESS Image Saver with JSON",
+ "ESS Integer to Float",
+ "ESS Integer to Number",
+ "ESS Integer to String",
+ "ESS Integer to X",
+ "ESS Number to Float",
+ "ESS Number to Integer",
+ "ESS Number to String",
+ "ESS Number to X",
+ "ESS Parameterizer",
+ "ESS Parameterizer & Prompts",
+ "ESS Six Float Output",
+ "ESS Six Input Text Switch",
+ "ESS Six Integer IO Switch",
+ "ESS Six Integer IO Widget",
+ "ESS String to Float",
+ "ESS String to Integer",
+ "ESS String to Num",
+ "ESS String to X",
+ "\u267e\ufe0f\ud83c\udf0a\u2728 Image Saver with JSON"
+ ],
+ {
+ "author": "BiffMunky",
+ "description": "A small set of nodes I created for various numerical and text inputs. Features image saver with ability to have JSON saved to separate folder, parameter collection nodes, two aesthetic scoring models, switches for text and numbers, and conversion of string to numeric and vice versa.",
+ "nickname": "\u267e\ufe0f\ud83c\udf0a\u2728",
+ "title": "Endless \ufe0f\ud83c\udf0a\u2728 Nodes",
+ "title_aux": "Endless \ufe0f\ud83c\udf0a\u2728 Nodes"
+ }
+ ],
+ "https://github.com/twri/sdxl_prompt_styler": [
+ [
+ "SDXLPromptStyler",
+ "SDXLPromptStylerAdvanced"
+ ],
+ {
+ "title_aux": "SDXL Prompt Styler"
+ }
+ ],
+ "https://github.com/ty0x2333/ComfyUI-Dev-Utils": [
+ [
+ "TY_ExecutionTime",
+ "TY_UploadAnything",
+ "TY_UrlDownload"
+ ],
+ {
+ "title_aux": "ComfyUI-Dev-Utils"
+ }
+ ],
+ "https://github.com/uarefans/ComfyUI-Fans": [
+ [
+ "Fans Prompt Styler Negative",
+ "Fans Prompt Styler Positive",
+ "Fans Styler",
+ "Fans Text Concatenate"
+ ],
+ {
+ "title_aux": "ComfyUI-Fans"
+ }
+ ],
+ "https://github.com/uetuluk/comfyui-webcam-node": [
+ [
+ "webcam_capture_node"
+ ],
+ {
+ "title_aux": "comfyui-webcam-node"
+ }
+ ],
+ "https://github.com/unwdef/unwdef-nodes-comfyui": [
+ [
+ "RandomTextFromMultiline",
+ "RandomizeLoras",
+ "RandomizeLorasStack",
+ "TextMultilineWithVariables"
+ ],
+ {
+ "title_aux": "unwdef-nodes"
+ }
+ ],
+ "https://github.com/vanche1212/ComfyUI-ZMG-Nodes": [
+ [
+ "VC_Load_Video_Path_Unified_Output",
+ "VC_Load_Video_Upload_Unified_Output",
+ "VC_Video_Combine_Unified_Output",
+ "Waveform2Audio",
+ "\ud83d\ude0bAPI Request Node",
+ "\ud83d\ude0bJSON Parser Node",
+ "\ud83d\ude0bOld Photo Colorization Node",
+ "\ud83d\ude0bOllama Request Node",
+ "\ud83d\ude0bSave Image Unified Output"
+ ],
+ {
+ "title_aux": "ZMG PLUGIN"
+ }
+ ],
+ "https://github.com/vanillacode314/SimpleWildcardsComfyUI": [
+ [
+ "SimpleConcat",
+ "SimpleWildcard"
+ ],
+ {
+ "author": "VanillaCode314",
+ "description": "A simple wildcard node for ComfyUI. Can also be used a style prompt node.",
+ "nickname": "Simple Wildcard",
+ "title": "Simple Wildcard",
+ "title_aux": "Simple Wildcard"
+ }
+ ],
+ "https://github.com/veighnsche/comfyui_gr85": [
+ [
+ "GR85_ContainsWord",
+ "GR85_ElementsConcatenator",
+ "GR85_ImageDimensionResizer",
+ "GR85_ImageSizer",
+ "GR85_InsertCharacter",
+ "GR85_LlmEnhancer",
+ "GR85_NextSeed",
+ "GR85_RandomAtmLocOutfit",
+ "GR85_RandomRatio",
+ "GR85_RandomTitleCharacter",
+ "GR85_RandomWildcardTagPicker",
+ "GR85_ShowText",
+ "GR85_StrSafe",
+ "GR85_TagInjector"
+ ],
+ {
+ "title_aux": "comfyui_gr85"
+ }
+ ],
+ "https://github.com/victorchall/comfyui_webcamcapture": [
+ [
+ "WebcamCapture"
+ ],
+ {
+ "title_aux": "Comfyui Webcam capture node"
+ }
+ ],
+ "https://github.com/vienteck/ComfyUI-Chat-GPT-Integration": [
+ [
+ "ChatGptPrompt"
+ ],
+ {
+ "title_aux": "ComfyUI-Chat-GPT-Integration"
+ }
+ ],
+ "https://github.com/violet-chen/comfyui-psd2png": [
+ [
+ "Psd2Png"
+ ],
+ {
+ "title_aux": "comfyui-psd2png"
+ }
+ ],
+ "https://github.com/viperyl/ComfyUI-BiRefNet": [
+ [
+ "BiRefNet"
+ ],
+ {
+ "title_aux": "ComfyUI-BiRefNet"
+ }
+ ],
+ "https://github.com/viperyl/ComfyUI-RGT": [
+ [
+ "RGT_Upscale"
+ ],
+ {
+ "title_aux": "ComfyUI-RGT"
+ }
+ ],
+ "https://github.com/vivax3794/ComfyUI-Sub-Nodes": [
+ [
+ "VIV_Default",
+ "VIV_Subgraph",
+ "VIV_Subgraph_Inputs",
+ "VIV_Subgraph_Outputs"
+ ],
+ {
+ "title_aux": "ComfyUI-Sub-Nodes"
+ }
+ ],
+ "https://github.com/vivax3794/ComfyUI-Vivax-Nodes": [
+ [
+ "Any String",
+ "Chunk Up",
+ "Get Chunk",
+ "Inspect",
+ "Join Chunks",
+ "Model From URL"
+ ],
+ {
+ "title_aux": "ComfyUI-Vivax-Nodes"
+ }
+ ],
+ "https://github.com/vsevolod-oparin/comfyui-kandinsky22": [
+ [
+ "comfy-kandinsky22-decoder-loader",
+ "comfy-kandinsky22-hint-combiner",
+ "comfy-kandinsky22-image-encoder",
+ "comfy-kandinsky22-img-latents",
+ "comfy-kandinsky22-latents",
+ "comfy-kandinsky22-movq-decoder",
+ "comfy-kandinsky22-positive-text-encoder",
+ "comfy-kandinsky22-prior-averaging-2",
+ "comfy-kandinsky22-prior-averaging-3",
+ "comfy-kandinsky22-prior-averaging-4",
+ "comfy-kandinsky22-prior-loader",
+ "comfy-kandinsky22-text-encoder",
+ "comfy-kandinsky22-unet-decoder"
+ ],
+ {
+ "title_aux": "Kandinsky 2.2 ComfyUI Plugin"
+ }
+ ],
+ "https://github.com/vxinhao/color2rgb/raw/main/color2rgb.py": [
+ [
+ "color2RGB"
+ ],
+ {
+ "title_aux": "color2rgb"
+ }
+ ],
+ "https://github.com/wTechArtist/ComfyUI-CustomNodes": [
+ [
+ "Image Blending Mode Mask"
+ ],
+ {
+ "title_aux": "ComfyUI-CustomNodes"
+ }
+ ],
+ "https://github.com/wallish77/wlsh_nodes": [
+ [
+ "Alternating KSampler (WLSH)",
+ "Build Filename String (WLSH)",
+ "CLIP +/- w/Text Unified (WLSH)",
+ "CLIP Positive-Negative (WLSH)",
+ "CLIP Positive-Negative XL (WLSH)",
+ "CLIP Positive-Negative XL w/Text (WLSH)",
+ "CLIP Positive-Negative w/Text (WLSH)",
+ "Checkpoint Loader w/Name (WLSH)",
+ "Empty Latent by Pixels (WLSH)",
+ "Empty Latent by Ratio (WLSH)",
+ "Empty Latent by Size (WLSH)",
+ "Generate Border Mask (WLSH)",
+ "Grayscale Image (WLSH)",
+ "Image Load with Metadata (WLSH)",
+ "Image Save with Prompt (WLSH)",
+ "Image Save with Prompt File (WLSH)",
+ "Image Save with Prompt/Info (WLSH)",
+ "Image Save with Prompt/Info File (WLSH)",
+ "Image Scale By Factor (WLSH)",
+ "Image Scale by Shortside (WLSH)",
+ "KSamplerAdvanced (WLSH)",
+ "Multiply Integer (WLSH)",
+ "Outpaint to Image (WLSH)",
+ "Prompt Weight (WLSH)",
+ "Quick Resolution Multiply (WLSH)",
+ "Resolutions by Ratio (WLSH)",
+ "SDXL Quick Empty Latent (WLSH)",
+ "SDXL Quick Image Scale (WLSH)",
+ "SDXL Resolutions (WLSH)",
+ "SDXL Steps (WLSH)",
+ "Save Positive Prompt(WLSH)",
+ "Save Prompt (WLSH)",
+ "Save Prompt/Info (WLSH)",
+ "Seed and Int (WLSH)",
+ "Seed to Number (WLSH)",
+ "Simple Pattern Replace (WLSH)",
+ "Simple String Combine (WLSH)",
+ "Time String (WLSH)",
+ "Upscale by Factor with Model (WLSH)",
+ "VAE Encode for Inpaint w/Padding (WLSH)"
+ ],
+ {
+ "title_aux": "wlsh_nodes"
+ }
+ ],
+ "https://github.com/web3nomad/ComfyUI_Invisible_Watermark": [
+ [
+ "InvisibleWatermarkEncode"
+ ],
+ {
+ "title_aux": "ComfyUI Invisible Watermark"
+ }
+ ],
+ "https://github.com/whatbirdisthat/cyberdolphin": [
+ [
+ "\ud83d\udc2c Gradio ChatInterface",
+ "\ud83d\udc2c OpenAI Advanced",
+ "\ud83d\udc2c OpenAI Compatible",
+ "\ud83d\udc2c OpenAI DALL\u00b7E",
+ "\ud83d\udc2c OpenAI Simple"
+ ],
+ {
+ "title_aux": "cyberdolphin"
+ }
+ ],
+ "https://github.com/whmc76/ComfyUI-Openpose-Editor-Plus": [
+ [
+ "CDL.OpenPoseEditorPlus"
+ ],
+ {
+ "title_aux": "ComfyUI-Openpose-Editor-Plus"
+ }
+ ],
+ "https://github.com/wmatson/easy-comfy-nodes": [
+ [
+ "EZAssocDictNode",
+ "EZAssocImgNode",
+ "EZAssocStrNode",
+ "EZEmptyDictNode",
+ "EZHttpPostNode",
+ "EZLoadImgBatchFromUrlsNode",
+ "EZLoadImgFromUrlNode",
+ "EZRemoveImgBackground",
+ "EZS3Uploader"
+ ],
+ {
+ "title_aux": "easy-comfy-nodes"
+ }
+ ],
+ "https://github.com/wolfden/ComfyUi_PromptStylers": [
+ [
+ "SDXLPromptStylerAll",
+ "SDXLPromptStylerHorror",
+ "SDXLPromptStylerMisc",
+ "SDXLPromptStylerbyArtist",
+ "SDXLPromptStylerbyCamera",
+ "SDXLPromptStylerbyComposition",
+ "SDXLPromptStylerbyCyberpunkSurrealism",
+ "SDXLPromptStylerbyDepth",
+ "SDXLPromptStylerbyEnvironment",
+ "SDXLPromptStylerbyFantasySetting",
+ "SDXLPromptStylerbyFilter",
+ "SDXLPromptStylerbyFocus",
+ "SDXLPromptStylerbyImpressionism",
+ "SDXLPromptStylerbyLighting",
+ "SDXLPromptStylerbyMileHigh",
+ "SDXLPromptStylerbyMood",
+ "SDXLPromptStylerbyMythicalCreature",
+ "SDXLPromptStylerbyOriginal",
+ "SDXLPromptStylerbyQuantumRealism",
+ "SDXLPromptStylerbySteamPunkRealism",
+ "SDXLPromptStylerbySubject",
+ "SDXLPromptStylerbySurrealism",
+ "SDXLPromptStylerbyTheme",
+ "SDXLPromptStylerbyTimeofDay",
+ "SDXLPromptStylerbyWyvern",
+ "SDXLPromptbyCelticArt",
+ "SDXLPromptbyContemporaryNordicArt",
+ "SDXLPromptbyFashionArt",
+ "SDXLPromptbyGothicRevival",
+ "SDXLPromptbyIrishFolkArt",
+ "SDXLPromptbyRomanticNationalismArt",
+ "SDXLPromptbySportsArt",
+ "SDXLPromptbyStreetArt",
+ "SDXLPromptbyVikingArt",
+ "SDXLPromptbyWildlifeArt"
+ ],
+ {
+ "title_aux": "SDXL Prompt Styler (customized version by wolfden)"
+ }
+ ],
+ "https://github.com/wolfden/ComfyUi_String_Function_Tree": [
+ [
+ "StringFunction"
+ ],
+ {
+ "title_aux": "ComfyUi_String_Function_Tree"
+ }
+ ],
+ "https://github.com/wsippel/comfyui_ws/raw/main/sdxl_utility.py": [
+ [
+ "SDXLResolutionPresets"
+ ],
+ {
+ "title_aux": "SDXLResolutionPresets"
+ }
+ ],
+ "https://github.com/wujm424606/ComfyUi-Ollama-YN": [
+ [
+ "OllamaGenerate",
+ "OllamaGenerateAdvance",
+ "OllamaSpecialGenerateAdvance",
+ "OllamaVision"
+ ],
+ {
+ "title_aux": "ComfyUi-Ollama-YN"
+ }
+ ],
+ "https://github.com/wutipong/ComfyUI-TextUtils": [
+ [
+ "Text Utils - Join N-Elements of String List",
+ "Text Utils - Join String List",
+ "Text Utils - Join Strings",
+ "Text Utils - Split String to List"
+ ],
+ {
+ "title_aux": "ComfyUI-TextUtils"
+ }
+ ],
+ "https://github.com/wwwins/ComfyUI-Simple-Aspect-Ratio": [
+ [
+ "SimpleAspectRatio"
+ ],
+ {
+ "title_aux": "ComfyUI-Simple-Aspect-Ratio"
+ }
+ ],
+ "https://github.com/xXAdonesXx/NodeGPT": [
+ [
+ "AppendAgent",
+ "Assistant",
+ "Chat",
+ "ChatGPT",
+ "CombineInput",
+ "Conditioning",
+ "CostumeAgent_1",
+ "CostumeAgent_2",
+ "CostumeMaster_1",
+ "Critic",
+ "DisplayString",
+ "DisplayTextAsImage",
+ "EVAL",
+ "Engineer",
+ "Executor",
+ "GroupChat",
+ "Image_generation_Conditioning",
+ "LM_Studio",
+ "LoadAPIconfig",
+ "LoadTXT",
+ "MemGPT",
+ "Memory_Excel",
+ "Model_1",
+ "Ollama",
+ "Output2String",
+ "Planner",
+ "Scientist",
+ "TextCombine",
+ "TextGeneration",
+ "TextGenerator",
+ "TextInput",
+ "TextOutput",
+ "UserProxy",
+ "llama-cpp",
+ "llava",
+ "oobaboogaOpenAI"
+ ],
+ {
+ "title_aux": "NodeGPT"
+ }
+ ],
+ "https://github.com/xiaoxiaodesha/hd_node": [
+ [
+ "Combine HDMasks",
+ "Cover HDMasks",
+ "HD FaceIndex",
+ "HD GetMaskArea",
+ "HD Image Levels",
+ "HD SmoothEdge",
+ "HD UltimateSDUpscale"
+ ],
+ {
+ "title_aux": "hd-nodes-comfyui"
+ }
+ ],
+ "https://github.com/xliry/ComfyUI_SendDiscord": [
+ [
+ "SendDiscord"
+ ],
+ {
+ "title_aux": "ComfyUI_SendDiscord"
+ }
+ ],
+ "https://github.com/xuhongming251/ComfyUI-GPEN": [
+ [
+ "FaceEnhancement"
+ ],
+ {
+ "title_aux": "ComfyUI-GPEN"
+ }
+ ],
+ "https://github.com/xuhongming251/ComfyUI-MuseTalkUtils": [
+ [
+ "MuseTalkPostprocess",
+ "MuseTalkPreprocess",
+ "MuseTalkTrain",
+ "MuseTalkTrainPreprocess",
+ "MuseTalkUncropMask"
+ ],
+ {
+ "title_aux": "ComfyUI-MuseTalkUtils"
+ }
+ ],
+ "https://github.com/yffyhk/comfyui_auto_danbooru": [
+ [
+ "GetDanbooru",
+ "TagEncode"
+ ],
+ {
+ "title_aux": "comfyui_auto_danbooru"
+ }
+ ],
+ "https://github.com/yiwangsimple/ComfyUI_GroqChat": [
+ [
+ "GroqChatNode",
+ "PaliGemmaPixelProse"
+ ],
+ {
+ "title_aux": "comfy-groqchat"
+ }
+ ],
+ "https://github.com/yolain/ComfyUI-Easy-Use": [
+ [
+ "dynamicThresholdingFull",
+ "easy LLLiteLoader",
+ "easy XYInputs: CFG Scale",
+ "easy XYInputs: Checkpoint",
+ "easy XYInputs: ControlNet",
+ "easy XYInputs: Denoise",
+ "easy XYInputs: Lora",
+ "easy XYInputs: ModelMergeBlocks",
+ "easy XYInputs: NegativeCond",
+ "easy XYInputs: NegativeCondList",
+ "easy XYInputs: PositiveCond",
+ "easy XYInputs: PositiveCondList",
+ "easy XYInputs: PromptSR",
+ "easy XYInputs: Sampler/Scheduler",
+ "easy XYInputs: Seeds++ Batch",
+ "easy XYInputs: Steps",
+ "easy XYPlot",
+ "easy XYPlotAdvanced",
+ "easy a1111Loader",
+ "easy applyBrushNet",
+ "easy applyFooocusInpaint",
+ "easy applyInpaint",
+ "easy applyPowerPaint",
+ "easy boolean",
+ "easy cascadeKSampler",
+ "easy cascadeLoader",
+ "easy ckptNames",
+ "easy cleanGpuUsed",
+ "easy clearCacheAll",
+ "easy clearCacheKey",
+ "easy comfyLoader",
+ "easy compare",
+ "easy controlnetLoader",
+ "easy controlnetLoaderADV",
+ "easy controlnetNames",
+ "easy controlnetStack",
+ "easy convertAnything",
+ "easy detailerFix",
+ "easy dynamiCrafterLoader",
+ "easy float",
+ "easy fullCascadeKSampler",
+ "easy fullLoader",
+ "easy fullkSampler",
+ "easy globalSeed",
+ "easy hiresFix",
+ "easy humanSegmentation",
+ "easy hunyuanDiTLoader",
+ "easy icLightApply",
+ "easy if",
+ "easy imageBatchToImageList",
+ "easy imageChooser",
+ "easy imageColorMatch",
+ "easy imageConcat",
+ "easy imageCount",
+ "easy imageCropFromMask",
+ "easy imageDetailTransfer",
+ "easy imageInsetCrop",
+ "easy imageInterrogator",
+ "easy imageListToImageBatch",
+ "easy imagePixelPerfect",
+ "easy imageRatio",
+ "easy imageRemBg",
+ "easy imageSave",
+ "easy imageScaleDown",
+ "easy imageScaleDownBy",
+ "easy imageScaleDownToSize",
+ "easy imageSize",
+ "easy imageSizeByLongerSide",
+ "easy imageSizeBySide",
+ "easy imageSplitGrid",
+ "easy imageSplitList",
+ "easy imageSwitch",
+ "easy imageToBase64",
+ "easy imageToMask",
+ "easy imageUncropFromBBOX",
+ "easy imagesSplitImage",
+ "easy injectNoiseToLatent",
+ "easy instantIDApply",
+ "easy instantIDApplyADV",
+ "easy int",
+ "easy ipadapterApply",
+ "easy ipadapterApplyADV",
+ "easy ipadapterApplyEmbeds",
+ "easy ipadapterApplyEncoder",
+ "easy ipadapterApplyFromParams",
+ "easy ipadapterApplyRegional",
+ "easy ipadapterStyleComposition",
+ "easy isSDXL",
+ "easy joinImageBatch",
+ "easy kSampler",
+ "easy kSamplerDownscaleUnet",
+ "easy kSamplerInpainting",
+ "easy kSamplerLayerDiffusion",
+ "easy kSamplerSDTurbo",
+ "easy kSamplerTiled",
+ "easy latentCompositeMaskedWithCond",
+ "easy latentNoisy",
+ "easy loadImageBase64",
+ "easy loraStack",
+ "easy negative",
+ "easy pipeBatchIndex",
+ "easy pipeEdit",
+ "easy pipeIn",
+ "easy pipeOut",
+ "easy pipeToBasicPipe",
+ "easy pixArtLoader",
+ "easy portraitMaster",
+ "easy poseEditor",
+ "easy positive",
+ "easy preDetailerFix",
+ "easy preMaskDetailerFix",
+ "easy preSampling",
+ "easy preSamplingAdvanced",
+ "easy preSamplingCascade",
+ "easy preSamplingCustom",
+ "easy preSamplingDynamicCFG",
+ "easy preSamplingLayerDiffusion",
+ "easy preSamplingLayerDiffusionADDTL",
+ "easy preSamplingNoiseIn",
+ "easy preSamplingSdTurbo",
+ "easy prompt",
+ "easy promptConcat",
+ "easy promptLine",
+ "easy promptList",
+ "easy promptReplace",
+ "easy pulIDApply",
+ "easy pulIDApplyADV",
+ "easy rangeFloat",
+ "easy rangeInt",
+ "easy removeLocalImage",
+ "easy samLoaderPipe",
+ "easy seed",
+ "easy showAnything",
+ "easy showLoaderSettingsNames",
+ "easy showSpentTime",
+ "easy showTensorShape",
+ "easy sliderControl",
+ "easy stableDiffusion3API",
+ "easy string",
+ "easy styleAlignedBatchAlign",
+ "easy stylesSelector",
+ "easy sv3dLoader",
+ "easy svdLoader",
+ "easy textSwitch",
+ "easy ultralyticsDetectorPipe",
+ "easy unSampler",
+ "easy wildcards",
+ "easy xyAny",
+ "easy zero123Loader"
+ ],
+ {
+ "title_aux": "ComfyUI Easy Use"
+ }
+ ],
+ "https://github.com/yolanother/DTAIComfyImageSubmit": [
+ [
+ "DTSimpleSubmitImage",
+ "DTSubmitImage"
+ ],
+ {
+ "title_aux": "Comfy AI DoubTech.ai Image Sumission Node"
+ }
+ ],
+ "https://github.com/yolanother/DTAIComfyLoaders": [
+ [
+ "DTCLIPLoader",
+ "DTCLIPVisionLoader",
+ "DTCheckpointLoader",
+ "DTCheckpointLoaderSimple",
+ "DTControlNetLoader",
+ "DTDiffControlNetLoader",
+ "DTDiffusersLoader",
+ "DTGLIGENLoader",
+ "DTLoadImage",
+ "DTLoadImageMask",
+ "DTLoadLatent",
+ "DTLoraLoader",
+ "DTLorasLoader",
+ "DTStyleModelLoader",
+ "DTUpscaleModelLoader",
+ "DTVAELoader",
+ "DTunCLIPCheckpointLoader"
+ ],
+ {
+ "title_aux": "Comfy UI Online Loaders"
+ }
+ ],
+ "https://github.com/yolanother/DTAIComfyPromptAgent": [
+ [
+ "DTPromptAgent",
+ "DTPromptAgentString"
+ ],
+ {
+ "title_aux": "Comfy UI Prompt Agent"
+ }
+ ],
+ "https://github.com/yolanother/DTAIComfyQRCodes": [
+ [
+ "QRCode"
+ ],
+ {
+ "title_aux": "Comfy UI QR Codes"
+ }
+ ],
+ "https://github.com/yolanother/DTAIComfyVariables": [
+ [
+ "DTCLIPTextEncode",
+ "DTSingleLineStringVariable",
+ "DTSingleLineStringVariableNoClip",
+ "FloatVariable",
+ "IntVariable",
+ "StringFormat",
+ "StringFormatSingleLine",
+ "StringVariable"
+ ],
+ {
+ "title_aux": "Variables for Comfy UI"
+ }
+ ],
+ "https://github.com/yolanother/DTAIImageToTextNode": [
+ [
+ "DTAIImageToTextNode",
+ "DTAIImageUrlToTextNode"
+ ],
+ {
+ "title_aux": "Image to Text Node"
+ }
+ ],
+ "https://github.com/youyegit/tdxh_node_comfyui": [
+ [
+ "TdxhBoolNumber",
+ "TdxhClipVison",
+ "TdxhControlNetApply",
+ "TdxhControlNetProcessor",
+ "TdxhFloatInput",
+ "TdxhImageToSize",
+ "TdxhImageToSizeAdvanced",
+ "TdxhImg2ImgLatent",
+ "TdxhIntInput",
+ "TdxhLoraLoader",
+ "TdxhOnOrOff",
+ "TdxhReference",
+ "TdxhStringInput",
+ "TdxhStringInputTranslator"
+ ],
+ {
+ "title_aux": "tdxh_node_comfyui"
+ }
+ ],
+ "https://github.com/yuvraj108c/ComfyUI-Depth-Anything-Tensorrt": [
+ [
+ "DepthAnythingTensorrt"
+ ],
+ {
+ "title_aux": "ComfyUI Depth Anything TensorRT"
+ }
+ ],
+ "https://github.com/yuvraj108c/ComfyUI-PiperTTS": [
+ [
+ "PiperTTS"
+ ],
+ {
+ "title_aux": "ComfyUI PiperTTS"
+ }
+ ],
+ "https://github.com/yuvraj108c/ComfyUI-Pronodes": [
+ [
+ "LoadImageFromOutputDirectoryNode",
+ "LoadYoutubeVideoNode",
+ "PreviewVHSAudioNode",
+ "SaveAndOverwriteImageNode",
+ "VHSFilenamesToPathNode"
+ ],
+ {
+ "title_aux": "ComfyUI-Pronodes"
+ }
+ ],
+ "https://github.com/yuvraj108c/ComfyUI-Upscaler-Tensorrt": [
+ [
+ "UpscalerTensorrt"
+ ],
+ {
+ "title_aux": "ComfyUI Upscaler TensorRT"
+ }
+ ],
+ "https://github.com/yuvraj108c/ComfyUI-Vsgan": [
+ [
+ "DepthAnythingTrtNode",
+ "TTSCapcutNode",
+ "UpscaleVideoTrtNode"
+ ],
+ {
+ "title_aux": "ComfyUI-Vsgan"
+ }
+ ],
+ "https://github.com/yuvraj108c/ComfyUI-Whisper": [
+ [
+ "Add Subtitles To Background",
+ "Add Subtitles To Frames",
+ "Apply Whisper",
+ "Resize Cropped Subtitles"
+ ],
+ {
+ "title_aux": "ComfyUI Whisper"
+ }
+ ],
+ "https://github.com/yuvraj108c/ComfyUI-YoloNasPose-Tensorrt": [
+ [
+ "YoloNasPoseTensorrt"
+ ],
+ {
+ "title_aux": "ComfyUI YoloNasPose Tensorrt"
+ }
+ ],
+ "https://github.com/za-wa-n-go/ComfyUI_Zwng_Nodes": [
+ [
+ "ZwngLoadImagePathOrURL",
+ "ZwngPreviewImageAndMask",
+ "ZwngSimpleGoogleTranslater",
+ "ZwngSimplePhotoshopConnector"
+ ],
+ {
+ "title_aux": "ComfyUI_Zwng_Nodes"
+ }
+ ],
+ "https://github.com/zcfrank1st/Comfyui-Toolbox": [
+ [
+ "PreviewJson",
+ "PreviewVideo",
+ "SaveJson",
+ "TestJsonPreview"
+ ],
+ {
+ "title_aux": "Comfyui-Toolbox"
+ }
+ ],
+ "https://github.com/zcfrank1st/Comfyui-Yolov8": [
+ [
+ "Yolov8Detection",
+ "Yolov8Segmentation"
+ ],
+ {
+ "title_aux": "ComfyUI Yolov8"
+ }
+ ],
+ "https://github.com/zcfrank1st/comfyui_visual_anagrams": [
+ [
+ "VisualAnagramsAnimate",
+ "VisualAnagramsSample"
+ ],
+ {
+ "title_aux": "comfyui_visual_anagram"
+ }
+ ],
+ "https://github.com/zer0TF/cute-comfy": [
+ [
+ "Cute.Placeholder"
+ ],
+ {
+ "title_aux": "Cute Comfy"
+ }
+ ],
+ "https://github.com/zeroxoxo/ComfyUI-Fast-Style-Transfer": [
+ [
+ "FastStyleTransfer",
+ "TrainFastStyleTransfer"
+ ],
+ {
+ "title_aux": "ComfyUI-Fast-Style-Transfer"
+ }
+ ],
+ "https://github.com/zfkun/ComfyUI_zfkun": [
+ [
+ "ZFLoadImagePath",
+ "ZFPreviewText",
+ "ZFPreviewTextMultiline",
+ "ZFShareScreen",
+ "ZFTextTranslation"
+ ],
+ {
+ "title_aux": "ComfyUI_zfkun"
+ }
+ ],
+ "https://github.com/zhangp365/ComfyUI-utils-nodes": [
+ [
+ "CheckpointLoaderSimpleWithSwitch",
+ "ColorCorrectOfUtils",
+ "ConcatTextOfUtils",
+ "ImageBatchOneOrMore",
+ "ImageCompositeMaskedWithSwitch",
+ "ImageConcanateOfUtils",
+ "IntAndIntAddOffsetLiteral",
+ "IntMultipleAddLiteral",
+ "LoadImageMaskWithSwitch",
+ "LoadImageMaskWithoutListDir",
+ "LoadImageWithSwitch",
+ "LoadImageWithoutListDir",
+ "MaskAutoSelector",
+ "MaskFastGrow",
+ "ModifyTextGender",
+ "SplitMask"
+ ],
+ {
+ "title_aux": "zhangp365/Some Utils for ComfyUI"
+ }
+ ],
+ "https://github.com/zhongpei/ComfyUI-InstructIR": [
+ [
+ "InstructIRProcess",
+ "LoadInstructIRModel"
+ ],
+ {
+ "title_aux": "ComfyUI for InstructIR"
+ }
+ ],
+ "https://github.com/zhongpei/Comfyui_image2prompt": [
+ [
+ "CLIP AdvancedTextEncode|fofo",
+ "CLIP PromptConditioning|fofo",
+ "Image2Text",
+ "Image2TextWithTags",
+ "ImageBatchToList|fofo",
+ "ImageRewardScore|fofo",
+ "LoadImage2TextModel",
+ "LoadImageRewardScoreModel|fofo",
+ "LoadT5Model|fofo",
+ "LoadText2PromptModel",
+ "ShowText|fofo",
+ "T5QuantizationConfig|fofo",
+ "T5Text2Prompt|fofo",
+ "Text2GPTPrompt",
+ "Text2Prompt",
+ "TextBox|fofo",
+ "Translate2Chinese|fofo"
+ ],
+ {
+ "title_aux": "Comfyui_image2prompt"
+ }
+ ],
+ "https://github.com/zhuanqianfish/ComfyUI-EasyNode": [
+ [
+ "EasyCaptureNode",
+ "EasyVideoOutputNode",
+ "SendImageWebSocket"
+ ],
+ {
+ "title_aux": "EasyCaptureNode for ComfyUI"
+ }
+ ],
+ "https://github.com/zhulu111/ComfyUI_Bxb": [
+ [
+ "sdBxb",
+ "sdBxb_textInput"
+ ],
+ {
+ "title_aux": "ComfyUI_Bxb"
+ }
+ ],
+ "https://github.com/zohac/ComfyUI_ZC_DrawShape": [
+ [
+ "ZcDrawShape"
+ ],
+ {
+ "author": "Zohac",
+ "description": "nodes for artists, designers and animators.",
+ "nickname": "Zc DrawShape",
+ "title": "Zc DrawShape",
+ "title_aux": "ComfyUI_ZC_DrawShape"
+ }
+ ],
+ "https://github.com/zombieyang/sd-ppp": [
+ [
+ "Get Image From Photoshop Layer",
+ "Image Times Opacity",
+ "Mask Times Opacity",
+ "Send Images To Photoshop"
+ ],
+ {
+ "title_aux": "SD-PPP"
+ }
+ ],
+ "https://raw.githubusercontent.com/throttlekitty/SDXLCustomAspectRatio/main/SDXLAspectRatio.py": [
+ [
+ "SDXLAspectRatio"
+ ],
+ {
+ "title_aux": "SDXLCustomAspectRatio"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/node_db/new/model-list.json b/custom_nodes/ComfyUI-Manager/node_db/new/model-list.json
new file mode 100644
index 000000000..dee66b3c6
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/new/model-list.json
@@ -0,0 +1,710 @@
+{
+ "models": [
+ {
+ "name": "xinsir/ControlNet++: All-in-one ControlNet",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL/controlnet-union-sdxl-1.0",
+ "description": "All-in-one ControlNet for image generations and editing!",
+ "reference": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "2.50GB"
+ },
+
+ {
+ "name": "InstantX/SD3-Controlnet-Canny",
+ "type": "controlnet",
+ "base": "SD3",
+ "save_path": "controlnet/SD3/InstantX-Controlnet-Canny",
+ "description": "Controlnet SD3 Canny model.",
+ "reference": "https://huggingface.co/InstantX/SD3-Controlnet-Canny",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/InstantX/SD3-Controlnet-Canny/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "1.19GB"
+ },
+ {
+ "name": "InstantX/SD3-Controlnet-Pose",
+ "type": "controlnet",
+ "base": "SD3",
+ "save_path": "controlnet/SD3/InstantX-Controlnet-Pose",
+ "description": "Controlnet SD3 Pose model.",
+ "reference": "https://huggingface.co/InstantX/SD3-Controlnet-Pose",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/InstantX/SD3-Controlnet-Pose/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "1.19GB"
+ },
+ {
+ "name": "InstantX/SD3-Controlnet-Tile",
+ "type": "controlnet",
+ "base": "SD3",
+ "save_path": "controlnet/SD3/InstantX-Controlnet-Tile",
+ "description": "Controlnet SD3 Tile model.",
+ "reference": "https://huggingface.co/InstantX/SD3-Controlnet-Tile",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/InstantX/SD3-Controlnet-Tile/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "1.19GB"
+ },
+
+ {
+ "name": "xinsir/ControlNet Depth SDXL, support zoe, midias",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL/controlnet-depth-sdxl-1.0",
+ "description": "Controlnet SDXL Depth model.",
+ "reference": "https://huggingface.co/xinsir/controlnet-depth-sdxl-1.0",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/xinsir/controlnet-depth-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "xinsir/ControlNet Tile SDXL",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL/controlnet-tile-sdxl-1.0",
+ "description": "Controlnet SDXL Tile model.",
+ "reference": "https://huggingface.co/xinsir/controlnet-tile-sdxl-1.0",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/xinsir/controlnet-tile-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "2.50GB"
+ },
+
+ {
+ "name": "google-t5/t5-base",
+ "type": "clip",
+ "base": "t5-base",
+ "save_path": "clip/t5-base",
+ "description": "T5 Base: Text-To-Text Transfer Transformer. This model can be loaded via CLIPLoader for Stable Audio workflow.",
+ "reference": "https://huggingface.co/google-t5/t5-base",
+ "filename": "model.safetensors",
+ "url": "https://huggingface.co/google-t5/t5-base/resolve/main/model.safetensors",
+ "size": "892MB"
+ },
+
+ {
+ "name": "PixArt-Sigma-XL-2-1024-MS.pth",
+ "type": "checkpoint",
+ "base": "pixart-sigma",
+ "save_path": "checkpoints/PixArt-Sigma",
+ "description": "PixArt-Sigma Checkpoint model",
+ "reference": "https://huggingface.co/PixArt-alpha/PixArt-Sigma/tree/main",
+ "filename": "PixArt-Sigma-XL-2-1024-MS.pth",
+ "url": "https://huggingface.co/PixArt-alpha/PixArt-Sigma/resolve/main/PixArt-Sigma-XL-2-1024-MS.pth",
+ "size": "2.47GB"
+ },
+ {
+ "name": "TAESD3 Decoder",
+ "type": "TAESD",
+ "base": "SDXL",
+ "save_path": "vae_approx",
+ "description": "(SD3 Verison) To view the preview in high quality while running samples in ComfyUI, you will need this model.",
+ "reference": "https://github.com/madebyollin/taesd",
+ "filename": "taesd3_decoder.pth",
+ "url": "https://github.com/madebyollin/taesd/raw/main/taesd3_decoder.pth",
+ "size": "4.94MB"
+ },
+ {
+ "name": "TAESD3 Encoder",
+ "type": "TAESD",
+ "base": "SDXL",
+ "save_path": "vae_approx",
+ "description": "(SD3 Verison) To view the preview in high quality while running samples in ComfyUI, you will need this model.",
+ "reference": "https://github.com/madebyollin/taesd",
+ "filename": "taesd3_encoder.pth",
+ "url": "https://github.com/madebyollin/taesd/raw/main/taesd3_encoder.pth",
+ "size": "4.94MB"
+ },
+
+ {
+ "name": "TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic v2 (rank256)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "Controlnet SDXL Tile model realistic version.",
+ "reference": "https://huggingface.co/TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic",
+ "filename": "TTPLANET_Controlnet_Tile_realistic_v2_rank256.safetensors",
+ "url": "https://huggingface.co/TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic/resolve/main/TTPLANET_Controlnet_Tile_realistic_v2_rank256.safetensors",
+ "size": "774.4MB"
+ },
+
+ {
+ "name": "kijai/DepthAnythingV2 (vitb/fp16)",
+ "type": "depthanything",
+ "base": "depthanything",
+ "save_path": "depthanything",
+ "description": "DepthAnythingV2 model",
+ "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main",
+ "filename": "depth_anything_v2_vitb_fp16.safetensors",
+ "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vitb_fp16.safetensors",
+ "size": "195.0MB"
+ },
+ {
+ "name": "kijai/DepthAnythingV2 (vitb/fp32)",
+ "type": "depthanything",
+ "base": "depthanything",
+ "save_path": "depthanything",
+ "description": "DepthAnythingV2 model",
+ "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main",
+ "filename": "depth_anything_v2_vitb_fp32.safetensors",
+ "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vitb_fp32.safetensors",
+ "size": "389.9MB"
+ },
+ {
+ "name": "kijai/DepthAnythingV2 (vitl/fp16)",
+ "type": "depthanything",
+ "base": "depthanything",
+ "save_path": "depthanything",
+ "description": "[671MB] DepthAnythingV2 model",
+ "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main",
+ "filename": "depth_anything_v2_vitl_fp16.safetensors",
+ "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vitl_fp16.safetensors",
+ "size": "670.7MB"
+ },
+ {
+ "name": "kijai/DepthAnythingV2 (vitl/fp32)",
+ "type": "depthanything",
+ "base": "depthanything",
+ "save_path": "depthanything",
+ "description": "[195MB] DepthAnythingV2 model",
+ "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main",
+ "filename": "depth_anything_v2_vitl_fp32.safetensors",
+ "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vitl_fp32.safetensors",
+ "size": "1.34GB"
+ },
+ {
+ "name": "kijai/DepthAnythingV2 (vits/fp16)",
+ "type": "depthanything",
+ "base": "depthanything",
+ "save_path": "depthanything",
+ "description": "[49.6MB] DepthAnythingV2 model",
+ "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main",
+ "filename": "depth_anything_v2_vits_fp16.safetensors",
+ "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vits_fp16.safetensors",
+ "size": "49.6MB"
+ },
+ {
+ "name": "kijai/DepthAnythingV2 (vitb/fp32)",
+ "type": "depthanything",
+ "base": "depthanything",
+ "save_path": "depthanything",
+ "description": "[99.2MB] DepthAnythingV2 model",
+ "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main",
+ "filename": "depth_anything_v2_vits_fp32.safetensors",
+ "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vits_fp32.safetensors",
+ "size": "99.2MB"
+ },
+
+ {
+ "name": "CN-anytest_v4-marged.safetensors",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "[2.5GB] AnyTest Controlnet. A model for style transfer.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v4-marged.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "CN-anytest_v4-marged_am_dim256.safetensors (dim256/Animagine)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "[774MB] AnyTest Controlnet Lora (dim256) for Animagine. A model for style transfer.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v4-marged_am_dim256.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged_am_dim256.safetensors",
+ "size": "774.4MB"
+ },
+ {
+ "name": "CN-anytest_v4-marged_am_dim128.safetensors (dim128/Animagine)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "[396MB] AnyTest Controlnet Lora (dim128) for Animagine. A model for style transfer.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v4-marged_am_dim128.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged_am_dim128.safetensors",
+ "size": "395.7MB"
+ },
+ {
+ "name": "CN-anytest_v4-marged_pn_dim256.safetensors (dim256/Pony)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "[774MB] AnyTest Controlnet Lora (dim256) for Pony. A model for style transfer.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v4-marged_pn_dim256.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged_pn_dim256.safetensors",
+ "size": "774.4MB"
+ },
+ {
+ "name": "CN-anytest_v4-marged_pn_dim128.safetensors (dim128/Pony)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "[396MB] AnyTest Controlnet Lora (dim128) for Pony. A model for style transfer.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v4-marged_pn_dim128.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged_pn_dim128.safetensors",
+ "size": "395.7MB"
+ },
+ {
+ "name": "CN-anytest_v3-50000_fp16.safetensors (fp16)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "[2.5GB] AnyTest Controlnet. A strict control model.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v3-50000_fp16.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_fp16.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "CN-anytest_v3-50000_am_dim256.safetensors (dim256/Animagine)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "[774MB] AnyTest Controlnet Lora (dim256) for Animagine. A strict control model.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v3-50000_am_dim256.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_am_dim256.safetensors",
+ "size": "774.4MB"
+ },
+ {
+ "name": "CN-anytest_v3-50000_am_dim128.safetensors (dim128/Animagine)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "[396MB] AnyTest Controlnet Lora (dim128) for Animagine. A strict control model.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v3-50000_am_dim128.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_am_dim128.safetensors",
+ "size": "395.7MB"
+ },
+ {
+ "name": "CN-anytest_v3-50000_pn_dim256.safetensors (dim256/Pony)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "[774MB] AnyTest Controlnet Lora (dim256) for Pony. A strict control model.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v3-50000_pn_dim256.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_pn_dim256.safetensors",
+ "size": "774.4MB"
+ },
+ {
+ "name": "CN-anytest_v3-50000_pn_dim128.safetensors (dim128/Pony)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "[396MB] AnyTest Controlnet Lora (dim128) for Pony. A strict control model.",
+ "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main",
+ "filename": "CN-anytest_v3-50000_pn_dim128.safetensors",
+ "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_pn_dim128.safetensors",
+ "size": "395.7MB"
+ },
+
+ {
+ "name": "Kijai/ToonCrafter model checkpoint (interpolation fp16)",
+ "type": "checkpoint",
+ "base": "ToonCrafter",
+ "save_path": "checkpoints/ToonCrafter",
+ "description": "[5.25GB] ToonCrafter checkpoint model for ComfyUI-DynamiCrafterWrapper",
+ "reference": "https://huggingface.co/Kijai/DynamiCrafter_pruned",
+ "filename": "tooncrafter_512_interp-fp16.safetensors",
+ "url": "https://huggingface.co/Kijai/DynamiCrafter_pruned/resolve/main/tooncrafter_512_interp-fp16.safetensors",
+ "size": "5.25GB"
+ },
+
+ {
+ "name": "xinsir/Controlnet-Scribble-Sdxl-1.0",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL/controlnet-scribble-sdxl-1.0",
+ "description": "[2.5GB] Controlnet SDXL Scribble model.",
+ "reference": "https://huggingface.co/xinsir/controlnet-scribble-sdxl-1.0",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/xinsir/controlnet-scribble-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "xinsir/Controlnet-Canny-Sdxl-1.0 (V2)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL/controlnet-canny-sdxl-1.0",
+ "description": "[2.5GB] Controlnet SDXL Canny model.",
+ "reference": "https://huggingface.co/xinsir/controlnet-canny-sdxl-1.0",
+ "filename": "diffusion_pytorch_model_V2.safetensors",
+ "url": "https://huggingface.co/xinsir/controlnet-canny-sdxl-1.0/resolve/main/diffusion_pytorch_model_V2.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "xinsir/Controlnet-Openpose-Sdxl-1.0",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL/controlnet-openpose-sdxl-1.0",
+ "description": "[2.5GB] Controlnet SDXL Openpose model.",
+ "reference": "https://huggingface.co/xinsir/controlnet-openpose-sdxl-1.0",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/xinsir/controlnet-openpose-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "xinsir/Controlnet-Openpose-Sdxl-1.0 (Ver. twins)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL/controlnet-openpose-sdxl-1.0",
+ "description": "[2.5GB] Controlnet SDXL Openpose model. (Ver. twins)",
+ "reference": "https://huggingface.co/xinsir/controlnet-openpose-sdxl-1.0",
+ "filename": "diffusion_pytorch_model_twins.safetensors",
+ "url": "https://huggingface.co/xinsir/controlnet-openpose-sdxl-1.0/resolve/main/diffusion_pytorch_model_twins.safetensors",
+ "size": "2.50GB"
+ },
+ {
+ "name": "xinsir/Controlnet-Scribble-Sdxl-1.0-Anime",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL/controlnet-scribble-sdxl-1.0-anime",
+ "description": "[2.5GB] Controlnet SDXL Scribble model. (Ver. anime)",
+ "reference": "https://huggingface.co/xinsir/anime-painter",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/xinsir/anime-painter/resolve/main/diffusion_pytorch_model.safetensors",
+ "size": "2.50GB"
+ },
+
+ {
+ "name": "Doubiiu/ToonCrafter model checkpoint",
+ "type": "checkpoint",
+ "base": "ToonCrafter",
+ "save_path": "custom_nodes/ComfyUI-ToonCrafter/ToonCrafter/checkpoints/tooncrafter_512_interp_v1",
+ "description": "[10.5GB] ToonCrafter checkpoint model for ComfyUI-ToonCrafter",
+ "reference": "https://huggingface.co/Doubiiu/ToonCrafter/tree/main",
+ "filename": "model.ckpt",
+ "url": "https://huggingface.co/Doubiiu/ToonCrafter/resolve/main/model.ckpt",
+ "size": "10.5GB"
+ },
+
+ {
+ "name": "ViperYX/RGT_x2.pth",
+ "type": "RGT",
+ "base": "RGT",
+ "save_path": "RGT/RGT",
+ "description": "[180MB] RGT x2 upscale model for ComfyUI-RGT",
+ "reference": "https://huggingface.co/ViperYX/RGT/tree/main",
+ "filename": "RGT_x2.pth",
+ "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT/RGT_x2.pth",
+ "size": "179.8MB"
+ },
+ {
+ "name": "ViperYX/RGT_x3.pth",
+ "type": "RGT",
+ "base": "RGT",
+ "save_path": "RGT/RGT",
+ "description": "[180MB] RGT x3 upscale model for ComfyUI-RGT",
+ "reference": "https://huggingface.co/ViperYX/RGT/tree/main",
+ "filename": "RGT_x3.pth",
+ "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT/RGT_x3.pth",
+ "size": "180.5MB"
+ },
+ {
+ "name": "ViperYX/RGT_x4.pth",
+ "type": "RGT",
+ "base": "RGT",
+ "save_path": "RGT/RGT",
+ "description": "[180MB] RGT_S x4 upscale model for ComfyUI-RGT",
+ "reference": "https://huggingface.co/ViperYX/RGT/tree/main",
+ "filename": "RGT_x4.pth",
+ "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT/RGT_x4.pth",
+ "size": "180.4MB"
+ },
+ {
+ "name": "ViperYX/RGT_S_x2.pth",
+ "type": "RGT",
+ "base": "RGT",
+ "save_path": "RGT/RGT_S",
+ "description": "[135MB] RGT_S x2 upscale model for ComfyUI-RGT",
+ "reference": "https://huggingface.co/ViperYX/RGT/tree/main",
+ "filename": "RGT_S_x2.pth",
+ "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT_S/RGT_S_x2.pth",
+ "size": "135.4MB"
+ },
+ {
+ "name": "ViperYX/RGT_S_x3.pth",
+ "type": "RGT",
+ "base": "RGT",
+ "save_path": "RGT/RGT_S",
+ "description": "[136MB] RGT_S x3 upscale model for ComfyUI-RGT",
+ "reference": "https://huggingface.co/ViperYX/RGT/tree/main",
+ "filename": "RGT_S_x3.pth",
+ "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT_S/RGT_S_x3.pth",
+ "size": "136.1MB"
+ },
+ {
+ "name": "ViperYX/RGT_S_x4.pth",
+ "type": "RGT",
+ "base": "RGT",
+ "save_path": "RGT/RGT_S",
+ "description": "[136MB] RGT_S x4 upscale model for ComfyUI-RGT",
+ "reference": "https://huggingface.co/ViperYX/RGT/tree/main",
+ "filename": "RGT_S_x4.pth",
+ "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT_S/RGT_S_x4.pth",
+ "size": "136.0MB"
+ },
+
+ {
+ "name": "TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic v2 (fp16)",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL",
+ "description": "[2.5GB] Controlnet SDXL Tile model realistic version.",
+ "reference": "https://huggingface.co/TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic",
+ "filename": "TTPLANET_Controlnet_Tile_realistic_v2_fp16.safetensors",
+ "url": "https://huggingface.co/TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic/resolve/main/TTPLANET_Controlnet_Tile_realistic_v2_fp16.safetensors",
+ "size": "2.50GB"
+ },
+
+ {
+ "name": "TencentARC/CustomNet",
+ "type": "CustomNet",
+ "base": "CustomNet",
+ "save_path": "custom_nodes/ComfyUI_CustomNet/pretrain",
+ "description": "CustomNet pretrained model for ComfyUI_CustomNet",
+ "reference": "https://huggingface.co/TencentARC/CustomNet/tree/main",
+ "filename": "customnet_v1.pt",
+ "url": "https://huggingface.co/TencentARC/CustomNet/resolve/main/customnet_v1.pt",
+ "size": "5.71GB"
+ },
+
+ {
+ "name": "ID-Animator/animator.ckpt",
+ "type": "ID-Animator",
+ "base": "SD1.5",
+ "save_path": "custom_nodes/ComfyUI_ID_Animator/models",
+ "description": "ID-Animator checkpoint",
+ "reference": "https://huggingface.co/spaces/ID-Animator/ID-Animator",
+ "filename": "animator.ckpt",
+ "url": "https://huggingface.co/spaces/ID-Animator/ID-Animator/resolve/main/animator.ckpt",
+ "size": "247.3MB"
+ },
+ {
+ "name": "ID-Animator/mm_sd_v15_v2.ckpt",
+ "type": "ID-Animator",
+ "base": "SD1.5",
+ "save_path": "custom_nodes/ComfyUI_ID_Animator/models/animatediff_models",
+ "description": "AnimateDiff checkpoint for ID-Animator",
+ "reference": "https://huggingface.co/spaces/ID-Animator/ID-Animator",
+ "filename": "mm_sd_v15_v2.ckpt",
+ "url": "https://huggingface.co/spaces/ID-Animator/ID-Animator/resolve/main/mm_sd_v15_v2.ckpt",
+ "size": "1.82GB"
+ },
+ {
+ "name": "ID-Animator/image_encoder",
+ "type": "ID-Animator",
+ "base": "SD1.5",
+ "save_path": "custom_nodes/ComfyUI_ID_Animator/models/image_encoder",
+ "description": "CLIP Image encoder for ID-Animator",
+ "reference": "https://huggingface.co/spaces/ID-Animator/ID-Animator",
+ "filename": "model.safetensors",
+ "url": "https://huggingface.co/spaces/ID-Animator/ID-Animator/resolve/main/image_encoder/model.safetensors",
+ "size": "2.53GB"
+ },
+
+ {
+ "name": "IC-Light/fc",
+ "type": "IC-Light",
+ "base": "SD1.5",
+ "save_path": "unet/IC-Light",
+ "description": "The default relighting model, conditioned on text and foreground",
+ "reference": "https://huggingface.co/lllyasviel/ic-light",
+ "filename": "iclight_sd15_fc.safetensors",
+ "url": "https://huggingface.co/lllyasviel/ic-light/resolve/main/iclight_sd15_fc.safetensors",
+ "size": "1.72GB"
+ },
+ {
+ "name": "IC-Light/fbc",
+ "type": "IC-Light",
+ "base": "SD1.5",
+ "save_path": "unet/IC-Light",
+ "description": "Relighting model conditioned with text, foreground, and background",
+ "reference": "https://huggingface.co/lllyasviel/ic-light",
+ "filename": "iclight_sd15_fbc.safetensors",
+ "url": "https://huggingface.co/lllyasviel/ic-light/resolve/main/iclight_sd15_fbc.safetensors",
+ "size": "1.72GB"
+ },
+ {
+ "name": "IC-Light/fcon",
+ "type": "IC-Light",
+ "base": "SD1.5",
+ "save_path": "unet/IC-Light",
+ "description": "Same as iclight_sd15_fc.safetensors, but trained with offset noise",
+ "reference": "https://huggingface.co/lllyasviel/ic-light",
+ "filename": "iclight_sd15_fcon.safetensors",
+ "url": "https://huggingface.co/lllyasviel/ic-light/resolve/main/iclight_sd15_fcon.safetensors",
+ "size": "1.72GB"
+ },
+
+ {
+ "name": "MonsterMMORPG/insightface (for InstantID)",
+ "type": "insightface",
+ "base": "SDXL",
+ "save_path": "insightface/models",
+ "description": "MonsterMMORPG insightface model for cubiq/InstantID",
+ "reference": "https://huggingface.co/MonsterMMORPG/tools/tree/main",
+ "filename": "antelopev2.zip",
+ "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/antelopev2.zip",
+ "size": "360.7MB"
+ },
+ {
+ "name": "InstantID/ip-adapter",
+ "type": "instantid",
+ "base": "SDXL",
+ "save_path": "instantid/SDXL",
+ "description": "ip-adapter model for cubiq/InstantID",
+ "reference": "https://huggingface.co/InstantX/InstantID",
+ "filename": "ip-adapter.bin",
+ "url": "https://huggingface.co/InstantX/InstantID/resolve/main/ip-adapter.bin"
+ },
+ {
+ "name": "InstantID/ControlNet",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "controlnet/SDXL/instantid",
+ "description": "instantid controlnet model for cubiq/InstantID",
+ "reference": "https://huggingface.co/InstantX/InstantID",
+ "filename": "diffusion_pytorch_model.safetensors",
+ "url": "https://huggingface.co/InstantX/InstantID/resolve/main/ControlNetModel/diffusion_pytorch_model.safetensors"
+ },
+ {
+ "name": "ip_plus_composition_sd15.safetensors",
+ "type": "IP-Adapter",
+ "base": "SD1.5",
+ "save_path": "ipadapter",
+ "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.",
+ "reference": "https://huggingface.co/ostris/ip-composition-adapter",
+ "filename": "ip_plus_composition_sd15.safetensors",
+ "url": "https://huggingface.co/ostris/ip-composition-adapter/resolve/main/ip_plus_composition_sd15.safetensors"
+ },
+ {
+ "name": "ip_plus_composition_sdxl.safetensors",
+ "type": "IP-Adapter",
+ "base": "SDXL",
+ "save_path": "ipadapter",
+ "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.",
+ "reference": "https://huggingface.co/ostris/ip-composition-adapter",
+ "filename": "ip_plus_composition_sdxl.safetensors",
+ "url": "https://huggingface.co/ostris/ip-composition-adapter/resolve/main/ip_plus_composition_sdxl.safetensors"
+ },
+ {
+ "name": "ip-adapter-faceid-portrait-v11_sd15.bin",
+ "type": "IP-Adapter",
+ "base": "SD1.5",
+ "save_path": "ipadapter",
+ "description": "IP-Adapter-FaceID Portrait V11 Model (SD1.5) [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter-FaceID",
+ "filename": "ip-adapter-faceid-portrait-v11_sd15.bin",
+ "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait-v11_sd15.bin"
+ },
+ {
+ "name": "ip-adapter-faceid-portrait_sdxl.bin",
+ "type": "IP-Adapter",
+ "base": "SDXL",
+ "save_path": "ipadapter",
+ "description": "IP-Adapter-FaceID Portrait Model (SDXL) [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter-FaceID",
+ "filename": "ip-adapter-faceid-portrait_sdxl.bin",
+ "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait_sdxl.bin"
+ },
+ {
+ "name": "ip-adapter-faceid-portrait_sdxl_unnorm.bin",
+ "type": "IP-Adapter",
+ "base": "SDXL",
+ "save_path": "ipadapter",
+ "description": "IP-Adapter-FaceID Portrait Model (SDXL/unnorm) [ipadapter]",
+ "reference": "https://huggingface.co/h94/IP-Adapter-FaceID",
+ "filename": "ip-adapter-faceid-portrait_sdxl_unnorm.bin",
+ "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait_sdxl_unnorm.bin"
+ },
+ {
+ "name": "ip-adapter_sd15_light_v11.bin",
+ "type": "IP-Adapter",
+ "base": "SD1.5",
+ "save_path": "ipadapter",
+ "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.",
+ "reference": "https://huggingface.co/h94/IP-Adapter",
+ "filename": "ip-adapter_sd15_light_v11.bin",
+ "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15_light_v11.bin"
+ },
+
+
+ {
+ "name": "Kijai/SUPIR-v0F_fp16.safetensors (pruned)",
+ "type": "checkpoints",
+ "base": "SUPIR",
+ "save_path": "checkpoints/SUPIR",
+ "description": "SUPIR checkpoint model",
+ "reference": "https://huggingface.co/Kijai/SUPIR_pruned/tree/main",
+ "filename": "SUPIR-v0F_fp16.safetensors",
+ "url": "https://huggingface.co/Kijai/SUPIR_pruned/resolve/main/SUPIR-v0F_fp16.safetensors"
+ },
+ {
+ "name": "Kijai/SUPIR-v0Q_fp16.safetensors (pruned)",
+ "type": "checkpoints",
+ "base": "SUPIR",
+ "save_path": "checkpoints/SUPIR",
+ "description": "SUPIR checkpoint model",
+ "reference": "https://huggingface.co/Kijai/SUPIR_pruned/tree/main",
+ "filename": "SUPIR-v0Q_fp16.safetensors",
+ "url": "https://huggingface.co/Kijai/SUPIR_pruned/resolve/main/SUPIR-v0Q_fp16.safetensors"
+ },
+ {
+ "name": "SUPIR-v0F.ckpt",
+ "type": "checkpoints",
+ "base": "SUPIR",
+ "save_path": "checkpoints/SUPIR",
+ "description": "SUPIR checkpoint model",
+ "reference": "https://huggingface.co/camenduru/SUPIR/tree/main",
+ "filename": "SUPIR-v0F.ckpt",
+ "url": "https://huggingface.co/camenduru/SUPIR/resolve/main/SUPIR-v0F.ckpt"
+ },
+ {
+ "name": "SUPIR-v0Q.ckpt",
+ "type": "checkpoints",
+ "base": "SUPIR",
+ "save_path": "checkpoints/SUPIR",
+ "description": "SUPIR checkpoint model",
+ "reference": "https://huggingface.co/camenduru/SUPIR/tree/main",
+ "filename": "SUPIR-v0Q.ckpt",
+ "url": "https://huggingface.co/camenduru/SUPIR/resolve/main/SUPIR-v0Q.ckpt"
+ },{
+ "name": "Depth-FM-v1 fp16 safetensors",
+ "type": "checkpoints",
+ "base": "Depth-FM",
+ "save_path": "checkpoints/depthfm",
+ "description": "Depth-FM monocular depth estimation model",
+ "reference": "https://huggingface.co/Kijai/depth-fm-pruned",
+ "filename": "depthfm-v1_fp16.safetensors",
+ "url": "https://huggingface.co/Kijai/depth-fm-pruned/resolve/main/depthfm-v1_fp16.safetensors"
+ },
+ {
+ "name": "Depth-FM-v1 fp32 safetensors",
+ "type": "checkpoints",
+ "base": "Depth-FM",
+ "save_path": "checkpoints/depthfm",
+ "description": "Depth-FM monocular depth estimation model",
+ "reference": "https://huggingface.co/Kijai/depth-fm-pruned",
+ "filename": "depthfm-v1_fp32.safetensors",
+ "url": "https://huggingface.co/Kijai/depth-fm-pruned/resolve/main/depthfm-v1_fp32.safetensors"
+ },
+ {
+ "name": "monster-labs - Controlnet QR Code Monster v1 For SDXL",
+ "type": "controlnet",
+ "base": "SDXL",
+ "save_path": "default",
+ "description": "monster-labs - Controlnet QR Code Monster v1 For SDXL",
+ "reference": "https://huggingface.co/monster-labs/control_v1p_sdxl_qrcode_monster",
+ "filename": "control_v1p_sdxl_qrcode_monster.safetensors",
+ "url": "https://huggingface.co/monster-labs/control_v1p_sdxl_qrcode_monster/resolve/main/diffusion_pytorch_model.safetensors"
+ }
+ ]
+}
diff --git a/custom_nodes/ComfyUI-Manager/node_db/tutorial/custom-node-list.json b/custom_nodes/ComfyUI-Manager/node_db/tutorial/custom-node-list.json
new file mode 100644
index 000000000..c02d05d8e
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/tutorial/custom-node-list.json
@@ -0,0 +1,244 @@
+{
+ "custom_nodes": [
+ {
+ "author": "Suzie1",
+ "title": "Guide To Making Custom Nodes in ComfyUI",
+ "reference": "https://github.com/Suzie1/ComfyUI_Guide_To_Making_Custom_Nodes",
+ "files": [
+ "https://github.com/Suzie1/ComfyUI_Guide_To_Making_Custom_Nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "There is a small node pack attached to this guide. This includes the init file and 3 nodes associated with the tutorials."
+ },
+ {
+ "author": "bamboodia",
+ "title": "BAM Nodes",
+ "reference": "https://github.com/bamboodia/BAM_Nodes",
+ "files": [
+ "https://github.com/bamboodia/BAM_Nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "A collection of comfyui nodes that I have made for nothing more than educational purposes."
+ },
+ {
+ "author": "BadCafeCode",
+ "title": "execution-inversion-demo-comfyui",
+ "reference": "https://github.com/BadCafeCode/execution-inversion-demo-comfyui",
+ "files": [
+ "https://github.com/BadCafeCode/execution-inversion-demo-comfyui"
+ ],
+ "install_type": "git-clone",
+ "description": "These are demo nodes for [a/PR2666](https://github.com/comfyanonymous/ComfyUI/pull/2666)"
+ },
+ {
+ "author": "ecjojo",
+ "title": "ecjojo_example_nodes",
+ "reference": "https://github.com/ecjojo/ecjojo-example-nodes",
+ "files": [
+ "https://github.com/ecjojo/ecjojo-example-nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Welcome to ecjojo_example_nodes! This example is specifically designed for beginners who want to learn how to write a simple custom node.\nFeel free to modify this example and make it your own. Experiment with different features and functionalities to enhance your understanding of ComfyUI custom nodes. Don't be afraid to explore and customize the code to suit your needs.\nBy diving into this example and making it your own, you'll gain valuable hands-on experience in creating custom nodes in ComfyUI. Enjoy the process of learning and have fun with your custom node development journey!"
+ },
+ {
+ "author": "dynamixar",
+ "title": "Atluris",
+ "reference": "https://github.com/dynamixar/Atluris",
+ "files": [
+ "https://github.com/dynamixar/Atluris"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Random Line"
+ },
+ {
+ "author": "et118",
+ "title": "ComfyUI-ElGogh-Nodes",
+ "reference": "https://github.com/et118/ComfyUI-ElGogh-Nodes",
+ "files": [
+ "https://github.com/et118/ComfyUI-ElGogh-Nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:ElGogh Positive Prompt, ElGogh NEGATIVE Prompt, ElGogh Empty Latent Image, ElGogh Checkpoint Loader Simple"
+ },
+ {
+ "author": "LarryJane491",
+ "title": "Custom-Node-Base",
+ "reference": "https://github.com/LarryJane491/Custom-Node-Base",
+ "files": [
+ "https://github.com/LarryJane491/Custom-Node-Base"
+ ],
+ "install_type": "git-clone",
+ "description": "This project is an `empty` custom node that is already in its own folder. It serves as a base to build any custom node. Whenever you want to create a custom node, you can download that, put it in custom_nodes, then you just have to change the names and fill it with code!"
+ },
+ {
+ "author": "foxtrot-roger",
+ "title": "comfyui-custom-nodes",
+ "reference": "https://github.com/foxtrot-roger/comfyui-custom-nodes",
+ "files": [
+ "https://github.com/foxtrot-roger/comfyui-custom-nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Tutorial nodes"
+ },
+ {
+ "author": "wailovet",
+ "title": "ComfyUI-WW",
+ "reference": "https://github.com/wailovet/ComfyUI-WW",
+ "files": [
+ "https://github.com/wailovet/ComfyUI-WW"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:WW_ImageResize"
+ },
+ {
+ "author": "bmz55",
+ "title": "bmz nodes",
+ "reference": "https://github.com/bmz55/comfyui-bmz-nodes",
+ "files": [
+ "https://github.com/bmz55/comfyui-bmz-nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Load Images From Dir With Name (Inspire - BMZ), Count Images In Dir (BMZ), Get Level Text (BMZ), Get Level Float (BMZ)"
+ },
+ {
+ "author": "azure-dragon-ai",
+ "title": "ComfyUI-HPSv2-Nodes",
+ "reference": "https://github.com/azure-dragon-ai/ComfyUI-HPSv2-Nodes",
+ "files": [
+ "https://github.com/azure-dragon-ai/ComfyUI-HPSv2-Nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Loader, Image Processor, Text Processor, ImageScore"
+ },
+ {
+ "author": "kappa54m",
+ "title": "ComfyUI-HPSv2-Nodes",
+ "reference": "https://github.com/kappa54m/ComfyUI_Usability",
+ "files": [
+ "https://github.com/kappa54m/ComfyUI_Usability"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Load Image Dedup"
+ },
+ {
+ "author": "IvanRybakov",
+ "title": "comfyui-node-int-to-string-convertor",
+ "reference": "https://github.com/IvanRybakov/comfyui-node-int-to-string-convertor",
+ "files": [
+ "https://github.com/IvanRybakov/comfyui-node-int-to-string-convertor"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Int To String Convertor"
+ },
+ {
+ "author": "yowipr",
+ "title": "ComfyUI-Manual",
+ "reference": "https://github.com/yowipr/ComfyUI-Manual",
+ "files": [
+ "https://github.com/yowipr/ComfyUI-Manual"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:M_Layer, M_Output"
+ },
+ {
+ "author": "andrewharp",
+ "title": "ComfyUI Function Annotator",
+ "reference": "https://github.com/andrewharp/ComfyUI-Annotations",
+ "files": [
+ "https://github.com/andrewharp/ComfyUI-Annotations"
+ ],
+ "install_type": "git-clone",
+ "description": "This module provides an annotation @ComfyFunc to streamline adding custom node types in ComfyUI. It processes your function's signature to create a wrapped function and custom node definition required for ComfyUI, eliminating all the boilerplate code. In most cases you can just add a @ComfyFunc(\"category\") annotation to your existing function."
+ },
+ {
+ "author": "MokkaBoss1",
+ "title": "Woman_in_a_dress",
+ "reference": "https://github.com/MokkaBoss1/Woman_in_a_dress",
+ "files": [
+ "https://github.com/MokkaBoss1/Woman_in_a_dress/raw/main/Woman_In_A_Dress.py"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Woman_in_a_dress"
+ },
+ {
+ "author": "shinich39",
+ "title": "comfyui-concat-text-39",
+ "reference": "https://github.com/shinich39/comfyui-concat-text-39",
+ "files": [
+ "https://github.com/shinich39/comfyui-concat-text-39"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Concatenate multiple text nodes."
+ },
+ {
+ "author": "nilor-corp",
+ "title": "nilor-nodes",
+ "reference": "https://github.com/nilor-corp/nilor-nodes",
+ "files": [
+ "https://github.com/nilor-corp/nilor-nodes"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Nilor Floats, Nilor Int To List Of Bools, Nilor Bool From List Of Bools, Nilor Int From List Of Ints, Nilor List of Ints, Nilor Count Images In Directory"
+ },
+ {
+ "author": "OuticNZ",
+ "title": "ComfyUI-Simple-Of-Complex",
+ "reference": "https://github.com/OuticNZ/ComfyUI-Simple-Of-Complex",
+ "files": [
+ "https://github.com/OuticNZ/ComfyUI-Simple-Of-Complex"
+ ],
+ "install_type": "git-clone",
+ "description": "Keeping it simple for starting. Single branch for now and will add development branch later."
+ },
+ {
+ "author": "jtong",
+ "title": "comfyui-jtong-workflow",
+ "reference": "https://github.com/jtong/comfyui-jtong-workflow",
+ "files": [
+ "https://github.com/jtong/comfyui-jtong-workflow"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:jtong.Highway, Example"
+ },
+ {
+ "author": "thinkthinking",
+ "title": "ComfyUI-Ye",
+ "reference": "https://github.com/thinkthinking/ComfyUI-Ye",
+ "files": [
+ "https://github.com/thinkthinking/ComfyUI-Ye"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:Signature|Ye, CheckpointLoader|Ye, PrintHelloWorld|Ye."
+ },
+ {
+ "author": "BoosterCore",
+ "title": "ComfyUI-BC-Experimental",
+ "reference": "https://github.com/BoosterCore/ComfyUI-BC-Experimental",
+ "files": [
+ "https://github.com/BoosterCore/ComfyUI-BC-Experimental"
+ ],
+ "install_type": "git-clone",
+ "description": "Nodes:ClipTextEncodeBC, SaveAnyText, SimpleText"
+ },
+ {
+ "author": "sonyeon-sj",
+ "title": "ComfyUI-easy_ImageSize_Selecter",
+ "reference": "https://github.com/sonyeon-sj/ComfyUI-easy_ImageSize_Selecter",
+ "files": [
+ "https://github.com/sonyeon-sj/ComfyUI-easy_ImageSize_Selecter"
+ ],
+ "install_type": "git-clone",
+ "description": "Custom node for ComfyUI Select the image size from the preset and select Vertical and Horizontal to output Width and Height."
+ },
+ {
+ "author": "boricuapab",
+ "title": "ComfyUI_BoricuapabWFNodePack",
+ "reference": "https://github.com/boricuapab/ComfyUI_BoricuapabWFNodePack",
+ "files": [
+ "https://github.com/boricuapab/ComfyUI_BoricuapabWFNodePack"
+ ],
+ "install_type": "git-clone",
+ "description": "Learning how to make my own comfy ui custom nodes"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/node_db/tutorial/extension-node-map.json b/custom_nodes/ComfyUI-Manager/node_db/tutorial/extension-node-map.json
new file mode 100644
index 000000000..9e26dfeeb
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/tutorial/extension-node-map.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/node_db/tutorial/model-list.json b/custom_nodes/ComfyUI-Manager/node_db/tutorial/model-list.json
new file mode 100644
index 000000000..8e3e1dc48
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/tutorial/model-list.json
@@ -0,0 +1,3 @@
+{
+ "models": []
+}
diff --git a/custom_nodes/ComfyUI-Manager/node_db/tutorial/scan.sh b/custom_nodes/ComfyUI-Manager/node_db/tutorial/scan.sh
new file mode 100644
index 000000000..5d8d8c48b
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/node_db/tutorial/scan.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+source ../../../../venv/bin/activate
+rm .tmp/*.py > /dev/null
+python ../../scanner.py
diff --git a/custom_nodes/ComfyUI-Manager/notebooks/comfyui_colab_with_manager.ipynb b/custom_nodes/ComfyUI-Manager/notebooks/comfyui_colab_with_manager.ipynb
new file mode 100644
index 000000000..d8b863889
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/notebooks/comfyui_colab_with_manager.ipynb
@@ -0,0 +1,372 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "aaaaaaaaaa"
+ },
+ "source": [
+ "Git clone the repo and install the requirements. (ignore the pip errors about protobuf)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "bbbbbbbbbb"
+ },
+ "outputs": [],
+ "source": [
+ "# #@title Environment Setup\n",
+ "\n",
+ "from pathlib import Path\n",
+ "\n",
+ "OPTIONS = {}\n",
+ "\n",
+ "USE_GOOGLE_DRIVE = True #@param {type:\"boolean\"}\n",
+ "UPDATE_COMFY_UI = True #@param {type:\"boolean\"}\n",
+ "USE_COMFYUI_MANAGER = True #@param {type:\"boolean\"}\n",
+ "INSTALL_CUSTOM_NODES_DEPENDENCIES = True #@param {type:\"boolean\"}\n",
+ "OPTIONS['USE_GOOGLE_DRIVE'] = USE_GOOGLE_DRIVE\n",
+ "OPTIONS['UPDATE_COMFY_UI'] = UPDATE_COMFY_UI\n",
+ "OPTIONS['USE_COMFYUI_MANAGER'] = USE_COMFYUI_MANAGER\n",
+ "OPTIONS['INSTALL_CUSTOM_NODES_DEPENDENCIES'] = INSTALL_CUSTOM_NODES_DEPENDENCIES\n",
+ "\n",
+ "current_dir = !pwd\n",
+ "WORKSPACE = f\"{current_dir[0]}/ComfyUI\"\n",
+ "\n",
+ "if OPTIONS['USE_GOOGLE_DRIVE']:\n",
+ " !echo \"Mounting Google Drive...\"\n",
+ " %cd /\n",
+ "\n",
+ " from google.colab import drive\n",
+ " drive.mount('/content/drive')\n",
+ "\n",
+ " WORKSPACE = \"/content/drive/MyDrive/ComfyUI\"\n",
+ " %cd /content/drive/MyDrive\n",
+ "\n",
+ "![ ! -d $WORKSPACE ] && echo -= Initial setup ComfyUI =- && git clone https://github.com/comfyanonymous/ComfyUI\n",
+ "%cd $WORKSPACE\n",
+ "\n",
+ "if OPTIONS['UPDATE_COMFY_UI']:\n",
+ " !echo -= Updating ComfyUI =-\n",
+ "\n",
+ " # Correction of the issue of permissions being deleted on Google Drive.\n",
+ " ![ -f \".ci/nightly/update_windows/update_comfyui_and_python_dependencies.bat\" ] && chmod 755 .ci/nightly/update_windows/update_comfyui_and_python_dependencies.bat\n",
+ " ![ -f \".ci/nightly/windows_base_files/run_nvidia_gpu.bat\" ] && chmod 755 .ci/nightly/windows_base_files/run_nvidia_gpu.bat\n",
+ " ![ -f \".ci/update_windows/update_comfyui_and_python_dependencies.bat\" ] && chmod 755 .ci/update_windows/update_comfyui_and_python_dependencies.bat\n",
+ " ![ -f \".ci/update_windows_cu118/update_comfyui_and_python_dependencies.bat\" ] && chmod 755 .ci/update_windows_cu118/update_comfyui_and_python_dependencies.bat\n",
+ " ![ -f \".ci/update_windows/update.py\" ] && chmod 755 .ci/update_windows/update.py\n",
+ " ![ -f \".ci/update_windows/update_comfyui.bat\" ] && chmod 755 .ci/update_windows/update_comfyui.bat\n",
+ " ![ -f \".ci/update_windows/README_VERY_IMPORTANT.txt\" ] && chmod 755 .ci/update_windows/README_VERY_IMPORTANT.txt\n",
+ " ![ -f \".ci/update_windows/run_cpu.bat\" ] && chmod 755 .ci/update_windows/run_cpu.bat\n",
+ " ![ -f \".ci/update_windows/run_nvidia_gpu.bat\" ] && chmod 755 .ci/update_windows/run_nvidia_gpu.bat\n",
+ "\n",
+ " !git pull\n",
+ "\n",
+ "!echo -= Install dependencies =-\n",
+ "!pip3 install accelerate\n",
+ "!pip3 install einops transformers>=4.25.1 safetensors>=0.3.0 aiohttp pyyaml Pillow scipy tqdm psutil\n",
+ "!pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121\n",
+ "!pip3 install torchsde\n",
+ "!pip3 install kornia>=0.7.1 spandrel\n",
+ "\n",
+ "if OPTIONS['USE_COMFYUI_MANAGER']:\n",
+ " %cd custom_nodes\n",
+ "\n",
+ " # Correction of the issue of permissions being deleted on Google Drive.\n",
+ " ![ -f \"ComfyUI-Manager/check.sh\" ] && chmod 755 ComfyUI-Manager/check.sh\n",
+ " ![ -f \"ComfyUI-Manager/scan.sh\" ] && chmod 755 ComfyUI-Manager/scan.sh\n",
+ " ![ -f \"ComfyUI-Manager/node_db/dev/scan.sh\" ] && chmod 755 ComfyUI-Manager/node_db/dev/scan.sh\n",
+ " ![ -f \"ComfyUI-Manager/scripts/install-comfyui-venv-linux.sh\" ] && chmod 755 ComfyUI-Manager/scripts/install-comfyui-venv-linux.sh\n",
+ " ![ -f \"ComfyUI-Manager/scripts/install-comfyui-venv-win.bat\" ] && chmod 755 ComfyUI-Manager/scripts/install-comfyui-venv-win.bat\n",
+ "\n",
+ " ![ ! -d ComfyUI-Manager ] && echo -= Initial setup ComfyUI-Manager =- && git clone https://github.com/ltdrdata/ComfyUI-Manager\n",
+ " %cd ComfyUI-Manager\n",
+ " !git pull\n",
+ "\n",
+ "%cd $WORKSPACE\n",
+ "\n",
+ "if OPTIONS['INSTALL_CUSTOM_NODES_DEPENDENCIES']:\n",
+ " !echo -= Install custom nodes dependencies =-\n",
+ " !pip install GitPython\n",
+ " !python custom_nodes/ComfyUI-Manager/cm-cli.py restore-dependencies\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "cccccccccc"
+ },
+ "source": [
+ "Download some models/checkpoints/vae or custom comfyui nodes (uncomment the commands for the ones you want)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "dddddddddd"
+ },
+ "outputs": [],
+ "source": [
+ "# Checkpoints\n",
+ "\n",
+ "### SDXL\n",
+ "### I recommend these workflow examples: https://comfyanonymous.github.io/ComfyUI_examples/sdxl/\n",
+ "\n",
+ "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors -P ./models/checkpoints/\n",
+ "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors -P ./models/checkpoints/\n",
+ "\n",
+ "# SDXL ReVision\n",
+ "#!wget -c https://huggingface.co/comfyanonymous/clip_vision_g/resolve/main/clip_vision_g.safetensors -P ./models/clip_vision/\n",
+ "\n",
+ "# SD1.5\n",
+ "!wget -c https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt -P ./models/checkpoints/\n",
+ "\n",
+ "# SD2\n",
+ "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.safetensors -P ./models/checkpoints/\n",
+ "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors -P ./models/checkpoints/\n",
+ "\n",
+ "# Some SD1.5 anime style\n",
+ "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors -P ./models/checkpoints/\n",
+ "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A1_orangemixs.safetensors -P ./models/checkpoints/\n",
+ "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A3_orangemixs.safetensors -P ./models/checkpoints/\n",
+ "#!wget -c https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/anything-v3-fp16-pruned.safetensors -P ./models/checkpoints/\n",
+ "\n",
+ "# Waifu Diffusion 1.5 (anime style SD2.x 768-v)\n",
+ "#!wget -c https://huggingface.co/waifu-diffusion/wd-1-5-beta3/resolve/main/wd-illusion-fp16.safetensors -P ./models/checkpoints/\n",
+ "\n",
+ "\n",
+ "# unCLIP models\n",
+ "#!wget -c https://huggingface.co/comfyanonymous/illuminatiDiffusionV1_v11_unCLIP/resolve/main/illuminatiDiffusionV1_v11-unclip-h-fp16.safetensors -P ./models/checkpoints/\n",
+ "#!wget -c https://huggingface.co/comfyanonymous/wd-1.5-beta2_unCLIP/resolve/main/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors -P ./models/checkpoints/\n",
+ "\n",
+ "\n",
+ "# VAE\n",
+ "!wget -c https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors -P ./models/vae/\n",
+ "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt -P ./models/vae/\n",
+ "#!wget -c https://huggingface.co/hakurei/waifu-diffusion-v1-4/resolve/main/vae/kl-f8-anime2.ckpt -P ./models/vae/\n",
+ "\n",
+ "\n",
+ "# Loras\n",
+ "#!wget -c https://civitai.com/api/download/models/10350 -O ./models/loras/theovercomer8sContrastFix_sd21768.safetensors #theovercomer8sContrastFix SD2.x 768-v\n",
+ "#!wget -c https://civitai.com/api/download/models/10638 -O ./models/loras/theovercomer8sContrastFix_sd15.safetensors #theovercomer8sContrastFix SD1.x\n",
+ "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_offset_example-lora_1.0.safetensors -P ./models/loras/ #SDXL offset noise lora\n",
+ "\n",
+ "\n",
+ "# T2I-Adapter\n",
+ "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_depth_sd14v1.pth -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_seg_sd14v1.pth -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_sketch_sd14v1.pth -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_keypose_sd14v1.pth -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_openpose_sd14v1.pth -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_color_sd14v1.pth -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_canny_sd14v1.pth -P ./models/controlnet/\n",
+ "\n",
+ "# T2I Styles Model\n",
+ "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_style_sd14v1.pth -P ./models/style_models/\n",
+ "\n",
+ "# CLIPVision model (needed for styles model)\n",
+ "#!wget -c https://huggingface.co/openai/clip-vit-large-patch14/resolve/main/pytorch_model.bin -O ./models/clip_vision/clip_vit14.bin\n",
+ "\n",
+ "\n",
+ "# ControlNet\n",
+ "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_ip2p_fp16.safetensors -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_shuffle_fp16.safetensors -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_canny_fp16.safetensors -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1p_sd15_depth_fp16.safetensors -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_inpaint_fp16.safetensors -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_lineart_fp16.safetensors -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_mlsd_fp16.safetensors -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_normalbae_fp16.safetensors -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_openpose_fp16.safetensors -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_seg_fp16.safetensors -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_softedge_fp16.safetensors -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15s2_lineart_anime_fp16.safetensors -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11u_sd15_tile_fp16.safetensors -P ./models/controlnet/\n",
+ "\n",
+ "# ControlNet SDXL\n",
+ "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-canny-rank256.safetensors -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-depth-rank256.safetensors -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-recolor-rank256.safetensors -P ./models/controlnet/\n",
+ "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-sketch-rank256.safetensors -P ./models/controlnet/\n",
+ "\n",
+ "# Controlnet Preprocessor nodes by Fannovel16\n",
+ "#!cd custom_nodes && git clone https://github.com/Fannovel16/comfy_controlnet_preprocessors; cd comfy_controlnet_preprocessors && python install.py\n",
+ "\n",
+ "\n",
+ "# GLIGEN\n",
+ "#!wget -c https://huggingface.co/comfyanonymous/GLIGEN_pruned_safetensors/resolve/main/gligen_sd14_textbox_pruned_fp16.safetensors -P ./models/gligen/\n",
+ "\n",
+ "\n",
+ "# ESRGAN upscale model\n",
+ "#!wget -c https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth -P ./models/upscale_models/\n",
+ "#!wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x2.pth -P ./models/upscale_models/\n",
+ "#!wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x4.pth -P ./models/upscale_models/\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "kkkkkkkkkkkkkkk"
+ },
+ "source": [
+ "### Run ComfyUI with cloudflared (Recommended Way)\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "jjjjjjjjjjjjjj"
+ },
+ "outputs": [],
+ "source": [
+ "!wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb\n",
+ "!dpkg -i cloudflared-linux-amd64.deb\n",
+ "\n",
+ "import subprocess\n",
+ "import threading\n",
+ "import time\n",
+ "import socket\n",
+ "import urllib.request\n",
+ "\n",
+ "def iframe_thread(port):\n",
+ " while True:\n",
+ " time.sleep(0.5)\n",
+ " sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n",
+ " result = sock.connect_ex(('127.0.0.1', port))\n",
+ " if result == 0:\n",
+ " break\n",
+ " sock.close()\n",
+ " print(\"\\nComfyUI finished loading, trying to launch cloudflared (if it gets stuck here cloudflared is having issues)\\n\")\n",
+ "\n",
+ " p = subprocess.Popen([\"cloudflared\", \"tunnel\", \"--url\", \"http://127.0.0.1:{}\".format(port)], stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n",
+ " for line in p.stderr:\n",
+ " l = line.decode()\n",
+ " if \"trycloudflare.com \" in l:\n",
+ " print(\"This is the URL to access ComfyUI:\", l[l.find(\"http\"):], end='')\n",
+ " #print(l, end='')\n",
+ "\n",
+ "\n",
+ "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n",
+ "\n",
+ "!python main.py --dont-print-server"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "kkkkkkkkkkkkkk"
+ },
+ "source": [
+ "### Run ComfyUI with localtunnel\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "jjjjjjjjjjjjj"
+ },
+ "outputs": [],
+ "source": [
+ "!npm install -g localtunnel\n",
+ "\n",
+ "import subprocess\n",
+ "import threading\n",
+ "import time\n",
+ "import socket\n",
+ "import urllib.request\n",
+ "\n",
+ "def iframe_thread(port):\n",
+ " while True:\n",
+ " time.sleep(0.5)\n",
+ " sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n",
+ " result = sock.connect_ex(('127.0.0.1', port))\n",
+ " if result == 0:\n",
+ " break\n",
+ " sock.close()\n",
+ " print(\"\\nComfyUI finished loading, trying to launch localtunnel (if it gets stuck here localtunnel is having issues)\\n\")\n",
+ "\n",
+ " print(\"The password/enpoint ip for localtunnel is:\", urllib.request.urlopen('https://ipv4.icanhazip.com').read().decode('utf8').strip(\"\\n\"))\n",
+ " p = subprocess.Popen([\"lt\", \"--port\", \"{}\".format(port)], stdout=subprocess.PIPE)\n",
+ " for line in p.stdout:\n",
+ " print(line.decode(), end='')\n",
+ "\n",
+ "\n",
+ "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n",
+ "\n",
+ "!python main.py --dont-print-server"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "gggggggggg"
+ },
+ "source": [
+ "### Run ComfyUI with colab iframe (use only in case the previous way with localtunnel doesn't work)\n",
+ "\n",
+ "You should see the ui appear in an iframe. If you get a 403 error, it's your firefox settings or an extension that's messing things up.\n",
+ "\n",
+ "If you want to open it in another window use the link.\n",
+ "\n",
+ "Note that some UI features like live image previews won't work because the colab iframe blocks websockets."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "hhhhhhhhhh"
+ },
+ "outputs": [],
+ "source": [
+ "import threading\n",
+ "import time\n",
+ "import socket\n",
+ "def iframe_thread(port):\n",
+ " while True:\n",
+ " time.sleep(0.5)\n",
+ " sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n",
+ " result = sock.connect_ex(('127.0.0.1', port))\n",
+ " if result == 0:\n",
+ " break\n",
+ " sock.close()\n",
+ " from google.colab import output\n",
+ " output.serve_kernel_port_as_iframe(port, height=1024)\n",
+ " print(\"to open it in a window you can open this link here:\")\n",
+ " output.serve_kernel_port_as_window(port)\n",
+ "\n",
+ "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n",
+ "\n",
+ "!python main.py --dont-print-server"
+ ]
+ }
+ ],
+ "metadata": {
+ "accelerator": "GPU",
+ "colab": {
+ "provenance": []
+ },
+ "gpuClass": "standard",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "name": "python3"
+ },
+ "language_info": {
+ "name": "python"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/pip_overrides.json.template b/custom_nodes/ComfyUI-Manager/pip_overrides.json.template
new file mode 100644
index 000000000..a6b1f2629
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/pip_overrides.json.template
@@ -0,0 +1,21 @@
+{
+ "imageio-ffmpeg": "imageio",
+ "imageio[ffmpeg]": "imageio",
+ "imageio_ffmpeg": "imageio",
+ "diffusers~=0.21.4": "diffusers",
+ "huggingface_hub": "huggingface-hub",
+ "numpy<1.24>=1.18": "numpy",
+ "numpy>=1.18.5, <1.25.0": "numpy",
+ "opencv-contrib-python": "opencv-contrib-python-headless",
+ "opencv-python": "opencv-contrib-python-headless",
+ "opencv-python-headless": "opencv-contrib-python-headless",
+ "opencv-python-headless[ffmpeg]<=4.7.0.72": "opencv-contrib-python-headless",
+ "opencv-python>=4.7.0.72": "opencv-contrib-python-headless",
+ "pandas<=1.5.1": "pandas",
+ "scikit-image==0.20.0": "scikit-image",
+ "scipy>=1.11.4": "scipy",
+ "segment_anything": "segment-anything",
+ "timm==0.6.5": "timm",
+ "timm>=0.4.12": "timm",
+ "transformers==4.26.1": "transformers"
+}
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/prestartup_script.py b/custom_nodes/ComfyUI-Manager/prestartup_script.py
new file mode 100644
index 000000000..163a9880c
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/prestartup_script.py
@@ -0,0 +1,665 @@
+import datetime
+import os
+import subprocess
+import sys
+import atexit
+import threading
+import re
+import locale
+import platform
+import json
+import ast
+import logging
+
+glob_path = os.path.join(os.path.dirname(__file__), "glob")
+sys.path.append(glob_path)
+
+import security_check
+from manager_util import *
+import cm_global
+
+security_check.security_check()
+
+cm_global.pip_downgrade_blacklist = ['torch', 'torchsde', 'torchvision', 'transformers', 'safetensors', 'kornia']
+
+
+def skip_pip_spam(x):
+ return ('Requirement already satisfied:' in x) or ("DEPRECATION: Loading egg at" in x)
+
+
+message_collapses = [skip_pip_spam]
+import_failed_extensions = set()
+cm_global.variables['cm.on_revision_detected_handler'] = []
+enable_file_logging = True
+
+
+def register_message_collapse(f):
+ global message_collapses
+ message_collapses.append(f)
+
+
+def is_import_failed_extension(name):
+ global import_failed_extensions
+ return name in import_failed_extensions
+
+
+def check_file_logging():
+ global enable_file_logging
+ try:
+ import configparser
+ config_path = os.path.join(os.path.dirname(__file__), "config.ini")
+ config = configparser.ConfigParser()
+ config.read(config_path)
+ default_conf = config['default']
+
+ if 'file_logging' in default_conf and default_conf['file_logging'].lower() == 'false':
+ enable_file_logging = False
+ except Exception:
+ pass
+
+
+check_file_logging()
+
+comfy_path = os.environ.get('COMFYUI_PATH')
+if comfy_path is None:
+ comfy_path = os.path.abspath(os.path.dirname(sys.modules['__main__'].__file__))
+
+sys.__comfyui_manager_register_message_collapse = register_message_collapse
+sys.__comfyui_manager_is_import_failed_extension = is_import_failed_extension
+cm_global.register_api('cm.register_message_collapse', register_message_collapse)
+cm_global.register_api('cm.is_import_failed_extension', is_import_failed_extension)
+
+
+comfyui_manager_path = os.path.dirname(__file__)
+custom_nodes_path = os.path.abspath(os.path.join(comfyui_manager_path, ".."))
+startup_script_path = os.path.join(comfyui_manager_path, "startup-scripts")
+restore_snapshot_path = os.path.join(startup_script_path, "restore-snapshot.json")
+git_script_path = os.path.join(comfyui_manager_path, "git_helper.py")
+pip_overrides_path = os.path.join(comfyui_manager_path, "pip_overrides.json")
+
+
+cm_global.pip_overrides = {}
+if os.path.exists(pip_overrides_path):
+ with open(pip_overrides_path, 'r', encoding="UTF-8", errors="ignore") as json_file:
+ cm_global.pip_overrides = json.load(json_file)
+
+
+def remap_pip_package(pkg):
+ if pkg in cm_global.pip_overrides:
+ res = cm_global.pip_overrides[pkg]
+ print(f"[ComfyUI-Manager] '{pkg}' is remapped to '{res}'")
+ return res
+ else:
+ return pkg
+
+
+std_log_lock = threading.Lock()
+
+
+class TerminalHook:
+ def __init__(self):
+ self.hooks = {}
+
+ def add_hook(self, k, v):
+ self.hooks[k] = v
+
+ def remove_hook(self, k):
+ if k in self.hooks:
+ del self.hooks[k]
+
+ def write_stderr(self, msg):
+ for v in self.hooks.values():
+ try:
+ v.write_stderr(msg)
+ except Exception:
+ pass
+
+ def write_stdout(self, msg):
+ for v in self.hooks.values():
+ try:
+ v.write_stdout(msg)
+ except Exception:
+ pass
+
+
+terminal_hook = TerminalHook()
+sys.__comfyui_manager_terminal_hook = terminal_hook
+
+
+def handle_stream(stream, prefix):
+ stream.reconfigure(encoding=locale.getpreferredencoding(), errors='replace')
+ for msg in stream:
+ if prefix == '[!]' and ('it/s]' in msg or 's/it]' in msg) and ('%|' in msg or 'it [' in msg):
+ if msg.startswith('100%'):
+ print('\r' + msg, end="", file=sys.stderr),
+ else:
+ print('\r' + msg[:-1], end="", file=sys.stderr),
+ else:
+ if prefix == '[!]':
+ print(prefix, msg, end="", file=sys.stderr)
+ else:
+ print(prefix, msg, end="")
+
+
+def process_wrap(cmd_str, cwd_path, handler=None, env=None):
+ process = subprocess.Popen(cmd_str, cwd=cwd_path, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, bufsize=1)
+
+ if handler is None:
+ handler = handle_stream
+
+ stdout_thread = threading.Thread(target=handler, args=(process.stdout, ""))
+ stderr_thread = threading.Thread(target=handler, args=(process.stderr, "[!]"))
+
+ stdout_thread.start()
+ stderr_thread.start()
+
+ stdout_thread.join()
+ stderr_thread.join()
+
+ return process.wait()
+
+
+try:
+ if '--port' in sys.argv:
+ port_index = sys.argv.index('--port')
+ if port_index + 1 < len(sys.argv):
+ port = int(sys.argv[port_index + 1])
+ postfix = f"_{port}"
+ else:
+ postfix = ""
+ else:
+ postfix = ""
+
+ # Logger setup
+ if enable_file_logging:
+ if os.path.exists(f"comfyui{postfix}.log"):
+ if os.path.exists(f"comfyui{postfix}.prev.log"):
+ if os.path.exists(f"comfyui{postfix}.prev2.log"):
+ os.remove(f"comfyui{postfix}.prev2.log")
+ os.rename(f"comfyui{postfix}.prev.log", f"comfyui{postfix}.prev2.log")
+ os.rename(f"comfyui{postfix}.log", f"comfyui{postfix}.prev.log")
+
+ log_file = open(f"comfyui{postfix}.log", "w", encoding="utf-8", errors="ignore")
+
+ log_lock = threading.Lock()
+
+ original_stdout = sys.stdout
+ original_stderr = sys.stderr
+
+ if original_stdout.encoding.lower() == 'utf-8':
+ write_stdout = original_stdout.write
+ write_stderr = original_stderr.write
+ else:
+ def wrapper_stdout(msg):
+ original_stdout.write(msg.encode('utf-8').decode(original_stdout.encoding, errors="ignore"))
+
+ def wrapper_stderr(msg):
+ original_stderr.write(msg.encode('utf-8').decode(original_stderr.encoding, errors="ignore"))
+
+ write_stdout = wrapper_stdout
+ write_stderr = wrapper_stderr
+
+ pat_tqdm = r'\d+%.*\[(.*?)\]'
+ pat_import_fail = r'seconds \(IMPORT FAILED\):.*[/\\]custom_nodes[/\\](.*)$'
+
+ is_start_mode = True
+
+
+ class ComfyUIManagerLogger:
+ def __init__(self, is_stdout):
+ self.is_stdout = is_stdout
+ self.encoding = "utf-8"
+ self.last_char = ''
+
+ def fileno(self):
+ try:
+ if self.is_stdout:
+ return original_stdout.fileno()
+ else:
+ return original_stderr.fileno()
+ except AttributeError:
+ # Handle error
+ raise ValueError("The object does not have a fileno method")
+
+ def isatty(self):
+ return False
+
+ def write(self, message):
+ global is_start_mode
+
+ if any(f(message) for f in message_collapses):
+ return
+
+ if is_start_mode:
+ match = re.search(pat_import_fail, message)
+ if match:
+ import_failed_extensions.add(match.group(1))
+
+ if 'Starting server' in message:
+ is_start_mode = False
+
+ if not self.is_stdout:
+ match = re.search(pat_tqdm, message)
+ if match:
+ message = re.sub(r'([#|])\d', r'\1▌', message)
+ message = re.sub('#', '█', message)
+ if '100%' in message:
+ self.sync_write(message)
+ else:
+ write_stderr(message)
+ original_stderr.flush()
+ else:
+ self.sync_write(message)
+ else:
+ self.sync_write(message)
+
+ def sync_write(self, message, file_only=False):
+ with log_lock:
+ timestamp = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')[:-3]
+ if self.last_char != '\n':
+ log_file.write(message)
+ else:
+ log_file.write(f"[{timestamp}] {message}")
+ log_file.flush()
+ self.last_char = message if message == '' else message[-1]
+
+ if not file_only:
+ with std_log_lock:
+ if self.is_stdout:
+ write_stdout(message)
+ original_stdout.flush()
+ terminal_hook.write_stderr(message)
+ else:
+ write_stderr(message)
+ original_stderr.flush()
+ terminal_hook.write_stdout(message)
+
+ def flush(self):
+ log_file.flush()
+
+ with std_log_lock:
+ if self.is_stdout:
+ original_stdout.flush()
+ else:
+ original_stderr.flush()
+
+ def close(self):
+ self.flush()
+
+ def reconfigure(self, *args, **kwargs):
+ pass
+
+ # You can close through sys.stderr.close_log()
+ def close_log(self):
+ sys.stderr = original_stderr
+ sys.stdout = original_stdout
+ log_file.close()
+
+ def close_log():
+ sys.stderr = original_stderr
+ sys.stdout = original_stdout
+ log_file.close()
+
+
+ if enable_file_logging:
+ sys.stdout = ComfyUIManagerLogger(True)
+ stderr_wrapper = ComfyUIManagerLogger(False)
+ sys.stderr = stderr_wrapper
+
+ atexit.register(close_log)
+ else:
+ sys.stdout.close_log = lambda: None
+ stderr_wrapper = None
+
+
+ class LoggingHandler(logging.Handler):
+ def emit(self, record):
+ global is_start_mode
+
+ message = record.getMessage()
+
+ if is_start_mode:
+ match = re.search(pat_import_fail, message)
+ if match:
+ import_failed_extensions.add(match.group(1))
+
+ if 'Starting server' in message:
+ is_start_mode = False
+
+ if stderr_wrapper:
+ stderr_wrapper.sync_write(message+'\n', file_only=True)
+
+
+ logging.getLogger().addHandler(LoggingHandler())
+
+
+except Exception as e:
+ print(f"[ComfyUI-Manager] Logging failed: {e}")
+
+
+try:
+ import git
+except ModuleNotFoundError:
+ my_path = os.path.dirname(__file__)
+ requirements_path = os.path.join(my_path, "requirements.txt")
+
+ print(f"## ComfyUI-Manager: installing dependencies. (GitPython)")
+ try:
+ result = subprocess.check_output([sys.executable, '-s', '-m', 'pip', 'install', '-r', requirements_path])
+ except subprocess.CalledProcessError as e:
+ print(f"## [ERROR] ComfyUI-Manager: Attempting to reinstall dependencies using an alternative method.")
+ try:
+ result = subprocess.check_output([sys.executable, '-s', '-m', 'pip', 'install', '--user', '-r', requirements_path])
+ except subprocess.CalledProcessError as e:
+ print(f"## [ERROR] ComfyUI-Manager: Failed to install the GitPython package in the correct Python environment. Please install it manually in the appropriate environment. (You can seek help at https://app.element.io/#/room/%23comfyui_space%3Amatrix.org)")
+
+try:
+ import git
+ print(f"## ComfyUI-Manager: installing dependencies done.")
+except:
+ # maybe we should sys.exit() here? there is at least two screens worth of error messages still being pumped after our error messages
+ print(f"## [ERROR] ComfyUI-Manager: GitPython package seems to be installed, but failed to load somehow. Make sure you have a working git client installed")
+
+
+print("** ComfyUI startup time:", datetime.datetime.now())
+print("** Platform:", platform.system())
+print("** Python version:", sys.version)
+print("** Python executable:", sys.executable)
+print("** ComfyUI Path:", comfy_path)
+
+if enable_file_logging:
+ print("** Log path:", os.path.abspath('comfyui.log'))
+else:
+ print("** Log path: file logging is disabled")
+
+
+def read_downgrade_blacklist():
+ try:
+ import configparser
+ config_path = os.path.join(os.path.dirname(__file__), "config.ini")
+ config = configparser.ConfigParser()
+ config.read(config_path)
+ default_conf = config['default']
+
+ if 'downgrade_blacklist' in default_conf:
+ items = default_conf['downgrade_blacklist'].split(',')
+ items = [x.strip() for x in items if x != '']
+ cm_global.pip_downgrade_blacklist += items
+ cm_global.pip_downgrade_blacklist = list(set(cm_global.pip_downgrade_blacklist))
+ except:
+ pass
+
+
+read_downgrade_blacklist()
+
+
+def check_bypass_ssl():
+ try:
+ import configparser
+ import ssl
+ config_path = os.path.join(os.path.dirname(__file__), "config.ini")
+ config = configparser.ConfigParser()
+ config.read(config_path)
+ default_conf = config['default']
+
+ if 'bypass_ssl' in default_conf and default_conf['bypass_ssl'].lower() == 'true':
+ print(f"[ComfyUI-Manager] WARN: Unsafe - SSL verification bypass option is Enabled. (see ComfyUI-Manager/config.ini)")
+ ssl._create_default_https_context = ssl._create_unverified_context # SSL certificate error fix.
+ except Exception:
+ pass
+
+
+check_bypass_ssl()
+
+
+# Perform install
+processed_install = set()
+script_list_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "startup-scripts", "install-scripts.txt")
+pip_map = None
+
+
+def get_installed_packages():
+ global pip_map
+
+ if pip_map is None:
+ try:
+ result = subprocess.check_output([sys.executable, '-m', 'pip', 'list'], universal_newlines=True)
+
+ pip_map = {}
+ for line in result.split('\n'):
+ x = line.strip()
+ if x:
+ y = line.split()
+ if y[0] == 'Package' or y[0].startswith('-'):
+ continue
+
+ pip_map[y[0]] = y[1]
+ except subprocess.CalledProcessError as e:
+ print(f"[ComfyUI-Manager] Failed to retrieve the information of installed pip packages.")
+ return set()
+
+ return pip_map
+
+
+def is_installed(name):
+ name = name.strip()
+
+ if name.startswith('#'):
+ return True
+
+ pattern = r'([^<>!=]+)([<>!=]=?)(.*)'
+ match = re.search(pattern, name)
+
+ if match:
+ name = match.group(1)
+
+ if name in cm_global.pip_downgrade_blacklist:
+ pips = get_installed_packages()
+
+ if match is None:
+ if name in pips:
+ return True
+ elif match.group(2) in ['<=', '==', '<']:
+ if name in pips:
+ if StrictVersion(pips[name]) >= StrictVersion(match.group(3)):
+ print(f"[ComfyUI-Manager] skip black listed pip installation: '{name}'")
+ return True
+
+ pkg = get_installed_packages().get(name.lower())
+ if pkg is None:
+ return False # update if not installed
+
+ if match is None:
+ return True # don't update if version is not specified
+
+ if match.group(2) in ['>', '>=']:
+ if StrictVersion(pkg) < StrictVersion(match.group(3)):
+ return False
+ elif StrictVersion(pkg) > StrictVersion(match.group(3)):
+ print(f"[SKIP] Downgrading pip package isn't allowed: {name.lower()} (cur={pkg})")
+
+ return True # prevent downgrade
+
+
+if os.path.exists(restore_snapshot_path):
+ try:
+ cloned_repos = []
+
+ def msg_capture(stream, prefix):
+ stream.reconfigure(encoding=locale.getpreferredencoding(), errors='replace')
+ for msg in stream:
+ if msg.startswith("CLONE: "):
+ cloned_repos.append(msg[7:])
+ if prefix == '[!]':
+ print(prefix, msg, end="", file=sys.stderr)
+ else:
+ print(prefix, msg, end="")
+
+ elif prefix == '[!]' and ('it/s]' in msg or 's/it]' in msg) and ('%|' in msg or 'it [' in msg):
+ if msg.startswith('100%'):
+ print('\r' + msg, end="", file=sys.stderr),
+ else:
+ print('\r'+msg[:-1], end="", file=sys.stderr),
+ else:
+ if prefix == '[!]':
+ print(prefix, msg, end="", file=sys.stderr)
+ else:
+ print(prefix, msg, end="")
+
+ print(f"[ComfyUI-Manager] Restore snapshot.")
+ cmd_str = [sys.executable, git_script_path, '--apply-snapshot', restore_snapshot_path]
+
+ new_env = os.environ.copy()
+ new_env["COMFYUI_PATH"] = comfy_path
+ exit_code = process_wrap(cmd_str, custom_nodes_path, handler=msg_capture, env=new_env)
+
+ repository_name = ''
+ for url in cloned_repos:
+ try:
+ repository_name = url.split("/")[-1].strip()
+ repo_path = os.path.join(custom_nodes_path, repository_name)
+ repo_path = os.path.abspath(repo_path)
+
+ requirements_path = os.path.join(repo_path, 'requirements.txt')
+ install_script_path = os.path.join(repo_path, 'install.py')
+
+ this_exit_code = 0
+
+ if os.path.exists(requirements_path):
+ with open(requirements_path, 'r', encoding="UTF-8", errors="ignore") as file:
+ for line in file:
+ package_name = remap_pip_package(line.strip())
+ if package_name and not is_installed(package_name):
+ if not package_name.startswith('#'):
+ install_cmd = [sys.executable, "-m", "pip", "install", package_name]
+ this_exit_code += process_wrap(install_cmd, repo_path)
+
+ if os.path.exists(install_script_path) and f'{repo_path}/install.py' not in processed_install:
+ processed_install.add(f'{repo_path}/install.py')
+ install_cmd = [sys.executable, install_script_path]
+ print(f">>> {install_cmd} / {repo_path}")
+
+ new_env = os.environ.copy()
+ new_env["COMFYUI_PATH"] = comfy_path
+ this_exit_code += process_wrap(install_cmd, repo_path, env=new_env)
+
+ if this_exit_code != 0:
+ print(f"[ComfyUI-Manager] Restoring '{repository_name}' is failed.")
+
+ except Exception as e:
+ print(e)
+ print(f"[ComfyUI-Manager] Restoring '{repository_name}' is failed.")
+
+ if exit_code != 0:
+ print(f"[ComfyUI-Manager] Restore snapshot failed.")
+ else:
+ print(f"[ComfyUI-Manager] Restore snapshot done.")
+
+ except Exception as e:
+ print(e)
+ print(f"[ComfyUI-Manager] Restore snapshot failed.")
+
+ os.remove(restore_snapshot_path)
+
+
+def execute_lazy_install_script(repo_path, executable):
+ global processed_install
+
+ install_script_path = os.path.join(repo_path, "install.py")
+ requirements_path = os.path.join(repo_path, "requirements.txt")
+
+ if os.path.exists(requirements_path):
+ print(f"Install: pip packages for '{repo_path}'")
+ with open(requirements_path, "r") as requirements_file:
+ for line in requirements_file:
+ package_name = remap_pip_package(line.strip())
+ if package_name and not is_installed(package_name):
+ install_cmd = [executable, "-m", "pip", "install", package_name]
+ process_wrap(install_cmd, repo_path)
+
+ if os.path.exists(install_script_path) and f'{repo_path}/install.py' not in processed_install:
+ processed_install.add(f'{repo_path}/install.py')
+ print(f"Install: install script for '{repo_path}'")
+ install_cmd = [executable, "install.py"]
+
+ new_env = os.environ.copy()
+ new_env["COMFYUI_PATH"] = comfy_path
+ process_wrap(install_cmd, repo_path, env=new_env)
+
+
+# Check if script_list_path exists
+if os.path.exists(script_list_path):
+ print("\n#######################################################################")
+ print("[ComfyUI-Manager] Starting dependency installation/(de)activation for the extension\n")
+
+ executed = set()
+ # Read each line from the file and convert it to a list using eval
+ with open(script_list_path, 'r', encoding="UTF-8", errors="ignore") as file:
+ for line in file:
+ if line in executed:
+ continue
+
+ executed.add(line)
+
+ try:
+ script = ast.literal_eval(line)
+
+ if script[1].startswith('#') and script[1] != '#FORCE':
+ if script[1] == "#LAZY-INSTALL-SCRIPT":
+ execute_lazy_install_script(script[0], script[2])
+
+ elif os.path.exists(script[0]):
+ if script[1] == "#FORCE":
+ del script[1]
+ else:
+ if 'pip' in script[1:] and 'install' in script[1:] and is_installed(script[-1]):
+ continue
+
+ print(f"\n## ComfyUI-Manager: EXECUTE => {script[1:]}")
+ print(f"\n## Execute install/(de)activation script for '{script[0]}'")
+
+ new_env = os.environ.copy()
+ new_env["COMFYUI_PATH"] = comfy_path
+ exit_code = process_wrap(script[1:], script[0], env=new_env)
+
+ if exit_code != 0:
+ print(f"install/(de)activation script failed: {script[0]}")
+ else:
+ print(f"\n## ComfyUI-Manager: CANCELED => {script[1:]}")
+
+ except Exception as e:
+ print(f"[ERROR] Failed to execute install/(de)activation script: {line} / {e}")
+
+ # Remove the script_list_path file
+ if os.path.exists(script_list_path):
+ os.remove(script_list_path)
+
+ print("\n[ComfyUI-Manager] Startup script completed.")
+ print("#######################################################################\n")
+
+del processed_install
+del pip_map
+
+
+def check_windows_event_loop_policy():
+ try:
+ import configparser
+ config_path = os.path.join(os.path.dirname(__file__), "config.ini")
+ config = configparser.ConfigParser()
+ config.read(config_path)
+ default_conf = config['default']
+
+ if 'windows_selector_event_loop_policy' in default_conf and default_conf['windows_selector_event_loop_policy'].lower() == 'true':
+ try:
+ import asyncio
+ import asyncio.windows_events
+ asyncio.set_event_loop_policy(asyncio.windows_events.WindowsSelectorEventLoopPolicy())
+ print(f"[ComfyUI-Manager] Windows event loop policy mode enabled")
+ except Exception as e:
+ print(f"[ComfyUI-Manager] WARN: Windows initialization fail: {e}")
+ except Exception:
+ pass
+
+
+if platform.system() == 'Windows':
+ check_windows_event_loop_policy()
diff --git a/custom_nodes/ComfyUI-Manager/pyproject.toml b/custom_nodes/ComfyUI-Manager/pyproject.toml
new file mode 100644
index 000000000..fbb0be02f
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/pyproject.toml
@@ -0,0 +1,15 @@
+[project]
+name = "comfyui-manager"
+description = "ComfyUI-Manager provides features to install and manage custom nodes for ComfyUI, as well as various functionalities to assist with ComfyUI."
+version = "2.46.2"
+license = "LICENSE"
+dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions"]
+
+[project.urls]
+Repository = "https://github.com/ltdrdata/ComfyUI-Manager"
+# Used by Comfy Registry https://comfyregistry.org
+
+[tool.comfy]
+PublisherId = "drltdata"
+DisplayName = "ComfyUI-Manager"
+Icon = ""
diff --git a/custom_nodes/ComfyUI-Manager/requirements.txt b/custom_nodes/ComfyUI-Manager/requirements.txt
new file mode 100644
index 000000000..89f93b417
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/requirements.txt
@@ -0,0 +1,8 @@
+GitPython
+PyGithub
+matrix-client==0.4.0
+transformers
+huggingface-hub>0.20
+typer
+rich
+typing-extensions
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/scan.sh b/custom_nodes/ComfyUI-Manager/scan.sh
new file mode 100644
index 000000000..f1f088ecc
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/scan.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+rm ~/.tmp/default/*.py > /dev/null 2>&1
+python scanner.py ~/.tmp/default $*
+cp extension-node-map.json node_db/new/.
+
+echo Integrity check
+./check.sh
diff --git a/custom_nodes/ComfyUI-Manager/scanner.py b/custom_nodes/ComfyUI-Manager/scanner.py
new file mode 100644
index 000000000..0118768fd
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/scanner.py
@@ -0,0 +1,527 @@
+import ast
+import re
+import os
+import json
+from git import Repo
+import concurrent
+import datetime
+import concurrent.futures
+import requests
+
+builtin_nodes = set()
+
+import sys
+
+from urllib.parse import urlparse
+from github import Github
+
+
+def download_url(url, dest_folder, filename=None):
+ # Ensure the destination folder exists
+ if not os.path.exists(dest_folder):
+ os.makedirs(dest_folder)
+
+ # Extract filename from URL if not provided
+ if filename is None:
+ filename = os.path.basename(url)
+
+ # Full path to save the file
+ dest_path = os.path.join(dest_folder, filename)
+
+ # Download the file
+ response = requests.get(url, stream=True)
+ if response.status_code == 200:
+ with open(dest_path, 'wb') as file:
+ for chunk in response.iter_content(chunk_size=1024):
+ if chunk:
+ file.write(chunk)
+ else:
+ raise Exception(f"Failed to download file from {url}")
+
+
+# prepare temp dir
+if len(sys.argv) > 1:
+ temp_dir = sys.argv[1]
+else:
+ temp_dir = os.path.join(os.getcwd(), ".tmp")
+
+if not os.path.exists(temp_dir):
+ os.makedirs(temp_dir)
+
+
+skip_update = '--skip-update' in sys.argv or '--skip-all' in sys.argv
+skip_stat_update = '--skip-stat-update' in sys.argv or '--skip-all' in sys.argv
+
+if not skip_stat_update:
+ g = Github(os.environ.get('GITHUB_TOKEN'))
+else:
+ g = None
+
+
+print(f"TEMP DIR: {temp_dir}")
+
+
+parse_cnt = 0
+
+
+def extract_nodes(code_text):
+ global parse_cnt
+
+ try:
+ if parse_cnt % 100 == 0:
+ print(f".", end="", flush=True)
+ parse_cnt += 1
+
+ code_text = re.sub(r'\\[^"\']', '', code_text)
+ parsed_code = ast.parse(code_text)
+
+ assignments = (node for node in parsed_code.body if isinstance(node, ast.Assign))
+
+ for assignment in assignments:
+ if isinstance(assignment.targets[0], ast.Name) and assignment.targets[0].id in ['NODE_CONFIG', 'NODE_CLASS_MAPPINGS']:
+ node_class_mappings = assignment.value
+ break
+ else:
+ node_class_mappings = None
+
+ if node_class_mappings:
+ s = set()
+
+ for key in node_class_mappings.keys:
+ if key is not None and isinstance(key.value, str):
+ s.add(key.value.strip())
+
+ return s
+ else:
+ return set()
+ except:
+ return set()
+
+
+# scan
+def scan_in_file(filename, is_builtin=False):
+ global builtin_nodes
+
+ try:
+ with open(filename, encoding='utf-8') as file:
+ code = file.read()
+ except UnicodeDecodeError:
+ with open(filename, encoding='cp949') as file:
+ code = file.read()
+
+ pattern = r"_CLASS_MAPPINGS\s*=\s*{([^}]*)}"
+ regex = re.compile(pattern, re.MULTILINE | re.DOTALL)
+
+ nodes = set()
+ class_dict = {}
+
+ nodes |= extract_nodes(code)
+ code = re.sub(r'^#.*?$', '', code, flags=re.MULTILINE)
+
+ def extract_keys(pattern, code):
+ keys = re.findall(pattern, code)
+ return {key.strip() for key in keys}
+
+ def update_nodes(nodes, new_keys):
+ nodes |= new_keys
+
+ patterns = [
+ r'^[^=]*_CLASS_MAPPINGS\["(.*?)"\]',
+ r'^[^=]*_CLASS_MAPPINGS\[\'(.*?)\'\]',
+ r'@register_node\("(.+)",\s*\".+"\)',
+ r'"(\w+)"\s*:\s*{"class":\s*\w+\s*'
+ ]
+
+ with concurrent.futures.ThreadPoolExecutor() as executor:
+ futures = {executor.submit(extract_keys, pattern, code): pattern for pattern in patterns}
+ for future in concurrent.futures.as_completed(futures):
+ update_nodes(nodes, future.result())
+
+ matches = regex.findall(code)
+ for match in matches:
+ dict_text = match
+
+ key_value_pairs = re.findall(r"\"([^\"]*)\"\s*:\s*([^,\n]*)", dict_text)
+ for key, value in key_value_pairs:
+ class_dict[key.strip()] = value.strip()
+
+ key_value_pairs = re.findall(r"'([^']*)'\s*:\s*([^,\n]*)", dict_text)
+ for key, value in key_value_pairs:
+ class_dict[key.strip()] = value.strip()
+
+ for key, value in class_dict.items():
+ nodes.add(key.strip())
+
+ update_pattern = r"_CLASS_MAPPINGS.update\s*\({([^}]*)}\)"
+ update_match = re.search(update_pattern, code)
+ if update_match:
+ update_dict_text = update_match.group(1)
+ update_key_value_pairs = re.findall(r"\"([^\"]*)\"\s*:\s*([^,\n]*)", update_dict_text)
+ for key, value in update_key_value_pairs:
+ class_dict[key.strip()] = value.strip()
+ nodes.add(key.strip())
+
+ metadata = {}
+ lines = code.strip().split('\n')
+ for line in lines:
+ if line.startswith('@'):
+ if line.startswith("@author:") or line.startswith("@title:") or line.startswith("@nickname:") or line.startswith("@description:"):
+ key, value = line[1:].strip().split(':', 1)
+ metadata[key.strip()] = value.strip()
+
+ if is_builtin:
+ builtin_nodes += set(nodes)
+ else:
+ for x in builtin_nodes:
+ if x in nodes:
+ nodes.remove(x)
+
+ return nodes, metadata
+
+
+def get_py_file_paths(dirname):
+ file_paths = []
+
+ for root, dirs, files in os.walk(dirname):
+ if ".git" in root or "__pycache__" in root:
+ continue
+
+ for file in files:
+ if file.endswith(".py"):
+ file_path = os.path.join(root, file)
+ file_paths.append(file_path)
+
+ return file_paths
+
+
+def get_nodes(target_dir):
+ py_files = []
+ directories = []
+
+ for item in os.listdir(target_dir):
+ if ".git" in item or "__pycache__" in item:
+ continue
+
+ path = os.path.abspath(os.path.join(target_dir, item))
+
+ if os.path.isfile(path) and item.endswith(".py"):
+ py_files.append(path)
+ elif os.path.isdir(path):
+ directories.append(path)
+
+ return py_files, directories
+
+
+def get_git_urls_from_json(json_file):
+ with open(json_file, encoding='utf-8') as file:
+ data = json.load(file)
+
+ custom_nodes = data.get('custom_nodes', [])
+ git_clone_files = []
+ for node in custom_nodes:
+ if node.get('install_type') == 'git-clone':
+ files = node.get('files', [])
+ if files:
+ git_clone_files.append((files[0], node.get('title'), node.get('preemptions'), node.get('nodename_pattern')))
+
+ git_clone_files.append(("https://github.com/comfyanonymous/ComfyUI", "ComfyUI", None, None))
+
+ return git_clone_files
+
+
+def get_py_urls_from_json(json_file):
+ with open(json_file, encoding='utf-8') as file:
+ data = json.load(file)
+
+ custom_nodes = data.get('custom_nodes', [])
+ py_files = []
+ for node in custom_nodes:
+ if node.get('install_type') == 'copy':
+ files = node.get('files', [])
+ if files:
+ py_files.append((files[0], node.get('title'), node.get('preemptions'), node.get('nodename_pattern')))
+
+ return py_files
+
+
+def clone_or_pull_git_repository(git_url):
+ repo_name = git_url.split("/")[-1].split(".")[0]
+ repo_dir = os.path.join(temp_dir, repo_name)
+
+ if os.path.exists(repo_dir):
+ try:
+ repo = Repo(repo_dir)
+ origin = repo.remote(name="origin")
+ origin.pull()
+ repo.git.submodule('update', '--init', '--recursive')
+ print(f"Pulling {repo_name}...")
+ except Exception as e:
+ print(f"Pulling {repo_name} failed: {e}")
+ else:
+ try:
+ Repo.clone_from(git_url, repo_dir, recursive=True)
+ print(f"Cloning {repo_name}...")
+ except Exception as e:
+ print(f"Cloning {repo_name} failed: {e}")
+
+
+def update_custom_nodes():
+ if not os.path.exists(temp_dir):
+ os.makedirs(temp_dir)
+
+ node_info = {}
+
+ git_url_titles_preemptions = get_git_urls_from_json('custom-node-list.json')
+
+ def process_git_url_title(url, title, preemptions, node_pattern):
+ name = os.path.basename(url)
+ if name.endswith(".git"):
+ name = name[:-4]
+
+ node_info[name] = (url, title, preemptions, node_pattern)
+ if not skip_update:
+ clone_or_pull_git_repository(url)
+
+ def process_git_stats(git_url_titles_preemptions):
+ GITHUB_STATS_CACHE_FILENAME = 'github-stats-cache.json'
+ GITHUB_STATS_FILENAME = 'github-stats.json'
+
+ github_stats = {}
+ try:
+ with open(GITHUB_STATS_CACHE_FILENAME, 'r', encoding='utf-8') as file:
+ github_stats = json.load(file)
+ except FileNotFoundError:
+ pass
+
+ def is_rate_limit_exceeded():
+ return g.rate_limiting[0] == 0
+
+ if is_rate_limit_exceeded():
+ print(f"GitHub API Rate Limit Exceeded: remained - {(g.rate_limiting_resettime - datetime.datetime.now().timestamp())/60:.2f} min")
+ else:
+ def renew_stat(url):
+ if is_rate_limit_exceeded():
+ return
+
+ if 'github.com' not in url:
+ return None
+
+ print('.', end="")
+ sys.stdout.flush()
+ try:
+ # Parsing the URL
+ parsed_url = urlparse(url)
+ domain = parsed_url.netloc
+ path = parsed_url.path
+ path_parts = path.strip("/").split("/")
+ if len(path_parts) >= 2 and domain == "github.com":
+ owner_repo = "/".join(path_parts[-2:])
+ repo = g.get_repo(owner_repo)
+ owner = repo.owner
+ now = datetime.datetime.now(datetime.timezone.utc)
+ author_time_diff = now - owner.created_at
+
+ last_update = repo.pushed_at.strftime("%Y-%m-%d %H:%M:%S") if repo.pushed_at else 'N/A'
+ item = {
+ "stars": repo.stargazers_count,
+ "last_update": last_update,
+ "cached_time": now.timestamp(),
+ "author_account_age_days": author_time_diff.days,
+ }
+ return url, item
+ else:
+ print(f"\nInvalid URL format for GitHub repository: {url}\n")
+ except Exception as e:
+ print(f"\nERROR on {url}\n{e}")
+
+ return None
+
+ # resolve unresolved urls
+ with concurrent.futures.ThreadPoolExecutor(11) as executor:
+ futures = []
+ for url, title, preemptions, node_pattern in git_url_titles_preemptions:
+ if url not in github_stats:
+ futures.append(executor.submit(renew_stat, url))
+
+ for future in concurrent.futures.as_completed(futures):
+ url_item = future.result()
+ if url_item is not None:
+ url, item = url_item
+ github_stats[url] = item
+
+ # renew outdated cache
+ outdated_urls = []
+ for k, v in github_stats.items():
+ elapsed = (datetime.datetime.now().timestamp() - v['cached_time'])
+ if elapsed > 60*60*12: # 12 hours
+ outdated_urls.append(k)
+
+ with concurrent.futures.ThreadPoolExecutor(11) as executor:
+ for url in outdated_urls:
+ futures.append(executor.submit(renew_stat, url))
+
+ for future in concurrent.futures.as_completed(futures):
+ url_item = future.result()
+ if url_item is not None:
+ url, item = url_item
+ github_stats[url] = item
+
+ with open('github-stats-cache.json', 'w', encoding='utf-8') as file:
+ json.dump(github_stats, file, ensure_ascii=False, indent=4)
+
+ with open(GITHUB_STATS_FILENAME, 'w', encoding='utf-8') as file:
+ for v in github_stats.values():
+ if "cached_time" in v:
+ del v["cached_time"]
+
+ github_stats = dict(sorted(github_stats.items()))
+
+ json.dump(github_stats, file, ensure_ascii=False, indent=4)
+
+ print(f"Successfully written to {GITHUB_STATS_FILENAME}.")
+
+ if not skip_stat_update:
+ process_git_stats(git_url_titles_preemptions)
+
+ with concurrent.futures.ThreadPoolExecutor(11) as executor:
+ for url, title, preemptions, node_pattern in git_url_titles_preemptions:
+ executor.submit(process_git_url_title, url, title, preemptions, node_pattern)
+
+ py_url_titles_and_pattern = get_py_urls_from_json('custom-node-list.json')
+
+ def download_and_store_info(url_title_preemptions_and_pattern):
+ url, title, preemptions, node_pattern = url_title_preemptions_and_pattern
+ name = os.path.basename(url)
+ if name.endswith(".py"):
+ node_info[name] = (url, title, preemptions, node_pattern)
+
+ try:
+ download_url(url, temp_dir)
+ except:
+ print(f"[ERROR] Cannot download '{url}'")
+
+ with concurrent.futures.ThreadPoolExecutor(10) as executor:
+ executor.map(download_and_store_info, py_url_titles_and_pattern)
+
+ return node_info
+
+
+def gen_json(node_info):
+ # scan from .py file
+ node_files, node_dirs = get_nodes(temp_dir)
+
+ comfyui_path = os.path.abspath(os.path.join(temp_dir, "ComfyUI"))
+ node_dirs.remove(comfyui_path)
+ node_dirs = [comfyui_path] + node_dirs
+
+ data = {}
+ for dirname in node_dirs:
+ py_files = get_py_file_paths(dirname)
+ metadata = {}
+
+ nodes = set()
+ for py in py_files:
+ nodes_in_file, metadata_in_file = scan_in_file(py, dirname == "ComfyUI")
+ nodes.update(nodes_in_file)
+ metadata.update(metadata_in_file)
+
+ dirname = os.path.basename(dirname)
+
+ if 'Jovimetrix' in dirname:
+ pass
+
+ if len(nodes) > 0 or (dirname in node_info and node_info[dirname][3] is not None):
+ nodes = list(nodes)
+ nodes.sort()
+
+ if dirname in node_info:
+ git_url, title, preemptions, node_pattern = node_info[dirname]
+
+ metadata['title_aux'] = title
+
+ if preemptions is not None:
+ metadata['preemptions'] = preemptions
+
+ if node_pattern is not None:
+ metadata['nodename_pattern'] = node_pattern
+
+ data[git_url] = (nodes, metadata)
+ else:
+ print(f"WARN: {dirname} is removed from custom-node-list.json")
+
+ for file in node_files:
+ nodes, metadata = scan_in_file(file)
+
+ if len(nodes) > 0 or (dirname in node_info and node_info[dirname][3] is not None):
+ nodes = list(nodes)
+ nodes.sort()
+
+ file = os.path.basename(file)
+
+ if file in node_info:
+ url, title, preemptions, node_pattern = node_info[file]
+ metadata['title_aux'] = title
+
+ if preemptions is not None:
+ metadata['preemptions'] = preemptions
+
+ if node_pattern is not None:
+ metadata['nodename_pattern'] = node_pattern
+
+ data[url] = (nodes, metadata)
+ else:
+ print(f"Missing info: {file}")
+
+ # scan from node_list.json file
+ extensions = [name for name in os.listdir(temp_dir) if os.path.isdir(os.path.join(temp_dir, name))]
+
+ for extension in extensions:
+ node_list_json_path = os.path.join(temp_dir, extension, 'node_list.json')
+ if os.path.exists(node_list_json_path):
+ git_url, title, preemptions, node_pattern = node_info[extension]
+
+ with open(node_list_json_path, 'r', encoding='utf-8') as f:
+ try:
+ node_list_json = json.load(f)
+ except Exception as e:
+ print(f"\nERROR: Invalid json format '{node_list_json_path}'")
+ print("------------------------------------------------------")
+ print(e)
+ print("------------------------------------------------------")
+
+ metadata_in_url = {}
+ if git_url not in data:
+ nodes = set()
+ else:
+ nodes_in_url, metadata_in_url = data[git_url]
+ nodes = set(nodes_in_url)
+
+ for x, desc in node_list_json.items():
+ nodes.add(x.strip())
+
+ metadata_in_url['title_aux'] = title
+
+ if preemptions is not None:
+ metadata['preemptions'] = preemptions
+
+ if node_pattern is not None:
+ metadata_in_url['nodename_pattern'] = node_pattern
+
+ nodes = list(nodes)
+ nodes.sort()
+ data[git_url] = (nodes, metadata_in_url)
+
+ json_path = f"extension-node-map.json"
+ with open(json_path, "w", encoding='utf-8') as file:
+ json.dump(data, file, indent=4, sort_keys=True)
+
+
+print("### ComfyUI Manager Node Scanner ###")
+
+print("\n# Updating extensions\n")
+updated_node_info = update_custom_nodes()
+
+print("\n# 'extension-node-map.json' file is generated.\n")
+gen_json(updated_node_info)
+
+print("\nDONE.\n")
\ No newline at end of file
diff --git a/custom_nodes/ComfyUI-Manager/scripts/colab-dependencies.py b/custom_nodes/ComfyUI-Manager/scripts/colab-dependencies.py
new file mode 100644
index 000000000..d5a70ed6d
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/scripts/colab-dependencies.py
@@ -0,0 +1,39 @@
+import os
+import subprocess
+
+
+def get_enabled_subdirectories_with_files(base_directory):
+ subdirs_with_files = []
+ for subdir in os.listdir(base_directory):
+ try:
+ full_path = os.path.join(base_directory, subdir)
+ if os.path.isdir(full_path) and not subdir.endswith(".disabled") and not subdir.startswith('.') and subdir != '__pycache__':
+ print(f"## Install dependencies for '{subdir}'")
+ requirements_file = os.path.join(full_path, "requirements.txt")
+ install_script = os.path.join(full_path, "install.py")
+
+ if os.path.exists(requirements_file) or os.path.exists(install_script):
+ subdirs_with_files.append((full_path, requirements_file, install_script))
+ except Exception as e:
+ print(f"EXCEPTION During Dependencies INSTALL on '{subdir}':\n{e}")
+
+ return subdirs_with_files
+
+
+def install_requirements(requirements_file_path):
+ if os.path.exists(requirements_file_path):
+ subprocess.run(["pip", "install", "-r", requirements_file_path])
+
+
+def run_install_script(install_script_path):
+ if os.path.exists(install_script_path):
+ subprocess.run(["python", install_script_path])
+
+
+custom_nodes_directory = "custom_nodes"
+subdirs_with_files = get_enabled_subdirectories_with_files(custom_nodes_directory)
+
+
+for subdir, requirements_file, install_script in subdirs_with_files:
+ install_requirements(requirements_file)
+ run_install_script(install_script)
diff --git a/custom_nodes/ComfyUI-Manager/scripts/install-comfyui-venv-linux.sh b/custom_nodes/ComfyUI-Manager/scripts/install-comfyui-venv-linux.sh
new file mode 100644
index 000000000..fecf3d5bc
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/scripts/install-comfyui-venv-linux.sh
@@ -0,0 +1,21 @@
+git clone https://github.com/comfyanonymous/ComfyUI
+cd ComfyUI/custom_nodes
+git clone https://github.com/ltdrdata/ComfyUI-Manager
+cd ..
+python -m venv venv
+source venv/bin/activate
+python -m pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
+python -m pip install -r requirements.txt
+python -m pip install -r custom_nodes/ComfyUI-Manager/requirements.txt
+cd ..
+echo "#!/bin/bash" > run_gpu.sh
+echo "cd ComfyUI" >> run_gpu.sh
+echo "source venv/bin/activate" >> run_gpu.sh
+echo "python main.py --preview-method auto" >> run_gpu.sh
+chmod +x run_gpu.sh
+
+echo "#!/bin/bash" > run_cpu.sh
+echo "cd ComfyUI" >> run_cpu.sh
+echo "source venv/bin/activate" >> run_cpu.sh
+echo "python main.py --preview-method auto --cpu" >> run_cpu.sh
+chmod +x run_cpu.sh
diff --git a/custom_nodes/ComfyUI-Manager/scripts/install-comfyui-venv-win.bat b/custom_nodes/ComfyUI-Manager/scripts/install-comfyui-venv-win.bat
new file mode 100644
index 000000000..2789ef6db
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/scripts/install-comfyui-venv-win.bat
@@ -0,0 +1,17 @@
+git clone https://github.com/comfyanonymous/ComfyUI
+cd ComfyUI/custom_nodes
+git clone https://github.com/ltdrdata/ComfyUI-Manager
+cd ..
+python -m venv venv
+call venv/Scripts/activate
+python -m pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
+python -m pip install -r requirements.txt
+python -m pip install -r custom_nodes/ComfyUI-Manager/requirements.txt
+cd ..
+echo "cd ComfyUI" >> run_gpu.bat
+echo "call venv/Scripts/activate" >> run_gpu.bat
+echo "python main.py" >> run_gpu.bat
+
+echo "cd ComfyUI" >> run_cpu.bat
+echo "call venv/Scripts/activate" >> run_cpu.bat
+echo "python main.py --cpu" >> run_cpu.bat
diff --git a/custom_nodes/ComfyUI-Manager/scripts/install-manager-for-portable-version.bat b/custom_nodes/ComfyUI-Manager/scripts/install-manager-for-portable-version.bat
new file mode 100644
index 000000000..7b067dfd7
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/scripts/install-manager-for-portable-version.bat
@@ -0,0 +1,2 @@
+.\python_embeded\python.exe -s -m pip install gitpython
+.\python_embeded\python.exe -c "import git; git.Repo.clone_from('https://github.com/ltdrdata/ComfyUI-Manager', './ComfyUI/custom_nodes/ComfyUI-Manager')"
diff --git a/custom_nodes/ComfyUI-Manager/scripts/update-fix.py b/custom_nodes/ComfyUI-Manager/scripts/update-fix.py
new file mode 100644
index 000000000..d2ac10074
--- /dev/null
+++ b/custom_nodes/ComfyUI-Manager/scripts/update-fix.py
@@ -0,0 +1,12 @@
+import git
+
+commit_hash = "a361cc1"
+
+repo = git.Repo('.')
+
+if repo.is_dirty():
+ repo.git.stash()
+
+repo.git.update_ref("refs/remotes/origin/main", commit_hash)
+repo.remotes.origin.fetch()
+repo.git.pull("origin", "main")
diff --git a/custom_nodes/ComfyUI-Manager/snapshots/the_snapshot_files_are_located_here b/custom_nodes/ComfyUI-Manager/snapshots/the_snapshot_files_are_located_here
new file mode 100644
index 000000000..e69de29bb