Dev Blog

스크립트 & 소스코드 공유

실무에서 유용하게 쓰는 스크립트와 코드 조각을 블로그 게시판으로 저장하고 공유합니다.

4건의 글

ComfyUI 0.25.0 업데이트 후 이미지가 검게 나올 때 해결 방법

ComfyUI 업데이트 후 생성 이미지가 시커멓게 나오는 문제의 해결 방법이다. attention.py에서 optimized_attention = attention_sage를 attention_pytorch로 바꿔 PyTorch Attention을 강제로 사용하거나, Sage Attention을 2.x로 업그레이드하고, 绘世启动器 설정에서 sage attention을 끄는 방법을 단계별로 정리했다.

제공해주신 ComfyUI Sage Attention 충돌 해결 방안을 마크다운 형식으로 정리해 드립니다. 나중에 참고하시거나 다른 분들과 공유하실 때 활용하시기 바랍니다.


ComfyUI Sage Attention 충돌 및 해결 방법 가이드

Z-Image 계열 모델 사용 시 발생하는 Sage Attention 충돌 문제를 해결하기 위한 가이드입니다. 업데이트 시 패치가 초기화될 수 있으므로 상황에 맞는 방법을 선택하세요.

수정 대상 파일

  • 경로: E:\ComfyUI-aki-v3\ComfyUI\comfy\ldm\modules\attention.py

방법 1. 소스 코드 직접 수정 (임시 패치)

Sage Attention 옵션이 켜져 있어도 실제로는 PyTorch Attention을 사용하도록 강제로 우회하는 방법입니다.

  1. 메모장이나 코드 에디터로 위 경로의 attention.py 파일을 엽니다.
  2. 734번째 줄 근처에서 "Using sage attention" 문구를 찾습니다.
  3. 아래와 같이 코드를 수정합니다.

[변경 전]

logging.info("Using sage attention")
optimized_attention = attention_sage

[변경 후]

logging.info("Using sage attention (forced pytorch fallback)")
optimized_attention = attention_pytorch
  1. 저장 후 ComfyUI를 재시작합니다.

방법 2. Sage Attention 라이브러리 업그레이드

충돌의 원인인 구버전(v1.0.6 등)을 최신 버전으로 업데이트하여 근본적인 문제를 해결합니다.

  • 실행 명령 (터미널/CMD):
    "E:\ComfyUI-aki-v3\python\python.exe" -m pip install sageattention --upgrade

방법 3. 绘世(Aki) 런처에서 옵션 해제 (가장 권장)

업데이트 시마다 패치가 날아가는 번거로움을 피하기 위해 아예 기능을 끄는 방법입니다.

  1. 绘世启动器(Aki Launcher) 실행
  2. 설정(톱니바퀴 아이콘) 클릭
  3. 시작 파라미터(启动参数) 또는 고급 설정(高级设置) 진입
  4. --use-sage-attention 항목을 찾아 체크 해제

**

반응형 웹에서 테이블 깨지지 않게 처리하기 (CSS)

모바일 화면에서 테이블이 화면을 벗어나 깨지지 않도록 처리하는 반응형 CSS 기법이다. 테이블을 감싸는 컨테이너에 overflow-x: auto를 적용해 가로 스크롤을 허용하는 방식과, 화면이 좁아지면 셀을 세로로 재배치하는 방식의 HTML·CSS 예제를 제공한다.

HTML

<div id="custom-responsive-table">
<table class="table">
<thead class="bg-light">
<tr>
<td>h1</td>
<td>h2</td>
<td>h3</td>
<td>h4</td>
</tr>
</thead>
<tbody>
<tr>
<td data-title="h1">content1</td>
<td data-title="h2">content2</a></td>
<td data-title="h3">content3</td>
<td data-title="h4">content4</td>
</tr>
<tr>
<td data-title="h1">second1</td>
<td data-title="h2">second2</td>
<td data-title="h3">second3</td>
<td data-title="h4">second4</td>
</tr>
</tbody>
</table>
</div>
<p>https://bootsnipp.com/snippets/featured/no-more-tables-respsonsive-table</p>

CSS

/*반응형 테이블*/
@media only screen and (max-width: 800px) {

/* Force table to not be like tables anymore */
#custom-responsive-table table,
#custom-responsive-table thead,
#custom-responsive-table tbody,
#custom-responsive-table th,
#custom-responsive-table td,
#custom-responsive-table tr {
display: block;
}

/* Hide table headers (but not display: none;, for accessibility) */
#custom-responsive-table thead tr {
position: absolute;
top: -9999px;
left: -9999px;
}

#custom-responsive-table tr { border: 1px solid #ccc; }

#custom-responsive-table td {
/* Behave  like a "row" */
border: none;
border-bottom: 1px solid #eee;
position: relative;
padding-left: 20%; /*컬럼위치조정*/
white-space: normal;
text-align:left;
}

#custom-responsive-table td:before {
/* Now like a table header */
position: absolute;
/* Top/left values mimic padding */
top: 6px;
left: 6px;
width: 45%;
padding-right: 10px;
white-space: nowrap;
text-align:left;
font-weight: bold;
}

/*
Label the data
*/
#custom-responsive-table td:before { content: attr(data-title); }
}

MySQL 명령어 - 테이블 복사(구조·내용 포함)

MySQL에서 자주 쓰는 쿼리 메모다. mysql -u root -p로 데이터베이스에 접속한 뒤, create table ... like로 기존 테이블의 구조만 복사하고, create table ... select * from으로 구조와 데이터를 함께 복사하는 두 가지 방법을 예제와 함께 정리했다.

//链接数据库

[root@q352-1371 ~]# mysql -u root -p

//复制表格

mysql > create table dateBasesName.tableName_copy like dateBasesName.tableName;

//复制表格并且复制内容

mysql > create table dateBasesName.tableName_copy select * from dateBasesName.tableName;

phpMyAdmin으로 MySQL 데이터베이스 테이블 일괄 삭제하기

PHP 스크립트를 이용해 특정 접두어(v9_)가 붙은 MySQL 테이블을 한 번에 삭제하는 방법이다. 데이터베이스에 연결해 show tables로 전체 테이블을 조회한 뒤, 접두어가 일치하는 테이블만 drop table로 삭제하고 결과를 출력한다. 실행 전 반드시 데이터베이스 전체를 백업할 것을 권장한다.

使用这个方法前,强烈建议先备份整个数据库。至于怎么备份?你不会么?在本文下方留言吧。

具体方法:复制下面的php执行语句,保存为sql.php文件(注意配置数据库名称、密码、数据表头),通过ftp上传到网站跟目录,运行。

<?php
//设置数据库连接信息。数据库服务器地址,数据库用户名,数据密码
mysql_connect('localhost','root','123456');
//设置查询的数据库名称,比如CMSYOU当前设置的是phpcms
mysql_select_db('phpcms');
$rs=mysql_query('show tables');
while($arr=mysql_fetch_array($rs))
{
//设置要批量删除的数据库表前缀,如:v9_
$TF=strpos($arr[0],'v9_');
if($TF===0){
$FT=mysql_query("drop table $arr[0]");
if($FT){
echo "$arr[0] 删除成功!<br>";
}
}
}
?>


Let's create something great together.

프로젝트 문의 및 견적 요청은 언제든 환영합니다.